Tax Liability Payment
The tax liability payment record lets you record payments to tax authorities for a selected nexus and subsidiary in SuiteTax. You can adjust the tax payable account before recording a payment.
For information about working with tax liability payments in the UI, see Tax Liability Payment Transaction in SuiteTax.
For information about field names, field types, HTTP methods, request parameters, and available operations, see The REST API Browser.
Record ID
The record ID for the tax liability payment REST record is taxLiabilityPayment.
Subrecord
This record is not a subrecord and has no subrecords.
Prerequisites
Before you can use this record through REST web services, you must:
-
Enable the SuiteTax and REST Web Services features.
-
Use a role with the Tax Liability Payment permission.
-
Have an active tax registration for the selected subsidiary and nexus that is valid on the transaction date (
tranDate). -
Use eligible accounts and a posting period in which your role can post the payment.
For more information about setup and account requirements, see Tax Liability Payment Transaction in SuiteTax.
Limitations
-
System Notes and generated accounting lines aren't exposed as REST sublists.
-
Internal numbering controls aren't exposed.
-
Form customization isn't supported.
-
You can't change the nexus or subsidiary after creating the record.
Usage Notes
REST web services do not support Legacy Tax features. To work with taxation through REST web services, you must have the SuiteTax feature enabled. For more information about using SuiteTax, see SuiteTax.
-
NetSuite calculates
taxDueandpaymentAmountand sourcestaxAgencyandbalance. Use a GET request to read these fields and omit them from POST and PATCH requests. REST metadata does not mark the calculated fields as read-only. -
The
subsidiaryTaxRegfield is hidden in the UI but is exposed as a string ID through REST web services. If you omit this field, NetSuite sources its value. If you provide an ID, it must identify an applicable tax registration. Incorrect IDs are rejected. -
The
tranDatefield determines tax registration validity. TheasOfDatefield determines the cutoff date for tax liabilities. -
To adjust the tax payable amount, provide an adjustment account (
adjAccount) and a nonzero adjustment amount (adjAmount). The calculated payment amount must be positive.
Code Samples
The following samples show how to create, read, update, and delete a tax liability payment.
Replace {{baseUrl}} with your account's REST web services host, including the https:// scheme. Replace the sample IDs and dates with valid values from your account.
Configure OAuth 1.0 authentication in Postman. The {{authorizationHeader}} placeholder represents the signed Authorization header generated for each request.
This code sample shows how to create a tax liability payment:
POST {{baseUrl}}/services/rest/record/v1/taxLiabilityPayment
Authorization: {{authorizationHeader}}
Content-Type: application/json
Accept: application/json
{
"nexus": {"id": "1"},
"subsidiary": {"id": "1"},
"tranDate": "2026-09-22",
"postingPeriod": {"id": "472"},
"account": {"id": "1"},
"taxAccount": {"id": "106"},
"asOfDate": "2026-09-22",
"adjAccount": {"id": "105"},
"adjAmount": 1,
"memo": "REST example",
"externalId": "tlp-doc-{{$guid}}"
}
A successful request returns HTTP 204 No Content. Save the record ID from the Location response header as {{paymentId}} for the following samples.
This code sample shows how to retrieve the payment, including calculated amounts and sourced tax registration and tax agency values:
GET {{baseUrl}}/services/rest/record/v1/taxLiabilityPayment/{{paymentId}}
Authorization: {{authorizationHeader}}
Accept: application/json
A successful request returns HTTP 200 OK.
This code sample shows how to update the payment memo:
PATCH {{baseUrl}}/services/rest/record/v1/taxLiabilityPayment/{{paymentId}}
Authorization: {{authorizationHeader}}
Content-Type: application/json
Accept: application/json
{"memo": "REST example updated"}
A successful request returns HTTP 204 No Content. Repeat the GET request to verify the updated memo.
This code sample shows how to delete the payment created in the first sample:
DELETE {{baseUrl}}/services/rest/record/v1/taxLiabilityPayment/{{paymentId}}
Authorization: {{authorizationHeader}}
Accept: application/json
A successful request returns HTTP 204 No Content.