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