Skip to main content

Check API

Create, read, update, and delete checks for vendor payments or general expenses using the NetSuite REST API.


Endpoints

MethodEndpointDescription
GET/record/v1/checkList all checks
GET/record/v1/check/{id}Get specific check
POST/record/v1/checkCreate new check
PATCH/record/v1/check/{id}Update check
DELETE/record/v1/check/{id}Delete check

Key Fields

Header Fields

FieldTypeDescriptionRequired
idstringInternal ID (read-only)-
tranIdstringCheck numberAuto-generated
entityobjectVendor/EmployeeYes
accountobjectBank accountYes
tranDatestringTransaction date (ISO 8601)Yes
postingPeriodobjectAccounting periodAuto-calculated
subsidiaryobjectSubsidiaryYes (OneWorld)
currencyobjectTransaction currencyYes
exchangeRatenumberExchange rateAuto-calculated
memostringMemo/descriptionNo
addressstringPayee addressAuto from entity
toBePrintedbooleanMark to be printedNo
tranStatusobjectTransaction statusRead-only

Financial Fields

FieldTypeDescriptionRequired
totalnumberTotal check amount (read-only)-
usTotalnumberTotal in base currencyRead-only

Classification Fields

FieldTypeDescriptionRequired
departmentobjectDefault departmentNo
classobjectDefault classificationNo
locationobjectDefault locationNo

Sublists

FieldTypeDescriptionRequired
expensecollectionExpense linesConditional
applycollectionBill payment applicationsConditional
Expense or Apply

You must provide either expense lines (for expense checks) OR apply lines (for bill payments), not both in the same check.


Example: Create Expense Check

POST /record/v1/check
Content-Type: application/json
{
"entity": {
"id": "789"
},
"account": {
"id": "10"
},
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"currency": {
"id": "1"
},
"memo": "Office supplies and equipment",
"toBePrinted": true,
"expense": {
"items": [
{
"account": {
"id": "620"
},
"amount": 500.00,
"memo": "Office supplies",
"department": {
"id": "5"
},
"class": {
"id": "3"
}
},
{
"account": {
"id": "650"
},
"amount": 1200.00,
"memo": "Computer equipment"
}
]
}
}

Response

{
"links": [
{
"rel": "self",
"href": "https://1234567.suitetalk.api.netsuite.com/services/rest/record/v1/check/7001"
}
],
"id": "7001",
"refName": "Check #7001",
"tranId": "7001",
"entity": {
"id": "789",
"refName": "Office Supply Co."
},
"account": {
"id": "10",
"refName": "Operating Account"
},
"tranDate": "2025-12-25",
"postingPeriod": {
"id": "12",
"refName": "Dec 2025"
},
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"currency": {
"id": "1",
"refName": "USA"
},
"total": 1700.00,
"toBePrinted": true,
"memo": "Office supplies and equipment",
"tranStatus": {
"id": "PENDING",
"refName": "Pending"
}
}

Example: Create Bill Payment Check

POST /record/v1/check
Content-Type: application/json
{
"entity": {
"id": "789"
},
"account": {
"id": "10"
},
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"currency": {
"id": "1"
},
"memo": "Payment for outstanding bills",
"apply": {
"items": [
{
"doc": {
"id": "5001"
},
"apply": true,
"amount": 2500.00
},
{
"doc": {
"id": "5002"
},
"apply": true,
"amount": 1500.00
}
]
}
}

Response

{
"links": [
{
"rel": "self",
"href": "https://1234567.suitetalk.api.netsuite.com/services/rest/record/v1/check/7002"
}
],
"id": "7002",
"refName": "Check #7002",
"tranId": "7002",
"entity": {
"id": "789",
"refName": "Office Supply Co."
},
"account": {
"id": "10",
"refName": "Operating Account"
},
"tranDate": "2025-12-25",
"total": 4000.00,
"memo": "Payment for outstanding bills"
}

Example: Update Check

PATCH /record/v1/check/7001
Content-Type: application/json
{
"memo": "Updated: Office supplies and equipment - December 2025",
"toBePrinted": false
}

Expense Line Fields

Each item in the expense.items array supports:

FieldTypeDescriptionRequired
accountobjectExpense accountYes
amountnumberExpense amountYes
memostringLine memoNo
departmentobjectDepartmentNo
classobjectClassificationNo
locationobjectLocationNo
customerobjectCustomer (for billable expenses)No
isBillablebooleanMark as billableNo
taxCodeobjectTax codeNo

Bill Payment (Apply) Line Fields

Each item in the apply.items array supports:

FieldTypeDescriptionRequired
docobjectVendor bill referenceYes
applybooleanApply payment to this billYes
amountnumberPayment amountYes
discnumberDiscount amountNo
discDatestringDiscount dateNo
Bill Payment

When creating a bill payment check, NetSuite automatically populates available bills for the selected vendor. You specify which bills to pay and the amounts.


Query Filters

Find by Date Range

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

Find by Vendor

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

Find by Bank Account

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

Find Checks To Be Printed

GET /record/v1/check?q=toBePrinted=true

Find by Amount Range

GET /record/v1/check?q=total > 1000 AND total < 10000

