Check API
Create, read, update, and delete checks for vendor payments or general expenses using the NetSuite REST API.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /record/v1/check | List all checks |
GET | /record/v1/check/{id} | Get specific check |
POST | /record/v1/check | Create new check |
PATCH | /record/v1/check/{id} | Update check |
DELETE | /record/v1/check/{id} | Delete check |
Key Fields
Header Fields
| Field | Type | Description | Required |
|---|---|---|---|
id | string | Internal ID (read-only) | - |
tranId | string | Check number | Auto-generated |
entity | object | Vendor/Employee | Yes |
account | object | Bank account | Yes |
tranDate | string | Transaction date (ISO 8601) | Yes |
postingPeriod | object | Accounting period | Auto-calculated |
subsidiary | object | Subsidiary | Yes (OneWorld) |
currency | object | Transaction currency | Yes |
exchangeRate | number | Exchange rate | Auto-calculated |
memo | string | Memo/description | No |
address | string | Payee address | Auto from entity |
toBePrinted | boolean | Mark to be printed | No |
tranStatus | object | Transaction status | Read-only |
Financial Fields
| Field | Type | Description | Required |
|---|---|---|---|
total | number | Total check amount (read-only) | - |
usTotal | number | Total in base currency | Read-only |
Classification Fields
| Field | Type | Description | Required |
|---|---|---|---|
department | object | Default department | No |
class | object | Default classification | No |
location | object | Default location | No |
Sublists
| Field | Type | Description | Required |
|---|---|---|---|
expense | collection | Expense lines | Conditional |
apply | collection | Bill payment applications | Conditional |
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:
| Field | Type | Description | Required |
|---|---|---|---|
account | object | Expense account | Yes |
amount | number | Expense amount | Yes |
memo | string | Line memo | No |
department | object | Department | No |
class | object | Classification | No |
location | object | Location | No |
customer | object | Customer (for billable expenses) | No |
isBillable | boolean | Mark as billable | No |
taxCode | object | Tax code | No |
Bill Payment (Apply) Line Fields
Each item in the apply.items array supports:
| Field | Type | Description | Required |
|---|---|---|---|
doc | object | Vendor bill reference | Yes |
apply | boolean | Apply payment to this bill | Yes |
amount | number | Payment amount | Yes |
disc | number | Discount amount | No |
discDate | string | Discount date | No |
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
accountfield) - Debit: Expense accounts (per line in
expensesublist)
Bill Payment Check:
- Credit: Bank Account (specified in
accountfield) - 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
tranIdfield - Sequential numbering is recommended for audit purposes
- Voided checks maintain their number but are marked as void
Printing Checks
- Set
toBePrinted: trueto 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
applysublist - Credits reduce the amount of the check
- Negative amounts in
applyrepresent 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
- Create check - Use POST to create new check record
- Review check - Verify amounts and details
- Print check (if
toBePrinted: true) - Use NetSuite print checks feature - Mail/deliver check - Send to payee
- Bank reconciliation - Match cleared checks to bank statement
Bill Payment Process
- Vendor bills created - Bills entered in system
- Select bills to pay - Identify which bills to pay
- Create payment check - Apply payment to selected bills
- Print and mail - Complete payment process
- Bills marked paid - Status updated automatically
See Also
- Vendor Bill - Record vendor bills
- Vendor Payment - Alternative payment method
- Expense Report - Employee expense reports
- Vendor - Manage vendors
- Account - Chart of accounts