Tax Control Account

A tax control account is an account to which the amounts computed for indirect taxes, such as sales tax and VAT, are posted.

In the UI, you can create a tax control account, and view existing ones, at Setup > Accounting > Tax Control Accounts. Note also that a tax control account is essentially an account record, with a few differences. Because they are accounts, tax control accounts also show up in the full list of accounts at Lists > Accounting > Accounts.

For help working with this record in the UI, see Tax Control Accounts Overview.

The internal ID for this record is taxacct.

See the SuiteScript Records Browser for all internal IDs associated with this record.

Note:

For information about using the SuiteScript Records Browser, see Working with the SuiteScript Records Browser in the NetSuite Help Center.

For information about scripting with this record in SuiteScript, see the following help topics:

Supported Script Types

The tax control account record is scriptable in both client and server SuiteScript. However, user event scripts are not supported.

Supported Functions

The tax control account record is partially scriptable. Only creating, copying, and some updates are permitted.

Updating

Updating is permitted, but only of certain fields: Description, External ID, IsInactive, and Name. However, you may be able to change other fields when interacting with the tax control account as an account. For details, see Account.

Alternatives to Deleting

record.delete(options) is not supported, because a tax control account cannot be deleted (either through the UI or through SuiteScript). If the Advanced Taxes feature is enabled, you can effectively remove the tax control account by deleting the nexus that the account is associated with. If the Advanced Taxes feature is not enabled, you cannot remove the account.

An alternative to deleting the account is to make it account inactive, by setting the IsInactive field to true.

For more details on accounts that cannot be deleted in NetSuite, refer to the help topic Deleting Accounts and Making Accounts Inactive.

Field Definitions

This section describes some of the key fields on the tax control account.

Country

The value for country is derived from the nexus value and is read-only. If your account does not have the Advanced Taxes feature enabled, the value for country will always be the same for all your tax control accounts.

Description

The description of the record can include only up to 50 characters. Otherwise, the operation fails with an error reading “The field description contained more than the maximum number ( 50 ) of characters allowed.”

Description is one of the few fields that can be modified during an update.

External ID

ExternalID is one of the few fields that can be modified during an update.

IsInactive

Because a tax control account cannot be deleted, you might want to make it inactive.

IsInactive is one of the few fields that can be modified during an update.

Name

The name of the record must be unique. If you try to add a tax control account using a non-unique value for the name field, the system returns an error reading “This record already exists,” even if you included a unique external ID.

Name is one of the few fields that can be modified during an update.

Nexus

You can set a value for nexus only if the Advanced Taxes feature is enabled. If your NetSuite account does not use the Advanced Taxes feature, the value for nexus is set automatically and will always be the same for all your tax control accounts.

When Advanced Taxes is enabled, initialization of a nexus value is required. (For an example, refer to Code Samples.) However, after the account is created, the value for nexus cannot be changed.

Note that Advanced Taxes is enabled in all OneWorld accounts and cannot be turned off.

Tax Account Type

All tax control accounts have a tax account type, but you only actively choose a tax account type for accounts in certain countries. For example:

In countries where both “sales” and “purchase” are valid choices, the tax account type field is required. After an account has been created, the tax account type cannot be changed.

In countries where only one choice is allowed, tax account type is automatically set, and you cannot change it through SuiteScript (or through the UI).

Note that if your account uses Advanced Taxes and has nexuses in many countries, you may need to set this field for some tax control accounts and not others.

For More Information

See the SuiteScript Records Browser for all internal IDs associated with this record.

Usage Notes

This section includes additional details on interacting with the tax control account record.

Finding the Internal ID

If you need the internal ID for an existing tax control account, note that you cannot find it through Setup > Accounting > Tax Control Accounts. However, you can find it at Lists > Accounting > Accounts. Make sure you have configured your NetSuite preference to “Show Internal IDs.” (You can find this choice at Home > Set Preferences.)

When sorting accounts at Lists > Accounting > Accounts, be aware that:

Be aware that you can also add and update values for the external ID field.

Relationship to the Account Record

You can interact with the tax control account in many of the same ways you can interact with any account. However, some exceptions exist. For example, a tax control account cannot be deleted, and there are limits to what you can update, as described in Updating. However, when you interact with the record as an account, you may be able to update additional fields.

For details on interacting with the account record, see Account.

Code Samples

The following samples show how you can script with tax control account records.

Get

The following sample shows how to retrieve a tax account record with the internal ID of '186':

          var taxAcct = record.load({
    type: record.Type.TAX_ACCT,
    id: '186'
}); 

        

Add

The following sample shows how to create a tax control account when the Advanced Taxes feature is enabled. In this scenario, a value for nexus is required:

          var taxAcct = record.create({
    type: record.Type.TAX_ACCT,
    defaultValues: {
        'nexus': 'internal ID of nexus'
    }
});
taxAcct.setValue({
    fieldId: 'name',
    value: 'Name of account'
});
taxAcct.setValue({
    fieldId: 'description',
    value: 'Description of account'
});
taxAcct.setValue({
    fieldId: 'externalid',
    value: 'Your external ID value'
});
taxAcct.setValue({
    fieldId: 'taxaccttype',
    value: 'Type'
});
var recId = taxAcct.save(); 

        

Update

The following sample shows how to update the name, description, and external ID of a tax control account, and to make it active. Note that these fields are the only ones that can be updated.

          var taxAcct = record.load({
    type: record.Type.TAX_ACCT,
    id: 'internal ID of tax control account'
});
taxAcct.setValue({
    fieldId: 'name',
    value: 'Updated name'
});
taxAcct.setValue({
    fieldId: 'description',
    value: 'Updated description'
});
taxAcct.setValue({
    fieldId: 'isinactive',
    value: valse
});
taxAcct.setValue({
    fieldId: 'externalid',
    value: 'Updated external ID of tax control account'
});
var recId = taxAcct.save(); 

        

Related Topics

Tax Control Accounts Overview
Working with the SuiteScript Records Browser
SuiteCloud Supported Records
Lists

General Notices