Handle taxes in NetSuite

This topic describes how Tungsten AP Essentials handles taxes for organizations that use NetSuite OneWorld and NetSuite Standard.

To handle taxes, you must:

  1. Define four custom fields that use these type names:
    • TaxCode - Specifies valid tax codes for the invoice (header field). This field requires corresponding master data, so you must select Use master data to suggest field values and Use master data to validate the field value in the Field view. To help you choose the correct tax code during verification, tax rates are displayed with corresponding tax codes when you change the field value. You can also see that the tax rates are automatically appended to the Name field in the TaxCode master-data view in the Admin Center.

      If you do not define the TaxCode field in Tungsten AP Essentials, tax-code master data is not retrieved from NetSuite by default. However, you can select Use tax code from supplier to get the tax code from the supplier data in NetSuite, if the tax code field is undefined or left blank during verification.

      You must have a tax code field in the enter bill form in NetSuite. If a tax code field is not defined on the bill form in NetSuite, tax-code master data is not retrieved from NetSuite.

      If you do not specify the tax code when verifying invoices, and you have a default tax code specified in NetSuite, invoices can be rejected with an error stating that the "transaction does not balance." To avoid this issue with NetSuite, make sure you specify the tax code when verifying invoices.

    • InvoiceTotalVATRatePercent - Specifies valid tax rates (percentages) for the invoice.
    • LI_TaxCode - Specifies valid tax codes for line items. This field requires corresponding master data, so you must select Use master data to suggest field values and Use master data to validate the field value in the Document field dialog.
    • LI_TaxRate - Specifies valid tax rates (percentages) for line items.

      Type names are case sensitive. You must define the names exactly as below.

  2. Upload master data that specifies valid tax codes for the TaxCode and LI_TaxCode fields.

How tax handling is performed

The invoice type determines how tax handling is performed and where the tax information is created in NetSuite. You can use the tables below to determine how tax codes are handled on a case-by-case basis.

Purchase-order invoices with line items

Invoices are created in NetSuite by using line items captured on the invoice and line items in the purchase-order list in NetSuite. Line items from the NetSuite purchase order always have the tax code applied because it is required by NetSuite during PO creation.

PO item has tax code Line items exist Line items have tax code Header has tax code VatRate has unique TaxCode Invoice is created in NetSuite using
Yes Yes Yes No No Tax Code from PO item is used
Yes Yes No Yes No Tax Code from PO item is used

General-expense invoices

Invoices are created in NetSuite by using line items captured on the invoice. The integration creates one expense row in the NetSuite invoice for each line item that is captured in Tungsten AP Essentials. The Default expense account setting determines the account number for each expense row that is created. The line-item row amount is used for the expense amount row in NetSuite.

PO item has tax code Line items exist Line items have tax code Header has tax code VatRate has unique TaxCode Invoice is created in NetSuite using
No No n/a Yes n/a Header Tax Code is used
No No n/a No Yes Tax Code from rate is used
No No n/a No No Default TaxCode1 is used
No Yes Yes n/a n/a Line Item Tax Code is used
No Yes No Yes n/a Header Tax Code is used
No Yes No No Yes Tax Code from rate is used
No Yes No No No Default TaxCode1 is used
Yes Yes Yes No No Tax Code from PO item is used
Yes Yes No Yes No Tax Code from PO item is used

1 Currently there is no way to implement this scenario via the NetSuite API, so a document with these properties will be rejected by NetSuite and returned to Tungsten AP Essentials for verification.

General-expense invoices with line items

Invoices are created in NetSuite by using line items captured on the invoice. The integration creates one item row in the NetSuite invoice for each line item that is captured in Tungsten AP Essentials. The GE Dummy item code setting determines the item name for each item row that is created. The line-item row amount is used for the item amount row in NetSuite.

Line items exist Line items have tax code Header has tax code VatRate has unique TaxCode Invoice is created in NetSuite using
No n/a Yes n/a Header Tax Code is used
No n/a No Yes Tax Code from rate is used
No n/a No No Default TaxCode1 is used
Yes Yes n/a n/a Line Item Tax Code is used
Yes No Yes n/a Header Tax Code is used
Yes No No Yes Tax Code from rate is used
Yes No No No Default TaxCode1 is used

1 Currently there is no way to implement this scenario via the NetSuite API, so a document with these properties will be rejected by NetSuite and returned to Tungsten AP Essentials for verification.

Tax discrepancies

Previously, the integration relied on NetSuite to calculate tax amounts using tax rates, instead of using the captured tax amounts on the invoice. If the supplier used a different rounding method to calculate the tax, NetSuite's calculated amount could differ from the captured the tax amount. This discrepancy could prevent invoices from being processed in NetSuite. To overcome this issue, Tungsten AP Essentials now instructs NetSuite to recognize the tax amount values, rather than calculating amounts using tax rates.

To utilize this feature, simply make sure your document type includes the invoicetotalvatamount and LIT_VatAmount fields. When these fields are present, the integration maps them to tax1amt in NetSuite.