Skip to main content

Vendor Payment API

Record payments made to vendors for bills.


Endpoints

MethodEndpointDescription
GET/record/v1/vendorPaymentList vendor payments
GET/record/v1/vendorPayment/{id}Get specific payment
POST/record/v1/vendorPaymentCreate payment
PATCH/record/v1/vendorPayment/{id}Update payment
DELETE/record/v1/vendorPayment/{id}Delete payment

Key Fields

FieldTypeDescriptionRequired
idstringInternal ID-
tranIdstringPayment numberAuto-generated
entityobjectVendorYes
tranDatestringPayment dateYes
accountobjectBank accountYes
subsidiaryobjectSubsidiaryYes (OneWorld)
currencyobjectCurrencyYes
exchangeRatenumberExchange rateAuto-calculated
totalnumberPayment amountYes
memostringPayment memoNo
paymentMethodobjectPayment methodNo
checkNumstringCheck numberNo
toBePrintedbooleanPrint check flagNo
departmentobjectDepartmentNo
classobjectClassNo
locationobjectLocationNo
applycollectionBills to payNo
creditcollectionCredits to applyNo

Example: Create Vendor Payment

POST /record/v1/vendorPayment
Content-Type: application/json

Request Body

{
"entity": {
"id": "789"
},
"tranDate": "2025-12-25",
"account": {
"id": "10"
},
"subsidiary": {
"id": "1"
},
"currency": {
"id": "1"
},
"total": 5000.00,
"paymentMethod": {
"id": "3"
},
"checkNum": "5678",
"memo": "Payment for invoices INV-001 and INV-002",
"department": {
"id": "10"
},
"apply": {
"items": [
{
"doc": { "id": "4001" },
"apply": true,
"amount": 2500.00
},
{
"doc": { "id": "4002" },
"apply": true,
"amount": 2500.00
}
]
}
}

Response

{
"id": "7001",
"tranId": "VP-2025-001",
"entity": {
"id": "789",
"refName": "Acme Suppliers Inc"
},
"tranDate": "2025-12-25",
"account": {
"id": "10",
"refName": "Main Operating Account"
},
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"currency": {
"id": "1",
"refName": "USD"
},
"exchangeRate": 1.0,
"total": 5000.00,
"paymentMethod": {
"id": "3",
"refName": "Check"
},
"checkNum": "5678",
"memo": "Payment for invoices INV-001 and INV-002",
"department": {
"id": "10",
"refName": "Operations"
},
"apply": {
"items": [
{
"doc": { "id": "4001", "refName": "Bill INV-001" },
"apply": true,
"amount": 2500.00,
"due": 2500.00,
"disc": 0.00
},
{
"doc": { "id": "4002", "refName": "Bill INV-002" },
"apply": true,
"amount": 2500.00,
"due": 2500.00,
"disc": 0.00
}
]
},
"links": [
{
"rel": "self",
"href": "https://account.suitetalk.api.netsuite.com/services/rest/record/v1/vendorPayment/7001"
}
]
}

Example: Update Vendor Payment

PATCH /record/v1/vendorPayment/7001
Content-Type: application/json

Request Body

{
"memo": "Payment for invoices INV-001 and INV-002 - Expedited",
"total": 5500.00,
"apply": {
"items": [
{
"doc": { "id": "4001" },
"apply": true,
"amount": 2500.00
},
{
"doc": { "id": "4002" },
"apply": true,
"amount": 2500.00
},
{
"doc": { "id": "4003" },
"apply": true,
"amount": 500.00
}
]
}
}

Apply Sublists

Apply Sublist Fields (Bills)

FieldTypeDescriptionRequired
docobjectBill to payYes
applybooleanApply payment flagYes
amountnumberPayment amountYes
duenumberAmount due (read-only)-
discnumberDiscount amountNo
discDatestringDiscount date (read-only)-
discAmtnumberAvailable discount (read-only)-

Credit Sublist Fields

FieldTypeDescriptionRequired
docobjectVendor credit to applyYes
applybooleanApply credit flagYes
amountnumberCredit amount to applyYes
totalnumberCredit total (read-only)-

Example: Apply Vendor Credits

POST /record/v1/vendorPayment
Content-Type: application/json

Request Body

{
"entity": {
"id": "789"
},
"tranDate": "2025-12-25",
"account": {
"id": "10"
},
"subsidiary": {
"id": "1"
},
"currency": {
"id": "1"
},
"total": 2500.00,
"paymentMethod": {
"id": "3"
},
"checkNum": "5679",
"credit": {
"items": [
{
"doc": { "id": "6001" },
"apply": true,
"amount": 250.00
}
]
},
"apply": {
"items": [
{
"doc": { "id": "4004" },
"apply": true,
"amount": 2750.00
}
]
}
}

Example: Take Early Payment Discount

POST /record/v1/vendorPayment
Content-Type: application/json

Request Body

{
"entity": {
"id": "789"
},
"tranDate": "2025-12-25",
"account": {
"id": "10"
},
"subsidiary": {
"id": "1"
},
"currency": {
"id": "1"
},
"total": 2450.00,
"paymentMethod": {
"id": "3"
},
"apply": {
"items": [
{
"doc": { "id": "4005" },
"apply": true,
"amount": 2450.00,
"disc": 50.00
}
]
}
}

Query Filters

Find by Vendor

GET /record/v1/vendorPayment?q=entity='789'

Find by Date Range

GET /record/v1/vendorPayment?q=tranDate BETWEEN '2025-01-01' AND '2025-12-31'

Find by Check Number

GET /record/v1/vendorPayment?q=checkNum='5678'

Find Payments Over Amount

GET /record/v1/vendorPayment?q=total > 10000

Find by Payment Method

GET /record/v1/vendorPayment?q=paymentMethod='3'

Find by Bank Account

GET /record/v1/vendorPayment?q=account='10'

Payment Methods

Common payment method types:

MethodDescription
CheckPhysical or printed checks
CashCash payments
Credit CardCredit card payments
ACHElectronic bank transfers
Wire TransferWire transfers
OtherCustom payment methods

Important Notes

  • Vendor payments reduce the cash/bank account and accounts payable
  • The total field must equal the sum of applied amounts plus credits
  • Payments can apply to multiple bills from the same vendor
  • Credits are applied before cash/check amounts
  • Early payment discounts are automatically calculated based on payment terms
  • Multi-currency payments use the exchange rate from the payment date
  • Payments cannot be applied to bills in different currencies
  • The toBePrinted flag is used for check printing workflows
  • Check numbers are required when payment method is "Check"
  • Partial payments are supported by specifying less than the full bill amount
  • Once a payment is applied, bills are marked as paid or partially paid
  • Voiding a payment reverses all applications and restores bill balances
  • Payment date must be within an open accounting period
  • Department, class, and location are optional and used for reporting

See Also