Find by Check Number

GET /record/v1/check?q=tranId='7001'

Find by Subsidiary

GET /record/v1/check?q=subsidiary='1'

Important Notes

Accounting Impact

Expense Check:

  • Credit: Bank Account (specified in account field)
  • Debit: Expense accounts (per line in expense sublist)

Bill Payment Check:

  • Credit: Bank Account (specified in account field)
  • Debit: Accounts Payable (automatically handled)
  • Updates vendor bill status to partially paid or paid in full

Check Numbering

  • Check numbers are typically auto-generated from the bank account's next check number
  • Can be manually specified via tranId field
  • Sequential numbering is recommended for audit purposes
  • Voided checks maintain their number but are marked as void

Printing Checks

  • Set toBePrinted: true to add to print queue
  • Use NetSuite's check printing feature to print checks in batch
  • Check layout is defined in the bank account setup
  • Supports various check formats (standard, top, middle, bottom stub)

Bank Reconciliation

  • Checks appear in bank reconciliation as uncleared until marked cleared
  • Check date (tranDate) determines which period the expense is recorded
  • Actual clearing date may differ from check date

Voiding Checks

  • Voided checks reverse the original accounting entries
  • Cannot delete checks that have been reconciled
  • Voiding maintains audit trail and check number sequence
  • Use DELETE method or void through UI

Multi-Currency

  • Check must be in the currency of the bank account
  • Foreign currency checks use exchange rate at transaction date
  • Realized gains/losses recorded when checks clear

Vendor Credits

  • Vendor credits can be applied in the apply sublist
  • Credits reduce the amount of the check
  • Negative amounts in apply represent credits

Common Use Cases

1. Utility Payment (Expense Check)

Pay utility bill without vendor bill:

{
"entity": {"id": "850"},
"account": {"id": "10"},
"tranDate": "2025-12-25",
"subsidiary": {"id": "1"},
"memo": "December electricity bill",
"expense": {
"items": [
{
"account": {"id": "630"},
"amount": 1250.00,
"memo": "Electric bill - December 2025"
}
]
}
}

2. Rent Payment

Pay monthly rent:

{
"entity": {"id": "920"},
"account": {"id": "10"},
"tranDate": "2025-12-01",
"subsidiary": {"id": "1"},
"memo": "December rent payment",
"toBePrinted": true,
"expense": {
"items": [
{
"account": {"id": "620"},
"amount": 5000.00,
"memo": "Rent - December 2025",
"location": {"id": "1"}
}
]
}
}

3. Pay Multiple Vendor Bills

Pay several bills from one vendor:

{
"entity": {"id": "789"},
"account": {"id": "10"},
"tranDate": "2025-12-25",
"subsidiary": {"id": "1"},
"memo": "Payment for bills #1001, #1002, #1003",
"apply": {
"items": [
{
"doc": {"id": "1001"},
"apply": true,
"amount": 1500.00
},
{
"doc": {"id": "1002"},
"apply": true,
"amount": 2500.00
},
{
"doc": {"id": "1003"},
"apply": true,
"amount": 1000.00
}
]
}
}

4. Partial Bill Payment

Pay part of a bill:

{
"entity": {"id": "789"},
"account": {"id": "10"},
"tranDate": "2025-12-25",
"subsidiary": {"id": "1"},
"memo": "Partial payment for bill #5001",
"apply": {
"items": [
{
"doc": {"id": "5001"},
"apply": true,
"amount": 1000.00
}
]
}
}

5. Reimbursement Check (Employee Expense)

Reimburse employee for expenses:

{
"entity": {"id": "250"},
"account": {"id": "10"},
"tranDate": "2025-12-25",
"subsidiary": {"id": "1"},
"memo": "Reimbursement - Travel expenses",
"expense": {
"items": [
{
"account": {"id": "640"},
"amount": 450.00,
"memo": "Airfare reimbursement"
},
{
"account": {"id": "641"},
"amount": 320.00,
"memo": "Hotel reimbursement"
},
{
"account": {"id": "642"},
"amount": 85.00,
"memo": "Meals reimbursement"
}
]
}
}

6. Billable Expense Check

Pay expense that will be billed to customer:

{
"entity": {"id": "789"},
"account": {"id": "10"},
"tranDate": "2025-12-25",
"subsidiary": {"id": "1"},
"memo": "Materials for customer project",
"expense": {
"items": [
{
"account": {"id": "650"},
"amount": 2500.00,
"memo": "Project materials - Customer ABC",
"customer": {"id": "456"},
"isBillable": true
}
]
}
}

Check Workflow

Standard Check Process

  1. Create check - Use POST to create new check record
  2. Review check - Verify amounts and details
  3. Print check (if toBePrinted: true) - Use NetSuite print checks feature
  4. Mail/deliver check - Send to payee
  5. Bank reconciliation - Match cleared checks to bank statement

Bill Payment Process

  1. Vendor bills created - Bills entered in system
  2. Select bills to pay - Identify which bills to pay
  3. Create payment check - Apply payment to selected bills
  4. Print and mail - Complete payment process
  5. Bills marked paid - Status updated automatically

See Also