Skip to main content

Vendor Record API

Create, read, update, and delete vendor (supplier) records using the NetSuite REST API.


Endpoints​

MethodEndpointDescription
GET/record/v1/vendorList all vendors
GET/record/v1/vendor/{id}Get specific vendor
POST/record/v1/vendorCreate new vendor
PATCH/record/v1/vendor/{id}Update existing vendor
DELETE/record/v1/vendor/{id}Delete vendor

Key Fields​

Identification & Basic Info​

FieldTypeDescriptionRequired
idstringInternal ID (read-only)-
entityIdstringVendor ID/NameYes (if not auto)
autoNamebooleanAuto-generate nameNo
companyNamestringCompany nameYes (if company)
isPersonbooleanIndividual vs companyNo
firstNamestringFirst name (if person)Conditional
lastNamestringLast name (if person)Conditional
subsidiaryobjectPrimary subsidiaryYes (if OneWorld)

Contact Information​

FieldTypeDescription
emailstringPrimary email address
altEmailstringAlternate email
phonestringPrimary phone
altPhonestringAlternate phone
faxstringFax number
urlstringWebsite URL

Financial Fields​

FieldTypeDescription
balancenumberCurrent A/P balance (read-only)
creditLimitnumberMaximum credit limit
termsobjectPayment terms
currencyobjectVendor currency
taxIdNumstringTax ID / EIN
is1099EligiblebooleanSubject to 1099 reporting (US)

Classification​

FieldTypeDescription
categoryobjectVendor category
departmentobjectDepartment
classobjectClassification
locationobjectLocation

Accounting Settings​

FieldTypeDescription
payablesAccountobjectA/P account
expenseAccountobjectDefault expense account

Status & Dates​

FieldTypeDescription
isInactivebooleanInactive flag
dateCreatedstringCreation date (read-only)
lastModifiedDatestringLast modified date (read-only)

Sublists​

FieldTypeDescription
addressBookcollectionVendor addresses
currencyListcollectionAccepted currencies

Example: Create Vendor​

POST /record/v1/vendor
Content-Type: application/json
{
"companyName": "Office Supplies Inc",
"entityId": "VEND-001",
"isPerson": false,
"subsidiary": {
"id": "1"
},
"email": "ap@officesupplies.com",
"phone": "555-0300",
"terms": {
"id": "5"
},
"currency": {
"id": "1"
},
"category": {
"id": "2"
},
"taxIdNum": "12-3456789",
"is1099Eligible": true,
"expenseAccount": {
"id": "456"
}
}

Response​

{
"links": [
{
"rel": "self",
"href": "https://1234567.suitetalk.api.netsuite.com/services/rest/record/v1/vendor/789"
}
],
"id": "789",
"refName": "Office Supplies Inc",
"entityId": "VEND-001",
"companyName": "Office Supplies Inc",
"email": "ap@officesupplies.com",
"balance": 0,
"dateCreated": "2025-12-25T11:00:00Z"
}

Example: Update Vendor​

PATCH /record/v1/vendor/789
Content-Type: application/json
{
"email": "accounts.payable@officesupplies.com",
"phone": "555-0399",
"creditLimit": 25000
}

Query Filters​

Find Vendors by Name​

GET /record/v1/vendor?q=companyName LIKE 'Office%'

Find 1099 Eligible Vendors​

GET /record/v1/vendor?q=is1099Eligible=true

Find Vendors with Balance Due​

GET /record/v1/vendor?q=balance > 0

Important Notes​

Required Fields​

  • OneWorld Accounts: subsidiary is required
  • Company: companyName required if isPerson=false
  • Individual: firstName and lastName required if isPerson=true
  • Entity ID: Required unless autoName=true

1099 Reporting​

For US accounts, mark vendors as is1099Eligible: true to track payments for 1099 tax reporting.


See Also​