# AvaTax API

REST interface to Avalara's enterprise tax service, AvaTax.

Source: https://developer.avalara.com/products/crossborder/api/

**Version:** v2
**Base URL:** https://sandbox-rest.avatax.com/

---

## Endpoints

### Accounts

#### Retrieve all accounts

`GET /api/v2/accounts`

List all account objects that can be seen by the current user.
            
This API lists all accounts you are allowed to see.  In general, most users will only be able to see their own account.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Subscriptions
* Users
            
For more information about filtering in REST, please see the documentation at http://developer.avalara.com/avatax/filtering-in-rest/ .

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$include` | string | query | No | A comma separated list of objects to fetch underneath this account.  Any object with a URL path underneath this account can be fetched by specifying its name. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* subscriptions, users |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single account

`GET /api/v2/accounts/{id}`

Get the account object identified by this URL.
You may use the '$include' parameter to fetch additional nested data:
            
* Subscriptions
* Users

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account to retrieve |
| `$include` | string | query | No | A comma separated list of special fetch options |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Activate an account by accepting terms and conditions

`POST /api/v2/accounts/{id}/activate`

Activate the account specified by the unique accountId number.
            
This activation request can only be called by account administrators.  You must indicate
that you have read and accepted Avalara's terms and conditions to call this API.
            
Once you have activated your account, use the `AccountResetLicenseKey` API to generate
a license key for your account.
            
If you have not read or accepted the terms and conditions, this API call will return the
unchanged account model.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account to activate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The activation request |

#### Retrieve audit history for an account.

`GET /api/v2/accounts/{id}/audit`

Retrieve audit trace history for an account.
            
Your audit trace history contains a record of all API calls made against the AvaTax REST API that returned an error.   You can use this API to investigate
problems and see exactly what information was sent back and forth between your code and AvaTax.
            
When specifying a start and end datetime, please include a valid timezone indicator, such as the "Z" present in the examples for the start and end query parameters.
You can learn more about valid time zone designators at https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators.
            
This API enforces limits to the amount of data retrieved. These limits are subject to change.
            
* You may request data from a maximum of a one-hour time period.
* The amount of data and number of API calls returned by this API are limited and may be adjusted at any time.
* Old records may be migrated out of immediately available storage.  To request older data, please contact your account manager.
* New records must migrate to available storage before they can be retrieved.  You may need to wait a period of time before newly created records can be fetched.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account you wish to audit. |
| `start` | string | query | No | The start datetime of audit history you with to retrieve, e.g. "2018-06-08T17:00:00Z". Defaults to the past 15 minutes. |
| `end` | string | query | No | The end datetime of audit history you with to retrieve, e.g. "2018-06-08T17:15:00Z. Defaults to the current time. Maximum of an hour after the start time. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Get configuration settings for this account

`GET /api/v2/accounts/{id}/configuration`

Retrieve a list of all configuration settings tied to this account.
            
Configuration settings provide you with the ability to control features of your account and of your
tax software.  The category names `TaxServiceConfig` and `AddressServiceConfig` are reserved for
Avalara internal software configuration values; to store your own account-level settings, please
create a new category name that begins with `X-`, for example, `X-MyCustomCategory`.
            
Account settings are permanent settings that cannot be deleted.  You can set the value of an
account setting to null if desired.
            
Avalara-based account settings for `TaxServiceConfig` and `AddressServiceConfig` affect your account's
tax calculation and address resolution, and should only be changed with care.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Change configuration settings for this account

`POST /api/v2/accounts/{id}/configuration`

Update configuration settings tied to this account.
            
Configuration settings provide you with the ability to control features of your account and of your
tax software.  The category names `TaxServiceConfig` and `AddressServiceConfig` are reserved for
Avalara internal software configuration values; to store your own account-level settings, please
create a new category name that begins with `X-`, for example, `X-MyCustomCategory`.
            
Account settings are permanent settings that cannot be deleted.  You can set the value of an
account setting to null if desired.
            
Avalara-based account settings for `TaxServiceConfig` and `AddressServiceConfig` affect your account's
tax calculation and address resolution, and should only be changed with care.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes |  |

#### Create license key for this account

`POST /api/v2/accounts/{id}/licensekey`

Creates a new license key for this account.
            
To create a license key for your account, you must specify the ID of the account and license key name.
            
This API is only available to account administrators for the account in question, and may only be called after
an account has been activated by reading and accepting Avalara's terms and conditions.  To activate your account
please log onto the AvaTax website or call the `ActivateAccount` API.
            
You will reference this key using license key name. The existing license key will be using 'Default' as license key name.
Hence make sure that the license key name is unique per account considering the existing license key name 'Default'

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account you wish to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes |  |

#### Retrieve license key by license key name

`GET /api/v2/accounts/{id}/licensekey/{licensekeyname}`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account to retrieve |
| `licensekeyname` | string | path | Yes | The license key name to be retrieved |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Delete license key for this account by license key name

`DELETE /api/v2/accounts/{id}/licensekey/{licensekeyname}`

Deletes the license key for this account using license key name.
            
To delete a license key for your account, you must specify the accountID of the account and license key name.
            
This API is only available to account administrators for the account in question.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account you wish to update. |
| `licensekeyname` | string | path | Yes | The license key name you wish to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all license keys for this account

`GET /api/v2/accounts/{id}/licensekeys`

Gets list of all the license keys used by the account.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account to retrieve |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Reset this account's license key

`POST /api/v2/accounts/{id}/resetlicensekey`

Resets the existing license key for this account to a new key.
            
To reset your account, you must specify the ID of the account you wish to reset and confirm the action.
            
This API is only available to account administrators for the account in question, and may only be called after
an account has been activated by reading and accepting Avalara's terms and conditions.  To activate your account
please log onto the AvaTax website or call the `ActivateAccount` API.
            
You can only reset license with 'Default' license key name.
Resetting a license key cannot be undone.  Any previous license keys will immediately cease to work when a new key is created.
            
When you call this API, all account administrators for this account will receive an email with the newly updated license key.
The email will specify which user reset the license key and it will contain the new key to use to update your connectors.
Note: The reset license key functionality will only be available for existing active license key i.e. when you reset license key for the account, the Default license key will be reset.The reset license key functionality is not available for newly created license keys i.e. license keys other than Default

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account you wish to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | A request confirming that you wish to reset the license key of this account. |

#### Retrieve a list of MRS Accounts

`GET /api/v2/accounts/mrs`

This API is available by invitation only.
            
Get a list of accounts with an active MRS service.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Registrar

#### Create a new account

`POST /api/v2/accounts`

# For Registrar Use Only
This API is for use by Avalara Registrar administrative users only.
            
Create a single new account object.
When creating an account object you may attach subscriptions and users as part of the 'Create' call.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The account you wish to create. |

#### Update a single account

`PUT /api/v2/accounts/{id}`

# For Registrar Use Only
This API is for use by Avalara Registrar administrative users only.
            
Replace an existing account object with an updated account object.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account you wish to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The account object you wish to update. |

#### Delete a single account

`DELETE /api/v2/accounts/{id}`

# For Registrar Use Only
This API is for use by Avalara Registrar administrative users only.
            
Delete an account.
Deleting an account will delete all companies, all account level users and license keys attached to this account.

### Security Policies

* This API requires the user role SystemAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the account you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create new notifications.

`POST /api/v2/notifications`

This API is available by invitation only.
            
Create a single notification.
            
A notification is a message from Avalara that may have relevance to your business.  You may want
to regularly review notifications and then dismiss them when you are certain that you have addressed
any relevant concerns raised by this notification.
            
A Global notification is a message which is directed to all the accounts and is set to expire within
a certain time and cannot be dismissed by the user. Make accountId and companyId null to create a global notification.
            
An example of a notification would be a message about new software, or a change to AvaTax that may
affect you, or a potential issue with your company's tax profile.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API is available by invitation only.  To request access to this feature, please speak to a business development manager and request access to [NotificationsAPI:Create].

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The notifications you wish to create. |

#### Update a single notification.

`PUT /api/v2/notifications/{id}`

This API is available by invitation only.
            
Replaces the notification identified by this URL with a new notification.
            
A notification is a message from Avalara that may have relevance to your business.  You may want
to regularly review notifications and then dismiss them when you are certain that you have addressed
any relevant concerns raised by this notification.
            
An example of a notification would be a message about new software, or a change to AvaTax that may
affect you, or a potential issue with your company's tax profile.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API is available by invitation only.  To request access to this feature, please speak to a business development manager and request access to [NotificationsAPI:Create].

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The id of the notification you wish to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The notification object you wish to update. |

#### Delete a single notification.

`DELETE /api/v2/notifications/{id}`

This API is available by invitation only.
            
Delete the existing notification identified by this URL.
            
A notification is a message from Avalara that may have relevance to your business.  You may want
to regularly review notifications and then dismiss them when you are certain that you have addressed
any relevant concerns raised by this notification.
            
An example of a notification would be a message about new software, or a change to AvaTax that may
affect you, or a potential issue with your company's tax profile.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API is available by invitation only.  To request access to this feature, please speak to a business development manager and request access to [NotificationsAPI:Create].

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The id of the notification you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Reset a user's password programmatically

`POST /api/v2/passwords/{userId}/reset`

# For Registrar Use Only
This API is for use by Avalara Registrar administrative users only.
            
Allows a system admin to reset the password for a specific user via the API.
This API is only available for Avalara Registrar Admins, and can be used to reset the password of any
user based on internal Avalara business processes.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, AvaTaxOnlyUserAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPTester, FirmAdmin, FirmUser, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API is available to Avalara system-level (registrar-level) users only.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `userId` | integer | path | Yes | The unique ID of the user whose password will be changed |
| `isUndoMigrateRequest` | boolean | query | No | If user's password was migrated to AI, undo this. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The new password for this user |

#### Retrieve the full list of Avalara-supported subscription (ServiceTypes)

`GET /api/v2/servicetypes/servicetypes`

For Registrar Use Only
This API is for use by Avalara Registrar administrative users only.
            
Returns the full list of Avalara-supported subscription types.
This API is intended to be useful for identifying which features you have added to your account.
You may always contact Avalara's sales department for information on available products or services.
You cannot change your subscriptions/service directly through the API.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* system, taxTypeGroupIdSK |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new subscription

`POST /api/v2/accounts/{accountId}/subscriptions`

This API is for use by Avalara Registrar administrative users only.
            
Create one or more new subscription objects attached to this account.
A 'subscription' indicates a licensed subscription to a named Avalara service.
To request or remove subscriptions, please contact Avalara sales or your customer account manager.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that owns this subscription. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The subscription you wish to create. |

#### Update a single subscription

`PUT /api/v2/accounts/{accountId}/subscriptions/{id}`

# For Registrar Use Only
This API is for use by Avalara Registrar administrative users only.
            
Replace the existing subscription object at this URL with an updated object.
A 'subscription' indicates a licensed subscription to a named Avalara service.
To request or remove subscriptions, please contact Avalara sales or your customer account manager.
All data from the existing object will be replaced with data in the object you PUT.
To set a field's value to null, you may either set its value to null or omit that field from the object you post.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that this subscription belongs to. |
| `id` | integer | path | Yes | The ID of the subscription you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The subscription you wish to update. |

#### Delete a single subscription

`DELETE /api/v2/accounts/{accountId}/subscriptions/{id}`

# For Registrar Use Only
This API is for use by Avalara Registrar administrative users only.
            
Mark the existing account identified by this URL as deleted.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that owns this subscription. |
| `id` | integer | path | Yes | The ID of the subscription you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Addresses

#### Retrieve geolocation information for a specified US or Canadian address

`GET /api/v2/addresses/resolve`

Resolve a US or Canadian address against Avalara's address validation system.  Note that this API is 
valid for US and Canadian addresses only.  

If the address can be resolved, this API provides the latitude and longitude of the resolved location.  
The value `resolutionQuality` can be used to identify how closely this address can be located.  If the 
address cannot be clearly located, use the `messages` structure to learn more about problems with this address.
This is the same API as the POST /api/v2/addresses/resolve endpoint.
Both verbs are supported to provide for flexible implementation.
            
In order to get any evaluation for an address, please provide at least one of the following fields/pairs:
1. postal code
2. line1 + city + region
3. line1 + postal code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AutoAddress.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `line1` | string | query | No | Line 1 |
| `line2` | string | query | No | Line 2 |
| `line3` | string | query | No | Line 3 |
| `city` | string | query | No | City |
| `region` | string | query | No | State / Province / Region |
| `postalCode` | string | query | No | Postal Code / Zip Code |
| `country` | string | query | No | Two character ISO 3166 Country Code (see /api/v2/definitions/countries for a full list) |
| `textCase` | string | query | No | selectable text case for address validation |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve geolocation information for a specified US or Canadian address

`POST /api/v2/addresses/resolve`

Resolve a US or Canadian address against Avalara's address validation system.  Note that this API is 
valid for US and Canadian addresses only.  

If the address can be resolved, this API provides the latitude and longitude of the resolved location.  
The value `resolutionQuality` can be used to identify how closely this address can be located.  If the 
address cannot be clearly located, use the `messages` structure to learn more about problems with this 
address. This is the same API as the GET /api/v2/addresses/resolve endpoint.
Both verbs are supported to provide for flexible implementation.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AutoAddress.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The address to resolve |


### APConfigSetting

#### Retrieve all rules

`GET /api/v2/apconfigsetting`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* meta, amount, amountToMarkForReview, ignoreThresholdWhenVCTZero, varianceForIgnore, varianceForAccrue, variancePercent, apConfigToleranceType, payAsBilledNoAccrual, payAsBilledAccrueUndercharge, shortPayItemsAccrueUndercharge, markForReviewUndercharge, rejectUndercharge, payAsBilledOvercharge, shortPayAvalaraCalculated, shortPayItemsAccrueOvercharge, markForReviewOvercharge, rejectOvercharge, isActive |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve rule for this company

`GET /api/v2/companies/{companyid}/apconfigsetting`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that defined this rule |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* meta, amount, amountToMarkForReview, ignoreThresholdWhenVCTZero, varianceForIgnore, varianceForAccrue, variancePercent, apConfigToleranceType, payAsBilledNoAccrual, payAsBilledAccrueUndercharge, shortPayItemsAccrueUndercharge, markForReviewUndercharge, rejectUndercharge, payAsBilledOvercharge, shortPayAvalaraCalculated, shortPayItemsAccrueOvercharge, markForReviewOvercharge, rejectOvercharge, isActive |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create new rule

`POST /api/v2/companies/{companyid}/apconfigsetting`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this AP Config Setting object |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The AP Config Setting you wish to create. |

#### Update a AP config setting

`PUT /api/v2/companies/{companyid}/apconfigsetting`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this AP config setting object |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The AP config setting object you wish to update. |


### AvaFileForms

#### Retrieve all AvaFileForms

`GET /api/v2/avafileforms`

Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, Compliance Temp User, ComplianceAdmin, ComplianceUser, FirmAdmin, FirmUser, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* outletTypeId |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new AvaFileForm

`POST /api/v2/avafileforms`

Create one or more AvaFileForms
A 'AvaFileForm' represents a form supported by our returns team

### Security Policies

* This API requires the user role Compliance Root User.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The AvaFileForm you wish to create. |

#### Retrieve a single AvaFileForm

`GET /api/v2/avafileforms/{id}`

Get the AvaFileForm object identified by this URL.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, Compliance Temp User, ComplianceAdmin, ComplianceUser, FirmAdmin, FirmUser, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The primary key of this AvaFileForm |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a AvaFileForm

`PUT /api/v2/avafileforms/{id}`

All data from the existing object will be replaced with data in the object you PUT.
To set a field's value to null, you may either set its value to null or omit that field from the object you post.

### Security Policies

* This API requires the user role Compliance Root User.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the AvaFileForm you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The AvaFileForm model you wish to update. |

#### Delete a single AvaFileForm

`DELETE /api/v2/avafileforms/{id}`

Marks the existing AvaFileForm object at this URL as deleted.

### Security Policies

* This API requires one of the following user roles: Compliance Root User, ComplianceUser, FirmAdmin.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the AvaFileForm you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Batches

#### Retrieve all batches

`GET /api/v2/batches`

Get multiple batch objects across all companies.
            
A batch object is a large collection of API calls stored in a compact file.
            
Search for specific objects using the criteria in the `$filter` parameter;
full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate results using the `$top`, `$skip`, and `$orderby` parameters.
            
When a batch is created, it is added to the AvaTax Batch Queue and will be
processed as quickly as possible in the order it was received. To check the
status of a batch, fetch the batch and retrieve the results of the batch
operation.
            
Because the batch system processes with a degree of concurrency, and
because of batch sizes in the queue vary, AvaTax API is unable to accurately
predict when a batch will complete. If high performance processing is
required, please use the
[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* files |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all batches for this company

`GET /api/v2/companies/{companyId}/batches`

List all batch objects attached to the specified company.
            
A batch object is a large collection of API calls stored in a compact file.
            
Search for specific objects using the criteria in the `$filter` parameter;
full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate results using the `$top`, `$skip`, and `$orderby` parameters.
            
Use [GetBatch](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Batches/GetBatch/)
to retrieve the results, or check the status, of an individual batch.
            
When a batch is created, it is added to the AvaTax Batch Queue and will be
processed as quickly as possible in the order it was received. To check the
status of a batch, fetch the batch and retrieve the results of the batch
operation.
            
Because the batch system processes with a degree of concurrency, and
because of batch sizes in the queue vary, AvaTax API is unable to accurately
predict when a batch will complete. If high performance processing is
required, please use the
[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these batches |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* files |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new batch

`POST /api/v2/companies/{companyId}/batches`

Create one or more new batch objects attached to this company.
            
Each batch object may have one or more file objects (currently only one file is supported).
            
When a batch is created, it is added to the AvaTax Batch Queue and will be
processed as quickly as possible in the order it was received. To check the
status of a batch, fetch the batch and retrieve the results of the batch
operation.
            
Because the batch system processes with a degree of concurrency, and
because of batch sizes in the queue vary, AvaTax API is unable to accurately
predict when a batch will complete. If high performance processing is
required, please use the
[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).
            
The maximum content length of the request body is limited to 28.6 MB. If this limit
is exceeded, a 404 Not Found status will be returned (possibly with a CORS error if
the API is called from a browser). In this situation, please split the request into
smaller batches.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this batch. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The batch you wish to create. |

#### Download a single batch file

`GET /api/v2/companies/{companyId}/batches/{batchId}/files/{id}/attachment`

Download a single batch file identified by this URL.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this batch |
| `batchId` | integer | path | Yes | The ID of the batch object |
| `id` | integer | path | Yes | The primary key of this batch file object |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single batch

`GET /api/v2/companies/{companyId}/batches/{id}`

Get the batch object identified by this URL. A batch object is a large
collection of API calls stored in a compact file.
            
Use this endpoint to retrieve the results or check the status of a batch.
            
When a batch is created, it is added to the AvaTax Batch Queue and will be
processed as quickly as possible in the order it was received. To check the
status of a batch, fetch the batch and retrieve the results of the batch
operation.
            
Because the batch system processes with a degree of concurrency, and
because of batch sizes in the queue vary, AvaTax API is unable to accurately
predict when a batch will complete. If high performance processing is
required, please use the
[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this batch |
| `id` | integer | path | Yes | The primary key of this batch |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Delete a single batch

`DELETE /api/v2/companies/{companyId}/batches/{id}`

Marks the batch identified by this URL as deleted.
            
If you attempt to delete a batch that is being processed, you will receive an error message.
Deleting a batch does not delete any transactions that were created by importing the batch.
            
Because the batch system processes with a degree of concurrency, and
because of batch sizes in the queue vary, AvaTax API is unable to accurately
predict when a batch will complete. If high performance processing is
required, please use the
[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, CSPAdmin, CSPTester, FirmAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this batch. |
| `id` | integer | path | Yes | The ID of the batch to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Cancel an in progress batch

`POST /api/v2/companies/{companyId}/batches/{id}/cancel`

Marks the in progress batch identified by this URL as cancelled.
            
Only JSON batches can be cancelled. If you attempt to cancel a file batch, you will receive an error message.
            
Only in progress batches can be cancelled.  If you attempt to cancel a batch that its status is not Waiting or Processing, you will receive an error message.
Cancelling an in progress batch does not delete any transactions that were created before the cancellation.
            
Because the batch system processes with a degree of concurrency, and
because of batch sizes in the queue vary, AvaTax API is unable to accurately
predict when a batch will complete. If high performance processing is
required, please use the
[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this batch. |
| `id` | integer | path | Yes | The ID of the batch to cancel. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new Advanced Rules batch

`POST /api/v2/companies/{companyId}/batches/advancedrules`

Create a new Advanced Rules batch objects attached to this company.
            
When an Advanced Rules batch is created, it is added to the AvaTax Batch v2 Queue and will be
processed as quickly as possible in the order it was received. To check the
status of a batch, fetch the batch and retrieve the results of the batch
operation.
            
The maximum content length of the request body is limited to 28.6 MB. If this limit
is exceeded, a 404 Not Found status will be returned (possibly with a CORS error if
the API is called from a browser). In this situation, please split the request into
smaller batches.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this batch. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The Advanced Rules batch you wish to create. |

#### Create item import batch.

`POST /api/v2/companies/{companyId}/batches/items`

Create a new item import batch objects attached to this company.
            
When an item import batch is created, it is added to the AvaTax Batch v2 Queue and will be
processed in the order it was received. To check the
status of a batch, fetch the batch and retrieve the results of the batch
operation.
            
The maximum content length of the request body is limited to 28.6 MB. If this limit
exceeds then a 404 Not Found status is returned (possibly with a CORS error if
the API is called from a browser). In this situation, please split the request into
smaller batches.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this batch. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The item import batch you wish to create. |

#### Create a new transaction batch

`POST /api/v2/companies/{companyId}/batches/transactions`

Create a new transaction batch objects attached to this company.
            
When a transaction batch is created, it is added to the AvaTax Batch v2 Queue and will be
processed as quickly as possible in the order it was received. To check the
status of a batch, fetch the batch and retrieve the results of the batch
operation.
            
Because the batch system processes with a degree of concurrency, and
because of batch sizes in the queue vary, AvaTax API is unable to accurately
predict when a batch will complete. If high performance processing is
required, please use the
[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).
            
The maximum content length of the request body is limited to 28.6 MB. If this limit
is exceeded, a 404 Not Found status will be returned (possibly with a CORS error if
the API is called from a browser). In this situation, please split the request into
smaller batches.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this batch. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The transaction batch you wish to create. |


### CertExpressInvites

#### List CertExpress invitations

`GET /api/v2/companies/{companyId}/certexpressinvites`

Retrieve CertExpress invitations sent by this company.
            
A CertExpression invitation allows a customer to follow a helpful step-by-step guide to provide information
about their certificates.  This step by step guide allows the customer to complete and upload the full
certificate in a convenient, friendly web browser experience.  When the customer completes their certificates,
they will automatically be recorded to your company and linked to the customer record.
            
The [CertExpress website](https://app.certexpress.com/home) is available for customers to use at any time.
Using CertExpress with this API will ensure that your certificates are automatically linked correctly into
your company so that they can be used for tax exemptions.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that issued this invitation |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.
            
             No options are defined at this time. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* companyId, customer, coverLetter, exposureZones, exemptReasons, requestLink |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a CertExpress invitation

`POST /api/v2/companies/{companyId}/customers/{customerCode}/certexpressinvites`

Creates an invitation for a customer to self-report certificates using the CertExpress website.
            
This invitation is delivered by your choice of method, or you can present a hyperlink to the user
directly in your connector.  Your customer will be redirected to https://app.certexpress.com/ where
they can follow a step-by-step guide to enter information about their exemption certificates.  The
certificates entered will be recorded and automatically linked to their customer record.
            
The [CertExpress website](https://app.certexpress.com/home) is available for customers to use at any time.
Using CertExpress with this API will ensure that your certificates are automatically linked correctly into
your company so that they can be used for tax exemptions.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that will record certificates |
| `customerCode` | string | path | Yes | The number of the customer where the request is sent to |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | the requests to send out to customers |

#### Retrieve a single CertExpress invitation

`GET /api/v2/companies/{companyId}/customers/{customerCode}/certexpressinvites/{id}`

Retrieve an existing CertExpress invitation sent to a customer.
            
A CertExpression invitation allows a customer to follow a helpful step-by-step guide to provide information
about their certificates.  This step by step guide allows the customer to complete and upload the full
certificate in a convenient, friendly web browser experience.  When the customer completes their certificates,
they will automatically be recorded to your company and linked to the customer record.
            
The [CertExpress website](https://app.certexpress.com/home) is available for customers to use at any time.
Using CertExpress with this API will ensure that your certificates are automatically linked correctly into
your company so that they can be used for tax exemptions.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that issued this invitation |
| `customerCode` | string | path | Yes | The number of the customer where the request is sent to |
| `id` | integer | path | Yes | The unique ID number of this CertExpress invitation |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.  No options are defined at this time. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Certificates

#### List all certificates for a company

`GET /api/v2/companies/{companyId}/certificates`

List all certificates recorded by a company
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* customers - Retrieves the list of customers linked to the certificate.
* po_numbers - Retrieves all PO numbers tied to the certificate.
* attributes - Retrieves all attributes applied to the certificate.
* histories - Retrieves the certificate update history
* jobs - Retrieves the jobs for this certificate
* jobs.phases - Retrieves the jobs along with their phases
* jobs.tasks - Retrieves the jobs along with their phases and the tasks within each phase
* logs - Retrieves the certificate log
* invalid_reasons - Retrieves invalid reasons for this certificate if the certificate is invalid
* custom_fields - Retrieves custom fields set for this certificate
* jurisdictions - Retrieves the list of jurisdictions associated with the certificate
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID number of the company to search |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.  You can specify one or more of the following:
            
             * customers - Retrieves the list of customers linked to the certificate.
             * po_numbers - Retrieves all PO numbers tied to the certificate.
             * attributes - Retrieves all attributes applied to the certificate.
             * histories - Retrieves the certificate update history
             * jobs - Retrieves the jobs for this certificate
             * jobs.phases - Retrieves the jobs along with their phases
             * jobs.tasks - Retrieves the jobs along with their phases and the tasks within each phase
             * logs - Retrieves the certificate log
             * invalid_reasons - Retrieves invalid reasons for this certificate if the certificate is invalid
             * custom_fields - Retrieves custom fields set for this certificate
             * jurisdictions - Retrieves the list of jurisdictions associated with the certificate |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* exemptionNumber, ecmsId, ecmsStatus, pdf, pages |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create certificates for this company

`POST /api/v2/companies/{companyId}/certificates`

Record one or more certificates document for this company.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
When you create a certificate, it will be processed by Avalara and will become available for use in
calculating tax exemptions when processing is complete.  For a certificate to be used in calculating exemptions,
it must have the following:
            
* An exposure zone indicating where the certificate is valid
* A link to the customer that is allowed to use this certificate
* Your tax transaction must contain the correct customer code
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.
            
If the users specified in the certificates do not exist, the API will create the user and link them to the certificate

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID number of the company recording this certificate |
| `$preValidatedExemptionReason` | boolean | query | No | If set to true, the certificate will bypass the human verification process. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | Certificates to be created |

#### Retrieve a single certificate

`GET /api/v2/companies/{companyId}/certificates/{id}`

Get the current certificate identified by this URL.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* customers - Retrieves the list of customers linked to the certificate.
* po_numbers - Retrieves all PO numbers tied to the certificate.
* attributes - Retrieves all attributes applied to the certificate.
* histories - Retrieves the certificate update history
* jobs - Retrieves the jobs for this certificate
* jobs.phases - Retrieves the jobs along with their phases
* jobs.tasks - Retrieves the jobs along with their phases and the tasks within each phase
* logs - Retrieves the certificate log
* invalid_reasons - Retrieves invalid reasons for this certificate if the certificate is invalid
* custom_fields - Retrieves custom fields set for this certificate
* jurisdictions - Retrieves the list of jurisdictions associated with the certificate
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.  You can specify one or more of the following:
            
             * customers - Retrieves the list of customers linked to the certificate.
             * po_numbers - Retrieves all PO numbers tied to the certificate.
             * attributes - Retrieves all attributes applied to the certificate.
             * histories - Retrieves the certificate update history
             * jobs - Retrieves the jobs for this certificate
             * jobs.phases - Retrieves the jobs along with their phases
             * jobs.tasks - Retrieves the jobs along with their phases and the tasks within each phase
             * logs - Retrieves the certificate log
             * invalid_reasons - Retrieves invalid reasons for this certificate if the certificate is invalid
             * custom_fields - Retrieves custom fields set for this certificate
             * jurisdictions - Retrieves the list of jurisdictions associated with the certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single certificate

`PUT /api/v2/companies/{companyId}/certificates/{id}`

Replace the certificate identified by this URL with a new one.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The new certificate object that will replace the existing one |

#### Revoke and delete a certificate

`DELETE /api/v2/companies/{companyId}/certificates/{id}`

Revoke the certificate identified by this URL, then delete it.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Revoked certificates can no longer be used.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Download an image for this certificate

`GET /api/v2/companies/{companyId}/certificates/{id}/attachment`

Download an image or PDF file for this certificate.
            
This API can be used to download either a single-page preview of the certificate or a full PDF document.
To retrieve a preview image, set the `$type` parameter to `Jpeg` and the `$page` parameter to `1`.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `$page` | integer | query | No | If you choose `$type`=`Jpeg`, you must specify which page number to retrieve. |
| `$type` | string | query | No | The data format in which to retrieve the certificate image |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Upload an image or PDF attachment for this certificate

`POST /api/v2/companies/{companyId}/certificates/{id}/attachment`

Upload an image or PDF attachment for this certificate.
            
Image attachments can be of the format `PDF`, `JPEG`, `TIFF`, or `PNG`.  To upload a multi-page image, please
use the `PDF` data type.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `file` | file | formData | Yes | The exemption certificate file you wanted to upload. Accepted formats are: PDF, JPEG, TIFF, PNG. |

#### List all attributes applied to this certificate

`GET /api/v2/companies/{companyId}/certificates/{id}/attributes`

Retrieve the list of attributes that are linked to this certificate.
            
A certificate may have multiple attributes that control its behavior.  You may link or unlink attributes to a
certificate at any time.  The full list of defined attributes may be found using [ListCertificateAttributes](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListCertificateAttributes/) API.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Link attributes to a certificate

`POST /api/v2/companies/{companyId}/certificates/{id}/attributes/link`

Link one or many attributes to a certificate.
            
A certificate may have multiple attributes that control its behavior.  You may link or unlink attributes to a
certificate at any time.  The full list of defined attributes may be found using `ListCertificateAttributes`.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The list of attributes to link to this certificate. |

#### Unlink attributes from a certificate

`POST /api/v2/companies/{companyId}/certificates/{id}/attributes/unlink`

Unlink one or many attributes from a certificate.
            
A certificate may have multiple attributes that control its behavior.  You may link or unlink attributes to a
certificate at any time.  The full list of defined attributes may be found using `ListCertificateAttributes`.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The list of attributes to unlink from this certificate. |

#### Retrieve Certificate Custom Fields

`GET /api/v2/companies/{companyId}/certificates/{id}/custom-fields`

This API is used to retrieve custom fields for a certificate.
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update Certificate Custom Fields

`PUT /api/v2/companies/{companyId}/certificates/{id}/custom-fields`

Updates the values of custom fields for a certificate
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The request model containing updated custom field values |

#### Delete Certificate Custom Fields

`DELETE /api/v2/companies/{companyId}/certificates/{id}/custom-fields`

Deletes custom fields for a specified certificate.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | Delete custom fields request model |

#### List customers linked to this certificate

`GET /api/v2/companies/{companyId}/certificates/{id}/customers`

List all customers linked to this certificate.
            
Customers must be linked to a certificate in order to make use of its tax exemption features.  You
can link or unlink customers to a certificate at any time.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.
             No options are currently available when fetching customers. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Link customers to a certificate

`POST /api/v2/companies/{companyId}/certificates/{id}/customers/link`

Link one or more customers to an existing certificate.
            
Customers and certificates must be linked before a customer can make use of a certificate to obtain
a tax exemption in AvaTax.  Since some certificates may cover more than one business entity, a certificate
can be connected to multiple customer records using the `LinkCustomersToCertificate` API.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The list of customers needed be added to the Certificate for exemption |

#### Unlink customers from a certificate

`POST /api/v2/companies/{companyId}/certificates/{id}/customers/unlink`

Unlinks one or more customers from a certificate.
            
Unlinking a certificate from a customer will prevent the certificate from being used to generate
tax exemptions for the customer in the future.  If any previous transactions for this customer had
used this linked certificate, those transactions will be unchanged and will still have a link to the
exemption certificate in question.
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this certificate |
| `id` | integer | path | Yes | The unique ID number of this certificate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The list of customers to unlink from this certificate |

#### Check a company's exemption certificate status.

`GET /api/v2/companies/{companyId}/certificates/setup`

Checks whether this company is configured to use exemption certificates in AvaTax.
            
Exemption certificates are tracked through a different auditable data store than the one that
holds AvaTax transactions.  To use the AvaTax exemption certificate document store, please call
`GetCertificateSetup` to see if your company is configured to use the exemption certificate
document store.  To request setup, please call `RequestCertificateSetup` and your company will
be configured with data storage in the auditable certificate system.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company ID to check |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Request setup of exemption certificates for this company.

`POST /api/v2/companies/{companyId}/certificates/setup`

Requests the setup of exemption certificates for this company.
            
Exemption certificates are tracked through a different auditable data store than the one that
holds AvaTax transactions.  To use the AvaTax exemption certificate document store, please call
`GetCertificateSetup` to see if your company is configured to use the exemption certificate
document store.  To request setup, please call `RequestCertificateSetup` and your company will
be configured with data storage in the auditable certificate system.
            
This API will return the current status of exemption certificate setup for this company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List local exempt jurisdictions for a given exposure zone and tax code

`GET /api/v2/companies/{companyId}/jurisdictions`

Returns the list of jurisdictions that are valid for a given combination of exposure zone
and exemption tax code. The returned jurisdictions can be used to add valid jurisdictions
to a certificate.
            
Both `exposureZone` and `taxCode` are mandatory query parameters.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID number of the company |
| `exposureZone` | string | query | Yes | Required. The exposure zone name used to filter valid jurisdictions (e.g., "California"). |
| `taxCode` | string | query | Yes | Required. The exemption tax code used to filter valid jurisdictions (e.g., "RESALE"). |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* region, country, customerUsageType |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Clerk

#### Retrieves a list of location records associated with the specified account.
This endpoint is secured and requires appropriate subscription and permission levels.

`GET /api/v2/companies/{accountId}/clerk/locations`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The unique identifier of the account whose locations are being requested. |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.  You can specify one or more of the following: |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* id |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### CommunicationCertificates

#### Retrieve all communication certificates.

`GET /companies/{companyId}/communication-certificates`

List all communication certificates that can be seen by the current user.
            
This API lists all communication certificates you are allowed to see.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.  
For more information about filtering in REST, please see the documentation at http://developer.avalara.com/avatax/filtering-in-rest/ .

### Security Policies

* This API depends on the following active services:*Required* (all):  ECMPremiumComms, ECMProComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* EffectiveDate, ExpirationDate, TaxNumber, Exemptions |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `companyId` | integer | path | Yes | The ID number of the company to search |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single communication certificate.

`GET /companies/{companyId}/communication-certificates/{certificateId}`

### Security Policies

* This API depends on the following active services:*Required* (all):  ECMPremiumComms, ECMProComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID number of the company to search |
| `certificateId` | integer | path | Yes | The ID number of the certificate to search |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Companies

#### Retrieve all companies

`GET /api/v2/companies`

Get multiple company objects.
            
A `company` represents a single corporation or individual that is registered to handle transactional taxes.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Contacts
* Items
* Locations
* Nexus
* Settings
* TaxCodes
* TaxRules
* UPC
* Parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$include` | string | query | No | A comma separated list of objects to fetch underneath this company.  Any object with a URL path underneath this company can be fetched by specifying its name. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* IsFein, contacts, items, locations, nexus, settings, taxCodes, taxRules, upcs, nonReportingChildCompanies, exemptCerts, parameters, supplierandcustomers, isAdvSave, companyUrl, companyDescription |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create new companies

`POST /api/v2/companies`

Create one or more new company objects.
A 'company' represents a single corporation or individual that is registered to handle transactional taxes.
You may attach nested data objects such as contacts, locations, and nexus with this CREATE call, and those objects will be created with the company.
            
NOTE: Please do not use these blacklisted characters in company name and code: ';', '\', '|'.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | Either a single company object or an array of companies to create |

#### Check the funding configuration of a company

`GET /api/v2/companies/{companyId}/funding/configuration`

This API is available by invitation only.
Requires a subscription to Avalara Managed Returns or SST Certified Service Provider.
Returns the funding configuration of the requested company.
.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique identifier of the company |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Check the funding configuration of a company

`GET /api/v2/companies/{companyId}/funding/configurations`

This API is available by invitation only.
Requires a subscription to Avalara Managed Returns or SST Certified Service Provider.
Returns the funding configuration of the requested company.
.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique identifier of the company |
| `currency` | string | query | No | The currency of the funding.  USD and CAD are the only valid currencies |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve parameters for a company

`GET /api/v2/companies/{companyId}/parameters`

Retrieve all parameters of a company.
            
Some companies can be taxed and reported differently depending on the properties of the company, such as IsPrimaryAddress. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a company will be used by default in tax calculation but will not show on the transaction line referencing the company.
            
A company location parameter specified on a transaction line will override a company parameter if they share the same parameter name.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* name, unit |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Add parameters to a company.

`POST /api/v2/companies/{companyId}/parameters`

Add parameters to a company.
            
Some companies can be taxed and reported differently depending on the properties of the company, such as IsPrimaryAddress. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a company will be used by default in tax calculation but will not show on the transaction line referencing the company.
            
A company location parameter specified on a transaction line will override a company parameter if they share the same parameter name.
            
To see available parameters for this company, call `/api/v2/definitions/parameters?$filter=attributeType eq Company`
            
Some parameters are only available for use if you have subscribed to specific AvaTax services. To see which parameters you are able to use, add the query parameter "$showSubscribed=true" to the parameter definition call above.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this company parameter. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The company parameters you wish to create. |

#### Retrieve a single company parameter

`GET /api/v2/companies/{companyId}/parameters/{id}`

Retrieves a single parameter of a company.
            
Some companies can be taxed and reported differently depending on the properties of the company, such as IsPrimaryAddress. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a company will be used by default in tax calculation but will not show on the transaction line referencing the company.
            
A company location parameter specified on a transaction line will override a company parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes |  |
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a company parameter

`PUT /api/v2/companies/{companyId}/parameters/{id}`

Update a parameter of a company.
            
Some companies can be taxed and reported differently depending on the properties of the company, such as IsPrimaryAddress. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a company will be used by default in tax calculation but will not show on the transaction line referencing the company.
            
A company location parameter specified on a transaction line will override a company parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `id` | integer | path | Yes | The company parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The company parameter object you wish to update. |

#### Delete a single company parameter

`DELETE /api/v2/companies/{companyId}/parameters/{id}`

Delete a parameter of a company.
Some companies can be taxed and reported differently depending on the properties of the company, such as IsPrimaryAddress. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a company will be used by default in tax calculation but will not show on the transaction line referencing the company.
            
A company location parameter specified on a transaction line will override a company parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `id` | integer | path | Yes | The parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all customers and suppliers with their country parameters for a company

`GET /api/v2/companies/{companyId}/supplierandcustomers/withcountryparams`

Retrieves all customers and suppliers for a company along with their country parameters. Records without country parameters will still be returned with null country parameter fields (LEFT JOIN behavior).
Results are ordered by CustomerTypeId, CustomerCode, and Country.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | Company Id |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* CustomerId, CompanyId, CustomerTypeId, CustomerSupplierCountryParamId, Country, IsEstablished, IsRegisteredThroughFiscalRep, VatNumberStatus |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve VAT Numbers for a company

`GET /api/v2/companies/{companyId}/vatnumbers`

Retrieve all VAT Numbers associated with this company.
            
A VAT Number represents a customer's VAT identification number that has been validated
against VIES (VAT Information Exchange System).
            
Search for specific records using the `$filter` parameter. Supported filters include:
* `vatNumber` - Filter by VAT number
* `country` - Filter by country code (e.g., "GB", "DE")
* `vatNumberStatus` - Filter by VAT number validation status (0=NotValidated, 1=Valid, 2=Invalid, 3=Error)
* `businessNameStatus` - Filter by business name comparison status (0=NotValidated, 1=Valid, 2=Invalid, 3=Error)
* `businessName` - Filter by business name
* `validationSource` - Filter by validation source ('VIES' or 'ELR')
* `validationDate` - Filter by last validation timestamp (e.g., `validationDate gt 2026-01-01`)
* `createdDate` - Filter by record creation timestamp (e.g., `createdDate ge 2026-01-01`)
* `modifiedDate` - Filter by record modification timestamp (e.g., `modifiedDate gt 2026-05-01T00:00:00Z`)
            
Order results using `$orderBy`. Common orderings:
* `vatNumber ASC` - Order by VAT number ascending
* `validationDate DESC` - Order by most recently validated first
* `modifiedDate DESC` - Order by most recently modified first

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create VAT Numbers for a company

`POST /api/v2/companies/{companyId}/vatnumbers`

Create one or more VAT number records for a company.
Each record is validated synchronously against the ELR / Directory Search service
(which proxies VIES). The response includes validation results:
`vatNumberStatus`, `registeredBusinessName`, `businessNameStatus`, `validationDate`,
and `validationSource`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these VAT numbers |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The VAT number records you wish to create |

#### Retrieve a single VAT Number

`GET /api/v2/companies/{companyId}/vatnumbers/{id}`

Retrieve a single VAT Number record by its unique ID.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this VAT number |
| `id` | integer | path | Yes | The unique ID of the VAT number record |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single VAT Number

`PUT /api/v2/companies/{companyId}/vatnumbers/{id}`

Replace the existing VAT number record with the data in the object you PUT.
            
Only `vatNumber`, `businessName`, and `country` fields can be updated. The
validation-related fields (`vatNumberStatus`, `registeredBusinessName`,
`businessNameStatus`, `validationDate`, `validationSource`) are managed by the
system and are refreshed automatically: every successful PUT re-triggers a
synchronous VAT validation against the ELR / Directory Search service (which
proxies VIES). This makes "Fix" flows work as expected — correcting an
invalid VAT number immediately updates its status.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this VAT number |
| `id` | integer | path | Yes | The unique ID of the VAT number record to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The VAT number object you wish to update |

#### Delete a single VAT Number

`DELETE /api/v2/companies/{companyId}/vatnumbers/{id}`

Marks the VAT number record identified by this URL as deleted.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this VAT number |
| `id` | integer | path | Yes | The unique ID of the VAT number record to delete |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Validate a VAT Number without storing it

`POST /api/v2/companies/{companyId}/vatnumbers/validate`

Performs a synchronous VAT number validation against the ELR / Directory Search service
(which proxies VIES) without persisting any record in the `CustomerVatNumber` table.
            
This is useful for UI flows that allow the user to "test" a VAT number before
deciding whether to add it. The response payload mirrors the shape returned by
the create/update endpoints, but `id`, `createdDate`, and `modifiedDate` are not set.
Business-name comparison is not performed here; use the create endpoint to persist
and obtain a `businessNameStatus`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company on whose behalf the validation is performed |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The VAT number to validate (vatNumber, country) |

#### Retrieve a single company

`GET /api/v2/companies/{id}`

Get the company object identified by this URL.
A 'company' represents a single corporation or individual that is registered to handle transactional taxes.
You may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:
            
 * Contacts
 * Items
 * Locations
 * Nexus
 * Settings
 * TaxCodes
 * TaxRules
 * UPC
 * Parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the company to retrieve. |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.
            
              * Child objects - Specify one or more of the following to retrieve objects related to each company: "Contacts", "FilingCalendars", "Items", "Locations", "Nexus", "TaxCodes", "NonReportingChildren" or "TaxRules".
              * Deleted objects - Specify "FetchDeleted" to retrieve information about previously deleted objects. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single company

`PUT /api/v2/companies/{id}`

Replace the existing company object at this URL with an updated object.
            
A `CompanyModel` represents a single corporation or individual that is registered to handle transactional taxes.
All data from the existing object will be replaced with data in the object you PUT.
            
When calling `UpdateCompany`, you are permitted to update the company itself.  Updates to the nested objects
such as contacts, locations, or settings are not permitted.  To update the nested objects
            
To set a field's value to `null`, you may either set its value to `null` or omit that field from the object you PUT.
            
NOTE: Please do not use these blacklisted characters in company name and code: ';', '\', '|'.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the company you wish to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The company object you wish to update. |

#### Delete a single company

`DELETE /api/v2/companies/{id}`

Deleting a company will delete all child companies, and all users attached to this company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the company you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Checks whether the integration being used to set up this company and run transactions onto this company is compliant to all requirements.

`GET /api/v2/companies/{id}/certify`

Examines the most recent 100 transactions or data from the last month when verifying transaction-related integrations.
For partners who write integrations against AvaTax for many clients, this API is a way to do a quick self testing to verify whether the
written integrations for a company are sufficient enough to be delivered to the respective customers to start using it.
            
This API provides messages specific enough (through predefined checks) to guide the partner on what integrations are still missing from the company to get fully certified.
The API makes the following checks to conclude if the company is NOT fully certified:
1. Any past month items contains generic tax code of P0000000.
2. All the companies on the requesting account are test companies.
3. No Voided/Cancelled documents in the past 30 days.
4. There are less than 2 committed documents.
5. Any documentCode is a generic GUID string.
6. Any customerCode on document is a generic GUID string.
7. No document has more than 1 documentLine.
8. All of the documents have missing exemptionNo, customerUsageType, taxDateOverride or negative amount.
9. Any document quantity is a negative number.
10. Any document have repeated lines.
11. No document has shipping charge.
12. All documents have same ItemCodes, descriptions and taxCodes.
13. Less than 2 addresses used across all documents.
14. Whether locationCode was used in documents.
15. Account with AvaGlobal subscription and no documents have VATBuyerId.
16. Any document has currencyCode not being USD for accounts with AvaGlobal subscription.
17. All documents have countryCode used for accounts with AvaGlobal subscription.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the company to check if its integration is certified. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Get configuration settings for this company

`GET /api/v2/companies/{id}/configuration`

Retrieve a list of all configuration settings tied to this company.
            
Configuration settings provide you with the ability to control features of your account and of your
tax software.  The category name `AvaCertServiceConfig` is reserved for
Avalara internal software configuration values; to store your own company-level settings, please
create a new category name that begins with `X-`, for example, `X-MyCustomCategory`.
            
Company settings are permanent settings that cannot be deleted.  You can set the value of a
company setting to null if desired and if the particular setting supports it.
            
Avalara-based company settings for `AvaCertServiceConfig` affect your company's exemption certificate
processing, and should be changed with care.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Change configuration settings for this company

`POST /api/v2/companies/{id}/configuration`

Update configuration settings tied to this company.
            
Configuration settings provide you with the ability to control features of your account and of your
tax software.  The category names `AvaCertServiceConfig` is reserved for
Avalara internal software configuration values; to store your own company-level settings, please
create a new category name that begins with `X-`, for example, `X-MyCustomCategory`.
            
Company settings are permanent settings that cannot be deleted.  You can set the value of a
company setting to null if desired and if the particular setting supports it.
            
Avalara-based company settings for `AvaCertServiceConfig` affect your company's exemption certificate
processing, and should be changed with care.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes |  |

#### Get this company's filing status

`GET /api/v2/companies/{id}/filingstatus`

Retrieve the current filing status of this company.
            
For customers using Avalara's Managed Returns Service, each company within their account can request
for Avalara to file tax returns on their behalf.  Avalara compliance team members will review all
requested filing calendars prior to beginning filing tax returns on behalf of this company.
            
A company's filing status can be one of the following values:
            
* `NoReporting` - This company is not configured to report tax returns; instead, it reports through a parent company.
* `NotYetFiling` - This company has not yet begun filing tax returns through Avalara's Managed Returns Service.
* `FilingRequested` - The company has requested to begin filing tax returns, but Avalara's compliance team has not yet begun filing.
* `FirstFiling` - The company has recently filing tax returns and is in a new status.
* `Active` - The company is currently active and is filing tax returns via Avalara Managed Returns.
* `Inactive` - The company is currently inactive.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Change the filing status of this company

`POST /api/v2/companies/{id}/filingstatus`

Changes the current filing status of this company.
            
For customers using Avalara's Managed Returns Service, each company within their account can request
for Avalara to file tax returns on their behalf.  Avalara compliance team members will review all
requested filing calendars prior to beginning filing tax returns on behalf of this company.
            
The following changes may be requested through this API:
            
* If a company is in `NotYetFiling` status, the customer may request this be changed to `FilingRequested`.
* Avalara compliance team members may change a company from `FilingRequested` to `FirstFiling`.
* Avalara compliance team members may change a company from `FirstFiling` to `Active`.
            
All other status changes must be requested through the Avalara customer support team.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes |  |

#### Check managed returns funding status for a company

`GET /api/v2/companies/{id}/funding`

This API is available by invitation only.
Requires a subscription to Avalara Managed Returns or SST Certified Service Provider.
Returns a list of funding setup requests and their current status.
Each object in the result is a request that was made to setup or adjust funding status for this company.

### Security Policies

* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.
* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The unique identifier of the company |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Request managed returns funding setup for a company

`POST /api/v2/companies/{id}/funding/setup`

This API is available by invitation only.
Companies that use the Avalara Managed Returns or the SST Certified Service Provider services are
required to setup their funding configuration before Avalara can begin filing tax returns on their
behalf.
Funding configuration for each company is set up by submitting a funding setup request, which can
be sent either via email or via an embedded HTML widget.
When the funding configuration is submitted to Avalara, it will be reviewed by treasury team members
before approval.
This API records that an ambedded HTML funding setup widget was activated.
This API requires a subscription to Avalara Managed Returns or SST Certified Service Provider.

### Security Policies

* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.
* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The unique identifier of the company |
| `businessUnit` | string | query | No | The company's business unit |
| `subscriptionType` | string | query | No | The company's subscription type |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The funding initialization request |

#### Get ACH entry detail report for company and period

`GET /api/v2/companies/{id}/paymentdetails/{periodyear}/{periodmonth}`

This API is available by invitation only.
Requires a subscription to Avalara Managed Returns or SST Certified Service Provider.
Returns a list of ACH entry details for the given company and period.
Each object in the result is an ach entry trace record for a payment made on behalf of this company.

### Security Policies

* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.
* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The unique identifier of the company |
| `periodyear` | integer | path | Yes | The period year |
| `periodmonth` | integer | path | Yes | The period month |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Quick setup for a company with a single physical address

`POST /api/v2/companies/initialize`

Shortcut to quickly setup a single-physical-location company with critical information and activate it.
This API provides quick and simple company setup functionality and does the following things:
            
* Create a company object with its own tax profile
* Add a key contact person for the company
* Set up one physical location for the main office
* Declare nexus in all taxing jurisdictions for that main office address
* Activate the company
            
This API only provides a limited subset of functionality compared to the 'Create Company' API call.
If you need additional features or options not present in this 'Quick Setup' API call, please use the full 'Create Company' call instead.
Please allow 1 minute before making transactions using the company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Information about the company you wish to create. |

#### Retrieve a list of MRS Companies with account

`GET /api/v2/companies/mrs`

This API is available by invitation only.
            
Get a list of companies with an active MRS service.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Compliance

#### Retrieve all unique jurisnames based on filter.

`GET /api/v2/compliance/jurisnames/{country}/{region}`

### Security Policies

* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The two-character ISO-3166 code for the country. |
| `region` | string | path | Yes | The two or three character region code for the region. |
| `effectiveDate` | string | query | No | Used to limit the jurisnames returned. |
| `endDate` | string | query | No | Used to limit the jurisnames returned. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all RateOptions.

`GET /api/v2/compliance/rateOptions/{country}/{region}`

This API is available by invitation only.

### Security Policies

* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The two-character ISO-3166 code for the country. |
| `region` | string | path | Yes | The two or three character region code for the region. |
| `effectiveDate` | string | query | No | Used to limit the jurisdictions or rates returned. |
| `endDate` | string | query | No | Used to limit the jurisdictions or rates returned. |
| `aggregationOption` | string | query | No | Aggregation method used. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* taxRegionId, taxTypeCodeName, taxSubTypeCode, taxSubTypeCodeName, rateTypeCodeName, componentRate, taxAuthorityId, cityName, countyName, effDate, endDate |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve StateConfig information

`GET /api/v2/compliance/stateconfig`

This API is available by invitation only.

### Security Policies

* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* effDate, endDate, hasBoundary, hasRates, isLocalAdmin, isLocalNexus, isSerState, minBoundaryLevelId, sstStatusId, state, stateFips, boundaryTableBaseName, stjCount, tsStateId, isJaasEnabled, hasSSTBoundary |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all State Reporting Codes based on filter.

`GET /api/v2/compliance/stateReportingCodes/{country}/{region}`

### Security Policies

* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The two-character ISO-3166 code for the country. |
| `region` | string | path | Yes | The two or three character region code for the region. |
| `effectiveDate` | string | query | No | Used to limit the StateReportingCodes or rates returned. |
| `endDate` | string | query | No | Used to limit the StateReportingCodes or rates returned. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* label |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all tax type mappings based on filter.

`GET /api/v2/compliance/taxtypemappings`

### Security Policies

* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* taxTypeGroupIdSK, taxTypeIdSK, taxSubTypeIdSK, generalOrStandardRateTypeIdSK, taxTypeGroupId, taxTypeId, country, generalOrStandardRateTypeId, isCustomContent |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Contacts

#### Retrieve contacts for this company

`GET /api/v2/companies/{companyId}/contacts`

List all contact objects assigned to this company.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these contacts |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* scsContactId |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new contact

`POST /api/v2/companies/{companyId}/contacts`

Create one or more new contact objects.
A 'contact' is a person associated with a company who is designated to handle certain responsibilities of
a tax collecting and filing entity.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this contact. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The contacts you wish to create. |

#### Retrieve a single contact

`GET /api/v2/companies/{companyId}/contacts/{id}`

Get the contact object identified by this URL.
A 'contact' is a person associated with a company who is designated to handle certain responsibilities of
a tax collecting and filing entity.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company for this contact |
| `id` | integer | path | Yes | The primary key of this contact |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single contact

`PUT /api/v2/companies/{companyId}/contacts/{id}`

Replace the existing contact object at this URL with an updated object.
A 'contact' is a person associated with a company who is designated to handle certain responsibilities of
a tax collecting and filing entity.
All data from the existing object will be replaced with data in the object you PUT.
To set a field's value to null, you may either set its value to null or omit that field from the object you post.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this contact belongs to. |
| `id` | integer | path | Yes | The ID of the contact you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The contact you wish to update. |

#### Delete a single contact

`DELETE /api/v2/companies/{companyId}/contacts/{id}`

Mark the existing contact object at this URL as deleted.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this contact. |
| `id` | integer | path | Yes | The ID of the contact you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all contacts

`GET /api/v2/contacts`

Get multiple contact objects across all companies.
A 'contact' is a person associated with a company who is designated to handle certain responsibilities of
a tax collecting and filing entity.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* scsContactId |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### CostCenter

#### Retrieve cost centers for this company

`GET /api/v2/companies/{companyid}/costcenters`

Retrieves a list of cost centers attached to this company. You can apply filters to retrieve specific records.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that defined these cost centers |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* companyId, meta, defaultItem |
| `$include` | string | query | No | A comma separated list of objects to fetch underneath this company. Any object with a URL path underneath this company can be fetched by specifying its name. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create new cost center

`POST /api/v2/companies/{companyid}/costcenters`

Creates one or more new item objects attached to this company.

Costcenter is defined as  function or department within a company which is not directly going to generate revenues and profits to the company but is still incurring expenses to the company for its operations.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this cost center object |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The cost center you wish to create. |

#### Retrieve a single cost center

`GET /api/v2/companies/{companyid}/costcenters/{costcenterid}`

Retrieves details of a single cost center identified by costcenterId, which is owned by the company.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this cost center object |
| `costcenterid` | integer | path | Yes | The primary key of this cost center |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single cost center

`PUT /api/v2/companies/{companyid}/costcenters/{costcenterid}`

Updates a single cost center owned by the company. Use the costcenterId path parameter to identify the cost center to update.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this cost center object |
| `costcenterid` | integer | path | Yes | The primary key of this cost center |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The cost center object you wish to update. |

#### Delete cost center for the given id

`DELETE /api/v2/companies/{companyid}/costcenters/{costcenterid}`

Deletes a cost center with the specified costcenterId that belongs to the company.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this cost center object |
| `costcenterid` | integer | path | Yes | The primary key of this cost center |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Bulk upload cost centers

`POST /api/v2/companies/{companyid}/costcenters/$upload`

Allows bulk upload of cost centers for the specified company. Use the companyId path parameter to identify the company for which the cost centers should be uploaded.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this cost center object |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The cost center bulk upload model. |

#### Retrieve all cost centers

`GET /api/v2/costcenters`

Retrieves all cost centers available. You can apply filters to retrieve specific records.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* companyId, meta, defaultItem |
| `$include` | string | query | No | A comma separated list of objects to fetch underneath this company. Any object with a URL path underneath this company can be fetched by specifying its name. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Customers

#### List all customers for this company

`GET /api/v2/companies/{companyId}/customers`

List all customers recorded by this company matching the specified criteria.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this `customer` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* certificates - Fetch a list of certificates linked to this customer.
* attributes - Retrieves all attributes applied to the customer.
* active_certificates - Retrieves all the active certificates linked to this customer
* histories - Retrieves the update history for this customer
* logs - Retrieves customer logs
* jobs - Retrieves customer jobs
* billTos - Retrieves bill-tos linked with this customer
* shipTos - Retrieves ship-tos linked with this customer
* shipToStates - Retrieves ship-to states for this customer
* custom_fields - Retrieves custom fields set for this customer
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `$include` | string | query | No | OPTIONAL - You can specify any of the values in `certificates`, `attributes`, `active_certificates`, `histories`, `logs`, `jobs`, `billTos`, `shipTos`, `shipToStates`, and `custom_fields` to fetch additional information for this certificate. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create customers for this company

`POST /api/v2/companies/{companyId}/customers`

Create one or more customers for this company.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this `customer` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
A nested object such as CustomFields could be specified and created along with the customer object. To fetch the
nested object, please call 'GetCustomer' API with appropriate $include parameters.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The list of customer objects to be created |

#### Retrieve a single customer

`GET /api/v2/companies/{companyId}/customers/{customerCode}`

Retrieve the customer identified by this URL.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this customer object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* certificates - Fetch a list of certificates linked to this customer.
* attributes - Retrieves all attributes applied to the customer.
* active_certificates - Retrieves all the active certificates linked to this customer
* histories - Retrieves the update history for this customer
* logs - Retrieves customer logs
* jobs - Retrieves customer jobs
* billTos - Retrieves bill-tos linked with this customer
* shipTos - Retrieves ship-tos linked with this customer
* shipToStates - Retrieves ship-to states for this customer
* custom_fields - Retrieves custom fields set for this customer
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `$include` | string | query | No | Specify optional additional objects to include in this fetch request |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single customer

`PUT /api/v2/companies/{companyId}/customers/{customerCode}`

Replace the customer object at this URL with a new record.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this `customer` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The new customer model that will replace the existing record at this URL |

#### Delete a customer record

`DELETE /api/v2/companies/{companyId}/customers/{customerCode}`

Deletes the customer object referenced by this URL.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this `customer` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a customer's attributes

`GET /api/v2/companies/{companyId}/customers/{customerCode}/attributes`

Retrieve the attributes linked to the customer identified by this URL.
            
A customer may have multiple attributes that control its behavior.  You may link or unlink attributes to a
customer at any time.  The full list of defined attributes may be found using `QueryCompanyCustomerAttributes` API.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this customer object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded the provided customer |
| `customerCode` | string | path | Yes | The unique code representing the current customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Link attributes to a customer

`PUT /api/v2/companies/{companyId}/customers/{customerCode}/attributes/link`

Link one or many attributes to a customer.
            
A customer may have multiple attributes that control its behavior.  You may link or unlink attributes to a
customer at any time.  The full list of defined attributes may be found using `QueryCompanyCustomerAttributes` API.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this customer object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded the provided customer |
| `customerCode` | string | path | Yes | The unique code representing the current customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The list of attributes to link to the customer. |

#### Unlink attributes from a customer

`PUT /api/v2/companies/{companyId}/customers/{customerCode}/attributes/unlink`

Unlink one or many attributes from a customer.
            
A customer may have multiple attributes that control its behavior.  You may link or unlink attributes to a
customer at any time.  The full list of defined attributes may be found using `QueryCompanyCustomerAttributes` API.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this customer object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded the customer |
| `customerCode` | string | path | Yes | The unique code representing the current customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The list of attributes to unlink from the customer. |

#### List certificates linked to a customer

`GET /api/v2/companies/{companyId}/customers/{customerCode}/certificates`

List all certificates linked to a customer.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this `customer` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.  You can specify one or more of the following:
            
             * customers - Retrieves the list of customers linked to the certificate.
             * po_numbers - Retrieves all PO numbers tied to the certificate.
             * attributes - Retrieves all attributes applied to the certificate.
             * histories - Retrieves the certificate update history
             * jobs - Retrieves the jobs for this certificate
             * logs - Retrieves the certificate log
             * invalid_reasons - Retrieves invalid reasons for this certificate if the certificate is invalid
             * custom_fields - Retrieves custom fields set for this certificate
             * jurisdictions - Retrieves the list of jurisdictions associated with the certificate |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* exemptionNumber, ecmsId, ecmsStatus, pdf, pages |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List valid certificates for a location

`GET /api/v2/companies/{companyId}/customers/{customerCode}/certificates/{country}/{region}`

List valid certificates linked to a customer in a particular country and region.
            
This API is intended to help identify whether a customer has already provided a certificate that
applies to a particular country and region.  This API is intended to help you remind a customer
when they have or have not provided copies of their exemption certificates to you during the sales
order process.
            
If a customer does not have a certificate on file and they wish to provide one, you should send the customer
a CertExpress invitation link so that the customer can upload proof of their exemption certificate.  Please
see the `CreateCertExpressInvitation` API to create an invitation link for this customer.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `country` | string | path | Yes | Search for certificates matching this country.  Uses the ISO 3166 two character country code. |
| `region` | string | path | Yes | Search for certificates matching this region.  Uses the ISO 3166 two or three character state, region, or province code. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieves a list of active certificates for a specified customer within a company.

`GET /api/v2/companies/{companyId}/customers/{customerCode}/certificates/active`

This API is intended to identify whether a customer has any active certificates.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieves a list of inactive certificates for a specified customer within a company.

`GET /api/v2/companies/{companyId}/customers/{customerCode}/certificates/inactive`

This API is used to retrieve inactive certificates for a customer. Inactive certificates may include expired,
revoked, or otherwise non-compliant certificates.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Link certificates to a customer

`POST /api/v2/companies/{companyId}/customers/{customerCode}/certificates/link`

Link one or more certificates to a customer.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this `customer` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The list of certificates to link to this customer |

#### Unlink certificates from a customer

`POST /api/v2/companies/{companyId}/customers/{customerCode}/certificates/unlink`

Remove one or more certificates to a customer.
            
A customer object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this `customer` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The list of certificates to link to this customer |

#### Retrieves a list of custom fields for a specified customer within a company.

`GET /api/v2/companies/{companyId}/customers/{customerCode}/custom-fields`

This API is used to retrieve custom field for a customer.
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update custom fields

`PUT /api/v2/companies/{companyId}/customers/{customerCode}/custom-fields`

Update the value of the custom field.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | Update custom fields request model |

#### Delete custom fields

`DELETE /api/v2/companies/{companyId}/customers/{customerCode}/custom-fields`

Deletes the value of the custom field.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this customer |
| `customerCode` | string | path | Yes | The unique code representing this customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | Delete custom fields request model |

#### Link two customer records together

`POST /api/v2/companies/{companyId}/customers/billto/{code}/shipto/link`

Links a Ship-To customer record with a Bill-To customer record.
            
Customer records represent businesses or individuals who can provide exemption certificates.  Some customers
may have certificates that are linked to their shipping address or their billing address.  To group these
customer records together, you may link multiple bill-to and ship-to addresses together to represent a single
entity that has multiple different addresses of different kinds.
            
In general, a customer will have only one primary billing address and multiple ship-to addresses, representing
all of the different locations where they receive goods.  To facilitate this type of customer, you can send in
one bill-to customer code and multiple ship-to customer codes in a single API call.
            
Note that you can only link a ship-to customer record to a bill-to customer record.  You may not link two customers
of the same kind together.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company defining customers. |
| `code` | string | path | Yes | The code of the bill-to customer to link. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | A list of information about ship-to customers to link to this bill-to customer. |


### DataSources

#### Retrieve all datasources for this company

`GET /api/v2/companies/{companyId}/datasources`

Gets multiple datasource objects for a given company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The id of the company you wish to retrieve the datasources. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* isEnabled, isSynced, isAuthorized, name, externalState |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create and store new datasources for the respective companies.

`POST /api/v2/companies/{companyId}/datasources`

Create one or more datasource objects.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The id of the company you which to create the datasources |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes |  |

#### Get data source by data source id

`GET /api/v2/companies/{companyId}/datasources/{id}`

Retrieve the data source by its unique ID number.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes |  |
| `id` | integer | path | Yes | data source id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a datasource identified by id for a company

`PUT /api/v2/companies/{companyId}/datasources/{id}`

Updates a datasource for a company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The id of the company the datasource belongs to. |
| `id` | integer | path | Yes | The id of the datasource you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes |  |

#### Delete a datasource by datasource id for a company.

`DELETE /api/v2/companies/{companyId}/datasources/{id}`

Marks the existing datasource for a company as deleted.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The id of the company the datasource belongs to. |
| `id` | integer | path | Yes | The id of the datasource you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all datasources

`GET /api/v2/datasources`

Get multiple datasource objects across all companies.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* isEnabled, isSynced, isAuthorized, name, externalState |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Definitions

#### Retrieve the list of Avalara-supported parameters based on account subscriptions.

`GET /api/v2/definitions/accounts/{accountId}/parameters`

Returns the list of Avalara-supported parameters based on account subscriptions.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account to retrieve the parameters. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* serviceTypes, regularExpression, attributeSubType, values |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of the AvaFile Forms available

`GET /api/v2/definitions/avafileforms`

This API is deprecated.
            
Please use the ListTaxForms API.
            
Returns the full list of Avalara-supported AvaFile Forms
This API is intended to be useful to identify all the different AvaFile Forms

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* outletTypeId |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List certificate attributes used by a company

`GET /api/v2/definitions/certificateattributes`

List the certificate attributes defined by a company either specified by the user or the user's default company.
            
A certificate may have multiple attributes that control its behavior.  You may apply or remove attributes to a
certificate at any time.
            
If you see the 'CertCaptureNotConfiguredError', please use CheckProvision and RequestProvision endpoints to
check and provision account.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | query | No | Id of the company the user wish to fetch the certificates' attributes from. If not specified the API will use user's default company. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List the certificate exempt reasons defined by a company

`GET /api/v2/definitions/certificateexemptreasons`

List the certificate exempt reasons defined by a company.
            
An exemption reason defines why a certificate allows a customer to be exempt
for purposes of tax calculation.
            
If you see the 'CertCaptureNotConfiguredError', please use CheckProvision and RequestProvision endpoints to
check and provision account.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List certificate exposure zones used by a company

`GET /api/v2/definitions/certificateexposurezones`

List the certificate exposure zones defined by a company.
            
An exposure zone is a location where a certificate can be valid.  Exposure zones may indicate a taxing
authority or other legal entity to which a certificate may apply.
            
If you see the 'CertCaptureNotConfiguredError', please use CheckProvision and RequestProvision endpoints to
check and provision account.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* id, companyId, name, tag, description, created, modified, region, country |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported usage of extra parameters for classification of a item.

`GET /api/v2/definitions/classification/parametersusage`

Returns the full list of Avalara-supported usage of extra parameters for item classification.
The list of parameters is available for use with Item Classification.
Some parameters are only available for use if you have subscribed to certain features of AvaTax.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* attributeSubType, values |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of communications transactiontypes

`GET /api/v2/definitions/communications/transactiontypes`

Returns full list of communications transaction types which
are accepted in communication tax calculation requests.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of communications service types

`GET /api/v2/definitions/communications/transactiontypes/{id}/servicetypes`

Returns full list of service types for a given transaction type ID.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The transaction type ID to examine |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* requiredParameters |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of communications transaction/service type pairs

`GET /api/v2/definitions/communications/tspairs`

Returns full list of communications transaction/service type pairs which
are accepted in communication tax calculation requests.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* requiredParameters |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the list of applicable regions by country tax type, tax sub type, and rate type for a given JurisdictionTypeId

`GET /api/v2/definitions/companies/{companyId}/countries/{country}/regions/taxtypes/{taxTypeId}/taxsubtypes/{taxSubTypeId}/rateTypeId/{rateTypeId}/jurisdictionTypeId/{jurisdictionTypeId}`

Returns a list of all ISO 3166 region codes for a specific country code and their US English friendly names.
This API is intended to be used as a way to provide a dropdown box in your website to allow customers to select a region
within the country for shipping addresses.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company for which you want to retrieve the applicable regions |
| `country` | string | path | Yes | The country for which you want to retrieve the regions |
| `taxTypeId` | string | path | Yes | The taxTypeId for which you want to retrieve the regions. Example values include Autimotive, tires, Lodging, S, U, I, O, All, etc. Run the "/api/v2/definitions/taxtypes/countries/{country}?companyId=" endpoint for a list of taxTypeId values. |
| `taxSubTypeId` | string | path | Yes | The taxSubType for which you want to retrieve the regions. Example values include Accommodations, BikeTax, IGST, S, U, All, etc. Run the "api/v2/definitions/taxsubtypes" endpoint for a list of taxSubTypes values. |
| `rateTypeId` | integer | path | Yes | The rateTypeId for which you want to retrieve the regions.
              Note: The rateTypeId is an integer. Run the "/api/v2/definitions/countries/{country}/taxtypes/{taxTypeId}/taxsubtypes/{taxSubTypeId}/ratetypes" endpoint for a list of rateTypeId values." |
| `jurisdictionTypeId` | string | path | Yes | The JurisdictionTypeId for which you want to retrieve the regions.
            This is a three-character string. Accepted values are ```CNT``` (country), ```STA``` (state), ```CTY``` (county), ```CIT``` (city), or ```STJ``` (special jurisdiction). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$scope` | string | query | No | Optional query parameter to filter system, custom content or all regions (default: System) |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all ISO 3166 countries

`GET /api/v2/definitions/countries`

Returns a list of ISO 3166 country codes based on the scope filter.
This API is intended to be useful when presenting a dropdown box in your website to allow customers to select a country for
a shipping address.
            
Scope options:
- Custom: Return only countries for which there is a TaxTypeMapping with IsCustomContent = true (requires subscription)
- All (default): Return all ISO 3166 countries

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* alpha3Code, isEuropeanUnion, localizedNames, addressesRequireRegion |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$scope` | string | query | No | Optional query parameter to filter by Custom or All countries (default: All) |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of rate types for each country

`GET /api/v2/definitions/countries/{country}/ratetypes`

Returns the full list of Avalara-supported rate type file types
This API is intended to be useful to identify all the different rate types.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The country to examine for rate types |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* country |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all ISO 3166 regions for a country

`GET /api/v2/definitions/countries/{country}/regions`

Returns a list of all ISO 3166 region codes for a specific country code, and their US English friendly names.
This API is intended to be useful when presenting a dropdown box in your website to allow customers to select a region
within the country for a shipping addresses.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The country of which you want to fetch ISO 3166 regions |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* localizedNames |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the list of rate types by country, TaxType and by TaxSubType

`GET /api/v2/definitions/countries/{country}/taxtypes/{taxTypeId}/taxsubtypes/{taxSubTypeId}/ratetypes`

Returns the list of Avalara-supported rate type file types
This API is intended to be useful to identify all the different rate types.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The country to examine for rate types |
| `taxTypeId` | string | path | Yes | The taxType for the country to examine for rate types |
| `taxSubTypeId` | string | path | Yes | The taxSubType for the country and taxType to examine for rate types |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* id, rateType, description |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$includeCustomContent` | boolean | query | No | Optional query parameter to include custom content rate types (default: false) |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List certificate exposure zones used by a company

`GET /api/v2/definitions/coverletters`

List available cover letters that can be used when sending invitation to use CertExpress to upload certificates.
            
The CoverLetter model represents a message sent along with an invitation to use CertExpress to
upload certificates.  An invitation allows customers to use CertExpress to upload their exemption
certificates directly; this cover letter explains why the invitation was sent.
            
If you see the 'CertCaptureNotConfiguredError', please use CheckProvision and RequestProvision endpoints to
check and provision account.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* id, companyId, subject, description, createdDate, modifiedDate, pageCount, templateFilename, version |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Lists the next level of HS Codes given a destination country and HS Code prefix.

`GET /api/v2/definitions/crossborder/{country}/{hsCode}`

Retrieves a list of HS Codes that are the children of the prefix for the given destination country, if
additional children are available.
            
HS Code is interchangeable with "tariff code" and definitions are generally unique to a destination country.
An HS Code describes an item and its eligibility/rate for tariffs. HS Codes are organized by
Section/Chapter/Heading/Subheading/Classification.
            
This API is intended to be useful to identify the correct HS Code to use for your item.

### Security Policies

* This API depends on the following active services:*Required* (all):  AvaTaxGlobal.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The name or code of the destination country. |
| `hsCode` | string | path | Yes | The Section or partial HS Code for which you would like to view the next level of HS Code detail, if more detail is available. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* hsCodeSource, system, destinationCountry, isDecisionNode, zeroPaddingCount, isSystemDefined, isTaxable, effDate, endDate, hsCodeSourceLength |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Lists all parents of an HS Code.

`GET /api/v2/definitions/crossborder/{country}/{hsCode}/hierarchy`

Retrieves the specified HS code and all of its parents, reflecting all sections, chapters, headings, and subheadings
            
a list of HS Codes that are the parents and information branches of the HS Code for the given
destination country, if lower detail is available.
            
This API will include information branches if applicable. These do not have HS Codes and cannot be referenced,
but can contain information relevant to deciding the correct HS Code.
            
This API is intended to be useful to review the descriptive hierarchy of an HS Code, which can be particularly helpful
when HS Codes can have multiple levels of generic descriptions.

### Security Policies

* This API depends on the following active services:*Required* (all):  AvaTaxGlobal.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The name or code of the destination country. |
| `hsCode` | string | path | Yes | The partial or full HS Code for which you would like to view all of the parents. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List top level HS Code Sections.

`GET /api/v2/definitions/crossborder/sections`

Returns the full list of top level HS Code Sections. Sections are the broadest level of detail for
classifying tariff codes and the items to which they apply. HS Codes are organized
by Section/Chapter/Heading/Subheading/Classification.
            
This API is intended to be useful to identify the top level Sections for
further LandedCost HS Code lookups.

### Security Policies

* This API depends on the following active services:*Required* (all):  AvaTaxGlobal.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all ISO 4217 currencies supported by AvaTax.

`GET /api/v2/definitions/currencies`

Lists all ISO 4217 currencies supported by AvaTax.
            
This API produces a list of currency codes that can be used when calling AvaTax.  The values from this API can be used to fill out the
`currencyCode` field in a `CreateTransactionModel`.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported entity use codes

`GET /api/v2/definitions/entityusecodes`

Returns the full list of Avalara-supported entity use codes.
Entity/Use Codes are definitions of the entity who is purchasing something, or the purpose for which the transaction
is occurring.  This information is generally used to determine taxability of the product.
In order to facilitate correct reporting of your taxes, you are encouraged to select the proper entity use codes for
all transactions that are exempt.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* validCountries |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported filing frequencies.

`GET /api/v2/definitions/filingfrequencies`

Returns the full list of Avalara-supported filing frequencies.
This API is intended to be useful to identify all the different filing frequencies that can be used in notices.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List of all event types that can be subscribed to for Item reverse sync webhook registrations.

`GET /api/v2/definitions/items/events`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List of all HS code classification statuses that can be assigned to an Item.

`GET /api/v2/definitions/items/hscode-classification-status`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List of all recommendation status which can be assigned to an item

`GET /api/v2/definitions/items/recommendationstatus`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List of all possible status which can be assigned to an item

`GET /api/v2/definitions/items/status`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List jurisdictions based on the filter provided

`GET /api/v2/definitions/jurisdictions`

Returns a list of all Avalara-supported taxing jurisdictions.
            
This API allows you to examine all Avalara-supported jurisdictions. You can filter your search by supplying
SQL-like query for fetching only the ones you concerned about. For example: effectiveDate > '2016-01-01'
            
The rate, salesRate, and useRate fields are not available on the JurisdictionModels returned by this API.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* rate, salesRate, signatureCode, useRate, isAcm, isSst, createDate, isLocalAdmin, taxAuthorityTypeId |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `companyId` | integer | query | No | Optional query parameter; when set, the result set is restricted to jurisdictions in regions
            where the company has nexus. When omitted, all jurisdiction rows are eligible before filter is applied. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List tax types, subtypes, and rate types applicable for a given jurisdiction

`GET /api/v2/definitions/jurisdictions/{country}/{region}/{jurisdictionTypeId}/{jurisdictionCode}/taxTypesAndSubTypes`

Returns a list of tax type and subtype groups, and optionally the available rate types for each group, applicable for a given jurisdiction.
            
This API lets you filter tax types and rate types based on whether they may apply in a given jurisdiction and provides a description of each.

If a company ID is provided, then only the tax types for which the company has nexus are shown.

If custom content is included, then all available custom tax types are included in the result if the calling user has the appropriate subscription
and the tax types are available in the jurisdiction's country.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | ISO country code (e.g. `US`) |
| `region` | string | path | Yes | ISO region or state/province code (e.g. `CA` for California) |
| `jurisdictionTypeId` | string | path | Yes | Jurisdiction type identifier (e.g. `STA` for state) |
| `jurisdictionCode` | string | path | Yes | Code identifying a specific jurisdiction |
| `companyId` | integer | query | No | Optional query parameter. When set, tax type/subtype pairs are filtered to those which correspond to the company's 
configured nexus. When omitted, no nexus-based filtering is applied. |
| `effectiveDate` | string | query | No | Optional query parameter. When companyId is not provided, this is the date used to filter
effective tax types and rate types. Defaults to the current date. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* rateTypes |
| `$includeCustomContent` | boolean | query | No | When true, merges in potentially applicable custom tax types and subtypes into result (i.e. for which no system content is defined). Defaults to false. |
| `$includeRateTypes` | boolean | query | No | Query parameter `$includeRateTypes`. When true (default), returns the rate types available for each tax type + subtype pair in the result. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List jurisdictions based on the provided taxTypeId, taxSubTypeId, country, and rateTypeId

`GET /api/v2/definitions/jurisdictions/countries/{country}/taxtypes/{taxTypeId}/taxsubtypes/{taxSubTypeId}`

Returns a list of all Avalara-supported taxing jurisdictions filtered by taxTypeId, taxSubTypeId, country, and rateTypeId.
            
You can optionally pass region as a query parameter to retrieve jurisdictions that are under that region.
            
This API allows you to examine all Avalara-supported jurisdictions. You can filter your search by supplying
SQL-like query for fetching only the ones you concerned about. For example: effectiveDate > '2016-01-01'
            
The jurisdictionType, effectiveDate, and endDate are filterable fields available on the JurisdictionRateTypeTaxTypeMappingModels returned by this API.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The country for which you want to retrieve the jurisdiction information |
| `taxTypeId` | string | path | Yes | The taxtype for which you want to retrieve the jurisdiction information |
| `taxSubTypeId` | string | path | Yes | The taxsubtype for which you want to retrieve the jurisdiction information |
| `rateTypeId` | integer | query | Yes | The ratetype for which you want to retrieve the jurisdiction information |
| `region` | string | query | No | The region for which you want to retrieve the jurisdiction information |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* id, country, state, jurisdictionCode, longName, taxTypeId, taxSubTypeId, taxTypeGroupId, rateTypeId, stateFips |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$includeCustomContent` | boolean | query | No | Optional query parameter to include custom content jurisdictions (default: false) |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List jurisdictions hierarchy based on the filter provided

`GET /api/v2/definitions/jurisdictions/hierarchy`

Returns a list of all Avalara-supported taxing jurisdictions hirearchy.
            
This API Lists the hierarchical relationship of jurisdictions for US states, identifying the cities and special taxing jurisdictions (STJs) for a given county within a state.
            
The rate, salesRate, and useRate fields are not available on the JurisdictionHirearchyModels returned by this API.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* parentId, nexus, rate, salesRate, signatureCode, useRate, isAcm, isSst, createDate, isLocalAdmin, taxAuthorityTypeId |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List jurisdictions near a specific address

`GET /api/v2/definitions/jurisdictionsnearaddress`

Returns a list of all Avalara-supported taxing jurisdictions that apply to this address.
            
This API allows you to identify which jurisdictions are nearby a specific address according to the best available geocoding information.
It is intended to allow you to create a "Jurisdiction Override", which allows an address to be configured as belonging to a nearby
jurisdiction in AvaTax.
            
The results of this API call can be passed to the `CreateJurisdictionOverride` API call.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `line1` | string | query | No | The first address line portion of this address. |
| `line2` | string | query | No | The second address line portion of this address. |
| `line3` | string | query | No | The third address line portion of this address. |
| `city` | string | query | No | The city portion of this address. |
| `region` | string | query | No | The region, state, or province code portion of this address. |
| `postalCode` | string | query | No | The postal code or zip code portion of this address. |
| `country` | string | query | Yes | The two-character ISO-3166 code of the country portion of this address. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* country, Jurisdictions |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List jurisdiction types based on the provided taxTypeId, taxSubTypeId, country, and rateTypeId

`GET /api/v2/definitions/jurisdictionTypes/countries/{country}/taxtypes/{taxTypeId}/taxsubtypes/{taxSubTypeId}`

Returns a list of all applicable jurisdiction types based on country, taxTypeId, taxSubTypeId, and rateTypeId

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The country for which you want to retrieve the jurisdiction information |
| `taxTypeId` | string | path | Yes | The taxtype for which you want to retrieve the jurisdiction information |
| `taxSubTypeId` | string | path | Yes | The taxsubtype for which you want to retrieve the jurisdiction information |
| `rateTypeId` | string | query | Yes | The ratetype for which you want to retrieve the jurisdiction information |
| `$includeCustomContent` | boolean | query | No | Optional query parameter to include custom content jurisdiction types (default: false) |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all market place locations.

`GET /api/v2/definitions/listallmarketplacelocations`

List all market place locations.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the list of questions that are required for a tax location

`GET /api/v2/definitions/locationquestions`

Returns the list of additional questions you must answer when declaring a location in certain taxing jurisdictions.
Some tax jurisdictions require that you register or provide additional information to configure each physical place where
your company does business.
This information is not usually required in order to calculate tax correctly, but is almost always required to file your tax correctly.
You can call this API call for any address and obtain information about what questions must be answered in order to properly
file tax in that location.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `line1` | string | query | No | The first line of this location's address. |
| `line2` | string | query | No | The second line of this location's address. |
| `line3` | string | query | No | The third line of this location's address. |
| `city` | string | query | No | The city part of this location's address. |
| `region` | string | query | No | The region, state, or province part of this location's address. |
| `postalCode` | string | query | No | The postal code of this location's address. |
| `country` | string | query | No | The country part of this location's address. |
| `latitude` | number | query | No | Optionally identify the location via latitude/longitude instead of via address. |
| `longitude` | number | query | No | Optionally identify the location via latitude/longitude instead of via address. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the list of locations for a marketplace.

`GET /api/v2/definitions/marketplacelocations`

Retrieves the list of suggested locations for a marketplace.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `marketplaceId` | string | query | Yes | MarketplaceId of a marketplace |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported nexus for all countries and regions.

`GET /api/v2/definitions/nexus`

Returns the full list of all Avalara-supported nexus for all countries and regions.
            
This API is intended to be useful if your user interface needs to display a selectable list of nexus.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* streamlinedSalesTax, isSSTActive, taxTypeGroup, taxAuthorityId, taxName, parameters |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported nexus for a country.

`GET /api/v2/definitions/nexus/{country}`

Returns all Avalara-supported nexus for the specified country.
            
This API is intended to be useful if your user interface needs to display a selectable list of nexus filtered by country.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The country in which you want to fetch the system nexus |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* streamlinedSalesTax, isSSTActive, taxTypeGroup, taxAuthorityId, taxName, parameters |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported nexus for a country and region.

`GET /api/v2/definitions/nexus/{country}/{region}`

Returns all Avalara-supported nexus for the specified country and region.
            
This API is intended to be useful if your user interface needs to display a selectable list of nexus filtered by country and region.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The two-character ISO-3166 code for the country. |
| `region` | string | path | Yes | The two or three character region code for the region. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* streamlinedSalesTax, isSSTActive, taxTypeGroup, taxAuthorityId, taxName, parameters |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all nexus that apply to a specific address.

`GET /api/v2/definitions/nexus/byaddress`

Returns a list of all Avalara-supported taxing jurisdictions that apply to this address.
This API allows you to identify which tax authorities apply to a physical location, salesperson address, or point of sale.
In general, it is usually expected that a company will declare nexus in all the jurisdictions that apply to each physical address
where the company does business.
The results of this API call can be passed to the 'Create Nexus' API call to declare nexus for this address.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `line1` | string | query | No | The first address line portion of this address. |
| `line2` | string | query | No | The first address line portion of this address. |
| `line3` | string | query | No | The first address line portion of this address. |
| `city` | string | query | No | The city portion of this address. |
| `region` | string | query | Yes | Name or ISO 3166 code identifying the region portion of the address.
            
             This field supports many different region identifiers:
              * Two and three character ISO 3166 region codes
              * Fully spelled out names of the region in ISO supported languages
              * Common alternative spellings for many regions
            
             For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `postalCode` | string | query | No | The postal code or zip code portion of this address. |
| `country` | string | query | Yes | Name or ISO 3166 code identifying the country portion of this address.
            
             This field supports many different country identifiers:
              * Two character ISO 3166 codes
              * Three character ISO 3166 codes
              * Fully spelled out names of the country in ISO supported languages
              * Common alternative spellings for many countries
            
             For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* streamlinedSalesTax, isSSTActive, taxTypeGroup, taxAuthorityId, taxName, parameters |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List nexus related to a tax form

`GET /api/v2/definitions/nexus/byform/{formCode}`

Retrieves a list of nexus related to a tax form.
            
The concept of `Nexus` indicates a place where your company has sufficient physical presence and is obligated
to collect and remit transaction-based taxes.
            
When defining companies in AvaTax, you must declare nexus for your company in order to correctly calculate tax
in all jurisdictions affected by your transactions.
            
This API is intended to provide useful information when examining a tax form.  If you are about to begin filing
a tax form, you may want to know whether you have declared nexus in all the jurisdictions related to that tax
form in order to better understand how the form will be filled out.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `formCode` | string | path | Yes | The form code that we are looking up the nexus for |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported nexus for a tax type group.

`GET /api/v2/definitions/nexus/bytaxtypegroup/{taxTypeGroup}`

Returns all Avalara-supported nexus for the specified specified tax type group.
            
This API is intended to be useful if your user interface needs to display a selectable list of nexus filtered by tax type group.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `taxTypeGroup` | string | path | Yes | The tax type group to fetch the supporting system nexus for. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* streamlinedSalesTax, isSSTActive, taxTypeGroup, taxAuthorityId, taxName, parameters |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of nexus tax type groups

`GET /api/v2/definitions/nexustaxtypegroups`

Returns the full list of Avalara-supported nexus tax type groups
This API is intended to be useful to identify all the different tax sub-types.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* subscriptionTypeId, subscriptionDescription, tabName, showColumn |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax notice customer funding options.

`GET /api/v2/definitions/noticecustomerfundingoptions`

Returns the full list of Avalara-supported tax notice customer funding options.
This API is intended to be useful to identify all the different notice customer funding options that can be used in notices.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* activeFlag, sortOrder |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax notice customer types.

`GET /api/v2/definitions/noticecustomertypes`

Returns the full list of Avalara-supported tax notice customer types.
This API is intended to be useful to identify all the different notice customer types.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* activeFlag, sortOrder |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax notice filing types.

`GET /api/v2/definitions/noticefilingtypes`

Returns the full list of Avalara-supported tax notice filing types.
This API is intended to be useful to identify all the different notice filing types that can be used in notices.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* description, activeFlag, sortOrder |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax notice priorities.

`GET /api/v2/definitions/noticepriorities`

Returns the full list of Avalara-supported tax notice priorities.
This API is intended to be useful to identify all the different notice priorities that can be used in notices.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* activeFlag, sortOrder |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax notice reasons.

`GET /api/v2/definitions/noticereasons`

Returns the full list of Avalara-supported tax notice reasons.
This API is intended to be useful to identify all the different tax notice reasons.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* description, activeFlag, sortOrder |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax notice responsibility ids

`GET /api/v2/definitions/noticeresponsibilities`

Returns the full list of Avalara-supported tax notice responsibility ids
This API is intended to be useful to identify all the different tax notice responsibilities.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* sortOrder |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax notice root causes

`GET /api/v2/definitions/noticerootcauses`

Returns the full list of Avalara-supported tax notice root causes
This API is intended to be useful to identify all the different tax notice root causes.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* sortOrder |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax notice statuses.

`GET /api/v2/definitions/noticestatuses`

Returns the full list of Avalara-supported tax notice statuses.
This API is intended to be useful to identify all the different tax notice statuses.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* isOpen, sortOrder, activeFlag |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax notice types.

`GET /api/v2/definitions/noticetypes`

Returns the full list of Avalara-supported tax notice types.
This API is intended to be useful to identify all the different notice types that can be used in notices.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* activeFlag, sortOrder |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported extra parameters for creating transactions.

`GET /api/v2/definitions/parameters`

Returns the full list of Avalara-supported extra parameters for the 'Create Transaction' API call.
This list of parameters is available for use when configuring your transaction.
Some parameters are only available for use if you have subscribed to certain features of AvaTax.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* serviceTypes, regularExpression, attributeSubType, values |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the parameters by companyCode and itemCode.

`GET /api/v2/definitions/parameters/byitem/{companyCode}/{itemCode}`

Returns the list of parameters based on the company's service types and the item code.
Ignores nexus if a service type is configured in the 'IgnoreNexusForServiceTypes' configuration section.
Ignores nexus for the AvaAlcohol service type.
            
NOTE: If your company code or item code contains any of these characters /, +, ? or a space, please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: 'Company/Code' becomes 'Company_-ava2f-_Code'
* Replace '+' with '\_-ava2b-\_'  For example: 'Company+Code' becomes 'Company_-ava2b-_Code'
* Replace '?' with '\_-ava3f-\_'  For example: 'Company?Code' becomes 'Company_-ava3f-_Code'
* Replace '%' with '\_-ava25-\_'  For example: 'Company%Code' becomes 'Company_-ava25-_Code'
* Replace '#' with '\_-ava23-\_'  For example: 'Company#Code' becomes 'Company_-ava23-_Code'
            
For Item Code other than the five given above below two should also be used
* Replace ''' with '\_-ava27-\_'  For example: 'Item'Code' becomes 'Item_-ava27-_Code'
* Replace '"' with '\_-ava22-\_'  For example: 'Item"Code' becomes 'Item_-ava22-_Code'

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | Company code. |
| `itemCode` | string | path | Yes | Item code. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* serviceTypes, regularExpression, attributeSubType, values |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported usage of extra parameters for creating transactions.

`GET /api/v2/definitions/parametersusage`

Returns the full list of Avalara-supported usage of extra parameters for the 'Create Transaction' API call.
This list of parameters is available for use when configuring your transaction.
Some parameters are only available for use if you have subscribed to certain features of AvaTax.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* attributeSubType, values, valueDescriptions |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported permissions

`GET /api/v2/definitions/permissions`

Returns the full list of Avalara-supported permission types.
This API is intended to be useful to identify the capabilities of a particular user logon.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported postal codes.

`GET /api/v2/definitions/postalcodes`

Retrieves the list of Avalara-supported postal codes.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `includeExpiredPostalCodes` | boolean | query | No | If set to true, returns expired postal codes. Defaults to false |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all customs duty programs recognized by AvaTax

`GET /api/v2/definitions/preferredprograms`

List all preferred customs duty programs recognized by AvaTax.
            
A customs duty program is an optional program you can use to obtain favorable treatment from customs and duty agents.
An example of a preferred program is NAFTA, which provides preferential rates for products being shipped from neighboring
countries.
            
To select a preferred program for calculating customs and duty rates, call this API to find the appropriate code for your
preferred program.  Next, set the parameter `AvaTax.LC.PreferredProgram` in your `CreateTransaction` call to the code of
the program.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* effectiveDate, endDate |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all available product classification systems.

`GET /api/v2/definitions/productclassificationsystems`

List all available product classification systems.
            
Tax authorities use product classification systems as a way to identify products and associate them with a tax rate.
More than one tax authority might use the same product classification system, but they might charge different tax rates for products.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* countries |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$countryCode` | string | query | No | If not null, return all records with this code. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all product classification systems available to a company based on its nexus.

`GET /api/v2/definitions/productclassificationsystems/bycompany/{companyCode}`

Lists all product classification systems available to a company based on its nexus.
            
Tax authorities use product classification systems as a way to identify products and associate them with a tax rate.
More than one tax authority might use the same product classification system, but they might charge different tax rates for products.
            
            
NOTE: If your company code contains any of these characters /, +, ? or a space, please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: 'Company/Code' becomes 'Company_-ava2f-_Code'
* Replace '+' with '\_-ava2b-\_'  For example: 'Company+Code' becomes 'Company_-ava2b-_Code'
* Replace '?' with '\_-ava3f-\_'  For example: 'Company?Code' becomes 'Company_-ava3f-_Code'
* Replace '%' with '\_-ava25-\_'  For example: 'Company%Code' becomes 'Company_-ava25-_Code'
* Replace '#' with '\_-ava23-\_'  For example: 'Company#Code' becomes 'Company_-ava23-_Code'

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* countries |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$countryCode` | string | query | No | If not null, return all records with this code. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all ISO 3166 regions

`GET /api/v2/definitions/regions`

Returns a list of all ISO 3166 region codes and their US English friendly names.
This API is intended to be useful when presenting a dropdown box in your website to allow customers to select a region
within the country for a shipping addresses.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* localizedNames |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported usage of parameters used for returns.

`GET /api/v2/definitions/returns/parametersusage`

Returns the full list of Avalara-supported usage of extra parameters for the returns.
This list of parameters is available for use with Returns.
Some parameters are only available for use if you have subscribed to certain features of AvaTax.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* attributeSubType, values |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported permissions

`GET /api/v2/definitions/securityroles`

Returns the full list of Avalara-supported permission types.
This API is intended to be useful when designing a user interface for selecting the security role of a user account.
Some security roles are restricted for Avalara internal use.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported subscription types

`GET /api/v2/definitions/subscriptiontypes`

Returns the full list of Avalara-supported subscription types.
This API is intended to be useful for identifying which features you have added to your account.
You may always contact Avalara's sales department for information on available products or services.
You cannot change your subscriptions directly through the API.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* system, taxTypeGroupIdSK |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the list all tags supported by avalara

`GET /api/v2/definitions/tags`

Retrieves the list of suggested locations for a marketplace.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax authorities.

`GET /api/v2/definitions/taxauthorities`

Returns the full list of Avalara-supported tax authorities.
This API is intended to be useful to identify all the different authorities that receive tax.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported forms for each tax authority.

`GET /api/v2/definitions/taxauthorityforms`

Returns the full list of Avalara-supported forms for each tax authority.
This list represents tax forms that Avalara recognizes.
Customers who subscribe to Avalara Managed Returns Service can request these forms to be filed automatically
based on the customer's AvaTax data.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax authority types.

`GET /api/v2/definitions/taxauthoritytypes`

Returns the full list of Avalara-supported tax authority types.
This API is intended to be useful to identify all the different authority types.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax codes.

`GET /api/v2/definitions/taxcodes`

Retrieves the list of Avalara-supported system tax codes.
A 'TaxCode' represents a uniquely identified type of product, good, or service.
Avalara supports correct tax rates and taxability rules for all TaxCodes in all supported jurisdictions.
If you identify your products by tax code in your 'Create Transaction' API calls, Avalara will correctly calculate tax rates and
taxability rules for this product in all supported jurisdictions.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of Avalara-supported tax code types.

`GET /api/v2/definitions/taxcodetypes`

Returns the full list of recognized tax code types.
A 'Tax Code Type' represents a broad category of tax codes, and is less detailed than a single TaxCode.
This API is intended to be useful for broadly searching for tax codes by tax code type.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of the Tax Forms available

`GET /api/v2/definitions/taxforms`

Returns the full list of Avalara-supported Tax Forms
This API is intended to be useful to identify all the different Tax Forms

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of tax sub types

`GET /api/v2/definitions/taxsubtypes`

Returns the full list of Avalara-supported tax sub-types
This API is intended to be useful to identify all the different tax sub-types.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of tax sub types by jurisdiction code and region

`GET /api/v2/definitions/taxsubtypes/{jurisdictionCode}/{region}`

Returns the full list of Avalara-supported tax sub-types by jurisdiction and region
This API is intended to be useful to identify all the different tax sub-types.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `jurisdictionCode` | string | path | Yes | The jurisdiction code of the tax sub type. |
| `region` | string | path | Yes | The region of the tax sub type. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of tax sub types by Country and TaxType

`GET /api/v2/definitions/taxsubtypes/countries/{country}/taxtypes/{taxTypeId}`

Returns the full list of Avalara-supported tax sub-types
This API is intended to be useful to identify all the different tax sub-types for given country and TaxType.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The country to examine for taxsubtype |
| `taxTypeId` | string | path | Yes | The taxType for the country to examine for taxsubtype |
| `companyId` | integer | query | Yes | Id of the company the user wish to fetch the applicable tax sub types |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$scope` | string | query | No | Optional query parameter to filter by System, Custom or All tax sub types (default: System) |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the full list of tax type groups

`GET /api/v2/definitions/taxtypegroups`

Returns the full list of Avalara-supported tax type groups
This API is intended to be useful to identify all the different tax type groups.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* subscriptionTypeId, subscriptionDescription, tabName, showColumn, displaySequence |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the list of applicable TaxTypes

`GET /api/v2/definitions/taxtypes/countries/{country}`

Retrieves the list of applicable TaxTypes based on Nexus of the company.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The country for which you want to retrieve the unitofbasis information |
| `companyId` | integer | query | Yes | Your companyId to retrieve the applicable taxtypes |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$scope` | string | query | No | Optional query parameter to filter by System, Custom or All tax types (default: System) |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the list of all valid unit of basis

`GET /api/v2/definitions/unitofbasis`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* attributesUsed |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the list of applicable UnitOfBasis

`GET /api/v2/definitions/unitofbasis/countries/{country}/taxtypes/{taxTypeId}/taxsubtypes/{taxSubTypeId}`

Retrieves the list of applicable UnitOfBasis

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | The country for which you want to retrieve the unitofbasis information |
| `taxTypeId` | string | path | Yes | The taxtype for which you want to retrieve the unitofbasis information |
| `taxSubTypeId` | string | path | Yes | The taxsubtype for which you want to retrieve the unitofbasis information |
| `rateTypeId` | string | query | Yes | The ratetype for which you want to retrieve the unitofbasis information |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all defined units of measurement

`GET /api/v2/definitions/unitofmeasurements`

List all units of measurement systems defined by Avalara.
            
A unit of measurement system is a method of measuring a quantity, such as distance, mass, or others.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* id |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### DistanceThresholds

#### Retrieve all DistanceThresholds for this company.

`GET /api/v2/companies/{companyId}/distancethresholds`

Lists all DistanceThreshold objects that belong to this company.
            
A company-distance-threshold model indicates the distance between a company
and the taxing borders of various countries.  Distance thresholds are necessary
to correctly calculate some value-added taxes.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company whose DistanceThreshold objects you wish to list. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create one or more DistanceThreshold objects

`POST /api/v2/companies/{companyId}/distancethresholds`

Create one or more DistanceThreshold objects for this company.
            
A company-distance-threshold model indicates the distance between a company
and the taxing borders of various countries.  Distance thresholds are necessary
to correctly calculate some value-added taxes.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that owns this DistanceThreshold |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The DistanceThreshold object or objects you wish to create. |

#### Retrieve a single DistanceThreshold

`GET /api/v2/companies/{companyId}/distancethresholds/{id}`

Retrieves a single DistanceThreshold object defined by this URL.
            
A company-distance-threshold model indicates the distance between a company
and the taxing borders of various countries.  Distance thresholds are necessary
to correctly calculate some value-added taxes.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this DistanceThreshold object |
| `id` | integer | path | Yes | The unique ID number referring to this DistanceThreshold object |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a DistanceThreshold object

`PUT /api/v2/companies/{companyId}/distancethresholds/{id}`

Replace the existing DistanceThreshold object at this URL with an updated object.
            
A company-distance-threshold model indicates the distance between a company
and the taxing borders of various countries.  Distance thresholds are necessary
to correctly calculate some value-added taxes.
            
All data from the existing object will be replaced with data in the object you PUT.
To set a field's value to null, you may either set its value to null or omit that field from the object you post.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that owns this DistanceThreshold object. |
| `id` | integer | path | Yes | The unique ID number of the DistanceThreshold object to replace. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The new DistanceThreshold object to store. |

#### Delete a single DistanceThreshold object

`DELETE /api/v2/companies/{companyId}/distancethresholds/{id}`

Marks the DistanceThreshold object identified by this URL as deleted.
            
A company-distance-threshold model indicates the distance between a company
and the taxing borders of various countries.  Distance thresholds are necessary
to correctly calculate some value-added taxes.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that owns this DistanceThreshold |
| `id` | integer | path | Yes | The unique ID number of the DistanceThreshold object you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all DistanceThreshold objects

`GET /api/v2/distancethresholds`

Lists all DistanceThreshold objects that belong to this account.
            
A company-distance-threshold model indicates the distance between a company
and the taxing borders of various countries.  Distance thresholds are necessary
to correctly calculate some value-added taxes.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### DomainControlVerification

#### Get domain control verifications by logged in user/domain name.

`GET /api/v2/domain-control-verifications`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* Id, Context, Token, Status, EmailId |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create Domain control verification

`POST /api/v2/domain-control-verifications`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No |  |

#### Get domain control verification by domainControlVerificationId

`GET /api/v2/domain-control-verifications/{domainControlVerificationId}`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `domainControlVerificationId` | string | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### EcmEventNotifications

#### Retrieve AFC event notifications

`GET /api/v2/event-notifications/afc`

### Security Policies

* This API depends on the following active services:*Required* (all):  ECMPremiumComms, ECMProComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `isDlq` | boolean | query | No | Specify `true` to retrieve event notifications from the dead letter queue; otherwise, specify `false`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Delete AFC event notifications.

`DELETE /api/v2/event-notifications/afc`

### Security Policies

* This API depends on the following active services:*Required* (all):  ECMPremiumComms, ECMProComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `isDlq` | boolean | query | No | Specify `true` to delete event notifications from the dead letter queue; otherwise, specify `false`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Details of the event you want to delete. |

#### Retrieve company event notifications.

`GET /api/v2/event-notifications/companies/{companyId}`

### Security Policies

* This API depends on the following active services:*Required* (all):  ECMPro, ECMPremium.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded these event notifications. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Delete company event notifications

`DELETE /api/v2/event-notifications/companies/{companyId}`

### Security Policies

* This API depends on the following active services:*Required* (all):  ECMPro, ECMPremium.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded these event notifications. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Details of the event you want to delete. |


### ECommerceToken

#### Create a new ecommerce token.

`POST /api/v2/companies/{companyId}/ecommercetokens`

Creates a new ecommerce token.
            
This API is used to create a new ecommerce token. An ecommerce token is required in order to launch the ECM/CertCapture ecommerce plugin. Create a separate token for each of your ECM/CertCapture customers.

Use the SDK to embed ECM’s document submission form into your ecommerce platform or online store. Once the token is created, place the returned token value for that customer record in the token field in your ecommerce SDK code. This allows customers to manage their exemption certificates before or after making the purchase. More information is available in the [ECM/CertCapture integration guide](https://developer.avalara.com/document-management/set-up-ecm-for-ecommerce/ecm-in-ecom-environments/).

You can also use the [ecommerce Plugin Demo](https://developer.avalara.com/certcapture/cert-demo/) on developer.avalara.com to test generating a token. Using your AvaTax username and password, try generating the token and combining it with various parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company ID that will be issued this certificate. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes |  |

#### Refresh an eCommerce token.

`PUT /api/v2/companies/{companyId}/ecommercetokens`

Refresh an eCommerce token.
            
CertCapture eCommerce tokens expire after one hour. This API is used to refresh an eCommerce token that is about to expire. This API can only be used with active tokens. If your token has expired, you must generate a new one.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company ID that the refreshed certificate belongs to. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes |  |


### EcoNexusThreshold

#### Get economic nexus threshold statuses for a company

`GET /api/v2/companies/{companyId}/econexusthresholds`

Returns precomputed economic nexus threshold statuses for a company, sourced from an in-memory
cache refreshed periodically from Snowflake. All responses are served from cache;
Snowflake is never queried on the request path.
            
When the optional `region` query parameter is provided, only the matching jurisdiction row
is included in `states`. If no row exists for that company and region, `states` is
an empty array (200 OK).
            
When `lastRefreshedAt` is absent from the response, the cache has not yet completed its
first refresh; callers should treat absence as "cache freshness unknown".
            
Production traffic is served by TPS; api-gateway should route this path to TPS.
            
This endpoint requires the `NexusFetch` permission. If EcoNexus is not configured in TPS,
a 503 is returned with no `Retry-After` (misconfiguration requires redeployment).
If the cache is still initializing, a 503 is returned with `Retry-After: 300`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The Avalara company identifier. |
| `region` | string | query | No | Optional two-letter US state postal code to filter results (case-insensitive).
             When provided, `states` contains at most one item; if there is no data for that company
             and region, `states` is an empty array (200 OK). Must be exactly two characters; otherwise returns 400.
             Matches the `region` field on each item in the response. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### FirmClientLinkages

#### List client linkages for a firm or client

`GET /api/v2/firmclientlinkages`

This API enables the firm or account users to request the associated linkages to the account.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* firmAccountName, clientAccountName |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Links a firm account with the client account

`POST /api/v2/firmclientlinkages`

This API enables the firm admins/firm users to request the linkage of a firm account and a client account.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | FirmClientLinkageInputModel |

#### Update a full FirmClientLinkage record

`PUT /api/v2/firmclientlinkages`

Avalara allow updating the firm client linkage as a pass thru call.
Firms can create accounts of FirmClient for customers they are managing using this API.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | FirmClientLinkage record |

#### Get linkage between a firm and client by id

`GET /api/v2/firmclientlinkages/{id}`

This API enables the firm admins/firm users to request the linkage of a firm account and a client account.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Delete a linkage

`DELETE /api/v2/firmclientlinkages/{id}`

This API marks a linkage between a firm and client as deleted.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Approves linkage to a firm for a client account

`POST /api/v2/firmclientlinkages/{id}/approve`

This API enables the account admin of a client account to approve linkage request by a firm.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Rejects linkage to a firm for a client account

`POST /api/v2/firmclientlinkages/{id}/reject`

This API enables the account admin of a client account to reject linkage request by a firm.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Reset linkage status between a client and firm back to requested

`POST /api/v2/firmclientlinkages/{id}/reset`

This API enables the firm admin of a client account to reset a previously created linkage request by a firm.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Revokes previously approved linkage to a firm for a client account

`POST /api/v2/firmclientlinkages/{id}/revoke`

This API enables the account admin of a client account to revoke a previously approved linkage request by a firm.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Request a new FirmClient account and create an approved linkage to it

`POST /api/v2/firmclientlinkages/createandlinkclient`

This API is for use by Firms only.
            
Avalara allows firms to manage returns for clients without the clients needing to use AvaTax service.
Firms can create accounts of FirmClient for customers they are managing using this API.
            
Calling this API creates an account with the specified product subscriptions, but without a new user for account.
Account is then linked to the Firm so they can managed their returns.
You should call this API when a customer does not have an AvaTax account and is to be managed only by the firm.
            
The created account will be created in `Active` status but there will be no user or license key associated with account.

### Security Policies

* This API requires one of the following user roles: FirmAdmin, Registrar, SiteAdmin, SystemAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Information about the account you wish to create. |

#### Insert a full FirmClientLinkage record

`POST /api/v2/firmclientlinkages/insert`

Avalara allows firms to manage returns for clients without the clients needing to use AvaTax service.
Firms can create accounts of FirmClient for customers they are managing using this API.

### Security Policies

* This API requires one of the following user roles: BatchServiceAdmin, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | FirmClientLinkage record |


### FormTypeMapping

#### Resolves a form type to an extraction task identifier.

`GET /api/v2/form-type-mappings/resolve-task`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `form_type` | string | query | No | The form type to resolve (e.g., "W-9"). |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### FundingRequests

#### Retrieve status about a funding setup request

`GET /api/v2/fundingrequests/{id}`

This API is available by invitation only.
Companies that use the Avalara Managed Returns or the SST Certified Service Provider services are
required to setup their funding configuration before Avalara can begin filing tax returns on their
behalf.
Funding configuration for each company is set up by submitting a funding setup request, which can
be sent either via email or via an embedded HTML widget.
When the funding configuration is submitted to Avalara, it will be reviewed by treasury team members
before approval.
This API checks the status on an existing funding request.
This API requires a subscription to Avalara Managed Returns or SST Certified Service Provider.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The unique ID number of this funding request |
| `businessUnit` | string | query | No | The company's business unit |
| `subscriptionType` | string | query | No | The company's subscription type |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Request the javascript for a funding setup widget

`GET /api/v2/fundingrequests/{id}/widget`

This API is available by invitation only.
Companies that use the Avalara Managed Returns or the SST Certified Service Provider services are
required to setup their funding configuration before Avalara can begin filing tax returns on their
behalf.
Funding configuration for each company is set up by submitting a funding setup request, which can
be sent either via email or via an embedded HTML widget.
When the funding configuration is submitted to Avalara, it will be reviewed by treasury team members
before approval.
This API returns back the actual javascript code to insert into your application to render the
JavaScript funding setup widget inline.
Use the 'methodReturn.javaScript' return value to insert this widget into your HTML page.
This API requires a subscription to Avalara Managed Returns or SST Certified Service Provider.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The unique ID number of this funding request |
| `businessUnit` | string | query | No | The company's business unit |
| `subscriptionType` | string | query | No | The company's subscription type |
| `currency` | string | query | No | Currency |
| `agreementType` | string | query | No | Agreement Type |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### GLAccount

#### Retrieve GL accounts for this company

`GET /api/v2/companies/{companyid}/glaccounts`

Retrieves a list of GL accounts attached to this company. You can apply filters to retrieve specific records.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns these GL accounts |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* companyId, meta, defaultItem |
| `$include` | string | query | No | A comma separated list of objects to fetch underneath this company. Any object with a URL path underneath this company can be fetched by specifying its name. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new GL account

`POST /api/v2/companies/{companyid}/glaccounts`

Creates one or more new GL account objects attached to this company.

A GL account is a general ledger account that can be passed to transactions at the line level to apply the multiple rules of the transactions, including exemptions, allocations, etc. to a specific general ledger.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this GL Account object |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The GL Account you want to create |

#### Retrieve a single GL account

`GET /api/v2/companies/{companyid}/glaccounts/{glaccountid}`

Retrieve details of a single GL account identified by its `glaccountid` and `companyid`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this GL account object |
| `glaccountid` | integer | path | Yes | The primary key of this GL account |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single GL account

`PUT /api/v2/companies/{companyid}/glaccounts/{glaccountid}`

Updates a single GL account owned by the company. Use the glaccountid path parameter to identify the GL account to update.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this GL Account object |
| `glaccountid` | integer | path | Yes | The primary key of this GL Account |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The GL account object you want to update |

#### Delete the GL account associated with the given company ID and GL account ID

`DELETE /api/v2/companies/{companyid}/glaccounts/{glaccountid}`

Deletes the GL account associated with the specified `glaccountid` and `companyid`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this GL account object |
| `glaccountid` | integer | path | Yes | The primary key of this GL account |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Bulk upload GL accounts

`POST /api/v2/companies/{companyid}/glaccounts/$upload`

Allows a bulk upload of GL accounts for the specified company. Use the companyid path parameter to identify the company for which the GL accounts should be uploaded.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyid` | integer | path | Yes | The ID of the company that owns this GL account object |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The GL account bulk upload model. |


### Items

#### Get the real-time tax code recommendations for the specified items without saving item data.

`POST /api/v2/companies/{companyId}/$taxcode-recommendations`

Provides immediate tax code recommendations for item details submitted in the request. Item data is processed only for recommendation purposes and is not persisted.
            
Maximum items per request: 50 (subject to change).

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID of the company. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The list of items to analyze for tax code recommendations (maximum 50). |

#### Create a new tax code classification request

`POST /api/v2/companies/{companyId}/classificationrequests/taxcode`

Creates a new tax code classification request.
            
Avalara AvaTax system tax codes represent various goods and services classified by industry or consumer categories and
major physical similarities. Taxability rules are associated with tax codes. Customers can map their Items to tax codes
allowing them to take advantage of thousands of tax rules in the AvaTax engine resulting in accurate taxability determinations.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that creates this request. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The request you wish to create. |

#### Create or update items from a product catalog.

`POST /api/v2/companies/{companyId}/itemcatalogue`

Creates/updates one or more item objects with additional properties and the AvaTax category attached to this company.
            
Recommended number of items to create/update in a single call is upto 100.
            
Currently, the maximum number of items that can be created/updated in a single call is 1000 (This limit is subject to change).
            
Items are a way of separating your tax calculation process from your tax configuration details. Use this endpoint to create
a new or update an existing item. This can be used to sync the items with Avalara. For example, an accounting software
system can use this to sync all their items from an ERP with Avalara.
            
Parameters and Classifications can be added with the Item.
            
Please provide all the countries parameter values as a valid two letter ISO-3166 country code.
Refer to 'ListCountries' api to get valid country code for any country if needed.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The items you want to create or update. |

#### Delete a single item

`DELETE /api/v2/companies/{companyId}/itemcatalogue/{itemCode}`

Deletes the item object at this URL.
            
Items are a way of separating your tax calculation process from your tax configuration details.
Use this endpoint to delete an existing item with item code.
            
Deleting an item will also delete the parameters, classifications, and product categories associated with that item.
            
NOTE: If your item code contains any of these characters /, +, ? or a space, please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: 'Item/Code' becomes 'Item_-ava2f-_Code'
* Replace '+' with '\_-ava2b-\_'  For example: 'Item+Code' becomes 'Item_-ava2b-_Code'
* Replace '?' with '\_-ava3f-\_'  For example: 'Item?Code' becomes 'Item_-ava3f-_Code'
* Replace '%' with '\_-ava25-\_'  For example: 'Item%Code' becomes 'Item_-ava25-_Code'
* Replace '#' with '\_-ava23-\_'  For example: 'Item#Code' becomes 'Item_-ava23-_Code'
* Replace ''' with '\_-ava27-\_'  For example: 'Item'Code' becomes 'Item_-ava27-_Code'
* Replace '"' with '\_-ava22-\_'  For example: 'Item"Code' becomes 'Item_-ava22-_Code'

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item. |
| `itemCode` | string | path | Yes | The code of the item you want to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve items for this company

`GET /api/v2/companies/{companyId}/items`

List all items defined for the current company.
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
            
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
            
You may specify Tag Name in the `tagName` query parameter if you want to filter items on the basis of tagName
            
You may specify comma seperated item status in the `itemStatus` query parameter if you want to filter items on the basis of item status
            
You may specify Tax Code recommendation status in the `taxCodeRecommendationStatus` query parameter if you want to filter items on the basis of tax code recommendation status
            
You can specify an HS code classification status in the `hsCodeClassificationStatus` query parameter if you want to filter items based on an HS code classification status.
            
You can specify a comma-separated list of countries in the `hsCodeExistsInCountries` query parameter if you want to filter items based on whether an HS code exists for the provided countries.
            
You can specify a comma-separated list of countries in the `hsCodeDoesNotExistsInCountries` query parameter if you want to filter items on the basis of whether an HS code does not exist for the provided countries.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Parameters
* Classifications
* Tags
* Properties
* TaxCodeRecommendationStatus
* HsCodeClassificationStatus
* TaxCodeDetails

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that defined these items |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* taxCode, source, sourceEntityId, itemType, upc, summary, classifications, parameters, customParameters, tags, properties, itemStatus, taxCodeRecommendationStatus, taxCodeRecommendations, taxCodeDetails, hsCodeClassificationStatus, image |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `tagName` | string | query | No | Tag Name on the basis of which you want to filter Items |
| `itemStatus` | string | query | No | A comma separated list of item status on the basis of which you want to filter Items |
| `taxCodeRecommendationStatus` | string | query | No | Tax code recommendation status on the basis of which you want to filter Items |
| `hsCodeClassificationStatus` | string | query | No | HS code classification status on the basis of which you want to filter items. |
| `hsCodeExistsInCountries` | string | query | No | A comma-separated list of countries for which the HS code is assigned and based on which you want to filter the items. |
| `hsCodeDoesNotExistsInCountries` | string | query | No | A comma-separated list of countries for which the HS code is not assigned and based on which you want to filter the items. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new item

`POST /api/v2/companies/{companyId}/items`

Creates one or more new item objects attached to this company.
            
Recommended number of items to create in a single call is upto 50.
            
Currently, the maximum number of items that can be created in a single call is 500 (This limit is subject to change).
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
Please provide all the countries of destination values as a valid two letter ISO-3166 country code.
Refer to 'ListCountries' api to get valid country code for any country if needed.
            
The tax code takes precedence over the tax code id if both are provided.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item. |
| `processRecommendationsSynchronously` | boolean | query | No | If true then Indix api will be called synchronously to get tax code recommendations. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The item you wish to create. |

#### Retrieve a single item

`GET /api/v2/companies/{companyId}/items/{id}`

Get the `Item` object identified by this URL.
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item object |
| `id` | integer | path | Yes | The primary key of this item |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single item

`PUT /api/v2/companies/{companyId}/items/{id}`

Replace the existing `Item` object at this URL with an updated object.
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
All data from the existing object will be replaced with data in the object you PUT.  To set a field's value to null,
you may either set its value to null or omit that field from the object you post.
            
The tax code takes precedence over the tax code id if both are provided.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this item belongs to. |
| `id` | integer | path | Yes | The ID of the item you wish to update |
| `isRecommendationSelected` | boolean | query | No | If true then Set recommendation status to RecommendationSelected |
| `isRecommendationRejected` | boolean | query | No | If true then Set recommendation status to RecommendationRejected, When the taxCode recommendation status is RecommendationAvailable. Else will be thrown as error |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The item object you wish to update. |

#### Patch a single item

`PATCH /api/v2/companies/{companyId}/items/{id}`

Update the existing item object at this URL with the specified patch changes.
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
Only specified fields in the existing object will be updated with the data you provide via PATCH.
To set a field's value to null, you can either set the field to null explicitly or omit it from the PATCH request.
            
The tax code takes precedence over the tax code ID if both are provided.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this item belongs to. |
| `id` | integer | path | Yes | The ID of the item you want to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | A JSON patch (refer to https://datatracker.ietf.org/doc/html/rfc6902). |

#### Delete a single item

`DELETE /api/v2/companies/{companyId}/items/{id}`

Deletes the item object at this URL.
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
Deleting an item will also delete the parameters and classifications associated with that item.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item. |
| `id` | integer | path | Yes | The ID of the item you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve premium classification for a company's item based on its ItemCode and SystemCode.

`GET /api/v2/companies/{companyId}/items/{itemCode}/premiumClassification/{systemCode}`

Retrieves the premium classification for an ItemCode and SystemCode.
            
NOTE: If your item code contains any of these characters /, +, ?,",' ,% or #, please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: 'Item/Code' becomes 'Item_-ava2f-_Code'
* Replace '+' with '\_-ava2b-\_'  For example: 'Item+Code' becomes 'Item_-ava2b-_Code'
* Replace '?' with '\_-ava3f-\_'  For example: 'Item?Code' becomes 'Item_-ava3f-_Code'
* Replace '%' with '\_-ava25-\_'  For example: 'Item%Code' becomes 'Item_-ava25-_Code'
* Replace '#' with '\_-ava23-\_'  For example: 'Item#Code' becomes 'Item_-ava23-_Code'
* Replace ''' with '\_-ava27-\_'  For example: 'Item'Code' becomes 'Item_-ava27-_Code'
* Replace '"' with '\_-ava22-\_'  For example: 'Item"Code' becomes 'Item_-ava22-_Code'

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item object |
| `itemCode` | string | path | Yes | The ItemCode of the item for which you want to retrieve premium classification |
| `systemCode` | string | path | Yes | The SystemCode for which you want to retrieve premium classification |
| `country` | string | query | No | Optional: Provide the country for which you want to retrieve the premium classification. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve premium classification for an item based on its `companyId` and `itemCode`.

`GET /api/v2/companies/{companyId}/items/{itemCode}/premiumClassifications`

Retrieve the premium classification for an Item based on its `itemCode` and `companyId`.
            
NOTE: If your item code contains any of these characters /, +, ?,",' ,% or #, please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: 'Item/Code' becomes 'Item_-ava2f-_Code'
* Replace '+' with '\_-ava2b-\_'  For example: 'Item+Code' becomes 'Item_-ava2b-_Code'
* Replace '?' with '\_-ava3f-\_'  For example: 'Item?Code' becomes 'Item_-ava3f-_Code'
* Replace '%' with '\_-ava25-\_'  For example: 'Item%Code' becomes 'Item_-ava25-_Code'
* Replace '#' with '\_-ava23-\_'  For example: 'Item#Code' becomes 'Item_-ava23-_Code'
* Replace ''' with '\_-ava27-\_'  For example: 'Item'Code' becomes 'Item_-ava27-_Code'
* Replace '"' with '\_-ava22-\_'  For example: 'Item"Code' becomes 'Item_-ava22-_Code'

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item object. |
| `itemCode` | string | path | Yes | The item code of the item for which you want to retrieve premium classification. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* HsCode, justification, createdDate, createdUserId |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve Restrictions for Item by CountryOfImport

`GET /api/v2/companies/{companyId}/items/{itemCode}/restrictions/import/{countryOfImport}`

Retrieve Restrictions for Item by CountryOfImport. This API will only return import restriction for the countryOfImport.
            
NOTE: If your item code contains any of these characters /, +, ? or a space, please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: 'Item/Code' becomes 'Item_-ava2f-_Code'
* Replace '+' with '\_-ava2b-\_'  For example: 'Item+Code' becomes 'Item_-ava2b-_Code'
* Replace '?' with '\_-ava3f-\_'  For example: 'Item?Code' becomes 'Item_-ava3f-_Code'
* Replace '%' with '\_-ava25-\_'  For example: 'Item%Code' becomes 'Item_-ava25-_Code'
* Replace '#' with '\_-ava23-\_'  For example: 'Item#Code' becomes 'Item_-ava23-_Code'
* Replace ''' with '\_-ava27-\_'  For example: 'Item'Code' becomes 'Item_-ava27-_Code'
* Replace '"' with '\_-ava22-\_'  For example: 'Item"Code' becomes 'Item_-ava22-_Code'

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item object |
| `itemCode` | string | path | Yes | ItemCode for the item |
| `countryOfImport` | string | path | Yes | Country for which you want the restrictions for the Item. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve classifications for an item.

`GET /api/v2/companies/{companyId}/items/{itemId}/classifications`

List classifications for an item.
            
A classification is the code for a product in a particular tax system. Classifications enable an item to be used in multiple tax systems which may have different tax rates for a product.
            
When an item is used in a transaction, the applicable classification will be used to determine the appropriate tax rate.
            
Search for specific objects using the criteria in the `$filter` classification; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` classifications.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `itemId` | integer | path | Yes | The item id. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* productCode, systemCode, country, IsPremium, ClassificationEvent |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Add classifications to an item.

`POST /api/v2/companies/{companyId}/items/{itemId}/classifications`

Add classifications to an item.
            
A classification is the code for a product in a particular tax system. Classifications enable an item to be used in multiple tax systems which may have different tax rates for a product.
            
When an item is used in a transaction, the applicable classification will be used to determine the appropriate tax rate.
            
An item may only have one classification per tax system.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `itemId` | integer | path | Yes | The item id. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The item classifications you wish to create. |

#### Add/update item classifications.

`PUT /api/v2/companies/{companyId}/items/{itemId}/classifications`

Add/update classifications to an item.
            
A classification is the code for a product in a particular tax system. Classifications enable an item to be used in multiple tax systems that may have different tax rates for a product.
            
When an item is used in a transaction, the applicable classification will be used to determine the appropriate tax rate.
            
An item may only have one classification per tax system per country.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company ID. |
| `itemId` | integer | path | Yes | The item ID. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | The item classifications you want to create. |

#### Delete all classifications for an item

`DELETE /api/v2/companies/{companyId}/items/{itemId}/classifications`

Delete all the classifications for a given item.
            
A classification is the code for a product in a particular tax system. Classifications enable an item to be used in multiple tax systems which may have different tax rates for a product.
            
When an item is used in a transaction, the applicable classification will be used to determine the appropriate tax rate.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item. |
| `itemId` | integer | path | Yes | The ID of the item you wish to delete the classifications. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single item classification.

`GET /api/v2/companies/{companyId}/items/{itemId}/classifications/{id}`

Retrieve a single item classification.
            
A classification is the code for a product in a particular tax system. Classifications enable an item to be used in multiple tax systems which may have different tax rates for a product.
            
When an item is used in a transaction, the applicable classification will be used to determine the appropriate tax rate.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `itemId` | integer | path | Yes | The item id. |
| `id` | integer | path | Yes | The item classification id. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update an item classification.

`PUT /api/v2/companies/{companyId}/items/{itemId}/classifications/{id}`

Update an item classification.
            
A classification is the code for a product in a particular tax system. Classifications enable an item to be used in multiple tax systems which may have different tax rates for a product.
            
When an item is used in a transaction, the applicable classification will be used to determine the appropriate tax rate.
            
An item may only have one classification per tax system.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `itemId` | integer | path | Yes | The item id. |
| `id` | integer | path | Yes | The item classification id. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The item object you wish to update. |

#### Delete a single item classification.

`DELETE /api/v2/companies/{companyId}/items/{itemId}/classifications/{id}`

Delete a single item classification.
            
A classification is the code for a product in a particular tax system. Classifications enable an item to be used in multiple tax systems which may have different tax rates for a product.
            
When an item is used in a transaction, the applicable classification will be used to determine the appropriate tax rate.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `itemId` | integer | path | Yes | The item id. |
| `id` | integer | path | Yes | The item classification id. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve custom parameters for an item

`GET /api/v2/companies/{companyId}/items/{itemId}/custom-parameters`

List custom parameters for an item.
            
Custom parameters provide extra information about an item that can be used for various business purposes.
These parameters are stored as key-value pairs where the parameter name is the key and the value is the corresponding data.
            
Custom parameters can be used to store custom attributes, metadata, or any other supplementary information
that doesn't fit into the standard item fields.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `itemId` | integer | path | Yes | The item id |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* id, name, value |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Add custom parameters to an item.

`POST /api/v2/companies/{companyId}/items/{itemId}/custom-parameters`

Add custom parameters to an item.
            
Custom parameters provide extra information about an item that can be used for various business purposes.
These parameters are stored as key-value pairs where the parameter name is the key and the value is the corresponding data.
            
Custom parameters can be used to store custom attributes, metadata, or any other supplementary information
that doesn't fit into the standard item fields.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item custom parameter. |
| `itemId` | integer | path | Yes | The item id. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | The item custom parameters you wish to create. |

#### Add/update an item custom parameter

`PUT /api/v2/companies/{companyId}/items/{itemId}/custom-parameters`

Add/update an item custom parameter.
            
Custom parameters provide extra information about an item that can be used for various business purposes.
These parameters are stored as key-value pairs where the parameter name is the key and the value is the corresponding data.
            
Custom parameters can be used to store custom attributes, metadata, or any other supplementary information
that doesn't fit into the standard item fields.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `itemId` | integer | path | Yes | The item id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | The item custom parameter object you wish to Upsert. |

#### Delete all custom parameters for an item

`DELETE /api/v2/companies/{companyId}/items/{itemId}/custom-parameters`

Delete all the custom parameters for a given item.
            
Custom parameters provide extra information about an item that can be used for various business purposes.
These parameters are stored as key-value pairs where the parameter name is the key and the value is the corresponding data.
            
Custom parameters can be used to store custom attributes, metadata, or any other supplementary information
that doesn't fit into the standard item fields.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item. |
| `itemId` | integer | path | Yes | The ID of the item you wish to delete the custom parameters. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single item custom parameter

`GET /api/v2/companies/{companyId}/items/{itemId}/custom-parameters/{id}`

Retrieve a single item custom parameter.
            
Custom parameters provide extra information about an item that can be used for various business purposes.
These parameters are stored as key-value pairs where the parameter name is the key and the value is the corresponding data.
            
Custom parameters can be used to store custom attributes, metadata, or any other supplementary information
that doesn't fit into the standard item fields.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `itemId` | integer | path | Yes | The item id |
| `id` | integer | path | Yes | The custom parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update an item custom parameter

`PUT /api/v2/companies/{companyId}/items/{itemId}/custom-parameters/{id}`

Update an item custom parameter.
            
Custom parameters provide extra information about an item that can be used for various business purposes.
These parameters are stored as key-value pairs where the parameter name is the key and the value is the corresponding data.
            
Custom parameters can be used to store custom attributes, metadata, or any other supplementary information
that doesn't fit into the standard item fields.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `itemId` | integer | path | Yes | The item id |
| `id` | integer | path | Yes | The item custom parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The item custom parameter object you wish to update. |

#### Delete a single item custom parameter

`DELETE /api/v2/companies/{companyId}/items/{itemId}/custom-parameters/{id}`

Delete a single item custom parameter.
            
Custom parameters provide extra information about an item that can be used for various business purposes.
These parameters are stored as key-value pairs where the parameter name is the key and the value is the corresponding data.
            
Custom parameters can be used to store custom attributes, metadata, or any other supplementary information
that doesn't fit into the standard item fields.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `itemId` | integer | path | Yes | The item id |
| `id` | integer | path | Yes | The custom parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Deletes HS Code classification status for the item by status id.

`DELETE /api/v2/companies/{companyId}/items/{itemId}/hscode-classifications-status/{id}`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company to which this item belongs |
| `itemId` | integer | path | Yes | The ID of the item |
| `id` | string | path | Yes | The HS Code classification status id. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Dismiss the `Status` and `Details` values of the given ItemHSCodeClassificationStatus.

`PUT /api/v2/companies/{companyId}/items/{itemId}/hscode-classifications-status/$dismiss`

Dismiss the existing `Status` and `Details` of the ItemHSCodeClassificationStatus object at this URL with an updated object.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company to which this item belongs. |
| `itemId` | integer | path | Yes | The ID of the item whose classification status you want to update. |
| `country` | string | query | Yes | The country of the HS code classification request status record that is to be updated. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Fetch Additional HS Duty Details for items

`POST /api/v2/companies/{companyId}/items/{itemId}/hsdutydetails/$fetch-additional-hsdutydetails`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company for which you want to get additional HS Duty Details. |
| `itemId` | integer | path | Yes | The unique ID of the item for which you want to get additional HS Duty Details. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | Additional HS Code Duty Details input Model |

#### Upload an image for an item.

`POST /api/v2/companies/{companyId}/items/{itemId}/images`

This endpoint allows users to upload an image file for a specific item.
            
The uploaded image serves as the item's visual representation and will be used for tax code recommendation purposes.
            
Restrictions:
- Supported formats: JPEG, GIF, PNG
- Maximum file size: 10MB
- Maximum file name length allowed: 200 characters

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID of the company. |
| `itemId` | integer | path | Yes | The unique ID of the item. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `imageFile` | file | formData | Yes |  |

#### Get the image associated with an item.

`GET /api/v2/companies/{companyId}/items/{itemId}/images/{imageId}`

Get the image file for the specified image ID linked to the item.
            
This endpoint allows users to retrieve and display product images in user interfaces or to verify the current
image associated with a specific item.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID of the company. |
| `itemId` | integer | path | Yes | The unique ID of the item. |
| `imageId` | string | path | Yes | The unique ID of the image to retrieve. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update an existing image for an item.

`PUT /api/v2/companies/{companyId}/items/{itemId}/images/{imageId}`

This endpoint allows users to update the existing image associated with a specific item by uploading a new image file.
            
The updated image serves as the item's visual representation and will be used for tax code recommendation purposes.
            
Restrictions:
- Supported formats: JPEG, GIF, PNG
- Maximum file size: 10MB
- Maximum file name length allowed: 200 characters

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID of the company. |
| `itemId` | integer | path | Yes | The unique ID of the item. |
| `imageId` | string | path | Yes | The unique ID of the image to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `imageFile` | file | formData | Yes |  |

#### Delete the image associated with an item.

`DELETE /api/v2/companies/{companyId}/items/{itemId}/images/{imageId}`

Delete the image associated with an item.
            
Permanently deletes both the image and its association with the specified item.
This endpoint allows users to manage product visual representations by removing outdated or incorrect images,
and cleaning up unused resources in the system.
Once deleted, the image association cannot be recovered. To use the image again, it must be re-uploaded and
re-linked with the item.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID of the company. |
| `itemId` | integer | path | Yes | The unique ID of the item. |
| `imageId` | string | path | Yes | The unique ID of the image to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve parameters for an item

`GET /api/v2/companies/{companyId}/items/{itemId}/parameters`

List parameters for an item.
            
Some items can be taxed differently depending on the properties of that item, such as the item grade or by a particular measurement of that item. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to an item will be used by default in tax calculation but will not show on the transaction line referencing the item .
            
A parameter specified on a transaction line will override an item parameter if they share the same parameter name.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `itemId` | integer | path | Yes | The item id |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* name, unit, isNeededForCalculation, isNeededForReturns, isNeededForClassification |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Add parameters to an item.

`POST /api/v2/companies/{companyId}/items/{itemId}/parameters`

Add parameters to an item.
            
Some items can be taxed differently depending on the properties of that item, such as the item grade or by a particular measurement of that item. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to an item will be used by default in tax calculation but will not show on the transaction line referencing the item .
            
A parameter specified on a transaction line will override an item parameter if they share the same parameter name.
            
To see available parameters for this item, call `/api/v2/definitions/parameters?$filter=attributeType eq Product`
            
Some parameters are only available for use if you have subscribed to specific AvaTax services. To see which parameters you are able to use, add the query parameter "$showSubscribed=true" to the parameter definition call above.
Please provide all the countries parameter values as a valid two letter ISO-3166 country code.
Refer to 'ListCountries' api to get valid country code for any country if needed.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item parameter. |
| `itemId` | integer | path | Yes | The item id. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The item parameters you wish to create. |

#### Add/update an item parameter.

`PUT /api/v2/companies/{companyId}/items/{itemId}/parameters`

Add/update an item parameter.
            
Some items can be taxed differently depending on the properties of that item, such as the item grade or by a particular measurement of that item. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to an item will be used by default in tax calculation but will not show on the transaction line referencing the item .
            
A parameter specified on a transaction line will override an item parameter if they share the same parameter name.
            
Please provide all the countries parameter values as a valid two letter ISO-3166 country code.
Refer to 'ListCountries' api to get valid country code for any country if needed.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this item belongs to. |
| `itemId` | integer | path | Yes | The ID of the item you want to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | The item parameter object you want to upsert. |

#### Delete all parameters for an item

`DELETE /api/v2/companies/{companyId}/items/{itemId}/parameters`

Delete all the parameters for a given item.
            
Some items can be taxed differently depending on the properties of that item, such as the item grade or by a particular measurement of that item. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to an item will be used by default in tax calculation but will not show on the transaction line referencing the item .
            
A parameter specified on a transaction line will override an item parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item. |
| `itemId` | integer | path | Yes | The ID of the item you wish to delete the parameters. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single item parameter

`GET /api/v2/companies/{companyId}/items/{itemId}/parameters/{id}`

Retrieve a single item parameter.
            
Some items can be taxed differently depending on the properties of that item, such as the item grade or by a particular measurement of that item. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to an item will be used by default in tax calculation but will not show on the transaction line referencing the item .
            
A parameter specified on a transaction line will override an item parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `itemId` | integer | path | Yes | The item id |
| `id` | integer | path | Yes | The parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update an item parameter

`PUT /api/v2/companies/{companyId}/items/{itemId}/parameters/{id}`

Update an item parameter.
            
Some items can be taxed differently depending on the properties of that item, such as the item grade or by a particular measurement of that item. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to an item will be used by default in tax calculation but will not show on the transaction line referencing the item .
            
A parameter specified on a transaction line will override an item parameter if they share the same parameter name.
            
Please provide all the countries parameter values as a valid two letter ISO-3166 country code.
Refer to 'ListCountries' api to get valid country code for any country if needed.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `itemId` | integer | path | Yes | The item id |
| `id` | integer | path | Yes | The item parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The item object you wish to update. |

#### Delete a single item parameter

`DELETE /api/v2/companies/{companyId}/items/{itemId}/parameters/{id}`

Delete a single item parameter.
            
Some items can be taxed differently depending on the properties of that item, such as the item grade or by a particular measurement of that item. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to an item will be used by default in tax calculation but will not show on the transaction line referencing the item .
            
A parameter specified on a transaction line will override an item parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `itemId` | integer | path | Yes | The item id |
| `id` | integer | path | Yes | The parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve tags for an item

`GET /api/v2/companies/{companyId}/items/{itemId}/tags`

Get the `Tag` objects of an Item identified by this URL.
            
Item tags puts multiple labels for an item. So that item can be easily grouped by these tags.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that defined these items |
| `itemId` | integer | path | Yes | The ID of the item as defined by the company that owns this tag. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* tagName |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create tags for a item

`POST /api/v2/companies/{companyId}/items/{itemId}/tags`

Creates one or more new `Tag` objects attached to this Item.
            
Item tags puts multiple labels for an item. So that item can be easily grouped by these tags.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that defined these items |
| `itemId` | integer | path | Yes | The ID of the item as defined by the company that owns this tag. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | Tags you wish to associate with the Item |

#### Delete all item tags

`DELETE /api/v2/companies/{companyId}/items/{itemId}/tags`

Deletes all `Tags` objects of an Item at this URL.
            
Item tags puts multiple labels for an item. So that item can be easily grouped by these tags.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that defined these items. |
| `itemId` | integer | path | Yes | The ID of the item as defined by the company that owns this tag. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Delete item tag by id

`DELETE /api/v2/companies/{companyId}/items/{itemId}/tags/{itemTagDetailId}`

Deletes the `Tag` object of an Item at this URL.
            
Item tags puts multiple labels for an item. So that item can be easily grouped by these tags.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that defined these items |
| `itemId` | integer | path | Yes | The ID of the item as defined by the company that owns this tag. |
| `itemTagDetailId` | integer | path | Yes | The ID of the item tag detail you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Get Item TaxCode Recommendations

`GET /api/v2/companies/{companyId}/items/{itemId}/taxcoderecommendations`

Provides at least three tax-code recommendations for the given company ID and item ID

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes |  |
| `itemId` | integer | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create an HS code classification request.

`POST /api/v2/companies/{companyId}/items/$initiate-hscode-classification`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company for which you want to create this HS code classification request. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | Item HSCodeClassification input Model |

#### Retrieve all items associated with given tag

`GET /api/v2/companies/{companyId}/items/bytags/{tag}`

Get multiple item objects associated with given tag.
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
            
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that defined these items. |
| `tag` | string | path | Yes | The master tag to be associated with item. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* taxCode, source, sourceEntityId, itemType, upc, summary, classifications, parameters, customParameters, tags, properties, itemStatus, taxCodeRecommendationStatus, taxCodeRecommendations, taxCodeDetails, hsCodeClassificationStatus, image |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the HS code classification SLA details for a company.

`GET /api/v2/companies/{companyId}/items/hscode-classification/$get-sla`

This endpoint returns the SLA details for HS code classification for the
specified company. The response includes information about processing times,
service commitments, and other relevant SLA terms.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company for which to retrieve the SLA details. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Verify the HSCode to be valid/invalid

`POST /api/v2/companies/{companyId}/items/hscodes/$verify`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID of the company |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | No | The request model for HS Code Verification |

#### Retrieve items for this company based on System Code and filter criteria(optional) provided

`POST /api/v2/companies/{companyId}/items/internal/bySystemCode/{systemCode}`

Retrieve items based on System Code
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
Search for specific objects by passing the `$filter` criteria in the body; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
            
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that defined these items |
| `systemCode` | string | path | Yes | System code on the basis of which you want to filter Items |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | A filter statement to select specific records, as defined by https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md#97-filtering . |

#### Parse natural language query into structured filters

`POST /api/v2/companies/{companyId}/items/nlq/$parse`

Parse natural language queries into structured API filters. This endpoint forwards the query to NLQ (Natural Language Query)
service for interpretation and returns only the intent and structured filters.
            
Example queries:
- "give me items created in last 1 week which are having status complete"
- "show me all items with item code CERMUG"
- "find items containing 'mug' in description"
            
Response format:
{
  "intent": "GET",
  "filters": {
    "createdDate": { "value": "from: 2025-09-12 to: 2025-09-19" },
    "itemStatus": { "value": ["Complete"] }
  }
}
            
Raw NLQ responses are logged for debugging purposes.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these items |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | Natural language search request |

#### Sync items from a product catalog

`POST /api/v2/companies/{companyId}/items/sync`

Syncs a list of items with AvaTax without waiting for them to be created. It is ideal for syncing large product catalogs
with AvaTax.
            
Any invalid or duplicate items will be ignored. To diagnose why an item is not created, use the normal create transaction API to receive validation information.
            
This API is currently limited to 500 items per call (the limit is subject to change).
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
Please provide all the countries of destination values as a valid two letter ISO-3166 country code.
Refer to 'ListCountries' api to get valid country code for any country if needed.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this item. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The request object. |

#### Bulk upload items from a product catalog

`POST /api/v2/companies/{companyId}/items/upload`

Create/Update one or more item objects attached to this company.
            
Recommended number of items to create/update in a single call is upto 100.
            
Currently, the maximum number of items that can be created/updated in a single call is 500 (This limit is subject to change).
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
The tax code takes precedence over the tax code id if both are provided.
            
Please provide all the countries of destination values as a valid two letter ISO-3166 country code.
Refer to 'ListCountries' api to get valid country code for any country if needed.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this items. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The items you wish to upload. |

#### Creates a batch to generate tax code recommendations asynchronously.

`POST /api/v2/companies/{companyId}/taxcode-recommendations/batches`

Creates a new batch for asynchronous tax code recommendations processing.
The batch is processed asynchronously, and you can check the status using the GetBatchTaxCodeRecommendations endpoint.
            
Maximum items created per request: 2,000 (subject to change).
            
Batches are automatically deleted after 1 day.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID of the company. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The list of items to include in the batch (maximum 2,000). |

#### Retrieves the status and results of a tax code recommendation batch.

`GET /api/v2/companies/{companyId}/taxcode-recommendations/batches/{batchId}`

Retrieves the status and results of a tax code recommendation batch for the specified company.
If the batch status is "Completed", the response includes the tax code recommendations for all items in the batch.
If the batch status is "Waiting", "Processing", or any other non-complete status, only the status information is returned.
Returns '404 Not Found' if the batch has been deleted or does not exist.
            
Batches are automatically deleted after 1 day.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID of the company. |
| `batchId` | integer | path | Yes | The unique ID of the recommendation batch. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Deletes a tax code recommendation batch.

`DELETE /api/v2/companies/{companyId}/taxcode-recommendations/batches/{batchId}`

Deletes the specified tax code recommendation batch.
            
Returns '404 Not Found' if the batch is already deleted, does not exist, or belongs to a different company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID of the company. |
| `batchId` | integer | path | Yes | The unique ID of the batch to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve the parameters by companyId and itemId.

`GET /api/v2/definitions/companies/{companyId}/items/{itemId}/parameters`

Returns the list of parameters based on the company's service types and the item code.
Ignores nexus if a service type is configured in the 'IgnoreNexusForServiceTypes' configuration section.
Ignores nexus for the AvaAlcohol service type.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | Company Identifier. |
| `itemId` | integer | path | Yes | Item Identifier. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* serviceTypes, regularExpression, attributeSubType, values |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all items

`GET /api/v2/items`

Get multiple item objects across all companies.
            
Items are a way of separating your tax calculation process from your tax configuration details.  If you choose, you
can provide `itemCode` values for each `CreateTransaction()` API call rather than specifying tax codes, parameters, descriptions,
and other data fields.  AvaTax will automatically look up each `itemCode` and apply the correct tax codes and parameters
from the item table instead.  This allows your CreateTransaction call to be as simple as possible, and your tax compliance
team can manage your item catalog and adjust the tax behavior of items without having to modify your software.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
            
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* taxCode, source, sourceEntityId, itemType, upc, summary, classifications, parameters, customParameters, tags, properties, itemStatus, taxCodeRecommendationStatus, taxCodeRecommendations, taxCodeDetails, hsCodeClassificationStatus, image |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### ItemsReverseSync

#### List webhook registrations for a company.

`GET /api/v2/connector-sync/companies/{companyId}/registrations`

Returns all webhook registrations for the specified company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns the webhook registrations. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a webhook registration for a company.

`POST /api/v2/connector-sync/companies/{companyId}/registrations`

Creates a webhook registration for the specified company. The registration defines a
connector, callback URL, registration type, and subscribed events.
            
The customer must pass the connector name in `connectorName`; this value is also
used as the OAuth scope for the registration.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company for which you want to create the registration. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The webhook registration details to create. |

#### Retrieve a webhook registration.

`GET /api/v2/connector-sync/companies/{companyId}/registrations/{registrationId}`

Returns the webhook registration identified by the specified registration ID for the given company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this registration. |
| `registrationId` | integer | path | Yes | The ID of the registration. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a webhook registration.

`PATCH /api/v2/connector-sync/companies/{companyId}/registrations/{registrationId}`

Updates the webhook registration with the provided fields. Only the fields included in the
request body are updated.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this registration. |
| `registrationId` | integer | path | Yes | The ID of the registration to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The registration fields to update. |

#### Delete a webhook registration.

`DELETE /api/v2/connector-sync/companies/{companyId}/registrations/{registrationId}`

Deletes the webhook registration identified by the specified registration ID for the given company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this registration. |
| `registrationId` | integer | path | Yes | The ID of the registration to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Jobs

#### List all jobs for a company

`GET /api/v2/companies/{companyId}/jobs`

List all jobs recorded by a company.
            
A job represents construction or project work that exemption certificates can be associated with. Each
job can contain one or more phases, and each phase can contain one or more tasks.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* phases - Retrieves the list of phases for each job.
* tasks - Retrieves the list of tasks within each phase. Tasks are nested under phases, so requesting `tasks` will also expand `phases`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.  You can specify one or more of the following:
            
             * phases - Retrieves the list of phases for each job.
             * tasks - Retrieves the list of tasks within each phase. Tasks are nested under phases |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* exposureZone, phases |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new job for a company

`POST /api/v2/companies/{companyId}/jobs`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The job to create |

#### Retrieve a single job

`GET /api/v2/companies/{companyId}/jobs/{id}`

Retrieve a single job by its unique ID.
            
A job represents construction or project work that exemption certificates can be associated with. Each
job can contain one or more phases, and each phase can contain one or more tasks.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* phases - Retrieves the list of phases for this job.
* tasks - Retrieves the list of tasks within each phase. Tasks are nested under phases, so requesting `tasks` will also expand `phases`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `id` | integer | path | Yes | The unique ID number of the job |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.  You can specify one or more of the following:
            
             * phases - Retrieves the list of phases for this job.
             * tasks - Retrieves the list of tasks within each phase. Tasks are nested under phases, so requesting `tasks` will also expand `phases`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update an existing job

`PUT /api/v2/companies/{companyId}/jobs/{id}`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `id` | integer | path | Yes | The unique ID number of the job to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The updated job data |

#### Delete a job

`DELETE /api/v2/companies/{companyId}/jobs/{id}`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `id` | integer | path | Yes | The unique ID number of the job to delete |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new phase on a job

`POST /api/v2/companies/{companyId}/jobs/{jobId}/phases`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `jobId` | integer | path | Yes | The unique ID number of the job |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The phase to create |

#### Update an existing phase on a job

`PUT /api/v2/companies/{companyId}/jobs/{jobId}/phases/{phaseId}`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `jobId` | integer | path | Yes | The unique ID number of the job |
| `phaseId` | integer | path | Yes | The unique ID number of the phase |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The updated phase data |

#### Delete a phase from a job

`DELETE /api/v2/companies/{companyId}/jobs/{jobId}/phases/{phaseId}`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `jobId` | integer | path | Yes | The unique ID number of the job |
| `phaseId` | integer | path | Yes | The unique ID number of the phase to delete |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new task on a phase

`POST /api/v2/companies/{companyId}/jobs/{jobId}/phases/{phaseId}/tasks`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `jobId` | integer | path | Yes | The unique ID number of the job |
| `phaseId` | integer | path | Yes | The unique ID number of the phase |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The task to create |

#### Update an existing task on a phase

`PUT /api/v2/companies/{companyId}/jobs/{jobId}/phases/{phaseId}/tasks/{taskId}`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `jobId` | integer | path | Yes | The unique ID number of the job |
| `phaseId` | integer | path | Yes | The unique ID number of the phase |
| `taskId` | integer | path | Yes | The unique ID number of the task |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The updated task data |

#### Delete a task from a phase

`DELETE /api/v2/companies/{companyId}/jobs/{jobId}/phases/{phaseId}/tasks/{taskId}`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company |
| `jobId` | integer | path | Yes | The unique ID number of the job |
| `phaseId` | integer | path | Yes | The unique ID number of the phase |
| `taskId` | integer | path | Yes | The unique ID number of the task to delete |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### JurisdictionOverrides

#### Retrieve overrides for this account

`GET /api/v2/accounts/{accountId}/jurisdictionoverrides`

List all jurisdiction override objects defined for this account.
            
A Jurisdiction Override is a configuration setting that allows you to select the taxing
jurisdiction for a specific address.  If you encounter an address that is on the boundary
between two different jurisdictions, you can choose to set up a jurisdiction override
to switch this address to use different taxing jurisdictions.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that owns this override |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* country, Jurisdictions |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create one or more overrides

`POST /api/v2/accounts/{accountId}/jurisdictionoverrides`

Creates one or more jurisdiction override objects for this account.
            
A Jurisdiction Override is a configuration setting that allows you to select the taxing
jurisdiction for a specific address.  If you encounter an address that is on the boundary
between two different jurisdictions, you can choose to set up a jurisdiction override
to switch this address to use different taxing jurisdictions.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that owns this override |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The jurisdiction override objects to create |

#### Retrieve a single override

`GET /api/v2/accounts/{accountId}/jurisdictionoverrides/{id}`

Get the item object identified by this URL.
            
A Jurisdiction Override is a configuration setting that allows you to select the taxing
jurisdiction for a specific address.  If you encounter an address that is on the boundary
between two different jurisdictions, you can choose to set up a jurisdiction override
to switch this address to use different taxing jurisdictions.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that owns this override |
| `id` | integer | path | Yes | The primary key of this override |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single jurisdictionoverride

`PUT /api/v2/accounts/{accountId}/jurisdictionoverrides/{id}`

Replace the existing jurisdictionoverride object at this URL with an updated object.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that this jurisdictionoverride belongs to. |
| `id` | integer | path | Yes | The ID of the jurisdictionoverride you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The jurisdictionoverride object you wish to update. |

#### Delete a single override

`DELETE /api/v2/accounts/{accountId}/jurisdictionoverrides/{id}`

Marks the item object at this URL as deleted.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, BatchServiceAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that owns this override |
| `id` | integer | path | Yes | The ID of the override you wish to delete |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all overrides

`GET /api/v2/jurisdictionoverrides`

Get multiple jurisdiction override objects across all companies.
            
A Jurisdiction Override is a configuration setting that allows you to select the taxing
jurisdiction for a specific address.  If you encounter an address that is on the boundary
between two different jurisdictions, you can choose to set up a jurisdiction override
to switch this address to use different taxing jurisdictions.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* country, Jurisdictions |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Locations

#### Retrieve locations for this company

`GET /api/v2/companies/{companyId}/locations`

List all location objects defined for this company.
An 'Location' represents a physical address where a company does business.
Many taxing authorities require that you define a list of all locations where your company does business.
These locations may require additional custom configuration or tax registration with these authorities.
For more information on metadata requirements, see the '/api/v2/definitions/locationquestions' API.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* LocationSettings
* parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these locations |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* isMarketplaceOutsideUsa, settings, parameters |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new location

`POST /api/v2/companies/{companyId}/locations`

Create one or more new location objects attached to this company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this location. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The location you wish to create. |

#### Retrieve a single location

`GET /api/v2/companies/{companyId}/locations/{id}`

Get the location object identified by this URL.
An 'Location' represents a physical address where a company does business.
Many taxing authorities require that you define a list of all locations where your company does business.
These locations may require additional custom configuration or tax registration with these authorities.
For more information on metadata requirements, see the '/api/v2/definitions/locationquestions' API.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* LocationSettings
* parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this location |
| `id` | integer | path | Yes | The primary key of this location |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single location

`PUT /api/v2/companies/{companyId}/locations/{id}`

Replace the existing location object at this URL with an updated object.
All data from the existing object will be replaced with data in the object you PUT.
To set a field's value to null, you may either set its value to null or omit that field from the object you post.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this location belongs to. |
| `id` | integer | path | Yes | The ID of the location you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The location you wish to update. |

#### Delete a single location

`DELETE /api/v2/companies/{companyId}/locations/{id}`

Mark the location object at this URL as deleted.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this location. |
| `id` | integer | path | Yes | The ID of the location you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Validate the location against local requirements

`GET /api/v2/companies/{companyId}/locations/{id}/validate`

Returns validation information for this location.
This API call is intended to compare this location against the currently known taxing authority rules and regulations,
and provide information about what additional work is required to completely setup this location.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this location |
| `id` | integer | path | Yes | The primary key of this location |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve parameters for a location

`GET /api/v2/companies/{companyId}/locations/{locationId}/parameters`

List parameters for a location.
            
Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.
            
A parameter specified on a transaction line will override a location parameter if they share the same parameter name.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `locationId` | integer | path | Yes | The ID of the location |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* name, unit |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Add parameters to a location.

`POST /api/v2/companies/{companyId}/locations/{locationId}/parameters`

Add parameters to a location.
            
Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.
            
A parameter specified on a transaction line will override a location parameter if they share the same parameter name.
            
To see available parameters for this location, call `/api/v2/definitions/parameters?$filter=attributeType eq Company`
            
Some parameters are only available for use if you have subscribed to specific AvaTax services. To see which parameters you are able to use, add the query parameter "$showSubscribed=true" to the parameter definition call above.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this location parameter. |
| `locationId` | integer | path | Yes | The location id. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The location parameters you wish to create. |

#### Retrieve a single company location parameter

`GET /api/v2/companies/{companyId}/locations/{locationId}/parameters/{id}`

Retrieve a single location parameter.
            
Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.
            
A parameter specified on a transaction line will override a location parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `locationId` | integer | path | Yes | The location id |
| `id` | integer | path | Yes | The parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a location parameter

`PUT /api/v2/companies/{companyId}/locations/{locationId}/parameters/{id}`

Update a location parameter.
            
Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.
            
A parameter specified on a transaction line will override a location parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `locationId` | integer | path | Yes | The location id |
| `id` | integer | path | Yes | The location parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The location parameter object you wish to update. |

#### Delete a single location parameter

`DELETE /api/v2/companies/{companyId}/locations/{locationId}/parameters/{id}`

Delete a single location parameter.
            
Some locations can be taxed differently depending on the properties of that location. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a location will be used by default in tax calculation but will not show on the transaction line referencing the location.
            
A parameter specified on a transaction line will override a location parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPAdmin, CSPTester, FirmAdmin, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `locationId` | integer | path | Yes | The location id |
| `id` | integer | path | Yes | The parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all locations

`GET /api/v2/locations`

Get multiple location objects across all companies.
An 'Location' represents a physical address where a company does business.
Many taxing authorities require that you define a list of all locations where your company does business.
These locations may require additional custom configuration or tax registration with these authorities.
For more information on metadata requirements, see the '/api/v2/definitions/locationquestions' API.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* LocationSettings
* parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* isMarketplaceOutsideUsa, settings, parameters |
| `$include` | string | query | No | A comma separated list of additional data to retrieve.  You may specify `LocationSettings` to retrieve location settings. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### MultiDocument

#### Retrieve all MultiDocument transactions

`GET /api/v2/transactions/multidocument`

List all MultiDocument transactions within this account.
            
This endpoint is limited to returning 1,000 MultiDocument transactions at a time.  To retrieve more than 1,000 MultiDocument
transactions, please use the pagination features of the API.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* documents |
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new MultiDocument transaction

`POST /api/v2/transactions/multidocument`

Records a new MultiDocument transaction in AvaTax.
            
A traditional transaction requires exactly two parties: a seller and a buyer.  MultiDocument transactions can
involve a marketplace of vendors, each of which contributes some portion of the final transaction.  Within
a MultiDocument transaction, each individual buyer and seller pair are matched up and converted to a separate
document.  This separation of documents allows each seller to file their taxes separately.
            
This API will report an error if you attempt to create a transaction when one already exists with the specified `code`.
If you would like the API to automatically update the transaction when it already exists, please set the `allowAdjust`
value to `true`.
            
To generate a refund for a transaction, use the `RefundTransaction` API.
            
The field `type` identifies the kind of transaction - for example, a sale, purchase, or refund.  If you do not specify
a `type` value, you will receive an estimate of type `SalesOrder`, which will not be recorded.
            
The origin and destination locations for a transaction must be identified by either address or geocode.  For address-based transactions, please
provide addresses in the fields `line`, `city`, `region`, `country` and `postalCode`.  For geocode-based transactions, please provide the geocode
information in the fields `latitude` and `longitude`.  If either `latitude` or `longitude` or both are null, the transaction will be calculated
using the best available address location information.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* ForceTimeout - Simulates a timeout.  This adds a 30 second delay and error to your API call.  This can be used to test your code to ensure it can respond correctly in the case of a dropped connection.
            
If you omit the `$include` parameter, the API will assume you want `Summary,Addresses`.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | the multi document transaction model |

#### Retrieve a MultiDocument transaction

`GET /api/v2/transactions/multidocument/{code}/type/{type}`

Get the current MultiDocument transaction identified by this URL.
            
If this transaction was adjusted, the return value of this API will be the current transaction with this code.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `code` | string | path | Yes | The multidocument code to retrieve |
| `type` | string | path | Yes | The transaction type to retrieve |
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Adjust a MultiDocument transaction

`POST /api/v2/transactions/multidocument/{code}/type/{type}/adjust`

Adjusts the current MultiDocument transaction uniquely identified by this URL.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
When you adjust a transaction, that transaction's status is recorded as `Adjusted`.
            
Both the revisions will be available for retrieval based on their code and ID numbers. Only transactions in Committed status can be reported on a tax filing by Avalara's Managed Returns Service.
            
Transactions that have been previously reported to a tax authority by Avalara Managed Returns are considered locked and are no longer available for adjustments.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `code` | string | path | Yes | The transaction code for this MultiDocument transaction |
| `type` | string | path | Yes | The transaction type for this MultiDocument transaction |
| `include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The adjust request you wish to execute |

#### Get audit information about a MultiDocument transaction

`GET /api/v2/transactions/multidocument/{code}/type/{type}/audit`

Retrieve audit information about a MultiDocument transaction stored in AvaTax.
            
The audit API retrieves audit information related to a specific MultiDocument transaction.  This audit
information includes the following:
            
* The `code` of the MultiDocument transaction
* The `type` of the MultiDocument transaction
* The server timestamp representing the exact server time when the transaction was created
* The server duration - how long it took to process this transaction
* Whether exact API call details were logged
* A reconstructed API call showing what the original create call looked like
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `code` | string | path | Yes | The transaction code for this MultiDocument transaction |
| `type` | string | path | Yes | The transaction type for this MultiDocument transaction |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a refund for a MultiDocument transaction

`POST /api/v2/transactions/multidocument/{code}/type/{type}/refund`

Create a refund for a MultiDocument transaction.
            
A traditional transaction requires exactly two parties: a seller and a buyer.  MultiDocument transactions can
involve a marketplace of vendors, each of which contributes some portion of the final transaction.  Within
a MultiDocument transaction, each individual buyer and seller pair are matched up and converted to a separate
document.  This separation of documents allows each seller to file their taxes separately.
            
The `RefundTransaction` API allows you to quickly and easily create a `ReturnInvoice` representing a refund
for a previously created `SalesInvoice` transaction.  You can choose to create a full or partial refund, and
specify individual line items from the original sale for refund.
            
The `RefundTransaction` API ensures that the tax amount you refund to the customer exactly matches the tax that
was calculated during the original transaction, regardless of any changes to your company's configuration, rules,
nexus, or any other setting.
            
This API is intended to be a shortcut to allow you to quickly and accurately generate a refund for the following
common refund scenarios:
            
* A full refund of a previous sale
* Refunding the tax that was charged on a previous sale, when the customer provides an exemption certificate after the purchase
* Refunding one or more items (lines) from a previous sale
* Granting a customer a percentage refund of a previous sale
            
For more complex scenarios than the ones above, please use `CreateTransaction` with document type `ReturnInvoice` to
create a custom refund transaction.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
            
If you omit the `$include` parameter, the API will assume you want `Summary,Addresses`.

NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `code` | string | path | Yes | The code of this MultiDocument transaction |
| `type` | string | path | Yes | The type of this MultiDocument transaction |
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Information about the refund to create |

#### Void a MultiDocument transaction

`POST /api/v2/transactions/multidocument/{code}/type/{type}/void`

Voids the current transaction uniquely identified by this URL.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
When you void a transaction, that transaction's status is recorded as `DocVoided`.
            
Transactions that have been previously reported to a tax authority by Avalara Managed Returns Service are considered `locked`,
and they are no longer available to be voided.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ProStoresOperator, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `code` | string | path | Yes | The transaction code for this MultiDocument transaction |
| `type` | string | path | Yes | The transaction type for this MultiDocument transaction |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The void request you wish to execute |

#### Retrieve a MultiDocument transaction by ID

`GET /api/v2/transactions/multidocument/{id}`

Get the unique MultiDocument transaction identified by this URL.
            
A traditional transaction requires exactly two parties: a seller and a buyer.  MultiDocument transactions can
involve a marketplace of vendors, each of which contributes some portion of the final transaction.  Within
a MultiDocument transaction, each individual buyer and seller pair are matched up and converted to a separate
document.  This separation of documents allows each seller to file their taxes separately.
            
This endpoint retrieves the exact transaction identified by this ID number even if that transaction was later adjusted
by using the `AdjustTransaction` endpoint.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The unique ID number of the MultiDocument transaction to retrieve |
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Commit a MultiDocument transaction

`POST /api/v2/transactions/multidocument/commit`

Marks a list of transactions by changing its status to `Committed`.
            
Transactions that are committed are available to be reported to a tax authority by Avalara Managed Returns.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
Any changes made to a committed transaction will generate a transaction history.

NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ProStoresOperator, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The commit request you wish to execute |

#### Verify a MultiDocument transaction

`POST /api/v2/transactions/multidocument/verify`

Verifies that the MultiDocument transaction uniquely identified by this URL matches certain expected values.
            
If the transaction does not match these expected values, this API will return an error code indicating which value did not match.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Information from your accounting system to verify against this MultiDocument transaction as it is stored in AvaTax |


### Nexus

#### Retrieve nexus for this company

`GET /api/v2/companies/{companyId}/nexus`

List all nexus objects defined for this company.
            
The concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional
taxes.  The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your
accountant or lawyer prior to declaring nexus.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
You may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:
            
 * Parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these nexus objects |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* streamlinedSalesTax, isSSTActive, taxTypeGroup, taxAuthorityId, taxName, parameters |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new nexus

`POST /api/v2/companies/{companyId}/nexus`

Creates one or more new nexus declarations attached to this company.
            
The concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional
taxes.  The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your
accountant or lawyer prior to declaring nexus.
            
To create a nexus declaration for your company, you must first call the Definitions API `ListNexus` to obtain a
list of Avalara-defined nexus.  Once you have determined which nexus you wish to declare, you should customize
only the user-selectable fields in this object.
            
The user selectable fields for the nexus object are `companyId`, `effectiveDate`, `endDate`, `localNexusTypeId`,
`taxId`, `nexusTypeId`, `hasPermanentEstablishment`, and `isSellerImporterOfRecord`.
            
When calling `CreateNexus` or `UpdateNexus`, all values in your nexus object except for the user-selectable fields
must match an Avalara-defined system nexus object.  You can retrieve a list of Avalara-defined system nexus objects
by calling `ListNexus`.  If any data does not match, AvaTax may not recognize your nexus declaration.
            
Please note that nexus changes may not take effect immediately and you should plan to update your nexus settings in advance
of calculating tax for a location.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this nexus. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The nexus you wish to create. |

#### Retrieve a single nexus

`GET /api/v2/companies/{companyId}/nexus/{id}`

Get the nexus object identified by this URL.
            
The concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional
taxes.  The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your
accountant or lawyer prior to declaring nexus.
You may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:
            
 * Parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this nexus object |
| `id` | integer | path | Yes | The primary key of this nexus |
| `$include` | string | query | No |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single nexus

`PUT /api/v2/companies/{companyId}/nexus/{id}`

Replace the existing nexus declaration object at this URL with an updated object.
            
The concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional
taxes.  The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your
accountant or lawyer prior to declaring nexus.
            
To create a nexus declaration for your company, you must first call the Definitions API `ListNexus` to obtain a
list of Avalara-defined nexus.  Once you have determined which nexus you wish to declare, you should customize
only the user-selectable fields in this object.
            
The user selectable fields for the nexus object are `companyId`, `effectiveDate`, `endDate`, `localNexusTypeId`,
`taxId`, `nexusTypeId`, `hasPermanentEstablishment`, and `isSellerImporterOfRecord`.
            
When calling `CreateNexus` or `UpdateNexus`, all values in your nexus object except for the user-selectable fields
must match an Avalara-defined system nexus object.  You can retrieve a list of Avalara-defined system nexus objects
by calling `ListNexus`.  If any data does not match, AvaTax may not recognize your nexus declaration.
            
Please note that nexus changes may not take effect immediately and you should plan to update your nexus settings in advance
of calculating tax for a location.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this nexus belongs to. |
| `id` | integer | path | Yes | The ID of the nexus you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The nexus object you wish to update. |

#### Delete a single nexus

`DELETE /api/v2/companies/{companyId}/nexus/{id}`

Marks the existing nexus object at this URL as deleted.
            
The concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional
taxes.  The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your
accountant or lawyer prior to declaring nexus.
            
Please note that nexus changes may not take effect immediately and you should plan to update your nexus settings in advance
of calculating tax for a location.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this nexus. |
| `id` | integer | path | Yes | The ID of the nexus you wish to delete. |
| `cascadeDelete` | boolean | query | No | If true, deletes all the child nexus if they exist along with parent nexus |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve parameters for a nexus

`GET /api/v2/companies/{companyId}/nexus/{nexusId}/parameters`

List parameters for a nexus.
Some tax calculation and reporting are different depending on the properties of the nexus, such as isRemoteSeller. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.
            
A parameter specified on a transaction line will override a nexus parameter if they share the same parameter name.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `nexusId` | integer | path | Yes | The nexus id |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* name, unit |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Add parameters to a nexus.

`POST /api/v2/companies/{companyId}/nexus/{nexusId}/parameters`

Add parameters to the nexus.
Some tax calculation and reporting are different depending on the properties of the nexus, such as isRemoteSeller. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.
            
A parameter specified on a transaction line will override a nexus parameter if they share the same parameter name.
            
To see available parameters for this item, call `/api/v2/definitions/parameters?$filter=attributeType eq Nexus`
            
Some parameters are only available for use if you have subscribed to specific AvaTax services. To see which parameters you are able to use, add the query parameter "$showSubscribed=true" to the parameter definition call above.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this nexus parameter. |
| `nexusId` | integer | path | Yes | The nexus id. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The nexus parameters you wish to create. |

#### Delete all parameters for a nexus

`DELETE /api/v2/companies/{companyId}/nexus/{nexusId}/parameters`

Delete all the parameters for a given nexus.
Some tax calculation and reporting are different depending on the properties of the nexus, such as isRemoteSeller. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.
            
A parameter specified on a transaction line will override a nexus parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this nexus. |
| `nexusId` | integer | path | Yes | The ID of the nexus you wish to delete the parameters. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single nexus parameter

`GET /api/v2/companies/{companyId}/nexus/{nexusId}/parameters/{id}`

Retrieve a single nexus parameter.
Some tax calculation and reporting are different depending on the properties of the nexus, such as isRemoteSeller.In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.
            
A parameter specified on a transaction line will override a nexus parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `nexusId` | integer | path | Yes | The nexus id |
| `id` | integer | path | Yes | The parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a nexus parameter

`PUT /api/v2/companies/{companyId}/nexus/{nexusId}/parameters/{id}`

Update a nexus parameter.
            
Some tax calculation and reporting are different depending on the properties of the nexus, such as isRemoteSeller. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a nexus will be used in tax calculation based on the locationcode and parameter value provided to the transaction.
            
A parameter specified on a transaction line will override a nexus parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id. |
| `nexusId` | integer | path | Yes | The nexus id |
| `id` | integer | path | Yes | The nexus parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The nexus object you wish to update. |

#### Delete a single nexus parameter

`DELETE /api/v2/companies/{companyId}/nexus/{nexusId}/parameters/{id}`

Delete a single nexus parameter.
Some tax calculation and reporting are different depending on the properties of the nexus, such as isRemoteSeller. In AvaTax, these tax-affecting properties are called "parameters".
            
A parameter added to a nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.
            
A parameter specified on a transaction line will override a nexus parameter if they share the same parameter name.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The company id |
| `nexusId` | integer | path | Yes | The nexus id |
| `id` | integer | path | Yes | The parameter id |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Creates nexus for a list of addresses.

`POST /api/v2/companies/{companyId}/nexus/byaddress`

This call is intended to simplify adding all applicable nexus to a company, for an address or addresses. Calling this
API declares nexus for this company, for the list of addresses provided,
for the date range provided. You may also use this API to extend effective date on an already-declared nexus.
            
The concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional
taxes.  The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your
accountant or lawyer prior to declaring nexus.
            
Note that not all fields within a nexus can be updated; Avalara publishes a list of all defined nexus at the
'/api/v2/definitions/nexus' endpoint.
            
You may only define nexus matching the official list of declared nexus.
            
Please note that nexus changes may not take effect immediately and you should plan to update your nexus settings in advance
of calculating tax for a location.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that will own this nexus. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The nexus you wish to create. |

#### List company nexus related to a tax form

`GET /api/v2/companies/{companyId}/nexus/byform/{formCode}`

Retrieves a list of nexus related to a tax form.
            
The concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional
taxes.  The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your
accountant or lawyer prior to declaring nexus.
            
This API is intended to provide useful information when examining a tax form.  If you are about to begin filing
a tax form, you may want to know whether you have declared nexus in all the jurisdictions related to that tax
form in order to better understand how the form will be filled out.
You may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:
            
 * Parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this nexus object |
| `formCode` | string | path | Yes | The form code that we are looking up the nexus for |
| `$include` | string | query | No |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve nexus for this company By TaxTypeGroup

`GET /api/v2/companies/{companyId}/nexus/byTaxTypeGroup/{taxTypeGroup}`

List all nexus objects defined for this company filtered by TaxTypeGroup.
            
The concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional
taxes.  The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your
accountant or lawyer prior to declaring nexus.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
You may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:
            
 * Parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these nexus objects |
| `taxTypeGroup` | string | path | Yes | Name of TaxTypeGroup to filter by |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* streamlinedSalesTax, isSSTActive, taxTypeGroup, taxAuthorityId, taxName, parameters |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all nexus

`GET /api/v2/nexus`

Get multiple nexus objects across all companies.
            
The concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional
taxes.  The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your
accountant or lawyer prior to declaring nexus.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
You may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:
            
 * Parameters

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* streamlinedSalesTax, isSSTActive, taxTypeGroup, taxAuthorityId, taxName, parameters |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Notices

#### Creates a new tax notice responsibility type.

`POST /api/v2/notices/responsibilities`

This API is available by invitation only and only available for users with Compliance admin access.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The responsibility type to create |

#### Delete a tax notice responsibility type.

`DELETE /api/v2/notices/responsibilities/{responsibilityId}`

This API is available by invitation only and only available for users with Compliance admin access.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `responsibilityId` | integer | path | Yes | The unique ID of the responsibility type |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Creates a new tax notice root cause type.

`POST /api/v2/notices/rootcauses`

This API is available by invitation only and only available for users with Compliance admin access.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The root cause type to create |

#### Delete a tax notice root cause type.

`DELETE /api/v2/notices/rootcauses/{rootCauseId}`

This API is available by invitation only and only available for users with Compliance admin access.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `rootCauseId` | integer | path | Yes | The unique ID of the root cause type |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Notifications

#### List all notifications.

`GET /api/v2/notifications`

List all notifications.
            
A notification is a message from Avalara that may have relevance to your business.  You may want
to regularly review notifications and then dismiss them when you are certain that you have addressed
any relevant concerns raised by this notification.
            
An example of a notification would be a message about new software, or a change to AvaTax that may
affect you, or a potential issue with your company's tax profile.
            
You may search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single notification.

`GET /api/v2/notifications/{id}`

Retrieve a single notification by its unique ID number.
            
A notification is a message from Avalara that may have relevance to your business.  You may want
to regularly review notifications and then dismiss them when you are certain that you have addressed
any relevant concerns raised by this notification.
            
An example of a notification would be a message about new software, or a change to AvaTax that may
affect you, or a potential issue with your company's tax profile.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The id of the notification to retrieve. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Mark a single notification as dismissed.

`PUT /api/v2/notifications/{id}/dismiss`

Marks the notification identified by this URL as dismissed.
            
A notification is a message from Avalara that may have relevance to your business.  You may want
to regularly review notifications and then dismiss them when you are certain that you have addressed
any relevant concerns raised by this notification.
            
An example of a notification would be a message about new software, or a change to AvaTax that may
affect you, or a potential issue with your company's tax profile.
            
When you dismiss a notification, the notification will track the user and time when it was
dismissed.  You can then later review which employees of your company dismissed notifications to
determine if they were resolved appropriately.
            
A Global notification with null accountId and companyId cannot be dismissed and will expire within a given time span.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The id of the notification you wish to mark as dismissed. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Provisioning

#### Request a new entitilement to an existing customer

`POST /api/v2/accounts/{id}/entitlements/{offer}`

This API is for use by partner provisioning services customers only. This allows the partners to add
new entitlements to an existing customer.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
* This API is available by invitation only.
* This API is available by invitation only.  To request access to this feature, please speak to a business development manager and request access to [Provisioning:RequestNewAccount].

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The avatax account id of the customer |
| `offer` | string | path | Yes | The offer to be added to an already existing customer |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Request a new Avalara account

`POST /api/v2/accounts/request`

This API is for use by partner provisioning services customers only.
            
Avalara invites select partners to refer new customers to the AvaTax service using the onboarding features
of AvaTax.  These partners can create accounts for new customers using this API.
            
Calling this API creates an account with the specified product subscriptions, but does not configure billing.
The customer will receive information from Avalara about how to configure billing for their account.
You should call this API when a customer has requested to begin using Avalara services.
            
If the newly created account owner wishes, they can confirm that they have read and agree to the Avalara
terms and conditions.  If they do so, they can receive a license key as part of this API and their
API will be created in `Active` status.  If the customer has not yet read and accepted these terms and
conditions, the account will be created in `New` status and they can receive a license key by logging
onto the AvaTax website and reviewing terms and conditions online.
            
In Sandbox environment, the account will always be created as a test account regardless of the IsTest
parameter in the request.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
* This API is available by invitation only.
* This API is available by invitation only.  To request access to this feature, please speak to a business development manager and request access to [Provisioning:RequestNewAccount].

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Information about the account you wish to create and the selected product offerings. |


### Reports

#### Initiate an ExportDocumentLine report task

`POST /api/v2/companies/{companyId}/reports/exportdocumentline/initiate`

Begins running an `ExportDocumentLine` report task and returns the identity of the report.
            
Reports are run as asynchronous report tasks on the server.  When complete, the report file will be available for download
for up to 30 days after completion.  To run an asynchronous report, you should follow these steps:
            
* Begin a report by calling the report's Initiate API.
* In the result of the Initiate API, you receive back a report's `id` value.
* All reports with `InQueue` status are picked up by the report service and processed in the background.
* Reports that are picked up by the report service will have an `InProgress` status.
* Reports will be updated to `Completed` status when the report is ready for download.
* Check the status of a report by calling `GetReport` and passing in the report's `id` value.
* When a report's status is `Completed`, call `DownloadReport` to retrieve the file.
            
The `ExportDocumentLine` report produces information about invoice lines recorded within your account.
            
Set `compression` to `GZIP` to reduce the size of the report file and increase download speed.
            
The currently supported reports are: **Document**, **Document Summary**, **Document Line**, **Document Line Detail**, **Multitax Line Detail**, **Liability**, **Tax Region**, **AP Document**, **AP Document Detail**, and **Document Line Detail All Taxes**.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company to report on. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Options that may be configured to customize the report. |

#### List all report tasks for account

`GET /api/v2/reports`

List all report tasks for your account.
            
Reports are run as asynchronous report tasks on the server.  When complete, the report file will be available for download
for up to 30 days after completion.  To run an asynchronous report, you should follow these steps:
            
* Begin a report by calling the report's Initiate API.  There is a separate initiate API call for each report type.
* In the result of the Initiate API, you receive back a report's `id` value.
* Check the status of a report by calling `GetReport` and passing in the report's `id` value.
* When a report's status is `Completed`, call `DownloadReport` to retrieve the file.
            
This API call returns information about all report types across your entire account.
            
Audit-log report types (`audit`, `audittransactionlogs`) are not included in this list; retrieve those via the
`GetAuditLogReport` / `DownloadAuditLogReport` APIs.
            
Pagination note: when the response includes a non-null `pageKey` (next link), more results may exist and the
caller should follow it, even if the current page returned fewer than the requested number of records. This can
happen when a `$filter` is applied, because matches are evaluated server-side across backend pages.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | query | No | The id of the company for which to get reports. |
| `pageKey` | string | query | No | Provide a page key to retrieve the next page of results. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* reportType, parameters, status, size, format, file, createdUser, completedDate |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single report

`GET /api/v2/reports/{id}`

Retrieve a single report by its unique ID number.
            
Reports are run as asynchronous report tasks on the server.  When complete, the report file will be available for download
for up to 30 days after completion.  To run an asynchronous report, you should follow these steps:
            
* Begin a report by calling the report's Initiate API.  There is a separate initiate API call for each report type.
* In the result of the Initiate API, you receive back a report's `id` value.
* Check the status of a report by calling `GetReport` and passing in the report's `id` value.
* When a report's status is `Completed`, call `DownloadReport` to retrieve the file.
            
This API call returns information about any report type.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The unique ID number of the report to retrieve |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Download a report

`GET /api/v2/reports/{id}/attachment`

This API downloads the file associated with a report.
            
If the report is not yet complete, you will receive a `ReportNotFinished` error.  To check if a report is complete,
use the `GetReport` API.
            
Reports are run as asynchronous report tasks on the server.  When complete, the report file will be available for download
for up to 30 days after completion.  To run an asynchronous report, you should follow these steps:
            
* Begin a report by calling the report's Initiate API.  There is a separate initiate API call for each report type.
* In the result of the Initiate API, you receive back a report's `id` value.
* Check the status of a report by calling `GetReport` and passing in the report's `id` value.
* When a report's status is `Completed`, call `DownloadReport` to retrieve the file.
            
* We throttle this API. You can only call this API up to 5 times in a minute.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The unique ID number of this report |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Initiate an ExportAuditLogs report task

`POST /api/v2/reports/exportauditlogs`

Begins running an `ExportAuditLogs` report task and returns the identity of the report.
            
Reports are run on the server.  When complete, the report file will be available for download
for up to 30 days after completion.  To run a report, you should follow these steps:
            
* Begin a report by calling the report's ExportAuditLogs API.
* In the result of the ExportAuditLogs API, you receive a report's `id` value.
* All reports with `InQueue` status are picked up by the report service and processed in the background.
* Reports that are picked up by the report service will have an `InProgress` status.
* Reports will be updated to `Completed` status when the report is ready for download.
* Check the status of a report by calling `GetAuditLogReport` and passing in the report's `id` value.
* When a report's status is `Completed`, call `DownloadAuditLogReport` to retrieve the file.
            
The `ExportAuditLogs` report produces information about audit records within your account.
            
The following `reportType` values are supported:
* `audit` - Exports audit records for configuration changes. Requires `reportSubType` to specify the table name.
* `audittransactionlogs` - Exports transaction audit logs.
            
When `reportType` is `audit`, the `reportSubType` field supports the following valid table names:
`NEXUS`, `USER`, `COMPANY`, `ACCOUNT`, `COMPANYLOCATION`, `ACCOUNTSETTING`, `COMPANYLOCATIONSETTING`,
`COMPANYSETTING`, `TAXCODE`, `TAXRULE`, `ADDRESSSERVICECONFIG`, `AUDITADVANCEDRULE`, `COMPANYCONTACT`,
`COMPANYLOCATIONPARAMETERDETAIL`, `COMPANYLOCATIONSETTINGCONFIG`, `COMPANYPARAMETERDETAIL`, `COMPANYRETURN`,
`COMPANYRETURNSETTING`, `ITEM`, `SERVICE`, `EXEMPTCERT`, `AVACERTSERVICECONFIG`, `JURISDICTIONOVERRIDE`, `COSTCENTER`.
            
Set `compression` to `GZIP` to reduce the size of the report file and increase download speed.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Options that may be configured to customize the report. |

#### Retrieve a single audit log report

`GET /api/v2/reports/exportauditlogs/{id}`

Retrieve a single audit log report by its unique ID number.
            
Reports are run on the server.  When complete, the report file will be available for download
for up to 30 days after completion.  To run a report, you should follow these steps:
            
* Begin a report by calling the report's ExportAuditLogs API.
* In the result of the ExportAuditLogs API, you receive back a report's `id` value.
* Check the status of a report by calling `GetAuditLogReport` and passing in the report's `id` value.
* When a report's status is `Completed`, call `DownloadAuditLogReport` to retrieve the file.
            
This API call returns information about audit log report types.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | string | path | Yes | The unique ID number of the report to retrieve |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Download an audit log report

`GET /api/v2/reports/exportauditlogs/{id}/attachment`

This API downloads the file associated with an audit log report.
            
If the report is not yet complete, you will receive a `ReportNotFinished` error.  To check if a report is complete,
use the `GetAuditLogReport` API.
            
Reports are run on the server.  When complete, the report file will be available for download
for up to 30 days after completion.  To run a report, you should follow these steps:
            
* Begin a report by calling the report's ExportAuditLogs API.
* In the result of the ExportAuditLogs API, you receive back a report's `id` value.
* Check the status of a report by calling `GetAuditLogReport` and passing in the report's `id` value.
* When a report's status is `Completed`, call `DownloadAuditLogReport` to retrieve the file.
            
* We throttle this API. You can only call this API up to 5 times in a minute.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | string | path | Yes | The unique ID number of this report |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Settings

#### Retrieve all settings for this company

`GET /api/v2/companies/{companyId}/settings`

List all setting objects attached to this company.
            
The company settings system is a metadata system that you can use to store extra information
about a company.  Your integration or connector could use this data storage to keep track of
preference information, reminders, or any other storage that would need to persist even if
the customer uninstalls your application.
            
A setting can refer to any type of data you need to remember about this company object.
When creating this object, you may define your own `set`, `name`, and `value` parameters.
To define your own values, please choose a `set` name that begins with `X-` to indicate an extension.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these settings |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* modifiedDate, ModifiedUserId |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new setting

`POST /api/v2/companies/{companyId}/settings`

Create one or more new setting objects attached to this company.
            
The company settings system is a metadata system that you can use to store extra information
about a company.  Your integration or connector could use this data storage to keep track of
preference information, reminders, or any other storage that would need to persist even if
the customer uninstalls your application.
            
A setting can refer to any type of data you need to remember about this company object.
When creating this object, you may define your own `set`, `name`, and `value` parameters.
To define your own values, please choose a `set` name that begins with `X-` to indicate an extension.
            
Use Set = Transactions, Name = TaxCodePrioritization/HSCodePrioritization and Value = Transaction/ItemMaster for prioritizing which TaxCodes/HsCodes should be used for calculating taxes.
            
Example: To prioritize TaxCodes passed in a Transaction over values stored with Items when calculating tax, use
Set = Transactions, Name = TaxCodePrioritization, Value = Transaction

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this setting. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The setting you wish to create. |

#### Retrieve a single setting

`GET /api/v2/companies/{companyId}/settings/{id}`

Get a single setting object by its unique ID.
            
The company settings system is a metadata system that you can use to store extra information
about a company.  Your integration or connector could use this data storage to keep track of
preference information, reminders, or any other storage that would need to persist even if
the customer uninstalls your application.
            
A setting can refer to any type of data you need to remember about this company object.
When creating this object, you may define your own `set`, `name`, and `value` parameters.
To define your own values, please choose a `set` name that begins with `X-` to indicate an extension.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this setting |
| `id` | integer | path | Yes | The primary key of this setting |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single setting

`PUT /api/v2/companies/{companyId}/settings/{id}`

Replace the existing setting object at this URL with an updated object.
            
The company settings system is a metadata system that you can use to store extra information
about a company.  Your integration or connector could use this data storage to keep track of
preference information, reminders, or any other storage that would need to persist even if
the customer uninstalls your application.
            
A setting can refer to any type of data you need to remember about this company object.
When creating this object, you may define your own `set`, `name`, and `value` parameters.
To define your own values, please choose a `set` name that begins with `X-` to indicate an extension.
            
All data from the existing object will be replaced with data in the object you `PUT`.
            
To set a field's value to `null`, you may either set its value to `null` or omit that field from the object when calling update.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this setting belongs to. |
| `id` | integer | path | Yes | The ID of the setting you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The setting you wish to update. |

#### Delete a single setting

`DELETE /api/v2/companies/{companyId}/settings/{id}`

Mark the setting object at this URL as deleted.
            
The company settings system is a metadata system that you can use to store extra information
about a company.  Your integration or connector could use this data storage to keep track of
preference information, reminders, or any other storage that would need to persist even if
the customer uninstalls your application.
            
A setting can refer to any type of data you need to remember about this company object.
When creating this object, you may define your own `set`, `name`, and `value` parameters.
To define your own values, please choose a `set` name that begins with `X-` to indicate an extension.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this setting. |
| `id` | integer | path | Yes | The ID of the setting you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all settings

`GET /api/v2/settings`

Get multiple setting objects across all companies.
            
The company settings system is a metadata system that you can use to store extra information
about a company.  Your integration or connector could use this data storage to keep track of
preference information, reminders, or any other storage that would need to persist even if
the customer uninstalls your application.
            
A setting can refer to any type of data you need to remember about this company object.
When creating this object, you may define your own `set`, `name`, and `value` parameters.
To define your own values, please choose a `set` name that begins with `X-` to indicate an extension.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* modifiedDate, ModifiedUserId |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Subscriptions

#### Retrieve subscriptions for this account

`GET /api/v2/accounts/{accountId}/subscriptions`

List all subscription objects attached to this account.
A 'subscription' indicates a licensed subscription to a named Avalara service.
To request or remove subscriptions, please contact Avalara sales or your customer account manager.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that owns these subscriptions |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* subscriptionDescription |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single subscription

`GET /api/v2/accounts/{accountId}/subscriptions/{id}`

Get the subscription object identified by this URL.
A 'subscription' indicates a licensed subscription to a named Avalara service.
To request or remove subscriptions, please contact Avalara sales or your customer account manager.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The ID of the account that owns this subscription |
| `id` | integer | path | Yes | The primary key of this subscription |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all subscriptions

`GET /api/v2/subscriptions`

Get multiple subscription objects across all accounts.
A 'subscription' indicates a licensed subscription to a named Avalara service.
To request or remove subscriptions, please contact Avalara sales or your customer account manager.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* subscriptionDescription |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### TaxCodes

#### Retrieve tax codes for this company

`GET /api/v2/companies/{companyId}/taxcodes`

List all taxcode objects attached to this company.
A 'TaxCode' represents a uniquely identified type of product, good, or service.
Avalara supports correct tax rates and taxability rules for all TaxCodes in all supported jurisdictions.
If you identify your products by tax code in your 'Create Transaction' API calls, Avalara will correctly calculate tax rates and
taxability rules for this product in all supported jurisdictions.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these tax codes |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new tax code

`POST /api/v2/companies/{companyId}/taxcodes`

Create one or more new taxcode objects attached to this company.
A 'TaxCode' represents a uniquely identified type of product, good, or service.
Avalara supports correct tax rates and taxability rules for all TaxCodes in all supported jurisdictions.
If you identify your products by tax code in your 'Create Transaction' API calls, Avalara will correctly calculate tax rates and
taxability rules for this product in all supported jurisdictions.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this tax code. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The tax code you wish to create. |

#### Retrieve a single tax code

`GET /api/v2/companies/{companyId}/taxcodes/{id}`

Get the taxcode object identified by this URL.
A 'TaxCode' represents a uniquely identified type of product, good, or service.
Avalara supports correct tax rates and taxability rules for all TaxCodes in all supported jurisdictions.
If you identify your products by tax code in your 'Create Transaction' API calls, Avalara will correctly calculate tax rates and
taxability rules for this product in all supported jurisdictions.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this tax code |
| `id` | integer | path | Yes | The primary key of this tax code |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single tax code

`PUT /api/v2/companies/{companyId}/taxcodes/{id}`

Replace the existing taxcode object at this URL with an updated object.
A 'TaxCode' represents a uniquely identified type of product, good, or service.
Avalara supports correct tax rates and taxability rules for all TaxCodes in all supported jurisdictions.
If you identify your products by tax code in your 'Create Transaction' API calls, Avalara will correctly calculate tax rates and
taxability rules for this product in all supported jurisdictions.
All data from the existing object will be replaced with data in the object you PUT.
To set a field's value to null, you may either set its value to null or omit that field from the object you post.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this tax code belongs to. |
| `id` | integer | path | Yes | The ID of the tax code you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The tax code you wish to update. |

#### Delete a single tax code

`DELETE /api/v2/companies/{companyId}/taxcodes/{id}`

Marks the existing TaxCode object at this URL as deleted.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this tax code. |
| `id` | integer | path | Yes | The ID of the tax code you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all tax codes

`GET /api/v2/taxcodes`

Get multiple taxcode objects across all companies.
A 'TaxCode' represents a uniquely identified type of product, good, or service.
Avalara supports correct tax rates and taxability rules for all TaxCodes in all supported jurisdictions.
If you identify your products by tax code in your 'Create Transaction' API calls, Avalara will correctly calculate tax rates and
taxability rules for this product in all supported jurisdictions.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### TaxContent

#### Build a tax content file for a single location

`GET /api/v2/companies/{companyId}/locations/{id}/pointofsaledata`

Builds a tax content file containing information useful for a retail point-of-sale solution.
            
Since tax rates may change based on decisions made by a variety of tax authorities, we recommend
that users of this tax content API download new data every day.  Many tax authorities may finalize
decisions on tax changes at unexpected times and may make changes in response to legal issues or
governmental priorities.  Any tax content downloaded for future time periods is subject to change
if tax rates or tax laws change.
            
A TaxContent file contains a matrix of the taxes that would be charged when you sell any of your
Items at any of your Locations.  To create items, use `CreateItems()`.  To create locations, use
`CreateLocations()`.  The file is built by looking up the tax profile for your location and your
item and calculating taxes for each in turn.  To include a custom `TaxCode` in this tax content
file, first create the custom tax code using `CreateTaxCodes()` to create the custom tax code,
then use `CreateItems()` to create an item that uses the custom tax code.
            
This data file can be customized for specific partner devices and usage conditions.
            
The result of this API is the file you requested in the format you requested using the `responseType` field.
            
This API builds the file on demand, and is limited to files with no more than 7500 scenarios.  To build a tax content
file for a multiple locations in a single file, please use `BuildTaxContentFile`.
            
NOTE: This API does not work for sales tax holiday scenarios.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID number of the company that owns this location. |
| `id` | integer | path | Yes | The ID number of the location to retrieve point-of-sale data. |
| `date` | string | query | No | The date for which point-of-sale data would be calculated (today by default) |
| `format` | string | query | No | The format of the file (JSON by default) |
| `partnerId` | string | query | No | If specified, requests a custom partner-formatted version of the file. |
| `includeJurisCodes` | boolean | query | No | When true, the file will include jurisdiction codes in the result. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Build a multi-location tax content file

`POST /api/v2/pointofsaledata/build`

Builds a tax content file containing information useful for a retail point-of-sale solution.
            
Since tax rates may change based on decisions made by a variety of tax authorities, we recommend
that users of this tax content API download new data every day.  Many tax authorities may finalize
decisions on tax changes at unexpected times and may make changes in response to legal issues or
governmental priorities.  Any tax content downloaded for future time periods is subject to change
if tax rates or tax laws change.
            
A TaxContent file contains a matrix of the taxes that would be charged when you sell any of your
Items at any of your Locations.  To create items, use `CreateItems()`.  To create locations, use
`CreateLocations()`.  The file is built by looking up the tax profile for your location and your
item and calculating taxes for each in turn.  To include a custom `TaxCode` in this tax content
file, first create the custom tax code using `CreateTaxCodes()` to create the custom tax code,
then use `CreateItems()` to create an item that uses the custom tax code.
            
This data file can be customized for specific partner devices and usage conditions.
            
The result of this API is the file you requested in the format you requested using the `responseType` field.
            
This API builds the file on demand, and is limited to files with no more than 7500 scenarios.  To build a tax content
file for a single location at a time, please use `BuildTaxContentFileForLocation`.
            
NOTE: This API does not work for sales tax holiday scenarios.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Parameters about the desired file format and report format, specifying which company, locations and TaxCodes to include. |

#### Get VAT rates for a country

`GET /api/v2/taxcontent/rates/{country}`

Returns VAT/GST rates for the specified country.
JurisdictionTypeId is always 'CNT' (Country) for this API.
Returns a FetchResult with Rate, DisplayName (formatted as " ()"), and other fields.
Supports $filter, $top, $skip, and $orderBy query parameters.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | Country code (e.g., "CA", "BE") |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* displayName, jurisCode, jurisdictionTypeId, country, taxTypeGroupId |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Sales tax rates for a specified address

`GET /api/v2/taxrates/byaddress`

This API assumes that you are selling general tangible personal property at a retail point-of-sale
location in the United States only.
            
Please be advised that this endpoint is designed for approximate tax rate estimation only and
may not yield precise results. For a more powerful and accurate tax estimation, upgrade to the
`CreateTransaction` API, which offers a variety of advanced features including, but not limited
to:
            
* Nexus declarations
* Taxability based on product/service type
* Sourcing rules affecting origin/destination states
* Customers who are exempt from certain taxes
* States that have dollar value thresholds for tax amounts
* Refunds for products purchased on a different date
* Detailed jurisdiction names and state assigned codes
* And more!
            
Please see [Estimating Tax with REST v2](http://developer.avalara.com/blog/2016/11/04/estimating-tax-with-rest-v2/)
for information on how to upgrade to the full AvaTax CreateTransaction API.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `line1` | string | query | Yes | The street address of the location. |
| `line2` | string | query | No | The street address of the location. |
| `line3` | string | query | No | The street address of the location. |
| `city` | string | query | No | The city name of the location. |
| `region` | string | query | Yes | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `postalCode` | string | query | Yes | The postal code of the location. |
| `country` | string | query | Yes | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Sales tax rates for a specified country and postal code. This API is only available for US postal codes.

`GET /api/v2/taxrates/bypostalcode`

This API is only available for a US postal codes.
            
Usage of this API is subject to rate limits.  Users who exceed the rate limit will receive HTTP
response code 429 - `Too Many Requests`.
            
This API assumes that you are selling general tangible personal property at a retail point-of-sale
location in the United States only.
            
Please be advised that this endpoint is designed for approximate tax rate estimation only and
may not yield precise results. For a more powerful and accurate tax estimation, upgrade to the
`CreateTransaction` API, which offers a variety of advanced features including, but not limited
to:
            
* Nexus declarations
* Taxability based on product/service type
* Sourcing rules affecting origin/destination states
* Customers who are exempt from certain taxes
* States that have dollar value thresholds for tax amounts
* Refunds for products purchased on a different date
* Detailed jurisdiction names and state assigned codes
* And more!
            
Please see [Estimating Tax with REST v2](http://developer.avalara.com/blog/2016/11/04/estimating-tax-with-rest-v2/)
for information on how to upgrade to the full AvaTax CreateTransaction API.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | query | Yes | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `postalCode` | string | query | Yes | The postal code of the location. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Download a file listing tax rates by postal code

`GET /api/v2/taxratesbyzipcode/download/{date}`

Download a CSV file containing all five digit postal codes in the United States and their sales
and use tax rates for tangible personal property.
            
Since tax rates may change based on decisions made by a variety of tax authorities, we recommend
that users of this tax content API download new data every day.  Many tax authorities may finalize
decisions on tax changes at unexpected times and may make changes in response to legal issues or
governmental priorities.  Any tax content downloaded for future time periods is subject to change
if tax rates or tax laws change.
            
This rates file is intended to be used as a default for tax calculation when your software cannot
call the `CreateTransaction` API call.  When using this file, your software will be unable to
handle complex tax rules such as:
            
* Zip+4 - This tax file contains five digit zip codes only.
* Different product types - This tax file contains tangible personal property tax rates only.
* Mixed sourcing - This tax file cannot be used to resolve origin-based taxes.
* Threshold-based taxes - This tax file does not contain information about thresholds.
            
If you use this file to provide default tax rates, please ensure that your software calls `CreateTransaction`
to reconcile the actual transaction and determine the difference between the estimated general tax
rate and the final transaction tax.
            
The file provided by this API is in CSV format with the following columns:
            
* ZIP_CODE - The five digit zip code for this record.
* STATE_ABBREV - A valid two character US state abbreviation for this record.  Zip codes may span multiple states.
* COUNTY_NAME - A valid county name for this record.  Zip codes may span multiple counties.
* CITY_NAME - A valid city name for this record.  Zip codes may span multiple cities.
* STATE_SALES_TAX - The state component of the sales tax rate.
* STATE_USE_TAX - The state component of the use tax rate.
* COUNTY_SALES_TAX - The county component of the sales tax rate.
* COUNTY_USE_TAX - The county component of the use tax rate.
* CITY_SALES_TAX - The city component of the sales tax rate.
* CITY_USE_TAX - The city component of the use tax rate.
* TOTAL_SALES_TAX - The total tax rate for sales tax for this postal code.  This value may not equal the sum of the state/county/city due to special tax jurisdiction rules.
* TOTAL_USE_TAX - The total tax rate for use tax for this postal code.  This value may not equal the sum of the state/county/city due to special tax jurisdiction rules.
* TAX_SHIPPING_ALONE - This column contains 'Y' if shipping is taxable.
* TAX_SHIPPING_AND_HANDLING_TOGETHER - This column contains 'Y' if shipping and handling are taxable when sent together.
            
For more detailed tax content, please use the `BuildTaxContentFile` API which allows usage of exact items and exact locations.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `date` | string | path | Yes | The date for which point-of-sale data would be calculated (today by default). Example input: 2016-12-31 |
| `region` | string | query | No | A two character region code which limits results to a specific region. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### TaxRules

#### Retrieve country coefficients for specific country

`GET /api/v2/{country}/CountryCoefficients`

Retrieve all or any specific records of Country Coefficients based on the filters(optional) for specific country.
 
 Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
 Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `country` | string | path | Yes | Country for which data need to be pulled for. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* CoefficientsId, AccountId, ModifiedUserId, CreatedUserId |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve tax rules for this company

`GET /api/v2/companies/{companyId}/taxrules`

List all taxrule objects attached to this company.
            
A tax rule represents a rule that changes the default AvaTax behavior for a product or jurisdiction.  Custom tax rules
can be used to change the taxability of an item, to change the tax base of an item, or to change the tax rate
charged when selling an item.  Tax rules can also change tax behavior depending on the `entityUseCode` value submitted
with the transaction.
            
You can create custom tax rules to customize the behavior of AvaTax to match specific rules that are custom to your
business.  If you have obtained a ruling from a tax auditor that requires custom tax calculations, you can use
custom tax rules to redefine the behavior for your company or item.
            
Please use custom tax rules carefully and ensure that these tax rules match the behavior agreed upon with your
auditor, legal representative, and accounting team.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these tax rules |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* taxCode, taxTypeCode, taxRuleProductDetail, rateTypeCode, taxTypeGroup, taxSubType, unitOfBasis |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new tax rule

`POST /api/v2/companies/{companyId}/taxrules`

Create one or more custom tax rules attached to this company.
            
A tax rule represents a rule that changes the default AvaTax behavior for a product or jurisdiction.  Custom tax rules
can be used to change the taxability of an item, to change the tax base of an item, or to change the tax rate
charged when selling an item.  Tax rules can also change tax behavior depending on the `entityUseCode` value submitted
with the transaction.
            
You can create custom tax rules to customize the behavior of AvaTax to match specific rules that are custom to your
business.  If you have obtained a ruling from a tax auditor that requires custom tax calculations, you can use
custom tax rules to redefine the behavior for your company or item.
            
Please use custom tax rules carefully and ensure that these tax rules match the behavior agreed upon with your
auditor, legal representative, and accounting team.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this tax rule. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The tax rule you wish to create. |

#### Retrieve a single tax rule

`GET /api/v2/companies/{companyId}/taxrules/{id}`

Get the taxrule object identified by this URL.
            
A tax rule represents a rule that changes the default AvaTax behavior for a product or jurisdiction.  Custom tax rules
can be used to change the taxability of an item, to change the tax base of an item, or to change the tax rate
charged when selling an item.  Tax rules can also change tax behavior depending on the `entityUseCode` value submitted
with the transaction.
            
You can create custom tax rules to customize the behavior of AvaTax to match specific rules that are custom to your
business.  If you have obtained a ruling from a tax auditor that requires custom tax calculations, you can use
custom tax rules to redefine the behavior for your company or item.
            
Please use custom tax rules carefully and ensure that these tax rules match the behavior agreed upon with your
auditor, legal representative, and accounting team.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this tax rule |
| `id` | integer | path | Yes | The primary key of this tax rule |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single tax rule

`PUT /api/v2/companies/{companyId}/taxrules/{id}`

Replace the existing custom tax rule object at this URL with an updated object.
            
A tax rule represents a rule that changes the default AvaTax behavior for a product or jurisdiction.  Custom tax rules
can be used to change the taxability of an item, to change the tax base of an item, or to change the tax rate
charged when selling an item.  Tax rules can also change tax behavior depending on the `entityUseCode` value submitted
with the transaction.
            
You can create custom tax rules to customize the behavior of AvaTax to match specific rules that are custom to your
business.  If you have obtained a ruling from a tax auditor that requires custom tax calculations, you can use
custom tax rules to redefine the behavior for your company or item.
            
Please use custom tax rules carefully and ensure that these tax rules match the behavior agreed upon with your
auditor, legal representative, and accounting team.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this tax rule belongs to. |
| `id` | integer | path | Yes | The ID of the tax rule you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The tax rule you wish to update. |

#### Delete a single tax rule

`DELETE /api/v2/companies/{companyId}/taxrules/{id}`

Mark the custom tax rule identified by this URL as deleted.
            
A tax rule represents a rule that changes the default AvaTax behavior for a product or jurisdiction.  Custom tax rules
can be used to change the taxability of an item, to change the tax base of an item, or to change the tax rate
charged when selling an item.  Tax rules can also change tax behavior depending on the `entityUseCode` value submitted
with the transaction.
            
You can create custom tax rules to customize the behavior of AvaTax to match specific rules that are custom to your
business.  If you have obtained a ruling from a tax auditor that requires custom tax calculations, you can use
custom tax rules to redefine the behavior for your company or item.
            
Please use custom tax rules carefully and ensure that these tax rules match the behavior agreed upon with your
auditor, legal representative, and accounting team.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this tax rule. |
| `id` | integer | path | Yes | The ID of the tax rule you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create new Country Coefficients. If already exist update them.

`PUT /api/v2/countryCoefficients`

Create one or more Country Coefficients for particular country.
            
We would like to use country coefficients during Cross-Border calculations to slightly increase or decrease
a calculation for a line based on the tax-subtype and Country of destination for a transaction.
            
This will allow AvaTax to minimize the variance caused between actual transaction taken place on ground Vs Tax
Calculated by AvaTax.
            
Make sure to use the same API to update the country coefficients that is already present in the database.
This will make existing entry for specific country as ineffective for that date. And new entry created will get applicable
to the newer transactions.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | No | The Country Coefficients for specific country you wish to create. |

#### Retrieve all tax rules

`GET /api/v2/taxrules`

Get multiple taxrule objects across all companies.
            
A tax rule represents a rule that changes the default AvaTax behavior for a product or jurisdiction.  Custom tax rules
can be used to change the taxability of an item, to change the tax base of an item, or to change the tax rate
charged when selling an item.  Tax rules can also change tax behavior depending on the `entityUseCode` value submitted
with the transaction.
            
You can create custom tax rules to customize the behavior of AvaTax to match specific rules that are custom to your
business.  If you have obtained a ruling from a tax auditor that requires custom tax calculations, you can use
custom tax rules to redefine the behavior for your company or item.
            
Please use custom tax rules carefully and ensure that these tax rules match the behavior agreed upon with your
auditor, legal representative, and accounting team.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* taxCode, taxTypeCode, taxRuleProductDetail, rateTypeCode, taxTypeGroup, taxSubType, unitOfBasis |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Transactions

#### Fetches the Variance data generated for all the transactions done by Company.

`GET /api/v2/companies/{companyCode}/AllVariance`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all transactions

`GET /api/v2/companies/{companyCode}/transactions`

List all transactions attached to this company.
            
This endpoint is limited to returning 1,000 transactions at a time maximum.
            
When listing transactions, you must specify a `date` range filter.  If you do not specify a `$filter` that includes a `date` field
criteria, the query will default to looking at only those transactions with `date` in the past 30 days.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `dataSourceId` | integer | query | No | Optionally filter transactions to those from a specific data source. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* exchangeRateCurrencyCode, totalDiscount, lines, addresses, locationTypes, summary, taxDetailsByTaxType, parameters, userDefinedFields, messages, invoiceMessages, isFakeTransaction, deliveryTerms, apStatusCode, apStatus, vendorName, varianceAmount |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve a single transaction by code

`GET /api/v2/companies/{companyCode}/transactions/{transactionCode}`

Get the current transaction identified by this company code, transaction code, and document type.
            
A transaction is uniquely identified by `companyCode`, `code` (often called Transaction Code), and `documentType`.
            
For compatibility purposes, when this API finds multiple transactions with the same transaction code, and if you have not specified
the `type` parameter to this API, it will default to selecting the `SalesInvoices` transaction. To change this behavior, use the
optional `documentType` parameter to specify the specific document type you wish to find.
            
If this transaction was adjusted, the return value of this API will be the current transaction with this code.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to retrieve |
| `documentType` | string | query | No | (Optional): The document type of the transaction to retrieve |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Correct a previously created transaction

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/adjust`

Replaces the current transaction uniquely identified by this URL with a new transaction.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
When you adjust a committed transaction, the original transaction will be updated with the status code `Adjusted`, and
both revisions will be available for retrieval based on their code and ID numbers.
Only transactions in `Committed` status are reported by Avalara Managed Returns.
            
Transactions that have been previously reported to a tax authority by Avalara Managed Returns are considered `locked` and are
no longer available for adjustments.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to adjust |
| `documentType` | string | query | No | (Optional): The document type of the transaction to adjust. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The adjustment you wish to make |

#### Get audit information about a transaction

`GET /api/v2/companies/{companyCode}/transactions/{transactionCode}/audit`

Retrieve audit information about a transaction stored in AvaTax.
            
The `AuditTransaction` API retrieves audit information related to a specific transaction.  This audit
information includes the following:
            
* The `CompanyId` of the company that created the transaction
* The server timestamp representing the exact server time when the transaction was created
* The server duration - how long it took to process this transaction
* Whether exact API call details were logged
* A reconstructed API call showing what the original CreateTransaction call looked like
            
This API can be used to examine information about a previously created transaction.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The code identifying the company that owns this transaction |
| `transactionCode` | string | path | Yes | The code identifying the transaction |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Change a transaction's code

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/changecode`

Renames a transaction uniquely identified by this URL by changing its `code` value.
            
This API is available as long as the transaction is in `saved` or `posted` status.  When a transaction
is `committed`, it can be modified by using the [AdjustTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/AdjustTransaction/) method.
            
After this API call succeeds, the transaction will have a new URL matching its new `code`.
            
If you have more than one document with the same `code`, specify the `documentType` parameter to choose between them.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ProStoresOperator, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to change |
| `documentType` | string | query | No | (Optional): The document type of the transaction to change document code. If not provided, the default is SalesInvoice. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The code change request you wish to execute |

#### Commit a transaction for reporting

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/commit`

Marks a transaction by changing its status to `Committed`.
            
Transactions that are committed are available to be reported to a tax authority by Avalara Managed Returns.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
If you have more than one document with the same `code`, specify the `documentType` parameter to choose between them.
            
Any changes made to a committed transaction will generate a transaction history.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ProStoresOperator, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to commit |
| `documentType` | string | query | No | (Optional): The document type of the transaction to commit. If not provided, the default is SalesInvoice. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The commit request you wish to execute |

#### Lock a single transaction

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/lock`

Lock a transaction uniquely identified by this URL.
            
This API is mainly used for connector developers to simulate what happens when the Returns product locks a document.
After this API call succeeds, the document will be locked and can't be voided or adjusted.
            
On Sandbox, this API is only available to customers who have both an AvaTaxPro and a Managed Returns subscription. On Production, this API is only available internally for the Avalara Returns team.
            
If you have more than one document with the same `code`, specify the `documentType` parameter to choose between them.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to lock |
| `documentType` | string | query | No | (Optional): The document type of the transaction to lock. If not provided, the default is SalesInvoice. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The lock request you wish to execute |

#### Create a refund for a transaction

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/refund`

Create a refund for a transaction.
            
The `RefundTransaction` API allows you to quickly and easily create a `ReturnInvoice` representing a refund
for a previously created `SalesInvoice` transaction.  You can choose to create a full or partial refund, and
specify individual line items from the original sale for refund.
            
The `RefundTransaction` API ensures that the tax amount you refund to the customer exactly matches the tax that
was calculated during the original transaction, regardless of any changes to your company's configuration, rules,
nexus, or any other setting.
            
This API is intended to be a shortcut to allow you to quickly and accurately generate a refund for the following
common refund scenarios:
            
* A full refund of a previous sale
* Refunding the tax that was charged on a previous sale, when the customer provides an exemption certificate after the purchase
* Refunding one or more items (lines) from a previous sale
* Granting a customer a percentage refund of a previous sale
            
For more complex scenarios than the ones above, please use `CreateTransaction` with document type `ReturnInvoice` to
create a custom refund transaction.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
If you omit the `$include` parameter, the API will assume you want `Summary,Addresses`.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The code of the company that made the original sale |
| `transactionCode` | string | path | Yes | The transaction code of the original sale |
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `documentType` | string | query | No | (Optional): The document type of the transaction to refund. If not provided, the default is SalesInvoice. |
| `useTaxDateOverride` | boolean | query | No | (Optional): If set to true, processes refund using taxDateOverride rather than taxAmountOverride (Note: taxAmountOverride is not allowed for SST states). |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | Information about the refund to create |

#### Perform multiple actions on a transaction

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/settle`

Performs one or more actions against the current transaction uniquely identified by this URL.
            
The `SettleTransaction` API call can perform the work of `ChangeCode`, `VerifyTransaction`, and `CommitTransaction`.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
If you have more than one document with the same `code`, specify the `documentType` parameter to choose between them.
            
This API is available for users who want to execute more than one action at a time.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ProStoresOperator, SSTAdmin, TechnicalSupportAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to settle |
| `documentType` | string | query | No | (Optional): The document type of the transaction to settle. If not provided, the default is SalesInvoice. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The data from an external system to reconcile against AvaTax |

#### Retrieve a single transaction by code

`GET /api/v2/companies/{companyCode}/transactions/{transactionCode}/types/{documentType}`

DEPRECATED: Please use the `GetTransactionByCode` API instead.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to retrieve |
| `documentType` | string | path | Yes | The transaction type to retrieve |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Get audit information about a transaction

`GET /api/v2/companies/{companyCode}/transactions/{transactionCode}/types/{documentType}/audit`

Retrieve audit information about a transaction stored in AvaTax.
            
The `AuditTransaction` API retrieves audit information related to a specific transaction.  This audit
information includes the following:
            
* The `CompanyId` of the company that created the transaction
* The server timestamp representing the exact server time when the transaction was created
* The server duration - how long it took to process this transaction
* Whether exact API call details were logged
* A reconstructed API call showing what the original CreateTransaction call looked like
            
This API can be used to examine information about a previously created transaction.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The code identifying the company that owns this transaction |
| `transactionCode` | string | path | Yes | The code identifying the transaction |
| `documentType` | string | path | Yes | The document type of the original transaction |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Uncommit a transaction for reporting

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/uncommit`

Adjusts a transaction by changing it to an uncommitted status.
            
Transactions that have been previously reported to a tax authority by Avalara Managed Returns are considered `locked` and are
no longer available to be uncommitted.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to Uncommit |
| `documentType` | string | query | No | (Optional): The document type of the transaction to Uncommit. If not provided, the default is SalesInvoice. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Unvoids a transaction

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/unvoid`

Unvoids a voided transaction
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to commit |
| `documentType` | string | query | No | (Optional): The document type of the transaction to commit. If not provided, the default is SalesInvoice. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Verify a transaction

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/verify`

Verifies that the transaction uniquely identified by this URL matches certain expected values.
            
If the transaction does not match these expected values, this API will return an error code indicating which value did not match.
            
If you have more than one document with the same `code`, specify the `documentType` parameter to choose between them.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ProStoresOperator, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to settle |
| `documentType` | string | query | No | (Optional): The document type of the transaction to verify. If not provided, the default is SalesInvoice. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The data from an external system to reconcile against AvaTax |

#### Void a transaction

`POST /api/v2/companies/{companyCode}/transactions/{transactionCode}/void`

Voids the current transaction uniquely identified by this URL.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
When you void a transaction, that transaction's status is recorded as `DocVoided`.
            
If you have more than one document with the same `code`, specify the `documentType` parameter to choose between them.
            
Transactions that have been previously reported to a tax authority by Avalara Managed Returns are no longer available to be voided.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, ProStoresOperator, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes | The company code of the company that recorded this transaction |
| `transactionCode` | string | path | Yes | The transaction code to void |
| `documentType` | string | query | No | (Optional): The document type of the transaction to void. If not provided, the default is SalesInvoice. |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The void request you wish to execute. To void a transaction the code must be set to 'DocVoided' |

#### Fetches the Variance data generated for particular Company by transaction ID

`GET /api/v2/companies/{companyCode}/transactions/{transactionId}/variance`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes |  |
| `transactionId` | string | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Generates the Variance report which will capture the difference between "Tax Calculated by Avalara" Vs "Actual Tax" paid at custom clearance at line / header level.

`POST /api/v2/companies/{companyCode}/variance`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyCode` | string | path | Yes |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes |  |

#### Add lines to an existing unlocked transaction

`POST /api/v2/companies/transactions/lines/add`

Add lines to an existing unlocked transaction.
            
 The `AddLines` API allows you to add additional transaction lines to existing transaction, so that customer will
 be able to append multiple calls together and form an extremely large transaction. If customer does not specify line number
 in the lines to be added, a new random Guid string will be generated for line number. If customer are not satisfied with
 the line number for the transaction lines, they can turn on the renumber switch to have REST v2 automatically renumber all
 transaction lines for them, in this case, the line number becomes: "1", "2", "3", ...
            
 A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
 sales, purchases, inventory transfer, and returns (also called refunds).
 You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
 * Lines
 * Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
 * Summary (implies details)
 * Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
            
 If you omit the `$include` parameter, the API will assume you want `Summary,Addresses`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | information about the transaction and lines to be added |

#### Remove lines from an existing unlocked transaction

`POST /api/v2/companies/transactions/lines/delete`

Remove lines to an existing unlocked transaction.
            
 The `DeleteLines` API allows you to remove transaction lines from existing unlocked transaction, so that customer will
 be able to delete transaction lines and adjust original transaction the way they like
            
 A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
 sales, purchases, inventory transfer, and returns (also called refunds).
 You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
 * Lines
 * Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
 * Summary (implies details)
 * Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
            
 If you omit the `$include` parameter, the API will assume you want `Summary,Addresses`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | information about the transaction and lines to be removed |

#### Retrieve a single transaction by ID

`GET /api/v2/transactions/{id}`

Get the unique transaction identified by this URL.
            
This endpoint retrieves the exact transaction identified by this ID number, as long as it is the most version of the transaction.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The unique ID number of the transaction to retrieve |
| `$include` | string | query | No | Specifies objects to include in this fetch call |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new transaction

`POST /api/v2/transactions/create`

Records a new transaction in AvaTax.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
The `CreateTransaction` endpoint uses the tax profile of your company to identify the correct tax rules
and rates to apply to all line items in this transaction.  The end result will be the total tax calculated by AvaTax based on your
company's configuration and the data provided in this API call.
            
The `CreateTransaction` API will report an error if a committed transaction already exists with the same `code`.  To
avoid this error, use the `CreateOrAdjustTransaction` API - it will create the transaction if it does not exist, or
update it if it does exist.
            
To generate a refund for a transaction, use the `RefundTransaction` API.
            
An address is required for calculation. If no address is provided at the line level, the document level address will be used.

The field `type` identifies the kind of transaction - for example, a sale, purchase, or refund.  If you do not specify
a `type` value, you will receive an estimate of type `SalesOrder`, which will not be recorded.
            
The origin and destination locations for a transaction must be identified by either address or geocode.  For address-based transactions, please
provide addresses in the fields `line`, `city`, `region`, `country` and `postalCode`.  For geocode-based transactions, please provide the geocode
information in the fields `latitude` and `longitude`.  If either `latitude` or `longitude` or both are null, the transaction will be calculated
using the best available address location information.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* ForceTimeout - Simulates a timeout.  This adds a 30 second delay and error to your API call.  This can be used to test your code to ensure it can respond correctly in the case of a dropped connection.
* TaxDetailsByTaxType - Includes the aggregated tax, exempt tax, taxable and non-taxable for each tax type returned in the transaction summary.
            
If you omit the `$include` parameter, the API will assume you want `Summary,Addresses`.
            
NOTE: Avoid using the following strings in your transaction codes as they are encoding strings and will be interpreted differently:
* \_-ava2f-\_
* \_-ava2b-\_
* \_-ava3f-\_

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The transaction you wish to create |

#### Create or adjust a transaction

`POST /api/v2/transactions/createoradjust`

Records a new transaction or adjust an existing transaction in AvaTax.
            
The `CreateOrAdjustTransaction` endpoint is used to create a new transaction or update an existing one.  This API
can help you create an idempotent service that creates transactions
If there exists a transaction identified by code, the original transaction will be adjusted by using the meta data
in the input transaction.
            
The `CreateOrAdjustTransaction` API cannot modify any transaction that has been reported to a tax authority using
the Avalara Managed Returns Service or any other tax filing service.  If you call this API to attempt to modify
a transaction that has been reported on a tax filing, you will receive the error `CannotModifyLockedTransaction`.
            
To generate a refund for a transaction, use the `RefundTransaction` API.
            
An address is required for calculation. If no address is provided at the line level, the document level address will be used.

If you don't specify the field `type` in your request, you will get an estimate of type `SalesOrder`, which will not be recorded in the database.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* Lines
* Details (implies lines)
* AccountPayableSalesTaxDetails (implies lines - only for Account Payable transaction)
* Summary (implies details)
* Addresses
* SummaryOnly (omit lines and details - reduces API response size)
* LinesOnly (omit details - reduces API response size)
* ForceTimeout - Simulates a timeout.  This adds a 30 second delay and error to your API call.  This can be used to test your code to ensure it can respond correctly in the case of a dropped connection.
            
If you omit the `$include` parameter, the API will assume you want `Summary,Addresses`.
            
NOTE: Avoid using the following strings in your transaction codes as they are encoding strings and will be interpreted differently:
* \_-ava2f-\_
* \_-ava2b-\_
* \_-ava3f-\_

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$include` | string | query | No | Specifies objects to include in the response after transaction is created |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The transaction you wish to create or adjust |

#### Lock a set of documents

`POST /api/v2/transactions/lock`

This API is available by invitation only.
            
Lock a set of transactions uniquely identified by DocumentIds provided. This API allows locking multiple documents at once.
After this API call succeeds, documents will be locked and can't be voided.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).

### Security Policies

* This API requires the user role Compliance Root User.
* This API depends on the following active services:*Returns* (at least one of):  Mrs, MRSComplianceManager, AvaTaxCsp.*Firm Managed* (for accounts managed by a firm):  ARA, ARAManaged.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | bulk lock request |


### Upcs

#### Retrieve UPCs for this company

`GET /api/v2/companies/{companyId}/upcs`

List all UPC objects attached to this company.
A UPC represents a single UPC code in your catalog and matches this product to the tax code identified by this UPC.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaUpc.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns these UPCs |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create a new UPC

`POST /api/v2/companies/{companyId}/upcs`

Create one or more new UPC objects attached to this company.
A UPC represents a single UPC code in your catalog and matches this product to the tax code identified by this UPC.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaUpc.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this UPC. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The UPC you wish to create. |

#### Retrieve a single UPC

`GET /api/v2/companies/{companyId}/upcs/{id}`

Get the UPC object identified by this URL.
A UPC represents a single UPC code in your catalog and matches this product to the tax code identified by this UPC.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaUpc.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this UPC |
| `id` | integer | path | Yes | The primary key of this UPC |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single UPC

`PUT /api/v2/companies/{companyId}/upcs/{id}`

Replace the existing UPC object at this URL with an updated object.
A UPC represents a single UPC code in your catalog and matches this product to the tax code identified by this UPC.
All data from the existing object will be replaced with data in the object you PUT.
To set a field's value to null, you may either set its value to null or omit that field from the object you post.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaUpc.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that this UPC belongs to. |
| `id` | integer | path | Yes | The ID of the UPC you wish to update |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The UPC you wish to update. |

#### Delete a single UPC

`DELETE /api/v2/companies/{companyId}/upcs/{id}`

Marks the UPC object identified by this URL as deleted.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaUpc.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID of the company that owns this UPC. |
| `id` | integer | path | Yes | The ID of the UPC you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all UPCs

`GET /api/v2/upcs`

Get multiple UPC objects across all companies.
A UPC represents a single UPC code in your catalog and matches this product to the tax code identified by this UPC.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaUpc.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/). |
| `$include` | string | query | No | A comma separated list of additional data to retrieve. |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### UserDefinedFields

#### ListUserDefinedFieldsByCompanyId

`GET /api/v2/companies/{companyId}/userdefinedfields`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes |  |
| `udfType` | string | query | No | Document or Line level UDF |
| `allowDefaults` | boolean | query | No | If true this will add defaulted UDFs to the list that are not named yet |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a User Defined Field identified by id for a company

`POST /api/v2/companies/{companyId}/userdefinedfields`

Updates a User Defined Field for a company.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The id of the company the user defined field belongs to. |
| `id` | integer | query | No |  |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes |  |

#### Delete a User Defined Field by User Defined Field id for a company.

`DELETE /api/v2/companies/{companyId}/userdefinedfields/{id}`

Marks the existing user defined field for a company as deleted.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyCompanyAdmin, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, BasicReturns.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The id of the company the User Defined Field belongs to. |
| `id` | integer | path | Yes | The id of the User Defined Field you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Users

#### Retrieve users for this account

`GET /api/v2/accounts/{accountId}/users`

List all user objects attached to this account.
A user represents one person with access privileges to make API calls and work with a specific account.
            
When an API is called using a legacy AvaTax License Key, the API log entry is recorded as being performed by a special user attached to that license key.
By default, this API will not return a listing of license key users.  Users with registrar-level security may call this API to list license key users.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* FetchDeleted

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, AvaTaxOnlyUserAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The accountID of the user you wish to list. |
| `$include` | string | query | No | Optional fetch commands. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* SuppressNewUserEmail |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create new users

`POST /api/v2/accounts/{accountId}/users`

Create one or more new user objects attached to this account.
            
A user represents one person with access privileges to make API calls and work with a specific account.
            
Users who are account administrators or company users are permitted to create user records to invite
additional team members to work with AvaTax.
            
A newly created user will receive an email inviting them to create their password.  This means that you
must provide a valid email address for all user accounts created.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, AvaTaxOnlyUserAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPTester, FirmAdmin, FirmUser, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `accountId` | integer | path | Yes | The unique ID number of the account where these users will be created. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The user or array of users you wish to create. |

#### Retrieve a single user

`GET /api/v2/accounts/{accountId}/users/{id}`

Get the user object identified by this URL.
A user represents one person with access privileges to make API calls and work with a specific account.
            
 You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* FetchDeleted

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, AvaTaxOnlyUserAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the user to retrieve. |
| `accountId` | integer | path | Yes | The accountID of the user you wish to get. |
| `$include` | string | query | No | Optional fetch commands. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single user

`PUT /api/v2/accounts/{accountId}/users/{id}`

Replace the existing user object at this URL with an updated object.
A user represents one person with access privileges to make API calls and work with a specific account.
All data from the existing object will be replaced with data in the object you PUT.
To set a field's value to null, you may either set its value to null or omit that field from the object you post.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, AvaTaxOnlyUserAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPTester, FirmAdmin, FirmUser, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the user you wish to update. |
| `accountId` | integer | path | Yes | The accountID of the user you wish to update. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The user object you wish to update. |

#### Delete a single user

`DELETE /api/v2/accounts/{accountId}/users/{id}`

Mark the user object identified by this URL as deleted.
            
This API is available for use by account and company administrators only.
            
Account and company administrators may only delete users within the appropriate organizations
they control.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AvaTaxOnlyAccountAdmin, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyUserAdmin, BatchServiceAdmin, CompanyAdmin, Compliance Root User, CSPTester, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TreasuryAdmin.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the user you wish to delete. |
| `accountId` | integer | path | Yes | The accountID of the user you wish to delete. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Retrieve all entitlements for a single user

`GET /api/v2/accounts/{accountId}/users/{id}/entitlements`

Return a list of all entitlements to which this user has rights to access.
Entitlements are a list of specified API calls the user is permitted to make, a list of identifier numbers for companies the user is
allowed to use, and an access level identifier that indicates what types of access roles the user is allowed to use.
This API call is intended to provide a validation endpoint to determine, before making an API call, whether this call is likely to succeed.
For example, if user 567 within account 999 is attempting to create a new child company underneath company 12345, you could preview the user's
entitlements and predict whether this call would succeed:
            
* Retrieve entitlements by calling '/api/v2/accounts/999/users/567/entitlements' .  If the call fails, you do not have accurate
    credentials for this user.
* If the 'accessLevel' field within entitlements is 'None', the call will fail.
* If the 'accessLevel' field within entitlements is 'SingleCompany' or 'SingleAccount', the call will fail if the companies
    table does not contain the ID number 12345.
* If the 'permissions' array within entitlements does not contain 'AccountSvc.CompanySave', the call will fail.
            
For a full list of defined permissions, please use '/api/v2/definitions/permissions' .

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, AvaTaxOnlyUserAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `id` | integer | path | Yes | The ID of the user to retrieve. |
| `accountId` | integer | path | Yes | The accountID of the user you wish to get. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Change Password

`PUT /api/v2/passwords`

Allows a user to change their password via an API call.
            
This API allows an authenticated user to change their password via an API call.  This feature is only available
for accounts that do not use SAML integrated password validation.
            
This API only allows the currently authenticated user to change their password; it cannot be used to apply to a
different user than the one authenticating the current API call.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, AvaTaxOnlyUserAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPTester, FirmAdmin, FirmUser, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | An object containing your current password and the new password. |

#### Retrieve all users

`GET /api/v2/users`

Get multiple user objects across all accounts.
            
A user represents one person or set of credentials with access privileges to make API calls and work with a specific account.  A user can be authenticated
via either username / password authentication, an OpenID / OAuth Bearer Token, or a legacy AvaTax License Key.
            
When an API is called using a legacy AvaTax License Key, the API log entry is recorded as being performed by a special user attached to that license key.
By default, this API will not return a listing of license key users.  Users with registrar-level security may call this API to list license key users.
            
Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
            
You may specify one or more of the following values in the `$include` parameter to fetch additional nested data, using commas to separate multiple values:
            
* FetchDeleted

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, AvaTaxOnlyUserAdmin, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `$include` | string | query | No | Optional fetch commands. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* SuppressNewUserEmail |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Utilities

#### Tests connectivity and version of the service

`GET /api/v2/utilities/ping`

Check connectivity to AvaTax and return information about the AvaTax API server.
            
This API is intended to help you verify that your connection is working.  This API will always succeed and will
never return a error.  It provides basic information about the server you connect to:
            
* `version` - The version number of the AvaTax API server that responded to your request.  The AvaTax API version number is updated once per month during Avalara's update process.
* `authenticated` - A boolean flag indicating whether or not you sent valid credentials with your API request.
* `authenticationType` - If you provided valid credentials to the API, this field will tell you whether you used Bearer, Username, or LicenseKey authentication.
* `authenticatedUserName` - If you provided valid credentials to the API, this field will tell you the username of the currently logged in user.
* `authenticatedUserId` - If you provided valid credentials to the API, this field will tell you the user ID of the currently logged in user.
* `authenticatedAccountId` - If you provided valid credentials to the API, this field will contain the account ID of the currently logged in user.
            
This API helps diagnose connectivity problems between your application and AvaTax; you may call this API even
if you do not have verified connection credentials.  If this API fails, either your computer is not connected to
the internet, or there is a routing problem between your office and Avalara, or the Avalara server is not available.
For more information on the uptime of AvaTax, please see [Avalara's AvaTax Status Page](https://status.avalara.com/).

### Security Policies

* This API may be called without providing authentication credentials.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List all services to which the current user is subscribed

`GET /api/v2/utilities/subscriptions`

Returns the list of all subscriptions enabled for the currently logged in user.
            
This API will return an error if it is called with invalid authentication credentials.
            
This API is intended to help you determine whether you have the necessary subscription to use certain API calls
within AvaTax.  You can examine the subscriptions returned from this API call to look for a particular product
or subscription to provide useful information to the current user as to whether they are entitled to use
specific features of AvaTax.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Checks if the current user is subscribed to a specific service

`GET /api/v2/utilities/subscriptions/{serviceTypeId}`

Returns a subscription object for the current account, or 404 Not Found if this subscription is not enabled for this account.
            
This API will return an error if it is called with invalid authentication credentials.
            
This API is intended to help you determine whether you have the necessary subscription to use certain API calls
within AvaTax.  You can examine the subscriptions returned from this API call to look for a particular product
or subscription to provide useful information to the current user as to whether they are entitled to use
specific features of AvaTax.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `serviceTypeId` | string | path | Yes | The service to check |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### VendorCertificates

#### List all vendor certificates for a company

`GET /{companyId}/vendor-certificates`

List all certificates recorded by a company
            
A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a vendor's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* customers - Retrieves the list of vendors linked to the certificate.
* po_numbers - Retrieves all PO numbers tied to the certificate.
* attributes - Retrieves all attributes applied to the certificate.
* histories - Retrieves the certificate update history
* jobs - Retrieves the jobs for this certificate
* logs - Retrieves the certificate log
* invalid_reasons - Retrieves invalid reasons for this certificate if the certificate is invalid
* custom_fields - Retrieves custom fields set for this certificate
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.
            
Note* Filtering not supported for any documentType field.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The ID number of the company to search |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.  You can specify one or more of the following:
            
             * customers - Retrieves the list of vendors linked to the certificate.
             * po_numbers - Retrieves all PO numbers tied to the certificate.
             * attributes - Retrieves all attributes applied to the certificate.
             * histories - Retrieves the certificate update history
             * jobs - Retrieves the jobs for this certificate
             * logs - Retrieves the certificate log
             * invalid_reasons - Retrieves invalid reasons for this certificate if the certificate is invalid
             * custom_fields - Retrieves custom fields set for this certificate |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* documentTypeId, documentTypeDescription, exemptionNumber, ecmsId, ecmsStatus, pdf, pages |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |


### Vendors

#### List all vendors for this company

`GET /api/v2/companies/{companyId}/vendors`

List all vendors recorded by this company matching the specified criteria.
            
A vendor object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `vendorCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `vendorCode` value and
identify any certificates linked to this `vendor` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* certificates - Fetch a list of certificates linked to this vendor.
* attributes - Retrieves all attributes applied to the vendor.
* active_certificates - Retrieves all the active certificates linked to this vendor
* histories - Retrieves the update history for this vendor
* logs - Retrieves vendor logs
* jobs - Retrieves vendor jobs
* billTos - Retrieves bill-tos linked with this vendor
* shipTos - Retrieves ship-tos linked with this vendor
* shipToStates - Retrieves ship-to states for this vendor
* custom_fields - Retrieves custom fields set for this vendor
* vendorAdditionalInfo - Retrieves vendorAdditionalInfo for vendors
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.
            
Note* Filtering not supported for isVendor field.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this vendor |
| `$include` | string | query | No | OPTIONAL - You can specify any of the values in `certificates`, `attributes`, `active_certificates`, `histories`, `logs`, `jobs`, `billTos`, `shipTos`, `shipToStates`, and `custom_fields` to fetch additional information for this certificate. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* VendorAdditionalInfo |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Create vendors for this company

`POST /api/v2/companies/{companyId}/vendors`

Create one or more vendors for this company.
            
A vendor object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `vendorCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `vendorCode` value and
identify any certificates linked to this `vendor` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
A nested object such as CustomFields could be specified and created along with the vendor object. To fetch the
nested object, please call 'GetVendor' API with appropriate $include parameters.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this vendor |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` | array | body | Yes | The list of vendor objects to be created |

#### Retrieve a single vendor

`GET /api/v2/companies/{companyId}/vendors/{vendorCode}`

Retrieve the vendor identified by this URL.
            
A vendor object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `customerCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `customerCode` value and
identify any certificates linked to this vendor object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* certificates - Fetch a list of certificates linked to this vendor.
* attributes - Retrieves all attributes applied to the vendor.
* active_certificates - Retrieves all the active certificates linked to this vendor
* histories - Retrieves the update history for this vendor
* logs - Retrieves vendor logs
* jobs - Retrieves vendor jobs
* billTos - Retrieves bill-tos linked with this vendor
* shipTos - Retrieves ship-tos linked with this vendor
* shipToStates - Retrieves ship-to states for this vendor
* custom_fields - Retrieves custom fields set for this vendor
* vendorAdditionalInfo - Retrieves vendorAdditionalInfo for this vendor
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this vendor |
| `vendorCode` | string | path | Yes |  |
| `$include` | string | query | No | Specify optional additional objects to include in this fetch request |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### Update a single vendor

`PUT /api/v2/companies/{companyId}/vendors/{vendorCode}`

Replace the vendor object with a new record.
            
A vendor object defines information about a person or business that you purchase products from.
When you create a tax transaction in AvaTax, you can use the `vendorCode` from this
record.  AvaTax will search for this `vendorCode` value and identify any certificates
linked to this vendor object.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this vendor |
| `vendorCode` | string | path | Yes | The unique code representing this vendor |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |
| `body` |  | body | Yes | The new vendor model that will replace the existing record at this URL |

#### Delete a vendor record

`DELETE /api/v2/companies/{companyId}/vendors/{vendorCode}`

Deletes the vendor object referenced by this URL.
            
A vendor object defines information about a person or business that you purchase products from.
The same CertCapture customer resource is used for vendors (isVendor flag).  Deleting removes the record.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this vendor |
| `vendorCode` | string | path | Yes | The unique code representing this vendor |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

#### List certificates linked to a vendor

`GET /api/v2/companies/{companyId}/vendors/{vendorCode}/certificates`

List all certificates linked to a vendor.
            
A vendor object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `vendorCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `vendorCode` value and
identify any certificates linked to this `vendor` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.
            
You can filter certificates by exposure zone name using the $filter parameter with the syntax:
`$filter=exposureZoneName eq 'ZoneName'` or `$filter=contains(exposureZoneName,'PartialName')`

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this vendor |
| `vendorCode` | string | path | Yes | The unique code representing this vendor |
| `$include` | string | query | No | OPTIONAL: A comma separated list of special fetch options.  You can specify one or more of the following:
            
             * vendors - Retrieves the list of vendors linked to the certificate.
             * po_numbers - Retrieves all PO numbers tied to the certificate.
             * attributes - Retrieves all attributes applied to the certificate.
             * histories - Retrieves the certificate update history
             * jobs - Retrieves the jobs for this certificate
             * logs - Retrieves the certificate log
             * invalid_reasons - Retrieves invalid reasons for this certificate if the certificate is invalid
             * custom_fields - Retrieves custom fields set for this certificate |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* documentTypeId, documentTypeDescription, exemptionNumber, ecmsId, ecmsStatus, pdf, pages |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

---

## Models

### ACHEntryDetailModel

An edit to be made on a filing calendar.

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | Company Id |
| `companyName` | string | Company Name |
| `state` | string | State |
| `stateRegion` | string | State Region |
| `individualId` | string | Individual Id |
| `individualName` | string | IndividualName |
| `amount` | number | Amount |
| `traceNumber` | string | TraceNumber |

### APConfigSettingRequestModel

AP Config Setting Request Model

| Property | Type | Description |
|---|---|---|
| `amount` | number | The Amount Threshold To Ignore Transaction |
| `amountToMarkForReview` | number | The Amount Threshold To Mark Transaction For Manual Review |
| `ignoreThresholdWhenVCTZero` | boolean | Ignore threshold when Vendor Charged Tax is zero |
| `varianceForIgnore` | number | The Variance For Ignore |
| `varianceForAccrue` | number | The Variance For Accrue |
| `variancePercent` | number | The Variance Percent |
| `apConfigToleranceType` | string | The Ap Config Tolerance Type
BATCH or REALTIME |
| `payAsBilledNoAccrual` | number | Pay Billed Do Not Accrue |
| `payAsBilledAccrueUndercharge` | number | Pay Billed Accrue |
| `shortPayItemsAccrueUndercharge` | number | ShortPay Items UnderCharge |
| `markForReviewUndercharge` | number | Review UnderCharge |
| `rejectUndercharge` | number | Reject UnderCharge |
| `payAsBilledOvercharge` | number | Pay As BilledOvercharge |
| `shortPayAvalaraCalculated` | number | Short Pay Avalara CalculatedTax |
| `shortPayItemsAccrueOvercharge` | number | Short Pay Items |
| `markForReviewOvercharge` | number | Review OverCharge |
| `rejectOvercharge` | number | Reject OverCharge |
| `isActive` | boolean | Is Active |

### APConfigSettingSuccessResponseModel

AP Config Setting Response Model

| Property | Type | Description |
|---|---|---|
| `ruleId` | integer | The Rule Id |
| `companyId` | integer | CompanyId to which the rule belongs |
| `meta` | TaxProfileMetaDataModel | Meta data of the APConfigSetting |
| `amount` | number | The Amount Threshold To Ignore Transaction |
| `amountToMarkForReview` | number | The Amount Threshold To Mark Transaction For Manual Review |
| `ignoreThresholdWhenVCTZero` | boolean | Ignore threshold when Vendor Charged Tax is zero |
| `varianceForIgnore` | number | The Variance For Ignore |
| `varianceForAccrue` | number | The Variance For Accrue |
| `variancePercent` | number | The Variance Percent |
| `apConfigToleranceType` | string | The Ap Config Tolerance Type
BATCH or REALTIME |
| `payAsBilledNoAccrual` | number | Pay Billed Do Not Accrue |
| `payAsBilledAccrueUndercharge` | number | Pay Billed Accrue |
| `shortPayItemsAccrueUndercharge` | number | ShortPay Items UnderCharge |
| `markForReviewUndercharge` | number | Review UnderCharge |
| `rejectUndercharge` | number | Reject UnderCharge |
| `payAsBilledOvercharge` | number | Pay As BilledOvercharge |
| `shortPayAvalaraCalculated` | number | Short Pay Avalara CalculatedTax |
| `shortPayItemsAccrueOvercharge` | number | Short Pay Items |
| `markForReviewOvercharge` | number | Review OverCharge |
| `rejectOvercharge` | number | Reject OverCharge |
| `isActive` | boolean | Is Active |

### APConfigSettingSuccessResponseModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### AccountConfigurationModel

Represents one configuration setting for this account

| Property | Type | Description |
|---|---|---|
| `accountId` | integer | The unique ID number of the account to which this setting applies |
| `category` | string | The category of the configuration setting.  Avalara-defined categories include `AddressServiceConfig` and `TaxServiceConfig`.  Customer-defined categories begin with `X-`. |
| `name` | string | The name of the configuration setting |
| `value` | string | The current value of the configuration setting |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### AccountLicenseKeyModel

An account user who is permitted to use AvaTax.

| Property | Type | Description |
|---|---|---|
| `name` | string | The unique name for license key per account |
| `accountId` | integer | AccountId for required license key |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The user id for the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user id of user who last modified this record. |

### AccountMigrationStatusModel

An AvaTax account.

| Property | Type | Description |
|---|---|---|
| `accountId` | integer | The unique ID number assigned to this account. |
| `accountName` | string | The name of this account. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `accountMigrationStatusId` | integer | The Tss Read Write Mode. |

### AccountModel

An AvaTax account.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number assigned to this account. |
| `crmid` | string | For system registrar use only. |
| `name` | string | The name of this account. |
| `effectiveDate` | string | The earliest date on which this account may be used. |
| `endDate` | string | If this account has been closed, this is the last date the account was open. |
| `accountStatusId` | string | The current status of this account. |
| `accountTypeId` | string | The type of this account. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `subscriptions` | array | Optional: A list of subscriptions granted to this account.  To fetch this list, add the query string "?$include=Subscriptions" to your URL. |
| `users` | array | Optional: A list of all the users belonging to this account.  To fetch this list, add the query string "?$include=Users" to your URL. |
| `isSamlEnabled` | boolean | Is Saml based authentication used by this account for user to login via AI. |
| `isDeleted` | boolean | A boolean flag to identify if the account is deleted |

### AccountModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### AccountTsaAccessDurationModel

Specifies a duration for which to grant TSA accounts write access.
See AVT-25316

| Property | Type | Description |
|---|---|---|
| `minutes` | integer | Number of minutes |
| `hours` | integer | Number of hours |
| `days` | integer | Number of days |

### AccountTsaAccessModel

Descibes a record of an account granting TSA accounts write access.
See AVT-25316

| Property | Type | Description |
|---|---|---|
| `accountId` | integer | The id of the account to which the TSA access entry belongs to. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `endDate` | string | The date/time when this TSA access record expires. |

### AccountTsaAccessModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ActivateAccountModel

Represents a request to activate an account by reading and accepting its terms and conditions.

| Property | Type | Description |
|---|---|---|
| `acceptAvalaraTermsAndConditions` | boolean | Set this to true if and only if you accept Avalara's terms and conditions for your account. |
| `haveReadAvalaraTermsAndConditions` | boolean | Set this to true if and only if you have fully read Avalara's terms and conditions for your account. |

### ActiveCertificateModel

Certificate with exemption reason and exposure zone. This is exposed in the URL's `$includes`.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this certificate. |
| `created` | string | The date/time when this certificate was created. |
| `modified` | string | The date/time when this certificate was last modified. |
| `expectedTaxNumber` | string | The expected tax number for this certificate. |
| `actualTaxNumber` | string | The actual tax number for this certificate. |
| `exposureZone` | ExposureZoneModel | The exposure zone where this certificate is valid. |
| `expectedTaxCode` | ExemptionReasonModel | The expected tax code for this certificate. |
| `actualTaxCode` | ExemptionReasonModel | The actual tax code for this certificate. |
| `certificate` | CertificateModel | The associated certificate. |

### AddTransactionLineModel

Model to add specific lines to exising transaction

| Property | Type | Description |
|---|---|---|
| `companyCode` | string | company code |
| `transactionCode` | string | document code for the transaction to add lines |
| `documentType` | string | document type |
| `lines` | array | List of lines to be added |
| `renumber` | boolean | Option to renumber lines after add. After renumber, the line number becomes: "1", "2", "3", ... |

### AddressInfo

Represents a base address element.

| Property | Type | Description |
|---|---|---|
| `line1` | string | First line of the street address |
| `line2` | string | Second line of the street address |
| `line3` | string | Third line of the street address |
| `city` | string | City component of the address |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `postalCode` | string | Postal Code / Zip Code component of the address. |
| `latitude` | number | Geospatial latitude measurement, in Decimal Degrees floating point format. |
| `longitude` | number | Geospatial longitude measurement, in Decimal Degrees floating point format. |

### AddressLocationInfo

Represents an address to resolve.

| Property | Type | Description |
|---|---|---|
| `locationCode` | string | If you wish to use the address of an existing location for this company, specify the address here.
Otherwise, leave this value empty.
            
The `locationCode` field on this object allows you to quickly use the address of an existing `locationModel` object instead
of having to retype the address completely.
            
This field does not affect the behavior of transactions that must be filed on location-based tax returns.  To specify how a
transaction will be reported on location-based tax returns, please see the `reportingLocationCode` field
on the [CreateTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/CreateTransactionModel/) element. |
| `line1` | string | First line of the street address |
| `line2` | string | Second line of the street address |
| `line3` | string | Third line of the street address |
| `city` | string | City component of the address |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `postalCode` | string | Postal Code / Zip Code component of the address. |
| `latitude` | number | Geospatial latitude measurement, in Decimal Degrees floating point format. |
| `longitude` | number | Geospatial longitude measurement, in Decimal Degrees floating point format. |

### AddressResolutionModel

Address Resolution Model

| Property | Type | Description |
|---|---|---|
| `address` | AddressInfo | The original address |
| `validatedAddresses` | array | The validated address or addresses |
| `coordinates` | CoordinateInfo | The geospatial coordinates of this address |
| `resolutionQuality` | string | The resolution quality of the geospatial coordinates |
| `taxAuthorities` | array | List of informational and warning messages regarding this address |
| `messages` | array | List of informational and warning messages regarding this address |

### AddressValidationInfo

TextCase info for input address

| Property | Type | Description |
|---|---|---|
| `line1` | string | First line of the street address |
| `textCase` | string | Specify the text case for the validated address result.  If not specified, will return uppercase. |
| `line2` | string | Second line of the street address |
| `line3` | string | Third line of the street address |
| `city` | string | City component of the address |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `postalCode` | string | Postal Code / Zip Code component of the address. |
| `latitude` | number | Geospatial latitude measurement, in Decimal Degrees floating point format. |
| `longitude` | number | Geospatial longitude measurement, in Decimal Degrees floating point format. |

### AddressesModel

Information about all the addresses involved in this transaction.
            
For a physical in-person transaction at a retail point-of-sale location, please specify only one address using
the `singleLocation` field.
            
For a transaction that was shipped, delivered, or provided from an origin location such as a warehouse to
a destination location such as a customer, please specify the `shipFrom` and `shipTo` addresses.
            
In the United States, some jurisdictions recognize the address types `pointOfOrderOrigin` and `pointOfOrderAcceptance`.
These address types affect the sourcing models of some transactions.

VAT transactions support a `goodsPlaceOrServiceRendered` address, which indicates where goods are located or where services 
are rendered. VAT transactions also support an `import` address, which specifies the address of the buyer importing a good 
from another country.

India GST transactions support a `billTo` address, which specifies where invoices and other billing-related information are sent to the buyer.
            
If latitude and longitude information is provided for any of these addresses along with line, city, region, country and postal code information,
we will be using only latitude and longitude and will discard line, city, region, country and postal code information for the transaction.
Please ensure that you have the correct latitude/longitude information for the addresses prior to using the API.
If you provide either latitude or longitude information but not both, we will be using the line, city, region, country and postal code information for the addresses.

| Property | Type | Description |
|---|---|---|
| `singleLocation` | AddressLocationInfo | If this transaction occurred at a retail point-of-sale location, provide that single address here and leave
all other address types null. |
| `shipFrom` | AddressLocationInfo | The origination address where the products were shipped from, or from where the services originated. |
| `shipTo` | AddressLocationInfo | The destination address where the products were shipped to, or where the services were delivered. |
| `pointOfOrderOrigin` | AddressLocationInfo | The place of business where you receive the customer's order.  This address type is valid in the United States only
and only applies to tangible personal property. |
| `pointOfOrderAcceptance` | AddressLocationInfo | The place of business where you accept/approve the customer’s order,
thereby becoming contractually obligated to make the sale.  This address type is valid in the United States only
and only applies to tangible personal property. |
| `goodsPlaceOrServiceRendered` | AddressLocationInfo | The address where the goods are located or where services are rendered. This address type is valid only for VAT transactions. |
| `import` | AddressLocationInfo | The address of the buyer importing a good from another country. This address type is valid only for VAT transactions. |
| `billTo` | AddressLocationInfo | The address where invoices and other billing-related information are sent to the buyer. This address type is only for India GST transactions. |

### AdjustMultiDocumentModel

Replace an existing MultiDocument transaction recorded in AvaTax with a new one.

| Property | Type | Description |
|---|---|---|
| `adjustmentReason` | string | A reason code indicating why this adjustment was made |
| `adjustDescription` | string | If the AdjustmentReason is "Other", specify the reason here.
            
This is required when the AdjustmentReason is 8 (Other). |
| `newTransaction` | CreateMultiDocumentModel | Replace the current MultiDocument transaction with tax data calculated for this new MultiDocument transaction |

### AdjustTransactionModel

Replace an existing transaction recorded in AvaTax with a new one.

| Property | Type | Description |
|---|---|---|
| `adjustmentReason` | string | A reason code indicating why this adjustment was made |
| `adjustmentDescription` | string | If the AdjustmentReason is "Other", specify the reason here.
            
This is required when the AdjustmentReason is 8 (Other). |
| `newTransaction` | CreateTransactionModel | Replace the current transaction with tax data calculated for this new transaction |

### AdvancedRuleBulkImportModel

Input model for the Advanced Rules bulk import API

| Property | Type | Description |
|---|---|---|
| `replaceExisting` | boolean | Flag to try updating existing rules instead of just append |
| `doNotReorder` | boolean | Flag to forbid reordering of the rules when all existing rules are updated |
| `executions` | array | List of rule executions to import |

### AdvancedRuleBulkImportResultModel

Output model for the Advanced Rules bulk import API

| Property | Type | Description |
|---|---|---|
| `importResult` | string | Aggregated import result code |
| `importMessage` | string | Aggregated import result message |
| `executions` | array | Import results for individual rule executions |

### AdvancedRuleCustomerDataSchemaModel

Model for retrieving customer data schema

| Property | Type | Description |
|---|---|---|
| `ruleId` | string | Unique identifier for the rule |
| `customerDataSchema` | string | Customer data schema |

### AdvancedRuleExecutionModel

Model representing an execution of an advanced rule for a company

| Property | Type | Description |
|---|---|---|
| `ruleExecutionId` | string | Rule execution unique identifier |
| `name` | string | Name of rule execution |
| `startDate` | string | Date rule execution starts |
| `endDate` | string | Date rule execution ends |
| `enabled` | boolean | Is rule execution enabled |
| `continueOnError` | boolean | Should we keep running if we hit an exception |
| `ruleId` | string | Unique identifier of rule to execute |
| `rule` | AdvancedRuleModel | Advanced rule to execute |
| `customerData` | string | Json data used for rule execution |
| `customerDataId` | string | Unique identifier of customer data used in rule execution |
| `createdBy` | string | Creator of the rule |
| `createdOn` | string | When the rule execution was created |
| `modifiedBy` | string | Last updater of the rule execution |
| `modifiedOn` | string | When the rule execution was last updated |

### AdvancedRuleExecutionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### AdvancedRuleExecutionOrderModel

Model for updating rule execution order

| Property | Type | Description |
|---|---|---|
| `ruleExecutionIds` | array | The rule execution Ids in the desired order |

### AdvancedRuleFullDetailsModel

Model for Advanced Rules when full details are requested

| Property | Type | Description |
|---|---|---|
| `createdBy` | string | Creator of the rule |
| `createdOn` | string | When the rule was created |
| `isSystemRule` | boolean | Is this a system rule as opposed to customer-facing |
| `isVisibleInCUP` | boolean | Is the rule displayed in the CUP UI |
| `isTest` | boolean | Is this a rule created for testing |
| `customerDataSchema` | string | The JSON schema for customer data if it is required for the rule |
| `version` | integer | The version of the rule |
| `ruleId` | string | Unique identifier for a rule |
| `name` | string | Rule name |
| `description` | string | Description of the rule |
| `arEntitlementRequired` | boolean | Advance Rules limited availability |
| `executionPosition` | string | Execution position. Both, Before or After |

### AdvancedRuleFullDetailsModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### AdvancedRuleImportResultModel

Model for the results of importing a single rule execution with the Advanced Rules bulk import API

| Property | Type | Description |
|---|---|---|
| `name` | string | Name of rule execution |
| `importResult` | string | Import result status code (e.g. Success, ValidationFailed, NotCreated, etc.) |
| `importDetails` | string | Import result status message (e.g. list of validation errors) |
| `ruleExecutionId` | string | Rule execution unique identifier |
| `ruleId` | string | Unique identifier of rule to execute |

### AdvancedRuleLookupFileModel

Model representing a lookup file for a company

| Property | Type | Description |
|---|---|---|
| `lookupFileId` | string | LookupFile unique identifier |
| `id` | string | CompanyLookupFile unique identifier |
| `name` | string | Name of lookup file |
| `content` | string | Content of the lookup file. |
| `fileExtension` | string | File extension (e.g. CSV). |
| `isTest` | boolean | Is this a lookup file created for testing |
| `inUse` | boolean | Is this a lookup file in use for any rule |
| `version` | integer | Lookup file version |
| `createdDate` | string | Lookup file CreatedDate |
| `modifiedDate` | string | Lookup file ModifiedDate |

### AdvancedRuleLookupFileModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### AdvancedRuleModel

A generic global advanced rule encapsulating a script

| Property | Type | Description |
|---|---|---|
| `ruleId` | string | Unique identifier for a rule |
| `name` | string | Rule name |
| `description` | string | Description of the rule |
| `arEntitlementRequired` | boolean | Advance Rules limited availability |
| `executionPosition` | string | Execution position. Both, Before or After |

### ApproveFilingsModel

Approve a set of filings.

| Property | Type | Description |
|---|---|---|
| `approve` | boolean | Set this value to true in order to approve the filings. |

### AssociatedObjectDeletedErrorDetailsModel

| Property | Type | Description |
|---|---|---|
| `code` | string |  |
| `number` | integer |  |
| `message` | string |  |
| `description` | string |  |
| `faultCode` | string |  |
| `faultSubCode` | string |  |
| `helpLink` | string |  |
| `refersTo` | string |  |
| `severity` | string |  |

### AuditEvent

| Property | Type | Description |
|---|---|---|
| `auditEventId` | integer |  |
| `transactionId` | integer |  |
| `correlationId` | string |  |
| `avalaraUid` | string |  |
| `auditEventLevelId` | integer |  |
| `eventTimestamp` | string |  |
| `source` | string |  |
| `summary` | string |  |
| `details` | string |  |

### AuditModel

Provides detailed information about an API call.
            
The information on this record was captured by AvaTax when your API call was made.  If you are unsure why you
received an error, you can fetch these audit objects and examine the `RequestUrl`, `RequestBody`, and `ErrorMessage`
fields to determine root cause for the error.

| Property | Type | Description |
|---|---|---|
| `transactionId` | integer | A unique ID number referring to this individual API call. |
| `accountId` | integer | The unique ID number of the account to which the user belongs. |
| `userId` | integer | The unique ID number of the user that performed this API call. |
| `ipAddress` | string | The origin IP address from which AvaTax received this API call.  If you use a proxy layer or other
gateway, this IP address may be the address of the gateway.  This information is not guaranteed
to be accurate and may change based on network conditions between your site and AvaTax. |
| `machineName` | string | If your API call specified a `MachineName` in the [Client Profile Headers](https://developer.avalara.com/avatax/client-headers/), this
variable will contain its value.  This information is self-reported by the client and is not guaranteed to be present. |
| `clientName` | string | If your API call specified a `ClientName` in the [Client Profile Headers](https://developer.avalara.com/avatax/client-headers/), this
variable will contain its value.  This information is self-reported by the client and is not guaranteed to be present. |
| `clientVersion` | string | If your API call specified a `ClientVersion` in the [Client Profile Headers](https://developer.avalara.com/avatax/client-headers/), this
variable will contain its value.  This information is self-reported by the client and is not guaranteed to be present. |
| `adapterName` | string | If your API call specified a `AdapterName` in the [Client Profile Headers](https://developer.avalara.com/avatax/client-headers/), this
variable will contain its value.  This information is self-reported by the client and is not guaranteed to be present. |
| `adapterVersion` | string | If your API call specified a `AdapterVersion` in the [Client Profile Headers](https://developer.avalara.com/avatax/client-headers/), this
variable will contain its value.  This information is self-reported by the client and is not guaranteed to be present. |
| `serverName` | string | The server name of the AvaTax server that responded to this API call. |
| `serverVersion` | string | The software version number of the currently deployed AvaTax API software on the server that responded to this API call. |
| `referenceId` | integer | A context-dependent reference ID for this API call.  This reference ID is not guaranteed to contain a specific value
and may be used differently by various API calls. |
| `severityLevelId` | integer | If the API contained a specific type of error code, this value would contain the unique ID number of the severity level
of the response returned to the client. |
| `serverTimestamp` | string | The server timestamp, in UTC, of the time when the server received this API call. |
| `serverDuration` | integer | The number of milliseconds that the AvaTax server took to respond to this API call. |
| `serviceName` | string | The service name of the AvaTax API service that responded to this API call. |
| `operation` | string | The operation name of this API call. |
| `referenceCode` | string | A context-dependent reference code for this API call.  This reference code is not guaranteed to contain a specific value
and may be used differently by various API calls. |
| `errorMessage` | string | If this API call reported an error, this contains the name of the error that was returned.  You can look up more
information about AvaTax error messages on the [AvaTax REST Error Page](https://developer.avalara.com/avatax/errors/). |
| `auditMessage` | string | Reserved for Avalara internal usage. |
| `loadBalancerDuration` | integer | Reserved for Avalara internal usage. |
| `recordCount` | integer | If this API call returned an array of information, this value contains the number of records returned. |
| `referenceAuthorization` | string | Reserved for Avalara internal usage. |
| `isQueued` | boolean | Reserved for Avalara internal usage. |
| `databaseCallCount` | integer | If this API call included requests made to any of the AvaTax data layers, this contains the number of requests that were traced.
            
Please note that not all data layers support this measurement. |
| `databaseCallDuration` | string | If this API call included requests made to any of the AvaTax data layers, this contains the total duration time measured for all the requests.
            
Please note that not all data layers support this measurement. |
| `remoteCallDuration` | string | If this API call included interoperation with other Avalara services, this contains the amount of time taken by those services. |
| `events` | array | Reserved for Avalara internal usage. |
| `requestUrl` | string | The original request URL as provided by the client. |
| `requestBody` | string | If this request was an HTTP request that included a body such as a POST or a PUT, this will contain the request body sent by the client.
            
This request body is represented as a string, exactly as it was received from the client.  Regardless of whether the request was JSON,
Base64 encoded bytes, or a CSV file, this contains the exact contents of the request body. |
| `responseStatus` | integer | The HTTP response code that was sent by the server. |
| `responseBody` | string | The entire response body sent from the AvaTax server to the client.  This value is returned as a string regardless of whether the results
were JSON-formatted text, CSV files, or raw strings. |
| `remoteCalls` | array | Reserved for Avalara internal usage. |

### AuditModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### AuditMultiDocumentModel

Information about a previously created MultiDocument transaction

| Property | Type | Description |
|---|---|---|
| `reconstructed` | ReconstructedMultiDocumentModel | Reconstructed API request/response pair that can be used to adjust or re-create this MultiDocument transaction. |
| `code` | string | Represents the unique code of this MultiDocument transaction.
            
A MultiDocument transaction is uniquely identified by its `accountId`, `code`, and `type`. |
| `type` | string | Represents the document type of this MultiDocument transaction.  For more information about
document types, see [DocumentType](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/DocumentType/).
            
A MultiDocument transaction is uniquely identified by its `accountId`, `code`, and `type`. |
| `serverTimestamp` | string | Server timestamp, in UTC, of the date/time when the original transaction was created |
| `serverDuration` | string | Length of time the original API call took |
| `apiCallStatus` | string | api call status |
| `original` | OriginalApiRequestResponseModel | Original API request/response |

### AuditServiceConfigModel

Used for Enabling an Autit Trail.

| Property | Type | Description |
|---|---|---|
| `accountId` | integer | The unique ID number assigned to this account. |
| `effectiveDate` | string | Date and Time to start Auditing in UTC. If left blank, default to current time |
| `duration` | integer | Duration of Audit in hours |

### AuditTransactionModel

Information about a previously created transaction

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | Unique ID number of the company that created this transaction |
| `reconstructed` | ReconstructedApiRequestResponseModel | Reconstructed API request/response |
| `serverTimestamp` | string | Server timestamp, in UTC, of the date/time when the original transaction was created |
| `serverDuration` | string | Length of time the original API call took |
| `apiCallStatus` | string | api call status |
| `original` | OriginalApiRequestResponseModel | Original API request/response |

### AvaFileFormModel

Represents information about a tax form known to Avalara

| Property | Type | Description |
|---|---|---|
| `id` | integer | Unique Id of the form |
| `returnName` | string | Name of the file being returned |
| `formName` | string | Name of the submitted form |
| `description` | string | A description of the submitted form |
| `effDate` | string | The date this form starts to take effect |
| `endDate` | string | The date the form finishes to take effect |
| `region` | string | State/Province/Region where the form is submitted for |
| `country` | string | The country this form is submitted for |
| `formTypeId` | string | The type of the form being submitted |
| `filingOptionTypeId` | string | The type of Filing option |
| `dueDateTypeId` | string | The type of the due date |
| `dueDay` | integer | Due date |
| `efileDueDateTypeId` | string | The type of E-file due date. |
| `efileDueDay` | integer | The date by when the E-filing should be submitted |
| `efileDueTime` | string | The time of day by when the E-filing should be submitted |
| `hasVendorDiscount` | boolean | Whether the customer has discount |
| `roundingTypeId` | string | The way system does the rounding |
| `outletTypeId` | string | The outlet type of the form |

### AvaFileFormModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### AvaTaxMessage

Informational or warning messages returned by AvaTax with a transaction

| Property | Type | Description |
|---|---|---|
| `summary` | string | A brief summary of what this message tells us |
| `details` | string | Detailed information that explains what the summary provided |
| `refersTo` | string | Information about what object in your request this message refers to |
| `severity` | string | A category that indicates how severely this message affects the results |
| `source` | string | The name of the code or service that generated this message |

### AvailableCycleModel

Available Cycle object

| Property | Type | Description |
|---|---|---|
| `transactionalPeriodStart` | string | Transactional Period Start |
| `transactionalPeriodEnd` | string | Transactional Period End |
| `filingDueDate` | string | Filing Due Date |
| `cycleName` | string | Cycle Name |

### BadRequestErrorResponse

This is used to map the error details in response

| Property | Type | Description |
|---|---|---|
| `code` | integer | Status code in the response |
| `message` | string | Error message in the response |

### BatchAdjustTransactionModel

Replace an existing transaction recorded in AvaTax with a new one.

| Property | Type | Description |
|---|---|---|
| `companyCode` | string | Specifies the code of the company for this transaction. |
| `transactionCode` | string | Please specify the transaction code of the transaction to void. |
| `documentType` | string | Specifies the type of document to void. |
| `adjustmentReason` | string | A reason code indicating why this adjustment was made |
| `adjustmentDescription` | string | If the AdjustmentReason is "Other", specify the reason here.
            
This is required when the AdjustmentReason is 8 (Other). |
| `newTransaction` | CreateTransactionModel | Replace the current transaction with tax data calculated for this new transaction |

### BatchFileModel

Represents one file in a batch upload.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number assigned to this batch file. |
| `batchId` | integer | The unique ID number of the batch that this file belongs to. |
| `name` | string | Logical Name of file (e.g. "Input" or "Error"). |
| `content` | string | Content of the batch file. |
| `contentLength` | integer | Size of content, in bytes. |
| `contentType` | string | Content mime type (e.g. text/csv).  This is used for HTTP downloading. |
| `fileExtension` | string | File extension (e.g. CSV). |
| `filePath` | string | Path to the file - name/S3 key |
| `errorCount` | integer | Number of errors that occurred when processing this file. |

### BatchModel

Represents a batch of uploaded documents.

| Property | Type | Description |
|---|---|---|
| `type` | string | The type of this batch. |
| `batchAgent` | string | The agent used to create this batch |
| `id` | integer | The unique ID number of this batch. |
| `options` | string | Any optional flags provided for this batch |
| `name` | string | The user-friendly readable name for this batch. |
| `accountId` | integer | The Account ID number of the account that owns this batch. |
| `companyId` | integer | The Company ID number of the company that owns this batch. |
| `status` | string | This batch's current processing status |
| `startedDate` | string | The date/time when this batch started processing |
| `recordCount` | integer | The number of records in this batch; determined by the server |
| `currentRecord` | integer | The current record being processed |
| `completedDate` | string | The date/time when this batch was completely processed |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `files` | array | The list of files contained in this batch. |

### BatchModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### BatchVoidTransactionModel

A request to void a previously created transaction.

| Property | Type | Description |
|---|---|---|
| `companyCode` | string | Company Code - Specify the code of the company for this transaction. |
| `transactionCode` | string | Please specify the transaction code of the transaction to void. |
| `documentType` | string | Specifies the type of document to void. |
| `code` | string | Please specify the reason for voiding or cancelling this transaction.
To void the transaction, please specify the reason 'DocVoided'.
If you do not provide a reason, the void command will fail. |

### BulkLockTransactionModel

Bulk lock documents model

| Property | Type | Description |
|---|---|---|
| `documentIds` | array | List of documents to lock |
| `isLocked` | boolean | The lock status to set for the documents designated in this API |

### BulkLockTransactionResult

Returns information about transactions that were locked

| Property | Type | Description |
|---|---|---|
| `numberOfRecords` | integer | Number of records that have been modified |

### CacheInfo

Individual cache information

| Property | Type | Description |
|---|---|---|
| `name` | string | Name of the cache |
| `memorySizeBytes` | integer | Memory size of the cache in bytes |
| `memorySizeMB` | number | Memory size of the cache in megabytes |
| `memorySizeGB` | number | Memory size of the cache in GB |
| `itemCount` | integer | Number of items in the cache |
| `isLoaded` | boolean | Whether the cache is currently loaded |
| `lastRefreshTime` | string | Time when the cache was last refreshed |
| `lastRefreshDuration` | string | Duration of the last cache refresh operation |

### CacheMemoryUsage

Cache memory usage details

| Property | Type | Description |
|---|---|---|
| `caches` | object | Dictionary of cache information indexed by cache name |
| `totalCacheMemory` | integer | Total memory used by all caches in bytes |
| `totalCacheMemoryGB` | number | Total memory used by all caches in GB |
| `totalCacheCount` | integer | Total number of caches monitored |
| `timestamp` | string | Timestamp when the cache memory usage was collected |

### CertExpressInvitationModel

Represents an invitation for a customer to use CertExpress to self-report their own certificates.
This invitation is delivered by your choice of method, or you can present a hyperlink to the user
directly in your connector.  Your customer will be redirected to https://app.certexpress.com/ where
they can follow a step-by-step guide to enter information about their exemption certificates.  The
certificates entered will be recorded and automatically linked to their customer record.

| Property | Type | Description |
|---|---|---|
| `id` | integer | A unique ID number representing this CertExpress invitation. |
| `companyId` | integer | The unique ID number of the AvaTax company that sent this invitation. |
| `recipient` | string | The email address to which this invitation was sent.  If this invitation was presented as a weblink, this value will be null. |
| `customerCode` | string | The unique code of the customer that received this invitation.
Note: This field is case sensitive. To have exemption certificates apply, this value should
be the same as the one passed to create a customer. |
| `customer` | CustomerModel | The customer who received this invitation. |
| `coverLetter` | CoverLetterModel | The attached cover letter object to this request. |
| `emailStatus` | string | The status of the emails associated with this invitation.  If this invitation was sent via email,
this value will change to `Sent` when the email message has been sent. |
| `coverLettersOnly` | boolean | True if this invitation contained a cover letter only. |
| `exposureZones` | array | When an invitation is sent, it contains a list of exposure zones for which the customer is invited to upload
their exemption certificates.  This list contains the ID numbers of the exposure zones identified.
            
For a list of exposure zones, please call `ListCertificateExposureZones`. |
| `exemptReasons` | array | The list of exemption reasons identified by this CertExpress invitation.
            
For a list of reason codes, please call `ListCertificateExemptReasons`. |
| `deliveryMethod` | string | Indicates the method that was used to deliver this CertExpress invitation. |
| `message` | string | The custom message delivered with this invitation. |
| `date` | string | The date of the invitation. |
| `requestLink` | string | The web link (URL) that a customer can click on or visit to begin using this CertExpress invitation.
            
This value is only usable if the status of this invitation is `Ready` and the request was created with type `Download`.
NOTE: This link usually takes a few minutes to be available. |

### CertExpressInvitationModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CertExpressInvitationStatusModel

Represent what is the current status of certificate request

| Property | Type | Description |
|---|---|---|
| `status` | string | The status of the CertExpress invitation for this customer. If this status says
InProgress then CertExpress website is currently building a landing page for the customer. 
Please wait about 10 seconds and fetch this request again to see when it will be ready. |
| `invitation` | CertExpressInvitationModel | The CertExpress invitation for the customer.  If you specified an email address in the invitation
request, this invitation will be sent via email.  Otherwise, you are expected to direct the customer
using a hyperlink directly in your application. |

### CertificateAttributeModel

A certificate attribute can be thought of as a feature or flag that is applied to a certificate.
A single certificate can be linked to zero, one, or many certificate attributes.  The full list of
attributes can be obtained by calling the `ListCertificateAttributes` API.

| Property | Type | Description |
|---|---|---|
| `id` | integer | A unique ID number representing this certificate attribute. |
| `name` | string | A friendly readable name for this certificate attribute. |
| `description` | string | A full help text description of the certificate attribute. |
| `isSystemCode` | boolean | This value is true if this is a system-defined certificate attribute.  System-defined attributes
cannot be modified or deleted on the CertCapture website. |

### CertificateAttributeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CertificateInvalidReasonModel

The reason the certificate is invalid.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID of this invalid reason. |
| `name` | string | The name of this certificate invalid reason. |
| `description` | string | A description of the certificate invalid reason. |
| `systemCode` | boolean | This value is `true` if the invalid reason is a system code. |

### CertificateJobModel

A job associated with a certificate.
            
Used as both the input shape on certificate POST/PUT (only `id` and the nested
Avalara.AvaTax.AccountServices.Models.v2.CertificateJobModel.phases ids are required to link existing jobs/phases/tasks to the certificate)
and the response shape on certificate GET endpoints when `jobs` is requested via
`$include`. Use `$include=jobs.phases` or `$include=jobs.tasks` on GET to
additionally populate the nested Avalara.AvaTax.AccountServices.Models.v2.CertificateJobModel.phases collection and the tasks under each phase.

| Property | Type | Description |
|---|---|---|
| `isExplicit` | boolean | Indicates whether this job was explicitly linked to the certificate.
Populated by CertCapture on GET responses; ignored on POST/PUT. |
| `isDirect` | boolean | Indicates whether this is a direct association.
Populated by CertCapture on GET responses; ignored on POST/PUT. |
| `id` | integer | The unique ID of this job. Required on POST/PUT to link an existing job to the certificate. |
| `name` | string | The name of this job. Populated by CertCapture on GET responses; ignored on POST/PUT
(the job is identified by Avalara.AvaTax.AccountServices.Models.v2.CertificateJobModel.id). |
| `jobNumber` | string | The job number. Populated by CertCapture on GET responses; ignored on POST/PUT
(the job is identified by Avalara.AvaTax.AccountServices.Models.v2.CertificateJobModel.id). |
| `exposureZoneName` | string | The name of the exposure zone associated with this job. Populated by CertCapture on
GET responses; ignored on POST/PUT. |
| `phases` | array | The nested list of phases for this job (each phase containing its own tasks).
            
On GET, populated by CertCapture only when `$include=jobs.phases` or
`$include=jobs.tasks` is requested; null otherwise. On POST/PUT, supply the
phase / task `id` values to link them to the certificate alongside the job. |

### CertificateJurisdictionListModel

Represents a valid jurisdiction that can be linked to a certificate.
            
This model is returned by the `ListJurisdictions` API, which lists the jurisdictions
that are valid for a given exposure zone and exemption tax code. The returned
jurisdictions can then be used to add valid jurisdictions to a certificate.

| Property | Type | Description |
|---|---|---|
| `code` | string | The code identifying the jurisdiction. |
| `name` | string | The name of the jurisdiction. |
| `type` | string | The type of the jurisdiction (e.g., Special, State, County, City). |
| `region` | string | The region (for example, the two-letter state or province abbreviation) where
this jurisdiction applies. |
| `country` | string | The ISO country code for this jurisdiction. |
| `customerUsageType` | string | The customer usage type (entity use code) associated with this jurisdiction. |

### CertificateJurisdictionListModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CertificateJurisdictionModel

Represents a jurisdiction associated with a certificate.
A certificate can be linked to one or more jurisdictions indicating the tax
authority regions where the certificate applies.

| Property | Type | Description |
|---|---|---|
| `id` | integer | Unique ID number |
| `type` | string | The type of the jurisdiction (e.g., State, County, City). |
| `name` | string | The name of the jurisdiction. |
| `code` | string | The FIPS code or identifier for the jurisdiction. |

### CertificateLogModel

The certificate log for a customer. This is exposed in the URL's `$includes`.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this log entry. |
| `certificateId` | integer | The unique ID number of this certificate. |
| `account` | string | The name of this account. |
| `entry` | string | The log entry description. |
| `created` | string | The date/time when this certificate log was created. |

### CertificateModel

A certificate is a document stored in either AvaTax Exemptions or CertCapture.  The certificate document
can contain information about a customer's eligibility for exemption from sales or use taxes based on
criteria you specify when you store the certificate.  To view or manage your certificates directly, please
log onto the administrative website for the product you purchased.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this certificate. |
| `companyId` | integer | The unique ID number of the AvaTax company that recorded this certificate. |
| `signedDate` | string | The date when this certificate was signed. |
| `expirationDate` | string | Expiration date when this certificate will no longer be valid. |
| `filename` | string | File name for the image of this certificate.
            
When creating a certificate, if you do not upload a PDF or JPG image, you must specify the filename
of the certificate as it is tracked in your repository.
            
To create a certificate, you must provide one of the following fields: either a `filename`, a `pdf` file,
or an array of JPG `pages`.  The API will return an error if you omit these fields or if you attempt to
put values in more than one of them. |
| `documentExists` | boolean | This value is true if there exists scanned PDF copy of this certificate or the PDF version of the form that the customer filled via the CertCapture wizard on S3 bucket. |
| `valid` | boolean | True if this certificate is marked as valid.  A valid certificate can be considered for exemption purposes.
When a certificate is marked invalid, it will no longer be considered when calculating exemption for
a customer. |
| `verified` | boolean | This value is true if the certificate has gone through the certificate validation process.
For more information on the certificate validation process, please see the Avalara Help Center. |
| `exemptPercentage` | number | If this certificate provides exemption from transactional taxes, what percentage of the transaction
is considered exempt?
            
For a fully exempt certificate, this percentage should be 100. |
| `isSingleCertificate` | boolean | This value is true if this certificate is a single (or standalone) certificate.  This value is set
during the audit stage of the certificate validation process. |
| `exemptionNumber` | string | Indicates the tax number passed in for the certificate. |
| `validatedExemptionReason` | ExemptionReasonModel | The exemption reason that CertCapture audit/internal logic identifies for created certificate. |
| `exemptionReason` | ExemptionReasonModel | The exemption reason associated with this certificate.  For example, the reason code for exemption
for purposes of resale is `RESALE`.
            
For a list of exemption reasons, call `ListCertificateExemptReasons`. |
| `status` | string | The status of the certificate.
Possible values for status COMPLETE,PENDING,PENDING-FUTURE,PENDING-MULTI,PENDING-SINGLE,REVOKED |
| `ecmStatus` | string | The status of the certificate as displayed on https://exemptions.avalara.com. The values in `CertificateEcmStatus` include all the possible status values. |
| `createdDate` | string | The date/time when this record was created. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `taxNumberType` | string | The tax number type for the certificate. For example, `FEIN`, `Social Security Number`, or `Employer Identification Number`. |
| `businessNumberType` | string | Description of business for the certificate. For example, `Retail trade`, `Professional services`, or `Construction`. |
| `pageCount` | integer | The number of pages contained within this certificate. |
| `customers` | array | A list of customers to which this certificate applies.  You can fetch this data by specifying
`$include=customers` when calling a certificate fetch API. |
| `poNumbers` | array | A list of purchase order numbers that are valid for use with this certificate.
            
If this certificate is applicable for all purchase order numbers, this field will be empty.
            
You can fetch this data by specifying `$include=po_numbers` when calling a certificate fetch API. |
| `exposureZone` | ExposureZoneModel | The exposure zone where this certificate is valid. |
| `exposureZoneName` | string | The name of the exposure zone where this certificate is valid.
This is a computed property for filtering purposes. |
| `jurisdictions` | array | A list of jurisdictions associated with this certificate, indicating the tax authority
regions where the certificate applies. A certificate can have one or more jurisdictions.
            
You can fetch this data by specifying `$include=jurisdictions` when calling a certificate fetch API. |
| `attributes` | array | A list of certificate attributes that apply to this certificate.
            
You can fetch this data by specifying `$include=attributes` when calling a certificate fetch API. |
| `histories` | array | A list of update histories for this certificate.
            
You can fetch this data by specifying `$include=histories` when calling a certificate fetch API. |
| `jobs` | array | The jobs (and their phases / tasks) associated with this certificate.
            
On POST / PUT: supply the `id` of each existing job — and optionally nested phase /
task `id`s — to link them to this certificate. All other fields on each entry
(`name`, `jobNumber`, `isExplicit`, etc.) are server-computed and ignored
on input.
            
On GET: populated when `$include=jobs` is specified. Use `$include=jobs.phases`
to also expand the phases within each job, and `$include=jobs.tasks` to expand the
tasks within each phase (which implies `jobs` and `jobs.phases`). |
| `logs` | array | A list of logs for this certificate.
            
You can fetch this data by specifying `$include=logs` when calling a certificate fetch API. |
| `invalidReasons` | array | For a certificate with an invalid status, this lists the reasons why the certificate is invalid.
            
You can fetch this data by specifying `$include=invalid_reasons` when calling a certificate fetch API. |
| `customFields` | array | A list of custom defined fields for this certificate.
            
You can fetch this data by specifying `$include=custom_fields` when calling a certificate fetch API. |
| `ecmsId` | integer | The unique ID number of current AvaTax Exemption Certificate that refers this certificate. |
| `ecmsStatus` | string | The status of current AvaTax Exemption Certificate  that refers to this certificate. |
| `pdf` | string | This field is available for input only.  To retrieve the image after creation, use the
`DownloadCertificateImage` API.
            
When creating a certificate, you may optionally provide a PDF image in Base64 URLEncoded format.
PDFs are automatically parsed into individual page JPG images and can be retrieved back
later as either the original PDF or the individual pages.
            
To create a certificate, you must provide one of the following fields: either a `filename`, a `pdf` file,
or an array of JPG `pages`.  The API will return an error if you omit these fields or if you attempt to
put values in more than one of them. |
| `pages` | array | This field is available for input only.  To retrieve the image after creation, use the
`DownloadCertificateImage` API.
            
When creating a certificate, you may optionally provide a list of JPG images, one per page, in
Base64 URLEncoded format.  These JPG images are automatically combined into a single downloadable
PDF and can be retrieved back later as either the original JPG images or the combined PDF.
            
To create a certificate, you must provide one of the following fields: either a `filename`, a `pdf` file,
or an array of JPG `pages`.  The API will return an error if you omit these fields or if you attempt to
put values in more than one of them. |

### CertificateModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ChangeTransactionCodeModel

Settle this transaction with your ledger by verifying its amounts.
If the transaction is not yet committed, you may specify the "commit" value to commit it to the ledger and allow it to be reported.
You may also optionally change the transaction's code by specifying the "newTransactionCode" value.

| Property | Type | Description |
|---|---|---|
| `newCode` | string | To change the transaction code for this transaction, specify the new transaction code here. |

### ClassificationCriteriaModel

Tariff classification criteria flags used when mode is `auto_partial`.

| Property | Type | Description |
|---|---|---|
| `NoTariffCodeAssigned` | boolean | When true, include items with no tariff code assigned. |
| `InvalidTariffCode` | boolean | When true, include items with an invalid tariff code. |
| `TariffCodeNeedsReview` | boolean | When true, include items whose tariff code needs review. |

### ClassificationModel

Represents a classification for a given item.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID of the classification. |
| `productCode` | string | The product code of an item in a given system. |
| `systemCode` | string | The system code in which the product belongs. |
| `country` | string | The country where the product belongs. |
| `isPremium` | boolean | If there is an premium classification justification present for this classification |

### ClassificationParameterUsageMapModel

usage of system defined parameters.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this property. |
| `parameterId` | integer | The id of the parameter. |
| `taxTypeGroupId` | string | tax type group id for the classification parameter usage item. |
| `visibility` | string | This defines if the parameter is recommended ,optional or mandatory |
| `attributeType` | string | The type of parameter as determined by its application, e.g. Product, Transaction, Calculated |
| `attributeSubType` | string | The sub-type of parameter as determined by its application. |
| `name` | string | The name of the property.  To use this property, add a field on the `parameters` object of a [CreateTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/) call. |
| `dataType` | string | The data type of the property. |
| `helpText` | string | Help text to be shown to the user when they are filling out this parameter.  Help text may include HTML links to additional
content with more information about a parameter. |
| `label` | string | Label that helps the user to identify a parameter |
| `helpUrl` | string | A help url that provides more information about the parameter |
| `values` | array | If the parameter is of enumeration data type, then this list will be populated with all of the possible enumeration values. |
| `measurementType` | string | The unit of measurement type of the parameter |

### ClassificationParameterUsageMapModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ClassificationSettingsInputModel

Request body for creating company classification settings (`POST /classification-settings`).

| Property | Type | Description |
|---|---|---|
| `mode` | string | Classification mode: typically Avalara.ItemMasterCoreService.Common.ClassificationSettingsConstants.Modes.AutoFull or Avalara.ItemMasterCoreService.Common.ClassificationSettingsConstants.Modes.AutoPartial. |
| `criteria` | ClassificationCriteriaModel | Partial-auto criteria flags; must be empty or null when mode is full-auto. |
| `countryScope` | CountryScopeModel | Whether to run against all nexus countries or a selected subset. |

### ClassificationSettingsOutputModel

API response for classification settings, including optimistic versioning and pipeline state.

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | Company that owns the settings row. |
| `mode` | string | Current classification mode. |
| `criteria` | ClassificationCriteriaModel | Criteria flags when in partial-auto mode. |
| `countryScope` | CountryScopeModel | Configured country scope. |
| `settingsVersion` | integer | Monotonic settings version; increments when IMS updates the row. |
| `processingState` | string | `created` immediately after create/update from this API; downstream may set `processing` then `completed`. |
| `processingVersion` | integer | Processing attempt counter aligned with downstream jobs. |
| `processingStartedDate` | string | Set when IMS create/update last wrote the row (enters `created`). |
| `processingCompletedDate` | string | Set by the downstream completion service when state becomes `completed`; null until then. |
| `processingNote` | string | Optional pipeline note (`processingnote` on `dbo.itemclassificationsettings`). |
| `createdUserId` | integer | User id that created the row. |
| `createdDate` | string | UTC creation timestamp. |
| `modifiedUserId` | integer | User id for the last modification. |
| `modifiedDate` | string | UTC last modification timestamp. |

### ClerkLocationModel

Represents a physical location used in exemption certificate management.

| Property | Type | Description |
|---|---|---|
| `id` | integer | Unique identifier for the location. |
| `name` | string | Display name of the location. |
| `code` | string | Code used to reference this location. |
| `addressLine1` | string | Primary street address of the location. |
| `addressLine2` | string | Additional address details (e.g., suite, building). |
| `city` | string | City in which the location is situated. |
| `zip` | string | Postal or ZIP code of the location. |
| `stateId` | integer | A unique ID number that represents this state, region, or province. |
| `stateName` | string | The state, region, or province name as known in US English. |
| `stateInitials` | string | The abbreviated two or three character ISO 3166 state, province, or region code. |
| `countryId` | integer | The unique ID number of this country as defined in Avalara's certificate management system. |
| `countryName` | string | The name of this country in US English. |
| `countryInitials` | string | The three-character ISO 3166 code for this country. |
| `clientId` | integer | id of the client (client_id) |
| `clientName` | string | name of the client |
| `avataxCompanyId` | string | The Avalara AvaTax™ CompanyId this client maps to. |

### ClerkLocationModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CombinedHSTConfigModel

An AvaTax account.

| Property | Type | Description |
|---|---|---|
| `accountId` | integer | The unique ID number assigned to this account. |
| `excludedCompanyCodes` | array | Company Codes to Exclude from change. |
| `endDate` | string |  |

### CommitMultiDocumentModel

Commit this MultiDocument object so that all transactions within it can be reported on a tax filing.

| Property | Type | Description |
|---|---|---|
| `code` | string | Represents the unique code of this MultiDocument transaction.
            
A MultiDocument transaction is uniquely identified by its `accountId`, `code`, and `type`.        /// |
| `type` | string | Represents the document type of this MultiDocument transaction.  For more information about
document types, see [DocumentType](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/DocumentType/).
            
A MultiDocument transaction is uniquely identified by its `accountId`, `code`, and `type`. |
| `commit` | boolean | Set this value to be `true` to commit this transaction.
            
Committing a transaction allows it to be reported on a tax filing.  Uncommitted transactions will not be reported. |

### CommitTransactionModel

Commit this transaction as permanent so that it can be reported on a tax filing.

| Property | Type | Description |
|---|---|---|
| `commit` | boolean | Set this value to be `true` to commit this transaction.
            
Committing a transaction allows it to be reported on a tax filing.  Uncommitted transactions will not be reported. |

### CommunicationCertificateResponse

Encloses communication certificate details

| Property | Type | Description |
|---|---|---|
| `id` | integer | Certificate Id |
| `effectiveDate` | string | Certificate effective date |
| `expirationDate` | string | Certificate expiration date |
| `exemptionReason` | string | Certificate exemption reason |
| `exemptionRegion` | string | Certificate exemption region |
| `taxNumber` | string | Certificate tax number |
| `certificateStatus` | string | Certificate status |
| `customers` | array | Customers which have this certificate |
| `exemptions` | array | Tax details of this certificate |

### CommunicationCertificateResponsePage

Encloses count and model value details

| Property | Type | Description |
|---|---|---|
| `count` | integer | Count of records |
| `value` | array | Requested model list |

### CommunicationCustomerResponse

Encloses communication certificate customer

| Property | Type | Description |
|---|---|---|
| `id` | integer | Customer Id |
| `customerNumber` | string | Customer number |
| `name` | string | Customer name |

### CommunicationExemptionDesignatorResponse

Encloses Communication exemption designator details

| Property | Type | Description |
|---|---|---|
| `id` | integer | Communication category Id |
| `type` | string | Tax category |
| `name` | string | Communication category name |

### CommunicationLocationResponse

Encloses communication location details

| Property | Type | Description |
|---|---|---|
| `country` | string | Communication tax country |
| `state` | string | Communication tax state |
| `county` | string | Communication tax County |
| `city` | string | Communication tax city |

### CommunicationTaxTypeResponse

Encloses communication tax type details

| Property | Type | Description |
|---|---|---|
| `location` | CommunicationLocationResponse | Encloses communication location details |
| `exemptionDesignator` | CommunicationExemptionDesignatorResponse | Encloses exemption designator details |
| `scope` | array | Communication scope |
| `domain` | string | Communication domain |

### CommunicationsTSPairModel

Represents a transaction/service type pair for telecommunications tax

| Property | Type | Description |
|---|---|---|
| `transactionTypeId` | integer | The numeric Id of the transaction type. |
| `serviceTypeId` | integer | The numeric Id of the service type. |
| `AvaTax.Communications.TransactionType` | string | The name of the transaction type. |
| `AvaTax.Communications.ServiceType` | string | The name of the service type. |
| `description` | string | The description of the transaction/service type pair. |
| `requiredParameters` | array | List of the parameters (among Charge, Minutes and Lines) that will be used for calculation for this T/S pair. |

### CommunicationsTSPairModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CommunicationsTransactionTypeModel

Represents information about a type of telecommunications transaction

| Property | Type | Description |
|---|---|---|
| `transactionTypeId` | integer | The numeric Id of the transaction type. |
| `AvaTax.Communications.TransactionType` | string | The name of the transaction type. |

### CommunicationsTransactionTypeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CompanyAddress

Company Address Information

| Property | Type | Description |
|---|---|---|
| `line` | string | Address Line1 |
| `city` | string | City |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `postalCode` | string | Postal Code |

### CompanyConfigurationModel

Represents one configuration setting for this company

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | The unique ID number of the account to which this setting applies |
| `category` | string | The category of the configuration setting.  Avalara-defined categories include `AddressServiceConfig` and `TaxServiceConfig`.  Customer-defined categories begin with `X-`. |
| `name` | string | The name of the configuration setting |
| `value` | string | The current value of the configuration setting |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### CompanyDistanceThresholdModel

A company-distance-threshold model indicates the distance between a company
and the taxing borders of various countries.  Distance thresholds are necessary
to correctly calculate some value-added taxes.
            
Distance thresholds only apply to sales of goods in certain countries.  A distance threshold
is applied for each ship-from/ship-to combination of countries.  The threshold amount is defined by
the ship-to country.
            
Generally, if you have exceeded a distance threshold for taxes between a pair of countries, your tax calculation
will be determined to be the rate in the destination country.  If you have not exceeded the threshold,
your tax calculation will be determined to be the rate in the origin country.
            
The amount of a threshold is not tracked or managed in AvaTax, but the decision of your tax compliance department
as to whether you have exceeded this threshold is maintained in this object.
            
By default, you are considered to have exceeded tax thresholds. If you wish to change this default, you can create
a company-distance-threshold object to select the correct behavior for this origin/destination tax calculation process.

| Property | Type | Description |
|---|---|---|
| `id` | integer | A unique ID number representing this distance threshold object. |
| `companyId` | integer | The ID number of the company that defined this distance threshold. |
| `originCountry` | string | The origin country for this threshold.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `destinationCountry` | string | The destination country for this threshold.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `effDate` | string | For distance threshold values that change over time, this is the earliest date for which this distance
threshold is valid.  If null, this distance threshold is valid for all dates earlier than the `endDate` field. |
| `endDate` | string | For distance threshold values that change over time, this is the latest date for which this distance
threshold is valid.  If null, this distance threshold is valid for all dates later than the `effDate` field. |
| `thresholdExceeded` | boolean | True if your tax professional has determined that the value-added tax distance threshold is exceeded for this pair of countries.
            
If you set this value to `false`, your value added taxes will be calculated using the origin country.  Otherwise, value
added taxes will be calculated on the destination country. |
| `type` | string | Indicates the distance threshold type.
            
This value can be either `Sale` or `Purchase`. |

### CompanyDistanceThresholdModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CompanyInitializationModel

Company Initialization Model

| Property | Type | Description |
|---|---|---|
| `name` | string | Company Name |
| `companyCode` | string | Company Code - used to distinguish between companies within your accounting system |
| `vatRegistrationId` | string | Vat Registration Id - leave blank if not known. |
| `taxpayerIdNumber` | string | United States Taxpayer ID number, usually your Employer Identification Number if you are a business or your
Social Security Number if you are an individual.
This value is required if the address provided is inside the US and if you subscribed to the Avalara Managed Returns or SST Certified Service Provider service. Otherwise it is optional. |
| `isFein` | boolean | Set this field to true if the taxPayerIdNumber is a FEIN. |
| `line1` | string | Address Line1 |
| `line2` | string | Line2 |
| `line3` | string | Line3 |
| `city` | string | City |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `postalCode` | string | Postal Code |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `firstName` | string | First Name |
| `lastName` | string | Last Name |
| `title` | string | Title |
| `email` | string | Email |
| `phoneNumber` | string | Phone Number |
| `mobileNumber` | string | Mobile Number |
| `faxNumber` | string | Fax Number |
| `parentCompanyId` | integer | Parent Company ID |

### CompanyModel

A company or business entity.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this company. |
| `accountId` | integer | The unique ID number of the account this company belongs to. |
| `parentCompanyId` | integer | If this company is fully owned by another company, this is the unique identity of the parent company. |
| `sstPid` | string | If this company files Streamlined Sales Tax, this is the PID of this company as defined by the Streamlined Sales Tax governing board. |
| `companyCode` | string | A unique code that references this company within your account. |
| `name` | string | The name of this company, as shown to customers. |
| `isDefault` | boolean | This flag is true if this company is the default company for this account.  Only one company may be set as the default. |
| `defaultLocationId` | integer | If set, this is the unique ID number of the default location for this company. |
| `isActive` | boolean | This flag indicates whether tax activity can occur for this company.  Set this flag to true to permit the company to process transactions. |
| `taxpayerIdNumber` | string | For United States companies, this field contains your Taxpayer Identification Number.
This is a nine digit number that is usually called an EIN for an Employer Identification Number if this company is a corporation,
or SSN for a Social Security Number if this company is a person.
This value is required if the address provided is inside the US and if you subscribed to the Avalara Managed Returns or SST Certified Service Provider service. Otherwise it is optional. |
| `isFein` | boolean | Set this field to true if the taxPayerIdNumber is a FEIN. |
| `hasProfile` | boolean | Set this flag to true to give this company its own unique tax profile.
If this flag is true, this company will have its own Nexus, TaxRule, TaxCode, and Item definitions.
If this flag is false, this company will inherit all profile values from its parent. |
| `isReportingEntity` | boolean | Set this flag to true if this company must file its own tax returns.
For users who have Returns enabled, this flag turns on monthly Worksheet generation for the company. |
| `sstEffectiveDate` | string | If this company participates in Streamlined Sales Tax, this is the date when the company joined the SST program. |
| `defaultCountry` | string | The two character ISO-3166 country code of the default country for this company. |
| `baseCurrencyCode` | string | This is the three character ISO-4217 currency code of the default currency used by this company. |
| `roundingLevelId` | string | Indicates whether this company prefers to round amounts at the document level or line level. |
| `warningsEnabled` | boolean | Set this value to true to receive warnings in API calls via SOAP. |
| `isTest` | boolean | Set this flag to true to indicate that this company is a test company.
If you have Returns enabled, Test companies will not file tax returns and can be used for validation purposes. |
| `taxDependencyLevelId` | string | Used to apply tax detail dependency at a jurisdiction level. |
| `inProgress` | boolean | Set this value to true to indicate that you are still working to finish configuring this company.
While this value is true, no tax reporting will occur and the company will not be usable for transactions. |
| `businessIdentificationNo` | string | Business Identification No |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `contacts` | array | Optional: A list of contacts defined for this company.  To fetch this list, add the query string `?$include=Contacts` to your URL.
            
When calling `CreateCompany`, you may provide a list of objects in this element and they will be created alongside the company.
The `UpdateCompany` API does not permit updating nested objects. |
| `items` | array | Optional: A list of items defined for this company.  To fetch this list, add the query string `?$include=Items` to your URL.
            
When calling `CreateCompany`, you may provide a list of objects in this element and they will be created alongside the company.
The `UpdateCompany` API does not permit updating nested objects. |
| `locations` | array | Optional: A list of locations defined for this company.  To fetch this list, add the query string `?$include=Locations` to your URL.
            
When calling `CreateCompany`, you may provide a list of objects in this element and they will be created alongside the company.
The `UpdateCompany` API does not permit updating nested objects. |
| `nexus` | array | Optional: A list of nexus defined for this company.  To fetch this list, add the query string `?$include=Nexus` to your URL.
            
When calling `CreateCompany`, you may provide a list of objects in this element and they will be created alongside the company.
The `UpdateCompany` API does not permit updating nested objects. |
| `settings` | array | Optional: A list of settings defined for this company.  To fetch this list, add the query string `?$include=Settings` to your URL.
            
When calling `CreateCompany`, you may provide a list of objects in this element and they will be created alongside the company.
The `UpdateCompany` API does not permit updating nested objects. |
| `taxCodes` | array | Optional: A list of tax codes defined for this company.  To fetch this list, add the query string `?$include=TaxCodes` to your URL.
            
When calling `CreateCompany`, you may provide a list of objects in this element and they will be created alongside the company.
The `UpdateCompany` API does not permit updating nested objects. |
| `taxRules` | array | Optional: A list of tax rules defined for this company.  To fetch this list, add the query string `?$include=TaxRules` to your URL.
            
When calling `CreateCompany`, you may provide a list of objects in this element and they will be created alongside the company.
The `UpdateCompany` API does not permit updating nested objects. |
| `upcs` | array | Optional: A list of UPCs defined for this company.  To fetch this list, add the query string `?$include=UPCs` to your URL.
            
When calling `CreateCompany`, you may provide a list of objects in this element and they will be created alongside the company.
The `UpdateCompany` API does not permit updating nested objects. |
| `nonReportingChildCompanies` | array | Optional: A list of non reporting child companies associated with this company.  To fetch this list, add the query string `?$include=NonReportingChildren` to your URL. |
| `exemptCerts` | array | DEPRECATED - Date: 9/15/2017, Version: 17.10, Message: Please use the `ListCertificates` API. |
| `mossId` | string | The unique identifier of the mini-one-stop-shop used for Value Added Tax (VAT) processing. |
| `mossCountry` | string | The country code of the mini-one-stop-shop used for Value Added Tax (VAT) processing. |
| `parameters` | array | The parameters of a company |
| `supplierandcustomers` | array | The customers and suppliers of a company |
| `isDeleted` | boolean | A boolean flag to identify if the company is deleted |
| `isAdvSave` | boolean | A boolean flag to identify if the company saves advanced rules after calculation. |
| `companyUrl` | string | The url of the company. |
| `companyDescription` | string | The description of the company. |

### CompanyModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CompanyParameterDetailModel

Represents a parameter associated with a company.

| Property | Type | Description |
|---|---|---|
| `id` | integer | Identifier for company parameter |
| `companyId` | integer | CompanyId associated with the parameter |
| `name` | string | The parameter's name |
| `value` | string | The value of the parameter |
| `unit` | string | The unit of measurement code for the parameter |

### CompanyParameterDetailModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CompanyReturnSettingModel

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID of this CompanyReturnsSetting |
| `companyReturnId` | integer | The CompanyReturn Id |
| `filingQuestionId` | integer | The TaxFormCatalog filingQuestionId. |
| `filingQuestionCode` | string | Filing question code as defined in TaxFormCatalog. |
| `value` | string | The value of this setting |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### CompanyUserDefinedFieldModel

| Property | Type | Description |
|---|---|---|
| `id` | integer | The id of the datasource. |
| `companyId` | integer | The id of the company to which the datasource belongs to. |
| `name` | string | The extractor/connector id. |
| `friendlyName` | string | The unique ID number of this connection. |
| `dataType` | string | The unique ID number of this connection. |
| `userDefinedFieldType` | string | The category of user defined type For Example: Document level or Line level UDF. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `createdDate` | string | The date when this record was created. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |

### CompanyUserDefinedFieldModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ComplianceAggregatedTaxRateModel

A model for aggregated rates.

| Property | Type | Description |
|---|---|---|
| `rate` | number | The compontent rate. |
| `stackRate` | number | The stack rate based on the aggregation method. |
| `effectiveDate` | string | The date this rate is starts to take effect. |
| `endDate` | string | The date this rate is no longer active. |
| `taxTypeId` | string | The tax type of the rate. |
| `rateTypeId` | string | The rate type of the rate. |

### ComplianceJurisdictionModel

Model for distinct jurisdictions.

| Property | Type | Description |
|---|---|---|
| `taxRegionId` | integer | The id of the tax region. |
| `stateAssignedCode` | string | The state assigned code for the jurisdiction. |
| `jurisdictionTypeId` | string | The type of the jurisdiction, indicating whether it is a country, state/region, city, for example. |
| `name` | string | The name of the jurisdiction. |
| `county` | string | The name of the county. |
| `city` | string | The name of the city. |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `country` | string | Name or ISO 3166 code identifying the country of this jurisdiction.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `taxRegionName` | string | The name of the tax region. |
| `taxAuthorityId` | integer | The id of the tax authority. |
| `rates` | array | Optional: A list of rates for this jurisdiction. To fetch this list, add the query string `?$include=TaxRates` to your URL. |

### ComplianceJurisdictionRateModel

A flattened model for jurisdictions and rates.

| Property | Type | Description |
|---|---|---|
| `jurisdictionId` | integer | The id of the jurisdiction. |
| `country` | string | Name or ISO 3166 code identifying the country of this jurisdiction.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `name` | string | The name of the jurisdiction. |
| `jurisdictionTypeId` | string | The type of the jurisdiction, indicating whether it is a country, state/region, city, for example. |
| `rate` | number | The compontent rate. |
| `rateTypeId` | string | The rate type. |
| `taxTypeId` | string | The tax type. |
| `effectiveDate` | string | The date this rate is starts to take effect. |
| `endDate` | string | The date this rate is no longer active. |
| `stateAssignedCode` | string | The state assigned code. |
| `taxAuthorityId` | integer | The id of the tax authority. |

### ComplianceRateOptionModel

Model for RateOption.

| Property | Type | Description |
|---|---|---|
| `jurisName` | string | The name of the Jurisdiction |
| `groupCode` | string | The Group Code |
| `taxRegionId` | integer | The id of the tax region. |
| `taxRegionName` | string | The name of the tax region. |
| `reportLevel` | string | The report level. |
| `taxTypeCode` | string | The Tax Type Code. |
| `taxTypeCodeName` | string | The name of the Tax Type Code. |
| `taxSubTypeCode` | string | The Sub Type Code. |
| `taxSubTypeCodeName` | string | The name of Sub Type. |
| `rateTypeCode` | string | The rate type of the rate. |
| `rateTypeCodeName` | string | The rate type description. |
| `stackRate` | number | The Stack Rate |
| `componentRate` | number | The Component Rate |
| `taxAuthorityId` | integer | The id of the tax authority. |
| `cityName` | string | City |
| `countyName` | string | County |
| `effDate` | string | Effective Date |
| `endDate` | string | End date |

### ComplianceRateOptionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ComplianceStateConfigModel

A flattened model for State Config.

| Property | Type | Description |
|---|---|---|
| `stateConfigId` | integer | The Id of the StateConfig. |
| `effDate` | string | The Effective Date |
| `endDate` | string | The End Date |
| `hasBoundary` | boolean | Has Boundary |
| `hasRates` | boolean | Has Rates |
| `isLocalAdmin` | boolean | Is Local Admin |
| `isLocalNexus` | boolean | Is Local Nexus |
| `isSerState` | boolean | IsSerState |
| `minBoundaryLevelId` | integer | Min Boundary LevelId |
| `sstStatusId` | integer | Sst Status Id |
| `state` | string | Short name of State. |
| `stateFips` | string | StateFips |
| `stateName` | string | The name of the State. |
| `boundaryTableBaseName` | string | Boundary Table BaseName |
| `stjCount` | integer | STJCount |
| `tsStateId` | string | TsState Id |
| `country` | string | The name of the country. |
| `isJaasEnabled` | boolean | IsJaasEnabled |
| `hasSSTBoundary` | boolean | The name of the country. |
| `modifiedDate` | string | The name of the country. |

### ComplianceStateConfigModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ComplianceTaxRateModel

The tax rate model.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique id of the rate. |
| `rate` | number | The tax rate. |
| `jurisdictionId` | integer | The id of the jurisdiction. |
| `taxRegionId` | integer | The id of the tax region. |
| `effectiveDate` | string | The date this rate is starts to take effect. |
| `endDate` | string | The date this rate is no longer active. |
| `rateTypeId` | string | The rate type. |
| `taxTypeId` | string | The tax type. |
| `taxName` | string | The name of the tax. |
| `unitOfBasisId` | integer | The unit of basis. |
| `rateTypeTaxTypeMappingId` | integer | The rate type tax type mapping id. |
| `createDate` | string | The date this rate was created. |
| `source` | string | The Source. |
| `currencyCode` | string | The currency Code. |
| `uomId` | integer | The uom Id. |
| `modifiedDate` | string | The date this rate was modified. |

### ComplianceTaxRateModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ContactModel

A contact person for a company.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this contact. |
| `companyId` | integer | The unique ID number of the company to which this contact belongs. |
| `contactCode` | string | A unique code for this contact which is unique throughout company. |
| `firstName` | string | The first or given name of this contact. |
| `middleName` | string | The middle name of this contact. |
| `lastName` | string | The last or family name of this contact. |
| `title` | string | Professional title of this contact. |
| `line1` | string | The first line of the postal mailing address of this contact. |
| `line2` | string | The second line of the postal mailing address of this contact. |
| `line3` | string | The third line of the postal mailing address of this contact. |
| `city` | string | The city of the postal mailing address of this contact. |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `postalCode` | string | The postal code or zip code of the postal mailing address of this contact. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `email` | string | The email address of this contact. |
| `phone` | string | The main phone number for this contact. |
| `mobile` | string | The mobile phone number for this contact. |
| `fax` | string | The facsimile phone number for this contact. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### ContactModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### Context

Model to represent the system

| Property | Type | Description |
|---|---|---|
| `id` | string | Unique id of the system |
| `system` | string | System name |

### CoordinateInfo

Coordinate Info

| Property | Type | Description |
|---|---|---|
| `latitude` | number | Latitude |
| `longitude` | number | Longitude |

### CostCenterBulkUploadInputModel

Represents a bulk upload input model.

| Property | Type | Description |
|---|---|---|
| `costCenters` | array | List of costCenters |

### CostCenterBulkUploadOutputModel

Represents a bulk upload response model.

| Property | Type | Description |
|---|---|---|
| `total` | integer | Count of processed objects |
| `failed` | array | Dictionary of object and respective list of errors |

### CostCenterRequestModel

Cost Center Request Model

| Property | Type | Description |
|---|---|---|
| `entityUseCode` | string | The Entity Use Code |
| `effectiveDate` | string | Effective from Date |
| `endDate` | string | End Date |
| `defaultItem` | Int64TaxProfileObjectReferenceModel | Default Item for this Cost Center |
| `costCenterCode` | string | The Cost center Name |

### CostCenterSuccessResponseModel

Cost Center Response Model

| Property | Type | Description |
|---|---|---|
| `costCenterId` | integer | The Cost center Id |
| `companyId` | integer | CompanyId to which the cost center belongs |
| `meta` | TaxProfileMetaDataModel | Meta data of this Cost Center |
| `entityUseCode` | string | The Entity Use Code |
| `effectiveDate` | string | Effective from Date |
| `endDate` | string | End Date |
| `defaultItem` | Int64TaxProfileObjectReferenceModel | Default Item for this Cost Center |
| `costCenterCode` | string | The Cost center Name |

### CostCenterSuccessResponseModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CostCenterUploadErrorModel

Represents a costCenter upload error model.

| Property | Type | Description |
|---|---|---|
| `rowIndex` | integer | Row index of a costCenter |
| `costCenterCode` | string | Cost Center name |
| `errors` | array | List of errors for against given costCenter name |

### CountryCoefficientsEntity

Represents the Country coefficients model, using which tax rules rates can be modified dynamically for CB transaciotns while applying tax rules
in order to reduce the variance for all the transactions at country level.

| Property | Type | Description |
|---|---|---|
| `coefficientsId` | integer | CoefficientsId |
| `accountId` | integer | AccountId |
| `companyId` | integer | The CompanyId of company for which coefficient will be applied. |
| `country` | string | The country for which coefficient will be applied. |
| `coefficient` | number | Value by which rates need to be altered while calculating taxes. |
| `taxSubTypeId` | string | TaxSubTypeId |
| `currencyCode` | string | CurrencyCode |
| `unitOfBasisId` | integer | UnitOfBasisId |
| `isApplicable` | boolean | IsApplicable
Flag that is being used to mark the effectiveness of the specific entry for the particular date. |
| `modifiedDate` | string | ModifiedDate |
| `startDate` | string | StartDate |
| `endDate` | string |  |
| `modifiedUserId` | integer | ModifiedUserId.
            
To track the user by which the records have been modified in the past.
This will allow us to track the historical changes made to particular record. |
| `createdDate` | string | StartDate |
| `createdUserId` | integer | CreatedUserId.
            
To track the user who created the record at first place |

### CountryCoefficientsEntityFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CountryCoefficientsRequestEntity

Represents the Country coefficients request input model, using which tax rules rates can be modified dynamically for CB transaciotns while applying tax rules
in order to reduce the variance for all the transactions at country level.

| Property | Type | Description |
|---|---|---|
| `accountId` | integer | AccountId |
| `coefficientDetails` | array | CountryCoefficientsRequestModel list |

### CountryCoefficientsRequestModel

Represents the Country coefficients model, using which tax rules rates can be modified dynamically for CB transaciotns while applying tax rules
in order to reduce the variance for all the transactions at country level.

| Property | Type | Description |
|---|---|---|
| `companyCode` | string | CompanyCode |
| `country` | string | The country for which coefficient will be applied. |
| `coefficient` | number | Value by which rates need to be altered while calculating taxes. |
| `taxSubTypeId` | string | TaxSubTypeId |
| `currencyCode` | string | CurrencyCode |
| `unitOfBasisId` | integer | UnitOfBasisId |
| `isApplicable` | boolean | IsApplicable
Flag that is being used to mark the effectiveness of the specific entry for the particular date. |
| `startDate` | string | StartDate |
| `endDate` | string |  |

### CountryCoefficientsResponseModel

Represents the coefficient, using which tax rules rates can be modified dynamically while applying tax rules
in order to reduce the variance for all the transactions at country level.
            
Avalara supports a few different types of tax rules.  For information about tax rule types, see
[TaxRuleTypeId](https://developer.avalara.com/cofficients)

| Property | Type | Description |
|---|---|---|
| `count` | integer | Total Number of Country Coefficients records inserted/updated. |
| `message` | string | Message |

### CountryModel

Defines a country as known to Avalara's certificate management system.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this country as defined in Avalara's certificate management system. |
| `name` | string | The name of this country in US English. |
| `initials` | string | The three-character ISO 3166 code for this country. |
| `abbreviation` | string | The two-character ISO 3166 code for this country. |

### CountryScopeModel

Restricts automated classification to all nexus countries or an explicit list.

| Property | Type | Description |
|---|---|---|
| `type` | string | Avalara.ItemMasterCoreService.Common.ClassificationSettingsConstants.CountryScopeTypes.All or Avalara.ItemMasterCoreService.Common.ClassificationSettingsConstants.CountryScopeTypes.Selected. |
| `countries` | array | ISO 3166 alpha-2 codes when `type` is `selected`; ignored for `all`. |

### CoverLetterModel

The CoverLetter model represents a message sent along with an invitation to use CertExpress to
upload certificates.  An invitation allows customers to use CertExpress to upload their exemption
certificates directly; this cover letter explains why the invitation was sent.

| Property | Type | Description |
|---|---|---|
| `id` | integer | A unique ID number representing a cover letter sent with a CertExpress invitation. |
| `companyId` | integer | The unique ID number of the AvaTax company that received this certificate. |
| `title` | string | The title used when sending the cover letter. |
| `subject` | string | The subject message used when sending the cover letter via email. |
| `description` | string | A full description of the cover letter's contents and message. |
| `createdDate` | string | The date when this record was created. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `active` | boolean | Is this cover letter active |
| `pageCount` | integer | How many pages this cover letter encompasses |
| `templateFilename` | string | The file name of the cover letter template |
| `version` | integer | The version number of the template |

### CoverLetterModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CreateAdvancedRulesBatchRequestModel

Represents a create advanced rules batch request model.

| Property | Type | Description |
|---|---|---|
| `name` | string | The user-friendly readable name for this batch. |
| `replaceExisting` | boolean | Flag to try updating existing rules instead of just append |
| `options` | string | Any optional flags provided for this batch |
| `executions` | array | List of rule executions to import |

### CreateAdvancedRulesBatchResponseModel

Represents a create advanced rules batch response model.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this batch. |
| `options` | string | Any optional flags provided for this batch |
| `name` | string | The user-friendly readable name for this batch. |
| `accountId` | integer | The Account ID number of the account that owns this batch. |
| `companyId` | integer | The Company ID number of the company that owns this batch. |
| `status` | string | This batch's current processing status |
| `startedDate` | string | The date/time when this batch started processing |
| `recordCount` | integer | The number of records in this batch; determined by the server |
| `currentRecord` | integer | The current record being processed |
| `completedDate` | string | The date/time when this batch was completely processed |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `files` | array | The list of files contained in this batch. |

### CreateCertExpressInvitationModel

Represents an invitation for a customer to use CertExpress to self-report their own certificates.
This invitation is delivered by your choice of method, or you can present a hyperlink to the user
directly in your connector.  Your customer will be redirected to https://app.certexpress.com/ where
they can follow a step-by-step guide to enter information about their exemption certificates.  The
certificates entered will be recorded and automatically linked to their customer record.

| Property | Type | Description |
|---|---|---|
| `recipient` | string | If the value of `deliveryMethod` is set to `Email`, please specify the email address of the recipient
for the request. |
| `coverLetterTitle` | string | If this invitation is sent via email or download, please specify the cover letter to use when building this
invitation.  For a list of cover letters, please call `ListCoverLetters`. |
| `exposureZones` | array | You may optionally specify a list of exposure zones to request in this CertExpress invitation.  If you list
more than one exposure zone, the customer will be prompted to provide an exemption certificate for each one.
If you do not provide a list of exposure zones, the customer will be prompted to select an exposure zone.
            
For a list of available exposure zones, please call `ListCertificateExposureZones`. |
| `exemptReasons` | array | You may optionally specify a list of exemption reasons to pre-populate in this CertExpress invitation.
If you list exemption reasons, the customer will have part of their form already filled in when they visit
the CertExpress website.
            
For a list of available exemption reasons, please call `ListCertificateExemptReasons`. |
| `deliveryMethod` | string | Specify the type of invitation.  CertExpress invitations can be delivered via email, web link, or
facsimile.
            
* If you specify `Email`, the invitation will be delivered via email.  Please ask the customer to ensure that
* If you specify `Fax`, the invitation will be sent via fax to the customer's fax number on file.
* If you specify `Download`, the invitation will be prepared as a web link that you can display to the customer. |

### CreateECommerceTokenInputModel

A model used to initialize a new CertCapture eCommerce token.

| Property | Type | Description |
|---|---|---|
| `customerNumber` | string | The customer's number that the token will be issued for. |

### CreateItemImportBatchRequestModel

Represents a create item import batch request model.

| Property | Type | Description |
|---|---|---|
| `name` | string | The user-friendly readable name for this batch |
| `items` | array | List of items to import |

### CreateItemImportBatchResponseModel

Represents a create item import batch response model.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this batch. |
| `options` | string | Any optional flags provided for this batch |
| `name` | string | The user-friendly readable name for this batch. |
| `accountId` | integer | The Account ID number of the account that owns this batch. |
| `companyId` | integer | The Company ID number of the company that owns this batch. |
| `status` | string | This batch's current processing status |
| `startedDate` | string | The date/time when this batch started processing |
| `recordCount` | integer | The number of records in this batch; determined by the server |
| `currentRecord` | integer | The current record being processed |
| `completedDate` | string | The date/time when this batch was completely processed |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `files` | array | The list of files contained in this batch. |

### CreateMultiDocumentModel

A MultiDocument transaction represents a sale or purchase that occurred between more than two companies.
            
A traditional transaction requires exactly two parties: a seller and a buyer.  MultiDocument transactions can
involve a marketplace of vendors, each of which contributes some portion of the final transaction.  Within
a MultiDocument transaction, each individual buyer and seller pair are matched up and converted to a separate
document.  This separation of documents allows each seller to file their taxes separately.

| Property | Type | Description |
|---|---|---|
| `code` | string | The transaction code of the MultiDocument transaction.
            
All individual transactions within this MultiDocument object will have this code as a prefix.
            
If you leave the `code` field blank, a GUID will be assigned. |
| `lines` | array | Lines that will appear on the invoice.
            
For a MultiDocument transaction, each line may represent a different company or reporting location code.  AvaTax
will separate this MultiDocument transaction object into many different transactions, one for each pair of legal
entities, so that each legal entity can file their transactional taxes correctly. |
| `allowAdjust` | boolean | Set this value to true to allow this API call to adjust the MultiDocument model if one already exists.
            
If you omit this field, or if the value is `null`, you will receive an error if you try to create two MultiDocument
objects with the same `code`. |
| `type` | string | Specifies the type of document to create.  A document type ending with `Invoice` is a permanent transaction
that will be recorded in AvaTax.  A document type ending with `Order` is a temporary estimate that will not
be preserved.
            
If you omit this value, the API will assume you want to create a `SalesOrder`. |
| `companyCode` | string | Company Code - Specify the code of the company creating this transaction here.  If you leave this value null,
your account's default company will be used instead. |
| `date` | string | Transaction Date - The date on the invoice, purchase order, etc. AvaTax accepts date values in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
format and stores the date as `yyyy-MM-dd`.
            
By default, this date will be used to calculate the tax rates for the transaction.  If you want to use a
different date to calculate tax rates, please specify a `taxOverride` of type `taxDate`. |
| `salespersonCode` | string | Salesperson Code - The client application salesperson reference code. |
| `customerCode` | string | Customer Code - The client application customer reference code.
Note: This field is case sensitive. To have exemption certificates apply, this value should
be the same as the one passed to create a customer. |
| `customerUsageType` | string | DEPRECATED - Date: 10/16/2017, Version: 17.11, Message: Please use entityUseCode instead.
Customer Usage Type - The client application customer or usage type. |
| `entityUseCode` | string | Entity Use Code - The client application customer or usage type.  For a list of
available usage types, use [ListEntityUseCodes](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListEntityUseCodes/) API. |
| `discount` | number | Discount - The discount amount to apply to the document.  This value will be applied only to lines
that have the `discounted` flag set to true.  If no lines have `discounted` set to true, this discount
cannot be applied. |
| `purchaseOrderNo` | string | Purchase Order Number for this document.
            
This is required for single use exemption certificates to match the order and invoice with the certificate. |
| `exemptionNo` | string | Exemption Number for this document.
            
If you specify an exemption number for this document, this document will be considered exempt, and you
may be asked to provide proof of this exemption certificate in the event that you are asked by an auditor
to verify your exemptions.
Note: This is same as 'exemptNo' in TransactionModel. |
| `addresses` | AddressesModel | Default addresses for all lines in this document.
            
These addresses are the default values that will be used for any lines that do not have their own
address information.  If you specify addresses for a line, then no default addresses will be loaded
for that line. |
| `parameters` | array | Special parameters for this transaction.
            
To get a full list of available parameters, please use the [ListParameters](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListParameters/) endpoint. |
| `userDefinedFields` | array | Custom user fields/flex fields for this transaction. |
| `referenceCode` | string | Customer-provided Reference Code with information about this transaction.
            
This field could be used to reference the original document for a return invoice, or for any other
reference purpose. |
| `reportingLocationCode` | string | Sets the sale location code (Outlet ID) for reporting this document to the tax authority.
            
This value is used by Avalara Managed Returns to group documents together by reporting locations
for tax authorities that require location-based reporting. |
| `commit` | boolean | Causes the document to be committed if true.  This option is only applicable for invoice document
types, not orders. |
| `batchCode` | string | BatchCode for batch operations. |
| `taxOverride` | TaxOverrideModel | Specifies a tax override for the entire document |
| `currencyCode` | string | The three-character ISO 4217 currency code representing the ‘invoice currency’ (the currency the transaction was invoiced in). 
If this is different than the currency the tax liability needs to be reported in, you’ll also need to provide the 
`exchangeRateCurrencyCode` and the `exchangeRate` for conversion to the reporting country. |
| `serviceMode` | string | Specifies whether the tax calculation is handled Local, Remote, or Automatic (default).  This only
applies when using an AvaLocal server. |
| `exchangeRate` | number | The currency exchange rate from the invoice currency (`currencyCode`) to the reporting currency (`exchangeRateCurrencyCode`).
This only needs to be set if the invoice currency and the reporting currency are different. It defaults to 1.0. |
| `exchangeRateEffectiveDate` | string | Effective date of the exchange rate. |
| `exchangeRateCurrencyCode` | string | The three-character ISO 4217 currency code representing the ‘reporting currency’ (the currency the transaction’s tax liability needs to be reported in). 
You can leave this blank if the invoice currency provided in the `currencyCode` field is also the reporting currency. |
| `posLaneCode` | string | Sets the Point of Sale Lane Code sent by the User for this document. |
| `businessIdentificationNo` | string | VAT business identification number for the customer for this transaction.  This number will be used for all lines
in the transaction, except for those lines where you have defined a different business identification number.
            
If you specify a VAT business identification number for the customer in this transaction and you have also set up
a business identification number for your company during company setup, this transaction will be treated as a
business-to-business transaction for VAT purposes and it will be calculated according to VAT tax rules. |
| `isSellerImporterOfRecord` | boolean | Specifies if the transaction should have value-added and cross-border taxes calculated with the seller as the importer of record.
            
Some taxes only apply if the seller is the importer of record for a product.  In cases where companies are working together to
ship products, there may be mutual agreement as to which company is the entity designated as importer of record.  The importer
of record will then be the company designated to pay taxes marked as being obligated to the importer of record.
            
Set this value to `true` to consider your company as the importer of record and collect these taxes.
            
This value may also be set at the Nexus level.  See `NexusModel` for more information. |
| `description` | string | User-supplied description for this transaction. |
| `email` | string | User-supplied email address relevant for this transaction. |
| `debugLevel` | string | If the user wishes to request additional debug information from this transaction, specify a level higher than `normal`. |
| `customerSupplierName` | string | The name of the supplier / exporter / seller.
For sales doctype enter the name of your own company for which you are reporting.
For purchases doctype enter the name of the supplier you have purchased from. |
| `dataSourceId` | integer | The Id of the datasource from which this transaction originated.
This value will be overridden by the system to take the datasource Id from the call header. |
| `deliveryTerms` | string | Delivery Terms (or Incoterms) refer to agreed-upon conditions between a buyer and a seller for the delivery of goods. They are three-letter 
trade terms that describe the practical arrangements for the delivery of goods from sellers to buyers and set out the obligations, costs, and 
risks between the two parties.
The DeliveryTerms field determines who acts as the Importer of Record and who arranges the Transport of the goods when this 
information is not separately sent to AvaTax in the request. When used in conjunction with isSellerImporterOfRecord, this parameter can also 
influence whether AvaTax includes Import Duty and Tax in the transaction totals. If the fields for transport or isSellerImporterOfRecord are 
passed in the request and conflict with the DeliveryTerms, the values provided in the first will take priority over the DeliveryTerms 
parameter. If neither transport nor isSellerImporterOfRecord is passed in the request and DeliveryTerms is passed, AvaTax will determine who 
acts as Importer of Record and who arranges the Transport of the goods based on the specified DeliveryTerms. If none of these fields is 
passed, AvaTax will keep the current behavior and default transport to "Seller" for goods and isSellerImporterOfRecord to "False" (i.e., the 
AvaTax user does not act as Importer of record)."
Finally, this field is also used for reports.

The Delivery Terms that the user can pass are the following:
1. Ex Works (EXW)
2. Free Carrier (FCA)
3. Carrier and Insurance Paid to (CIP)
4. Carriage Paid To (CPT)
5. Delivered at Place (DAP)
6. Delivered at Place Unloaded (DPU)
7. Delivered Duty Paid (DDP)
8. Free Alongside Ship (FAS)
9. Free on Board (FOB)
10. Cost and Freight (CFR)
11. Cost, Insurance and Freight (CIF)

DAP and DDP are two delivery terms that indicate that Import Duty and Tax should be included in the transaction total. |

### CreateNoticeResponsibilityTypeModel

Model to create a new tax notice responsibility type.

| Property | Type | Description |
|---|---|---|
| `description` | string | The description name of this notice responsibility |
| `isActive` | boolean | Defines if the responsibility is active |
| `sortOrder` | integer | The sort order of this responsibility |

### CreateNoticeRootCauseTypeModel

Model to create a new tax notice root cause type.

| Property | Type | Description |
|---|---|---|
| `description` | string | The description name of this notice RootCause |
| `isActive` | boolean | Defines if the RootCause is active |
| `sortOrder` | integer | The sort order of this RootCause |

### CreateOrAdjustTransactionModel

Create or adjust transaction model

| Property | Type | Description |
|---|---|---|
| `adjustmentReason` | string | A reason code indicating why this adjustment was made |
| `adjustmentDescription` | string | If the AdjustmentReason is "Other", specify the reason here.
            
This is required when the AdjustmentReason is 8 (Other). |
| `createTransactionModel` | CreateTransactionModel | The create transaction model to be created or updated.
            
If the transaction does not exist, create transaction.
If the transaction exists, adjust the existing transaction. |

### CreateTransactionBatchRequestModel

Represents a create transaction batch request model.

| Property | Type | Description |
|---|---|---|
| `name` | string | The user-friendly readable name for this batch. |
| `transactions` | array | The list of transactions contained in this batch. |
| `options` | string | Any optional flags provided for this batch |

### CreateTransactionBatchResponseModel

Represents a create transaction batch response model.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this batch. |
| `options` | string | Any optional flags provided for this batch |
| `name` | string | The user-friendly readable name for this batch. |
| `accountId` | integer | The Account ID number of the account that owns this batch. |
| `companyId` | integer | The Company ID number of the company that owns this batch. |
| `status` | string | This batch's current processing status |
| `startedDate` | string | The date/time when this batch started processing |
| `recordCount` | integer | The number of records in this batch; determined by the server |
| `currentRecord` | integer | The current record being processed |
| `completedDate` | string | The date/time when this batch was completely processed |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `files` | array | The list of files contained in this batch. |

### CreateTransactionModel

Create a transaction

| Property | Type | Description |
|---|---|---|
| `code` | string | The internal reference code used by the client application.  This is used for operations such as
Get, Adjust, Settle, and Void.  If you leave the transaction code blank, a GUID will be assigned to each transaction. |
| `lines` | array | A list of line items that will appear on this transaction. |
| `type` | string | Specifies the type of document to create.  A document type ending with `Invoice` is a permanent transaction
that will be recorded in AvaTax.  A document type ending with `Order` is a temporary estimate that will not
be preserved.
            
If you omit this value, the API will assume you want to create a `SalesOrder`. |
| `companyCode` | string | Company Code - Specify the code of the company creating this transaction here.  If you leave this value null,
your account's default company will be used instead. |
| `date` | string | Transaction Date - The date on the invoice, purchase order, etc. AvaTax accepts date values in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
format and stores the date as `yyyy-MM-dd`.
            
By default, this date will be used to calculate the tax rates for the transaction.  If you want to use a
different date to calculate tax rates, please specify a `taxOverride` of type `taxDate`. |
| `salespersonCode` | string | Salesperson Code - The client application salesperson reference code. |
| `customerCode` | string | Customer Code - The client application customer reference code.
Note: This field is case sensitive. To have exemption certificates apply, this value should
be the same as the one passed to create a customer. |
| `customerUsageType` | string | DEPRECATED - Date: 10/16/2017, Version: 17.11, Message: Please use entityUseCode instead.
Customer Usage Type - The client application customer or usage type. |
| `entityUseCode` | string | Entity Use Code - The client application customer or usage type.  For a list of
available usage types, use [ListEntityUseCodes](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListEntityUseCodes/) API. |
| `discount` | number | Discount - The discount amount to apply to the document.  This value will be applied only to lines
that have the `discounted` flag set to true.  If no lines have `discounted` set to true, this discount
cannot be applied. |
| `purchaseOrderNo` | string | Purchase Order Number for this document.
            
This is required for single use exemption certificates to match the order and invoice with the certificate. |
| `exemptionNo` | string | Exemption Number for this document.
            
If you specify an exemption number for this document, this document will be considered exempt, and you
may be asked to provide proof of this exemption certificate in the event that you are asked by an auditor
to verify your exemptions.
Note: This is same as 'exemptNo' in TransactionModel. |
| `addresses` | AddressesModel | Default addresses for all lines in this document.
            
These addresses are the default values that will be used for any lines that do not have their own
address information.  If you specify addresses for a line, then no default addresses will be loaded
for that line. |
| `parameters` | array | Special parameters for this transaction.
            
To get a full list of available parameters, please use the [ListParameters](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListParameters/) endpoint. |
| `userDefinedFields` | array | Custom user fields/flex fields for this transaction. |
| `referenceCode` | string | Customer-provided Reference Code with information about this transaction.
            
This field could be used to reference the original document for a return invoice, or for any other
reference purpose. |
| `reportingLocationCode` | string | Sets the sale location code (Outlet ID) for reporting this document to the tax authority.
            
This value is used by Avalara Managed Returns to group documents together by reporting locations
for tax authorities that require location-based reporting. |
| `commit` | boolean | Causes the document to be committed if true.  This option is only applicable for invoice document
types, not orders. |
| `batchCode` | string | BatchCode for batch operations. |
| `taxOverride` | TaxOverrideModel | Specifies a tax override for the entire document |
| `currencyCode` | string | The three-character ISO 4217 currency code representing the ‘invoice currency’ (the currency the transaction was invoiced in). 
If this is different than the currency the tax liability needs to be reported in, you’ll also need to provide the 
`exchangeRateCurrencyCode` and the `exchangeRate` for conversion to the reporting country. |
| `serviceMode` | string | Specifies whether the tax calculation is handled Local, Remote, or Automatic (default).  This only
applies when using an AvaLocal server. |
| `exchangeRate` | number | The currency exchange rate from the invoice currency (`currencyCode`) to the reporting currency (`exchangeRateCurrencyCode`).
This only needs to be set if the invoice currency and the reporting currency are different. It defaults to 1.0. |
| `exchangeRateEffectiveDate` | string | Effective date of the exchange rate. |
| `exchangeRateCurrencyCode` | string | The three-character ISO 4217 currency code representing the ‘reporting currency’ (the currency the transaction’s tax liability needs to be reported in). 
You can leave this blank if the invoice currency provided in the `currencyCode` field is also the reporting currency. |
| `posLaneCode` | string | Sets the Point of Sale Lane Code sent by the User for this document. |
| `businessIdentificationNo` | string | VAT business identification number for the customer for this transaction.  This number will be used for all lines
in the transaction, except for those lines where you have defined a different business identification number.
            
If you specify a VAT business identification number for the customer in this transaction and you have also set up
a business identification number for your company during company setup, this transaction will be treated as a
business-to-business transaction for VAT purposes and it will be calculated according to VAT tax rules. |
| `isSellerImporterOfRecord` | boolean | Specifies if the transaction should have value-added and cross-border taxes calculated with the seller as the importer of record.
            
Some taxes only apply if the seller is the importer of record for a product.  In cases where companies are working together to
ship products, there may be mutual agreement as to which company is the entity designated as importer of record.  The importer
of record will then be the company designated to pay taxes marked as being obligated to the importer of record.
            
Set this value to `true` to consider your company as the importer of record and collect these taxes.
            
This value may also be set at the Nexus level.  See `NexusModel` for more information. |
| `description` | string | User-supplied description for this transaction. |
| `email` | string | User-supplied email address relevant for this transaction. |
| `debugLevel` | string | If the user wishes to request additional debug information from this transaction, specify a level higher than `normal`. |
| `customerSupplierName` | string | The name of the supplier / exporter / seller.
For sales doctype enter the name of your own company for which you are reporting.
For purchases doctype enter the name of the supplier you have purchased from. |
| `dataSourceId` | integer | The Id of the datasource from which this transaction originated.
This value will be overridden by the system to take the datasource Id from the call header. |
| `deliveryTerms` | string | Delivery Terms (or Incoterms) refer to agreed-upon conditions between a buyer and a seller for the delivery of goods. They are three-letter 
trade terms that describe the practical arrangements for the delivery of goods from sellers to buyers and set out the obligations, costs, and 
risks between the two parties.
The DeliveryTerms field determines who acts as the Importer of Record and who arranges the Transport of the goods when this 
information is not separately sent to AvaTax in the request. When used in conjunction with isSellerImporterOfRecord, this parameter can also 
influence whether AvaTax includes Import Duty and Tax in the transaction totals. If the fields for transport or isSellerImporterOfRecord are 
passed in the request and conflict with the DeliveryTerms, the values provided in the first will take priority over the DeliveryTerms 
parameter. If neither transport nor isSellerImporterOfRecord is passed in the request and DeliveryTerms is passed, AvaTax will determine who 
acts as Importer of Record and who arranges the Transport of the goods based on the specified DeliveryTerms. If none of these fields is 
passed, AvaTax will keep the current behavior and default transport to "Seller" for goods and isSellerImporterOfRecord to "False" (i.e., the 
AvaTax user does not act as Importer of record)."
Finally, this field is also used for reports.

The Delivery Terms that the user can pass are the following:
1. Ex Works (EXW)
2. Free Carrier (FCA)
3. Carrier and Insurance Paid to (CIP)
4. Carriage Paid To (CPT)
5. Delivered at Place (DAP)
6. Delivered at Place Unloaded (DPU)
7. Delivered Duty Paid (DDP)
8. Free Alongside Ship (FAS)
9. Free on Board (FOB)
10. Cost and Freight (CFR)
11. Cost, Insurance and Freight (CIF)

DAP and DDP are two delivery terms that indicate that Import Duty and Tax should be included in the transaction total. |

### CreditTransactionDetailLines

Credit Transaction Detail Lines

| Property | Type | Description |
|---|---|---|
| `reportingDate` | string | ReportingDate |
| `lineNo` | string | LineNo |
| `lineAmount` | number | LineAmount |
| `exemptAmount` | number | ExemptAmount |
| `taxableAmount` | number | TaxableAmount |
| `taxAmount` | number | TaxAmount |

### CreditTransactionDetails

Credit Transaction Details

| Property | Type | Description |
|---|---|---|
| `docCode` | string | DocCode |
| `docDate` | string | DocDate |
| `totalExempt` | number | TotalExempt |
| `totalTaxable` | number | TotalTaxable |
| `totalTax` | number | TotalTax |
| `lines` | array | Lines |

### CurrencyModel

Represents an ISO 4217 currency code used for designating the currency of a transaction.

| Property | Type | Description |
|---|---|---|
| `code` | string | The ISO 4217 currency code for this currency. |
| `description` | string | A friendly human-readable name representing this currency. |
| `decimalDigits` | integer | The number of decimal digits to use when formatting a currency value for display. |

### CurrencyModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CustomFieldModel

A custom field provides extra information about a customer or certificate.
            
Custom fields are provided to permit you to store additional information about an exemption certificate or customer.  They are available to
support additional use cases beyond that supported directly by Avalara's exemption certificate software.
            
For more information about custom fields, see the [Avalara Help Center article about custom fields](https://help.avalara.com/0021_Avalara_CertCapture/All_About_CertCapture/Edit_or_Remove_Details_about_Customers).

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID of this custom field. |
| `name` | string | The name of the custom field. |
| `type` | string | The type of custom field. |
| `possibleValues` | string | The possible values the custom field can have. |
| `usesDataEntry` | boolean | This value is `true` if the custom field uses a data entry. |
| `requiredInDataEntry` | boolean | Shows whether the custom field is required in data entry. |
| `value` | string | The value of the custom field. |

### CustomRuleSummaryModel

Model which can provide a summary of any custom rule variety.
Custom rules is the umbrella term for traditional Tax Rules,
legacy Advanced Rules (transaction rules), and the newest Dynamic Rules.

| Property | Type | Description |
|---|---|---|
| `id` | string | The unique identifier for this custom rule. |
| `companyId` | integer | The company ID that the custom rule belongs to. |
| `name` | string | The name of the custom rule. |
| `status` | string | The status of the custom rule. |
| `type` | string | The type of rule entity which this custom rule is. |
| `subtype` | string | The subtypes (categories or actions) of the custom rule. |
| `subtypeDescription` | array | The description of the subtypes of the custom rule. |
| `country` | array | Name or ISO 3166 codes identifying the region where this rule will apply. |
| `region` | array | Name or ISO 3166 code identifying the country where this rule will apply. |
| `jurisdictionTypeId` | string | The type(s) of the jurisdiction(s) to which this rule applies. |
| `jurisName` | array | The name(s) of the jurisdiction(s) to which this rule applies. |
| `jurisCode` | array | The code(s) of the jurisdiction(s) to which this rule applies. |
| `taxCode` | array | For rules that apply to a specific tax code only, this specifies which tax code is affected by this rule. |
| `taxType` | array | Indicates the codes of the tax type that this rule applies to. |
| `taxSubType` | array | Indicates the codes of the tax sub types that this rule applies to. |
| `rateTypeCode` | array | Indicates the rate types that this rule applies to. |
| `entityUseCode` | array | The entity use code to which this rule applies. |
| `companyLocationCode` | array | The company location codes to which this rule is associated with. |
| `order` | integer | The index order of the rule execution (only applies to advanced rules). |
| `effectiveDate` | string | The first date at which this rule applies. If null, this rule will apply to all dates prior to the end date. |
| `endDate` | string | The last date for which this rule applies. If null, this rule will apply to all dates after the effective date. |
| `modifiedDate` | string | The date the rule was last modified. |
| `createdDate` | string | The date the rule was created. |
| `ruleEntity` | object | The rule entity data, which can be either a TaxRuleModel, a DynamicRuleModel, or an AdvancedRuleExecutionModel. |

### CustomRuleSummaryModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CustomTaxAdditionalCriteriaInputModel

Optional additional criteria for when a custom tax should apply. This model is
structurally identical to `DynamicRuleDefinitionInputModel` but is kept as a distinct
type so that the custom tax surface can evolve independently of the underlying dynamic
rule definition. The nodes defined here are prepended to the main custom tax node when
the custom tax is translated into a dynamic rule at persistence time.

This is the input variant used when creating or updating a custom tax.

| Property | Type | Description |
|---|---|---|
| `variables` | array | Define fixed components with rule-wide scope. Variables are computed once and can be
referenced by nodes in the execution graph via tokens such as `{{Variables.MyVar}}`. |
| `nodes` | array | Define components which make up the execution graph. Each node represents a condition
or action that runs as part of evaluating the custom tax; nodes are linked together via
the `next` property on each component. |

### CustomTaxAdditionalCriteriaOutputModel

Optional additional criteria for when a custom tax should apply. This model is
structurally identical to `DynamicRuleDefinitionOutputModel` but is kept as a
distinct type so that the custom tax surface can evolve independently of the underlying
dynamic rule definition. The nodes defined here are prepended to the main custom tax node
when the custom tax is translated into a dynamic rule at persistence time.

This is the output variant returned by Custom Tax read endpoints.

| Property | Type | Description |
|---|---|---|
| `variables` | array | Define fixed components with rule-wide scope. Variables are computed once and can be
referenced by nodes in the execution graph via tokens such as `{{Variables.MyVar}}`. |
| `nodes` | array | Define components which make up the execution graph. Each node represents a condition
or action that runs as part of evaluating the custom tax; nodes are linked together via
the `next` property on each component. |

### CustomTaxExemptionsInputModel

Describes a single exemption override row for a custom tax.

This is the input variant used when creating or updating a custom tax. Each exemption row
defines whether a matching transaction line is exempt from the custom tax, optionally
scoped by jurisdiction, rate type, tax code, tariff code, or entity use code.

| Property | Type | Description |
|---|---|---|
| `exempt` | boolean | Whether this tax treatment sets an item as exempt or not exempt. When true, matching
lines are exempt from this custom tax; when false, an existing exemption is explicitly
overridden so the custom tax still applies. |
| `jurisdictionTypeId` | string | Optionally set the type of jurisdiction this exemption applies to, e.g. State or City.
When combined with `jurisCode`, the exemption is scoped to the matching
jurisdiction only. |
| `jurisCode` | string | Optionally set the specific jurisdiction this exemption applies to. This should be one
of the jurisdictions defined on the parent custom tax. |
| `rateTypeCode` | string | Optionally set a specific rate type this exemption applies to. |
| `taxCode` | string | Optionally set a specific tax code this exemption applies to. Tax codes identify
product or service categories for taxation. |
| `tariffCode` | string | Optionally set a specific tariff code this exemption applies to. Tariff codes are used
for cross-border and customs taxation. |
| `entityUseCode` | string | Optionally set a specific entity use code this exemption applies to. Entity use codes
describe customer usage such as resale, manufacturing, or government use. |
| `effectiveDate` | string | Optionally set a different effective date for this exemption. This date cannot be
earlier than the base effective date set for the entire custom tax. |
| `endDate` | string | Optionally set a different expiration date for this exemption. This date cannot be
later than the base expiration date set for the entire custom tax. |
| `isAllJuris` | boolean | Whether this exemption applies to all child jurisdictions or only the specified one.
When true, the exemption is applied to every jurisdiction beneath the one identified by
`jurisCode`; when false or null, only the exact jurisdiction is matched. |

### CustomTaxExemptionsOutputModel

Describes a single exemption override row for a custom tax.

This is the output variant returned by Custom Tax read endpoints. Each exemption row
defines whether a matching transaction line is exempt from the custom tax, optionally
scoped by jurisdiction, rate type, tax code, tariff code, or entity use code.

| Property | Type | Description |
|---|---|---|
| `exempt` | boolean | Whether this tax treatment sets an item as exempt or not exempt. When true, matching
lines are exempt from this custom tax; when false, an existing exemption is explicitly
overridden so the custom tax still applies. |
| `jurisdictionTypeId` | string | Optionally set the type of jurisdiction this exemption applies to, e.g. State or City.
When combined with `jurisCode`, the exemption is scoped to the matching
jurisdiction only. |
| `jurisCode` | string | Optionally set the specific jurisdiction this exemption applies to. This should be one
of the jurisdictions defined on the parent custom tax. |
| `rateTypeCode` | string | Optionally set a specific rate type this exemption applies to. |
| `taxCode` | string | Optionally set a specific tax code this exemption applies to. Tax codes identify
product or service categories for taxation. |
| `tariffCode` | string | Optionally set a specific tariff code this exemption applies to. Tariff codes are used
for cross-border and customs taxation. |
| `entityUseCode` | string | Optionally set a specific entity use code this exemption applies to. Entity use codes
describe customer usage such as resale, manufacturing, or government use. |
| `effectiveDate` | string | Optionally set a different effective date for this exemption. This date cannot be
earlier than the base effective date set for the entire custom tax. |
| `endDate` | string | Optionally set a different expiration date for this exemption. This date cannot be
later than the base expiration date set for the entire custom tax. |
| `isAllJuris` | boolean | Whether this exemption applies to all child jurisdictions or only the specified one.
When true, the exemption is applied to every jurisdiction beneath the one identified by
`jurisCode`; when false or null, only the exact jurisdiction is matched. |

### CustomTaxInputModel

A Custom Tax represents a tax-rate / taxability / exemption package owned by a single
company. It is a type of Custom Rule that exposes a focused, content-oriented shape for
callers who want to manage tax overrides without constructing a Custom Rule by hand.

Use of the Custom Tax endpoints requires the `AvaCustomContent` subscription.

This is the input variant used when creating or updating a Custom Tax via the
`CreateCustomTax`, `UpdateCustomTax`, or `ValidateCustomTax` endpoints. Any
fields that are populated only by the system (such as `id`, `companyId`, and the
created/modified audit fields) are excluded from this model and live on
`CustomTaxOutputModel` instead.

| Property | Type | Description |
|---|---|---|
| `name` | string | The name of the custom tax. Displayed in UI surfaces and used to identify the custom
tax when reviewing rules for a company. |
| `description` | string | Optional description of the custom tax. Intended for use by compliance and support
teams to document the intent or source of the rule. |
| `country` | string | The country in which the custom tax applies. This is typically an ISO 3166-1 alpha-2
country code such as `US` or `CA`. |
| `region` | string | The region or state in which the custom tax applies. The expected value depends on
`country`; for the United States this is typically the two-letter state
abbreviation such as `WA`. |
| `taxTypeCode` | string | The tax type for this custom tax. |
| `taxSubType` | string | The tax subtype for this custom tax. Subtypes typically mirror the tax type but may be
customized to describe more granular categories. |
| `rateTypeCodes` | array | The rate types associated with this custom tax. |
| `unitOfBasis` | string | The default unit of basis used to calculate the value of this custom tax. Determines
how the rate on each rate row is interpreted — for example, `PerCurrencyUnit` for
a percentage or `PerUnit` for a flat amount per unit. |
| `effectiveDate` | string | The start date when the tax is valid. Transactions with a document date earlier than
this date will not be affected by this custom tax. |
| `endDate` | string | The end date when the tax is valid. Transactions with a document date later than this
date will not be affected by this custom tax. |
| `enabled` | boolean | Whether the custom tax is enabled. When false, the tax is persisted but is not
evaluated during tax calculation. |
| `continueOnError` | boolean | Whether to continue execution if there is an error evaluating the rule criteria. When
true, an error in this custom tax does not stop evaluation of other custom taxes or
custom rules on the transaction. |
| `jurisdictions` | array | A list of jurisdictions in which this custom tax applies. At least one jurisdiction is
required; each jurisdiction identifies a region of applicability for the tax. |
| `conditions` | CustomTaxAdditionalCriteriaInputModel | Optional additional criteria for when this custom tax should apply. When provided, the
custom tax is only evaluated on transactions that satisfy these conditions; refer to
the additional-criteria model for the supported component shape. |
| `taxability` | array | Define the taxability treatment and rate type assignment for this custom tax. Taxability
rows express default and override behaviour for items the tax applies to. |
| `rates` | array | Define the tax rates associated with this custom tax. Each rate row specifies the
numeric rate and the criteria under which that rate applies. |
| `exemptions` | array | Optional list of when items are exempt from this custom tax. Each exemption row defines
criteria that mark matching transaction lines as exempt (or explicitly not exempt). |

### CustomTaxJurisdictionInputModel

Describes a single jurisdiction in which a custom tax is applicable.

This is the input variant used when creating or updating a custom tax. Each jurisdiction
identifies a region of applicability for the parent custom tax.

| Property | Type | Description |
|---|---|---|
| `jurisdictionTypeId` | string | The type of jurisdiction this is, e.g. State or City. |
| `jurisCode` | string | The code identifying this jurisdiction, in combination with the `jurisdictionTypeId`. |
| `effectiveDate` | string | Optionally set a different effective date for this jurisdiction. This date cannot be
earlier than the base effective date set for the entire custom tax. When omitted, the
jurisdiction inherits the custom tax's effective date. |
| `endDate` | string | Optionally set a different expiration date for this jurisdiction. This date cannot be
later than the base expiration date set for the entire custom tax. When omitted, the
jurisdiction inherits the custom tax's end date. |

### CustomTaxJurisdictionOutputModel

Describes a single jurisdiction in which a custom tax is applicable.

This is the output variant returned by Custom Tax read endpoints. Each jurisdiction
identifies a region of applicability for the parent custom tax.

| Property | Type | Description |
|---|---|---|
| `jurisdictionTypeId` | string | The type of jurisdiction this is, e.g. State or City. |
| `jurisCode` | string | The code identifying this jurisdiction, in combination with the `jurisdictionTypeId`. |
| `effectiveDate` | string | Optionally set a different effective date for this jurisdiction. This date cannot be
earlier than the base effective date set for the entire custom tax. When omitted, the
jurisdiction inherits the custom tax's effective date. |
| `endDate` | string | Optionally set a different expiration date for this jurisdiction. This date cannot be
later than the base expiration date set for the entire custom tax. When omitted, the
jurisdiction inherits the custom tax's end date. |

### CustomTaxOutputModel

A Custom Tax represents a tax-rate / taxability / exemption package owned by a single
company. It is a type of Custom Rule that exposes a focused, content-oriented shape for
callers who want to manage tax overrides without constructing a Custom Rule by hand.

Use of the Custom Tax endpoints requires the `AvaCustomContent` subscription.

This is the output variant returned by `GetCustomTax`, `ListCustomTaxes`, and
write endpoints that echo the persisted record. It includes system-populated fields such
as `id`, `companyId`, and the created/modified audit fields which are not
accepted on input.

| Property | Type | Description |
|---|---|---|
| `id` | integer | Unique identifier for this custom tax. Stable for the lifetime of the record and
shared with the broader Custom Rule namespace, so a Custom Tax id is never reused by
another Custom Rule on the same company. |
| `companyId` | integer | The company ID of the company that owns this custom tax. Returned on output so clients
can correlate the record with its parent company. |
| `name` | string | The name of the custom tax. Displayed in UI surfaces and used to identify the custom
tax when reviewing rules for a company. |
| `description` | string | Optional description of the custom tax. Intended for use by compliance and support
teams to document the intent or source of the rule. |
| `country` | string | The country in which the custom tax applies. This is typically an ISO 3166-1 alpha-2
country code such as `US` or `CA`. |
| `region` | string | The region or state in which the custom tax applies. The expected value depends on
`country`; for the United States this is typically the two-letter state
abbreviation such as `WA`. |
| `taxTypeCode` | string | The tax type for this custom tax. |
| `taxSubType` | string | The tax subtype for this custom tax. Subtypes typically mirror the tax type but may be
customized to describe more granular categories. |
| `rateTypeCodes` | array | The rate types associated with this custom tax. |
| `unitOfBasis` | string | The default unit of basis used to calculate the value of this custom tax. Determines
how the rate on each rate row is interpreted — for example, `PerCurrencyUnit` for
a percentage or `PerUnit` for a flat amount per unit. |
| `effectiveDate` | string | The start date when the tax is valid. Transactions with a document date earlier than
this date will not be affected by this custom tax. |
| `endDate` | string | The end date when the tax is valid. Transactions with a document date later than this
date will not be affected by this custom tax. |
| `enabled` | boolean | Whether the custom tax is enabled. When false, the tax is persisted but is not
evaluated during tax calculation. |
| `continueOnError` | boolean | Whether to continue execution if there is an error evaluating the rule criteria. When
true, an error in this custom tax does not stop evaluation of other custom taxes or
custom rules on the transaction. |
| `jurisdictions` | array | A list of jurisdictions in which this custom tax applies. At least one jurisdiction is
required; each jurisdiction identifies a region of applicability for the tax. |
| `conditions` | CustomTaxAdditionalCriteriaOutputModel | Optional additional criteria for when this custom tax should apply. When provided, the
custom tax is only evaluated on transactions that satisfy these conditions; refer to
the additional-criteria model for the supported component shape. |
| `taxability` | array | Define the taxability treatment and rate type assignment for this custom tax. Taxability
rows express default and override behaviour for items the tax applies to. |
| `rates` | array | Define the tax rates associated with this custom tax. Each rate row specifies the
numeric rate and the criteria under which that rate applies. |
| `exemptions` | array | Optional list of when items are exempt from this custom tax. Each exemption row defines
criteria that mark matching transaction lines as exempt (or explicitly not exempt). |
| `createdDate` | string | The date when the custom tax was created. Populated automatically when the record is
persisted. |
| `createdUserId` | integer | The user who created the custom tax. Populated automatically from the calling user's
identity at creation time. |
| `modifiedDate` | string | The date when the custom tax was last modified. Populated automatically whenever the
record is updated. |
| `modifiedUserId` | integer | The user who last modified the custom tax. Populated automatically from the calling
user's identity when the record is updated. |

### CustomTaxOutputModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CustomTaxRateInputModel

Describes a single rate override row for a custom tax.

This is the input variant used when creating or updating a custom tax. Each rate row
specifies a rate and a set of optional criteria (jurisdiction, tax code, tariff code,
entity use code, etc.) which determine when the rate applies.

| Property | Type | Description |
|---|---|---|
| `rate` | number | The rate which is assigned based on the criteria in this model. The value is interpreted
according to the custom tax's `unitOfBasis` (for example, a value of `0.05`
with `PerCurrencyUnit` means 5%). |
| `cap` | number | Optionally specify the maximum taxable amount. Any portion of the base above this cap
is not taxed at this rate. |
| `threshold` | number | Optionally specify the per-unit threshold that must be met to apply this rate. If the
line amount is below the threshold this rate does not apply. |
| `jurisdictionTypeId` | string | Optionally set the type of jurisdiction this rate applies to, e.g. State or City. When
specified together with `jurisCode`, this rate only applies to transactions sourced
to matching jurisdictions. |
| `jurisCode` | string | Optionally set the specific jurisdiction this rate applies to. This should be one of
the jurisdictions defined on the parent custom tax. |
| `rateTypeCode` | string | The rate type for which this rate applies. |
| `taxCode` | string | Optionally set a specific tax code this rate applies to. Tax codes identify product or
service categories for taxation. |
| `tariffCode` | string | Optionally set a specific tariff code this rate applies to. Tariff codes are used for
cross-border and customs taxation. |
| `entityUseCode` | string | Optionally set a specific entity use code this rate applies to. Entity use codes
describe customer usage such as resale, manufacturing, or government use. |
| `effectiveDate` | string | Optionally set a different effective date for this rate. This date cannot be earlier
than the base effective date set for the entire custom tax. |
| `endDate` | string | Optionally set a different expiration date for this rate. This date cannot be later
than the base expiration date set for the entire custom tax. |
| `currencyCode` | string | Optionally set the currency code to use for this rate. When omitted, the rate uses the
transaction's currency. |
| `unitOfBasis` | string | Optionally override the unit of basis for this specific rate. If not specified, the
rate uses the custom tax default unit of basis. |
| `isAllJuris` | boolean | Whether this rate applies to all child jurisdictions or only the specified one. When
true, the rate is applied to every jurisdiction beneath the one identified by
`jurisCode`; when false or null, only the exact jurisdiction is matched. |
| `options` | array | Optional advanced settings for this rate. The allowed values depend on the tax type
and are documented separately. |

### CustomTaxRateOutputModel

Describes a single rate override row for a custom tax.

This is the output variant returned by Custom Tax read endpoints. Each rate row specifies
a rate and a set of optional criteria (jurisdiction, tax code, tariff code, entity use
code, etc.) which determine when the rate applies.

| Property | Type | Description |
|---|---|---|
| `rate` | number | The rate which is assigned based on the criteria in this model. The value is interpreted
according to the custom tax's `unitOfBasis` (for example, a value of `0.05`
with `PerCurrencyUnit` means 5%). |
| `cap` | number | Optionally specify the maximum taxable amount. Any portion of the base above this cap
is not taxed at this rate. |
| `threshold` | number | Optionally specify the per-unit threshold that must be met to apply this rate. If the
line amount is below the threshold this rate does not apply. |
| `jurisdictionTypeId` | string | Optionally set the type of jurisdiction this rate applies to, e.g. State or City. When
specified together with `jurisCode`, this rate only applies to transactions sourced
to matching jurisdictions. |
| `jurisCode` | string | Optionally set the specific jurisdiction this rate applies to. This should be one of
the jurisdictions defined on the parent custom tax. |
| `rateTypeCode` | string | The rate type for which this rate applies. |
| `taxCode` | string | Optionally set a specific tax code this rate applies to. Tax codes identify product or
service categories for taxation. |
| `tariffCode` | string | Optionally set a specific tariff code this rate applies to. Tariff codes are used for
cross-border and customs taxation. |
| `entityUseCode` | string | Optionally set a specific entity use code this rate applies to. Entity use codes
describe customer usage such as resale, manufacturing, or government use. |
| `effectiveDate` | string | Optionally set a different effective date for this rate. This date cannot be earlier
than the base effective date set for the entire custom tax. |
| `endDate` | string | Optionally set a different expiration date for this rate. This date cannot be later
than the base expiration date set for the entire custom tax. |
| `currencyCode` | string | Optionally set the currency code to use for this rate. When omitted, the rate uses the
transaction's currency. |
| `unitOfBasis` | string | Optionally override the unit of basis for this specific rate. If not specified, the
rate uses the custom tax default unit of basis. |
| `isAllJuris` | boolean | Whether this rate applies to all child jurisdictions or only the specified one. When
true, the rate is applied to every jurisdiction beneath the one identified by
`jurisCode`; when false or null, only the exact jurisdiction is matched. |
| `options` | array | Optional advanced settings for this rate. The allowed values depend on the tax type
and are documented separately. |

### CustomTaxTaxabilityInputModel

Describes a single taxability override row for a custom tax.

This is the input variant used when creating or updating a custom tax. Each taxability
row defines whether an item is taxable or not, optionally scoped to a specific
jurisdiction, tax code, tariff code, or entity use code.

| Property | Type | Description |
|---|---|---|
| `taxable` | boolean | Whether this tax treatment sets an item as taxable or not taxable. When true, items
matching the other criteria are taxable under this custom tax; when false, they are
explicitly marked as not taxable. |
| `cap` | number | Optionally specify the maximum taxable amount. Any portion of the base above this cap
is not taxed under this taxability treatment. |
| `threshold` | number | Optionally specify the per-unit threshold that must be met to apply this tax treatment.
If the line amount is below the threshold, this treatment does not apply. |
| `jurisdictionTypeId` | string | Optionally set the type of jurisdiction this tax treatment applies to, e.g. State or
City. When combined with `jurisCode`, the taxability is scoped to the matching
jurisdiction only. |
| `jurisCode` | string | Optionally set the specific jurisdiction this tax treatment applies to. This should be
one of the jurisdictions defined on the parent custom tax. |
| `rateTypeCode` | string | The rate type to assign as part of this tax treatment. |
| `taxCode` | string | Optionally set a specific tax code this tax treatment applies to. Tax codes identify
product or service categories for taxation. |
| `tariffCode` | string | Optionally set a specific tariff code this tax treatment applies to. Tariff codes are
used for cross-border and customs taxation. |
| `entityUseCode` | string | Optionally set a specific entity use code this tax treatment applies to. Entity use
codes describe customer usage such as resale, manufacturing, or government use. |
| `effectiveDate` | string | Optionally set a different effective date for this tax treatment. This date cannot be
earlier than the base effective date set for the entire custom tax. |
| `endDate` | string | Optionally set a different expiration date for this tax treatment. This date cannot be
later than the base expiration date set for the entire custom tax. |
| `currencyCode` | string | Optionally set the currency code to use for this tax treatment. |
| `isAllJuris` | boolean | Whether this tax treatment applies to all child jurisdictions or only the specified one.
When true, the treatment is applied to every jurisdiction beneath the one identified by
`jurisCode`; when false or null, only the exact jurisdiction is matched. |
| `sourcing` | string | Optionally override the sourcing to Origin, Destination, or blank (default). Sourcing
controls which location of the transaction (origin or destination) is used to evaluate
this tax treatment. |
| `options` | array | Optional advanced settings for this tax treatment. The allowed values depend on the
tax type and are documented separately. |

### CustomTaxTaxabilityOutputModel

Describes a single taxability override row for a custom tax.

This is the output variant returned by Custom Tax read endpoints. Each taxability row
defines whether an item is taxable or not, optionally scoped to a specific jurisdiction,
tax code, tariff code, or entity use code.

| Property | Type | Description |
|---|---|---|
| `taxable` | boolean | Whether this tax treatment sets an item as taxable or not taxable. When true, items
matching the other criteria are taxable under this custom tax; when false, they are
explicitly marked as not taxable. |
| `cap` | number | Optionally specify the maximum taxable amount. Any portion of the base above this cap
is not taxed under this taxability treatment. |
| `threshold` | number | Optionally specify the per-unit threshold that must be met to apply this tax treatment.
If the line amount is below the threshold, this treatment does not apply. |
| `jurisdictionTypeId` | string | Optionally set the type of jurisdiction this tax treatment applies to, e.g. State or
City. When combined with `jurisCode`, the taxability is scoped to the matching
jurisdiction only. |
| `jurisCode` | string | Optionally set the specific jurisdiction this tax treatment applies to. This should be
one of the jurisdictions defined on the parent custom tax. |
| `rateTypeCode` | string | The rate type to assign as part of this tax treatment. |
| `taxCode` | string | Optionally set a specific tax code this tax treatment applies to. Tax codes identify
product or service categories for taxation. |
| `tariffCode` | string | Optionally set a specific tariff code this tax treatment applies to. Tariff codes are
used for cross-border and customs taxation. |
| `entityUseCode` | string | Optionally set a specific entity use code this tax treatment applies to. Entity use
codes describe customer usage such as resale, manufacturing, or government use. |
| `effectiveDate` | string | Optionally set a different effective date for this tax treatment. This date cannot be
earlier than the base effective date set for the entire custom tax. |
| `endDate` | string | Optionally set a different expiration date for this tax treatment. This date cannot be
later than the base expiration date set for the entire custom tax. |
| `currencyCode` | string | Optionally set the currency code to use for this tax treatment. |
| `isAllJuris` | boolean | Whether this tax treatment applies to all child jurisdictions or only the specified one.
When true, the treatment is applied to every jurisdiction beneath the one identified by
`jurisCode`; when false or null, only the exact jurisdiction is matched. |
| `sourcing` | string | Optionally override the sourcing to Origin, Destination, or blank (default). Sourcing
controls which location of the transaction (origin or destination) is used to evaluate
this tax treatment. |
| `options` | array | Optional advanced settings for this tax treatment. The allowed values depend on the
tax type and are documented separately. |

### CustomerAttributeModel

A Customer's linked attribute denoting what features applied to the customer. A customer can
be linked to multiple customer attributes and vice versa.

| Property | Type | Description |
|---|---|---|
| `id` | integer | A unique ID number representing this attribute. |
| `name` | string | A friendly readable name for this attribute. |
| `description` | string | A full help text description of the attribute. |
| `isSystemCode` | boolean | This value is true if this is a system-defined attribute.  System-defined attributes
cannot be modified or deleted on the CertCapture website. |
| `isNonDeliver` | boolean | A flag denotes that future exemption certificate request won't be mailed to the customer |
| `isChangeable` | boolean | A flag denotes that this attribute can't be removed/added to a customer record |

### CustomerAttributeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CustomerModel

Represents a customer to whom you sell products and/or services.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this customer. |
| `companyId` | integer | The unique ID number of the AvaTax company that recorded this customer. |
| `customerCode` | string | The unique code identifying this customer.  Must be unique within your company.
            
This code should be used in the `customerCode` field of any call that creates or adjusts a transaction
in order to ensure that all exemptions that apply to this customer are correctly considered.
            
Note: This field is case sensitive. |
| `alternateId` | string | A customer-configurable alternate ID number for this customer.  You may set this value to match any
other system that would like to reference this customer record. |
| `name` | string | A friendly name identifying this customer. |
| `attnName` | string | Indicates the "Attn:" component of the address for this customer, if this customer requires mailings to be shipped
to the attention of a specific person or department name. |
| `line1` | string | First line of the street address of this customer. |
| `line2` | string | Second line of the street address of this customer. |
| `city` | string | City component of the street address of this customer. |
| `postalCode` | string | Postal Code / Zip Code component of the address of this customer. |
| `phoneNumber` | string | The main phone number for this customer. |
| `faxNumber` | string | The fax phone number for this customer, if any. |
| `emailAddress` | string | The main email address for this customer. |
| `contactName` | string | The name of the main contact person for this customer. |
| `lastTransaction` | string | Date when this customer last executed a transaction. |
| `createdDate` | string | The date when this record was created. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `region` | string | ISO 3166 code identifying the region within the country.
Two and three character ISO 3166 region codes.
This is a required field if the country is US or CA. For other countries, this is an optional field.
For a full list of all supported codes, please see the Definitions API `ListRegions`. |
| `isBill` | boolean | True if this customer record is specifically used for bill-to purposes. |
| `isShip` | boolean | True if this customer record is specifically used for ship-to purposes. |
| `taxpayerIdNumber` | string | For customers in the United States, this field is the federal taxpayer ID number.  For businesses, this is
a Federal Employer Identification Number.  For individuals, this will be a Social Security Number. |
| `certificates` | array | A list of exemption certficates that apply to this customer.  You can fetch this data by specifying
`$include=certificates` when calling a customer fetch API. |
| `customFields` | array | A list of custom fields defined on this customer.
            
For more information about custom fields, see the [Avalara Help Center article about custom fields](https://help.avalara.com/0021_Avalara_CertCapture/All_About_CertCapture/Edit_or_Remove_Details_about_Customers). |
| `exposureZones` | array | A list of exposure zones where you do business with this customer.
            
To keep track of certificates that are needed for each customer, set this value to a list of all exposure zones where you
sell products to this customer.  You can find a list of exposure zones by calling `ListExposureZones`.
            
This field is often called "Ship-To States" or "Ship-To Zones", since it generally refers to locations where you ship products
when this customer makes a purchase.
            
This field is useful for audit purposes since it helps you ensure you have the necessary certificates for each customer. |
| `billTos` | array | A list of bill-to customer records that are connected to this ship-to customer.
            
Customer records represent businesses or individuals who can provide exemption certificates.  Some customers
may have certificates that are linked to their shipping address or their billing address.  To group these
customer records together, you may link multiple bill-to and ship-to addresses together to represent a single
entity that has multiple different addresses of different kinds. |
| `shipTos` | array | A list of ship-to customer records that are connected to this bill-to customer.
            
Customer records represent businesses or individuals who can provide exemption certificates.  Some customers
may have certificates that are linked to their shipping address or their billing address.  To group these
customer records together, you may link multiple bill-to and ship-to addresses together to represent a single
entity that has multiple different addresses of different kinds. |
| `attributes` | array | A list of attributes that apply to this customer.
            
You can fetch this data by specifying `$include=attributes` when calling a customer fetch API. |
| `activeCertificates` | array | A list of active certificates with exemption reasons. |
| `histories` | array | A list of field update histories for this customer. |
| `logs` | array | A list of logs for this customer. |
| `shipToStates` | array | A list of states where this customer ships to. |

### CustomerModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CustomerSupplierCountryParamModel

Represents a parameter associated with a company.

| Property | Type | Description |
|---|---|---|
| `id` | integer | Identifier for company parameter |
| `companyId` | integer | CompanyId associated with the parameter |
| `customerId` | integer | Identifier for company parameter |
| `customerCode` | string |  |
| `country` | string |  |
| `isEstablished` | boolean |  |
| `businessIdentificationNo` | string |  |
| `isRegisteredThroughFiscalRep` | boolean |  |
| `vatNumber` | string | VAT number for the customer/supplier in this country |
| `vatNumberStatus` | integer | Status of VAT number validation (0=NotValidated, 1=Valid, 2=Invalid, 3=Unverifiable, 4=ValidationError, 5=UnsupportedCountry) |

### CustomerSupplierModel

Represents a parameter associated with a company.

| Property | Type | Description |
|---|---|---|
| `id` | integer | Identifier for company parameter |
| `companyId` | integer | CompanyId associated with the parameter |
| `customerCode` | string | CustomerCode |

### CustomerSupplierModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CustomerSupplierWithCountryParamModel

Represents a customer with its country parameter information.
This model combines CustomerSupplier and CustomerSupplierCountryParam data.

| Property | Type | Description |
|---|---|---|
| `customerId` | integer | Customer ID |
| `customerCode` | string | Customer Code |
| `companyId` | integer | Company ID |
| `customerTypeId` | integer | Customer Type ID (1=Customer, 2=Supplier) |
| `customerSupplierCountryParamId` | integer | Customer Supplier Country Parameter ID |
| `country` | string | Country code |
| `isEstablished` | boolean | Whether the customer is established in this country |
| `businessIdentificationNo` | string | Business Identification Number |
| `isRegisteredThroughFiscalRep` | boolean | Whether registered through fiscal representative |
| `vatNumber` | string | VAT number for the customer in this country |
| `vatNumberStatus` | integer | Status of VAT number validation (0=NotValidated, 1=Valid, 2=Invalid, 3=Unverifiable, 4=ValidationError, 5=UnsupportedCountry) |

### CustomerSupplierWithCountryParamModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CustomerVatNumberModel

Represents a VAT Number record for a company.

| Property | Type | Description |
|---|---|---|
| `id` | integer | Unique identifier for the VAT number record |
| `companyId` | integer | Company ID associated with this VAT number |
| `vatNumber` | string | VAT identification number |
| `businessName` | string | User input business/company name |
| `country` | string | ISO 2-character country code |
| `vatNumberStatus` | integer | VAT number validation status: 0=NotValidated, 1=Valid, 2=Invalid, 3=Error |
| `registeredBusinessName` | string | Business name returned from VIES |
| `businessNameStatus` | integer | Business name comparison status: 0=NotValidated, 1=Valid, 2=Invalid, 3=Error |
| `validationDate` | string | Last validation timestamp |
| `validationSource` | string | Validation source: 'VIES' or 'ELR' |
| `createdDate` | string | Date/time when this record was created |
| `modifiedDate` | string | Date/time when this record was last modified |

### CustomerVatNumberModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### CycleAddOptionModel

Model with options for adding a new filing calendar

| Property | Type | Description |
|---|---|---|
| `available` | boolean | True if this form can be added and filed for the current cycle. "Current cycle" is considered one month before the month of today's date. |
| `transactionalPeriodStart` | string | The period start date for the customer's first transaction in the jurisdiction being added |
| `transactionalPeriodEnd` | string | The period end date for the customer's last transaction in the jurisdiction being added |
| `filingDueDate` | string | The jurisdiction-assigned due date for the form |
| `cycleName` | string | A descriptive name of the cycle and due date of form. |
| `frequencyName` | string | The filing frequency of the form |
| `filingFrequencyCode` | string | A code assigned to the filing frequency |
| `filingFrequencyId` | string | The filing frequency of the request |
| `cycleUnavailableReason` | string | An explanation for why this form cannot be added for the current cycle |
| `availableLocationCodes` | array | A list of outlet codes that can be assigned to this form for the current cycle |

### CycleEditOptionModel

Model with options for actual filing calendar output based on user edits to filing calendar.

| Property | Type | Description |
|---|---|---|
| `success` | boolean | Whether or not changes can be made to the filing calendar. |
| `message` | string | The message to present to the user when calendar is successfully or unsuccessfully changed. |
| `customerMustApprove` | boolean | Whether or not the user should be warned of a change, because some changes are risky and may be being done not in accordance with jurisdiction rules.
For example, user would be warned if user changes filing frequency to new frequency with a start date during an accrual month of the existing frequency. |
| `mustCloneFilingCalendar` | boolean | True if the filing calendar must be cloned to allow this change; false if the existing filing calendar can be changed itself. |
| `clonedCalendarEffDate` | string | The effective date of the filing calendar (only applies if cloning). |
| `expiredCalendarEndDate` | string | The expired end date of the old filing calendar (only applies if cloning). |

### CycleExpireModel

Cycle Safe Expiration results.

| Property | Type | Description |
|---|---|---|
| `success` | boolean | Whether or not the filing calendar can be expired.
e.g. if user makes end date of a calendar earlier than latest filing, this would be set to false. |
| `message` | string | The message to present to the user if expiration is successful or unsuccessful. |
| `cycleExpirationOptions` | array | A list of options for expiring the filing calendar. |

### CycleExpireOptionModel

Options for expiring a filing calendar.

| Property | Type | Description |
|---|---|---|
| `transactionalPeriodStart` | string | The period start date for the customer's first transaction in the jurisdiction being expired. |
| `transactionalPeriodEnd` | string | The period end date for the customer's last transaction in the jurisdiction being expired. |
| `filingDueDate` | string | The jurisdiction-assigned due date for the form. |
| `cycleName` | string | A descriptive name of the cycle and due date of the form. |

### CycleSafeEditRequestModel

Options for expiring a filing calendar.

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | Company Identifier |
| `taxFormCode` | string | Tax Form Code |
| `filingCalendarId` | integer | Filing Calendar Identifier |
| `edits` | array | Filing calendar edits |

### CycleSafeFilingCalendarEditModel

Filing Calendar Edit

| Property | Type | Description |
|---|---|---|
| `fieldName` | string | Field To Edit |
| `destination` | string | Destination is used to identify filing questions' type Other or Settings. |
| `questionId` | integer | Question |
| `questionCode` | string | The filing question code. |
| `oldValue` | object | Old Value |
| `newValue` | object | New Value |

### CycleSafeOptionResultModel

CycleSafe Option Result

| Property | Type | Description |
|---|---|---|
| `taxFormCode` | string | Tax Form Code |
| `mustCloneFilingCalendar` | boolean | Boolean if the Filing Calendar must be cloned |
| `clonedCalendarEffDate` | string | Cloned Calendar Effective Date |
| `expiredCalendarEndDate` | string | Expired Calendar End Date |
| `frequenciesAvailable` | array | Frequencies Available |

### DataSourceModel

Data source object

| Property | Type | Description |
|---|---|---|
| `id` | integer | The id of the datasource. |
| `companyId` | integer | The id of the company to which the datasource belongs to. |
| `source` | string | The extractor/connector id. |
| `instance` | string | The unique ID number of this connection. |
| `isEnabled` | boolean | The connection using the connection_id is enabled. The customer is responsible to enable or disable. |
| `isSynced` | boolean | If all the information has been transferred from the extractor to the database. |
| `isAuthorized` | boolean | True if this data source is authorized. |
| `lastSyncedDate` | string | The date when the information was last synched. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `createdDate` | string | The date when this record was created. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `deletedDate` | string | The date when this record was deleted. |
| `recalculate` | boolean | Specifies whether transactions created by this data source needs to re-calculate tax or not |
| `name` | string | Specifies the name of the extractor |
| `externalState` | string | Specifies any implementation-specific information along with the DataSource.This field has no internal meaning in AvaTax and is purely for the convenience of the DataSource API user |

### DataSourceModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### DcvCreationResponse

Model used for Domain control verification response

| Property | Type | Description |
|---|---|---|
| `message` | string | Domain control verification is already exist or newly created |
| `dcvViewModel` | DcvViewModel | Domain control verification model |

### DcvViewModel

ViewModel to get Domain control verification

| Property | Type | Description |
|---|---|---|
| `id` | string | Unique id of the Domain control verification |
| `domainName` | string | Domain name for which Domain control verification record is created |
| `context` | Context | Identify which system have created the Domain control verification |
| `token` | string | Unique token for Domain control verification |
| `status` | string | Status of the domain Verified/Pending/Cancelled |
| `emailId` | string | Email id of the user who create Domain control verification |

### DeclareNexusByAddressModel

Use this object to provide an address and date range where your company does business.
This address will be used to determine what jurisdictions you should declare nexus and
calculate tax.

| Property | Type | Description |
|---|---|---|
| `effectiveDate` | string | The earliest date on which your company does business at this address.  If you omit
a value in this field, nexus will be declared at the earliest possible date for this
jurisdiction. |
| `endDate` | string | The date on which your company stopped doing business at this address, or empty if
your company has no plans to stop doing business at this address. |
| `taxTypeGroup` | string | The type group of nexus that this company is declaring
Use [ListTaxTypeGroups](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListTaxTypeGroups/) API for a list of nexus tax type groups.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`.
NOTE: This optional field will trigger nexus subtype lookup when populated. When using make sure TaxTypeGroup matches corresponding NexusTaxTypeGroup |
| `nexusTaxTypeGroup` | string | The type of nexus that this company is declaring.Replaces NexusTypeId.
Use [ListNexusTaxTypeGroups](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListNexusTaxTypeGroups/) API for a list of nexus tax type groups.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `line1` | string | First line of the street address |
| `textCase` | string | Specify the text case for the validated address result.  If not specified, will return uppercase. |
| `line2` | string | Second line of the street address |
| `line3` | string | Third line of the street address |
| `city` | string | City component of the address |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `postalCode` | string | Postal Code / Zip Code component of the address. |
| `latitude` | number | Geospatial latitude measurement, in Decimal Degrees floating point format. |
| `longitude` | number | Geospatial longitude measurement, in Decimal Degrees floating point format. |

### DeleteCustomFields

Delete Custom Field request model

| Property | Type | Description |
|---|---|---|
| `id` | integer | Custom field id |

### DeleteErrorTransactionResponseModel

Response model of a single error transaction delete

| Property | Type | Description |
|---|---|---|
| `result` | string | Result of the deletion |
| `documentType` | string | Type of transaction of the error transaction |
| `documentCode` | string | The internal reference code (used by the client application) of the error transaction |

### DeleteErrorTransactionsRequestModel

Request model for when a user is deleting multiple error transaction

| Property | Type | Description |
|---|---|---|
| `models` | array | List of error transactions to be deleted |

### DeleteErrorTransactionsResponseModel

Response model of error transaction batch delete

| Property | Type | Description |
|---|---|---|
| `results` | array | The individual result of each error transaction in the request batch |

### DenormalizedJurisModel

Represents information about a single legal taxing jurisdiction within a specific Avalara tax region.

| Property | Type | Description |
|---|---|---|
| `effectiveDate` | string | The jurisdiction's effective date. |
| `endDate` | string | The jurisdiction's end date. |
| `jurisCode` | string | The jurisdiction's code. |
| `jurisdictionId` | integer | The jurisdiction's id. |
| `jurisType` | string | The jurisdiction's type. |
| `jurisName` | string | The jurisdiction's name. |
| `stateAssignedCode` | string | The state assigned code. |
| `taxAuthorityId` | integer | The id of the tax authority. |
| `state` | string | The jurisdiction's region.
This should exist on the TaxRegion, but in practice often doesn't. |
| `country` | string | The jurisdiction's country.
This should exist on the TaxRegion, but in practice often doesn't. |
| `county` | string | The jurisdiction's county.
This should exist on the TaxRegion, but in practice often doesn't. |
| `city` | string | The jurisdiction's city.
This should exist on the TaxRegion, but in practice often doesn't. |
| `isAcm` | boolean | Is Acm flag |
| `isSst` | boolean | Is Sst flag |

### DeterminationFactorModel

This object represents a single determination factor for a line that is being inspected through the InspectLine API.

| Property | Type | Description |
|---|---|---|
| `code` | string | Determination reason code. |
| `description` | string | Determination reason description. |
| `ids` | array | The ids of any applied determination factor. |
| `names` | array | The name of any applied determination factor. |
| `createdBy` | array | The name of the user who created any applied determination factor. |
| `entityUseCode` | string | The determination factor entityUseCode. |
| `exemptCertId` | string | The determination factor exemptCertId. |
| `exemptNo` | string | The determination factor exemptNo. |

### DomainNameViewModel

ViewModel to receive  DomainName from user

| Property | Type | Description |
|---|---|---|
| `domainName` | string | Domain Name for which Domain control verification is created |

### DynamicRuleComponentDefinitionModel

Represents the definition and schema of a Dynamic Rule component.

| Property | Type | Description |
|---|---|---|
| `type` | string | The primary type of the component, determining its role in the rule execution.
This is typically one of the following: Condition, Action, or Variable. |
| `subtype` | string | The specific subtype of the component, providing more detailed classification
within the main type. For example, a Condition type might have subtypes like
MatchCustomerCode, MatchProductCode, etc.
The subtype determines the expected format of the data property. |
| `name` | string | Display name of this component |
| `description` | string | A description of the component's purpose and usage |
| `dataSchema` | string | The JSON schema defining the component's configuration structure, as a string |
| `validSteps` | array | The execution steps in which the component is usable |
| `requires` | array | Array of node subtypes which are required to be present when this node type is present |

### DynamicRuleComponentDefinitionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### DynamicRuleComponentInputModel

Represents a component within a Dynamic Rule definition.
Components define the logic and flow of a rule, and include condition nodes, action nodes, and rule-wide variables.

| Property | Type | Description |
|---|---|---|
| `id` | string | Unique identifier for the component.
This ID is used to reference the component and establish connections
between components via the 'next' property. |
| `type` | string | The primary type of the component, determining its role in the rule execution.
This is typically one of the following: Condition, Action, or Variable. |
| `subtype` | string | The specific subtype of the component, providing more detailed classification
within the main type. For example, a Condition type might have subtypes like
MatchCustomerCode, MatchProductCode, etc.
The subtype determines the expected format of the data property. |
| `data` | string | JSON-formatted string containing the configuration data for the component.
The structure of this data varies based on the component type and subtype.
For example, a MatchCustomerCode condition might contain an array of customer codes to match against. |
| `next` | array | Array of component IDs that represent the next components in the rule execution flow.
This property defines the outgoing edges in the rule graph, allowing for
conditional branching and sequential processing of components. |

### DynamicRuleComponentOutputModel

Represents a component within a Dynamic Rule definition.
Components define the logic and flow of a rule, and include condition nodes, action nodes, and rule-wide variables.

| Property | Type | Description |
|---|---|---|
| `id` | string | Unique identifier for the component.
This ID is used to reference the component and establish connections
between components via the 'next' property. |
| `type` | string | The primary type of the component, determining its role in the rule execution.
This is typically one of the following: Condition, Action, or Variable. |
| `subtype` | string | The specific subtype of the component, providing more detailed classification
within the main type. For example, a Condition type might have subtypes like
MatchCustomerCode, MatchProductCode, etc.
The subtype determines the expected format of the data property. |
| `data` | string | JSON-formatted string containing the configuration data for the component.
The structure of this data varies based on the component type and subtype.
For example, a MatchCustomerCode condition might contain an array of customer codes to match against. |
| `next` | array | Array of component IDs that represent the next components in the rule execution flow.
This property defines the outgoing edges in the rule graph, allowing for
conditional branching and sequential processing of components. |

### DynamicRuleDefinitionInputModel

Represents the definition of a Dynamic Rule, which defines its execution flow.

| Property | Type | Description |
|---|---|---|
| `variables` | array | Define fixed components with rule-wide scope |
| `nodes` | array | Define components which make up the execution graph |

### DynamicRuleDefinitionOutputModel

Represents the definition of a Dynamic Rule, which defines its execution flow.

| Property | Type | Description |
|---|---|---|
| `variables` | array | Define fixed components with rule-wide scope |
| `nodes` | array | Define components which make up the execution graph |

### DynamicRuleEnumValueModel

Represents an enumeration value with title and value.

| Property | Type | Description |
|---|---|---|
| `title` | string | The display title for the enum value. |
| `value` | string | The actual enum value. |

### DynamicRuleFieldDefinitionModel

Represents the a field available in the Dynamic Rules interface.

| Property | Type | Description |
|---|---|---|
| `name` | string | The internal name of the field. This is also the field's name as it appears in tokens. |
| `title` | string | Formatted display or "nice" name of the field. |
| `description` | string | A description of the field's usage and purpose. |
| `category` | string | The category of the field; useful for filtering. |
| `documentLevel` | DynamicRuleFieldLevelDefinitionModel | Document-level information about this field, or null if this field is not available at the document level. |
| `lineLevel` | DynamicRuleFieldLevelDefinitionModel | Line-level information about this field, or null if this field is not available at the line level. |

### DynamicRuleFieldDefinitionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### DynamicRuleFieldLevelDefinitionModel

Information about a field at a specific "level" (Document or Line).

| Property | Type | Description |
|---|---|---|
| `type` | string | The JSON type of the field. |
| `expressionType` | string | The internal expression type of the field. |
| `deprecated` | boolean | Whether the field is deprecated or not. |
| `anyOf` | array | Optional list of enumerated values. |
| `readSteps` | array | The execution steps in which the field is readable. |
| `readOnly` | boolean | Whether the field is read-only. |
| `writeSteps` | array | The execution steps in which the field is writable. |
| `writeOnly` | boolean | Whether the field is write-only. |

### DynamicRuleGeneratedTaxRuleModel

Represents a tax rule that is generated or affected by a dynamic rule.
This model mirrors structure of a standard tax rule with relevant fields.

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | The unique ID number of the company that owns this tax rule. |
| `taxCode` | string | For rules that apply to a specific tax code only, this specifies which tax code is affected by this rule.
            
The `RateOverrideRule`, `BaseRule`, and `ExemptEntityRule` rule types can be applied to all tax codes.  To
make a rule that applies to all tax codes, leave both fields blank.
            
The `ProductTaxabilityRule` rule must be associated with a tax code. |
| `stateFIPS` | string | For U.S. tax rules, this is the state's Federal Information Processing Standard (FIPS) code.
            
This field is required for rules that apply to specific jurisdictions in the United States.  It is not required
if you set the `isAllJuris` flag to true. |
| `jurisName` | string | The name of the jurisdiction to which this tax rule applies. |
| `jurisCode` | string | The code of the jurisdiction to which this tax rule applies. |
| `jurisdictionTypeId` | string | The type of the jurisdiction to which this tax rule applies.
            
Custom tax rules can apply to a specific jurisdiction or to all jurisdictions.
            
To make a custom tax rule for US or Canada that applies to all jurisdictions of a specific type, see the `isAllJuris`
field for more information. |
| `taxTypeId` | string | Some tax type groups contain multiple different types of tax.  To create a rule that affects only one
type of tax within a tax type group, set this value to the code matching the specific tax type within
that group.  The custom tax rule will then only apply to taxes calculated for that specific type.
            
For rules that affect all tax types, use the value `A` to match `All` tax types within that group. |
| `taxTypeCode` | string | Indicates the code of the tax type that applies to this rule. |
| `taxRuleTypeId` | string | This type value determines the behavior of the tax rule. |
| `rateTypeCode` | string | Indicates the code of the rate type that applies to this rule.
            
If you specify a value in the rateTypeCode field, this rule will cause tax lines that are affected by the rule
to change to a different rate type code. |
| `isAllJuris` | boolean | Allows you to make tax rules apply to lower jurisdictions.  This feature is only available in the United States and Canada.
            
* In the United States, this value can be used for rules written at the `State` jurisdictional level.  If set to `true`, this rule will at the state level, county level, city level, and special jurisdiction level.
* In Canada, this value can be used for rules written at the `Country` or `State` jurisdictional levels.  If set to `true`, this rule will at all lower jurisdictional levels.
            
For any other use case, this value must be `false`. |
| `value` | number | This field has different behavior based on the type of the tax rule.
            
* For a product taxability rule, this value is either 1 or 0, indicating taxable or non-taxable.
* For a rate override rule, this value is the corrected rate stored as a decimal, for example, a rate of 5% would be stored as 0.05 decimal.  If you use the special value of 1.0, only the cap and threshold values will be applied and the rate will be left alone. |
| `cap` | number | The maximum cap for the price of this item according to this rule.  Any amount above this cap will not be subject to this rule.
            
For example, if you must pay 5% of a product's value up to a maximum value of $1000, you would set the `cap` to `1000.00` and the `value` to `0.05`. |
| `threshold` | number | The per-unit threshold that must be met before this rule applies.
            
For example, if your product is nontaxable unless it is above $100 per product, you would set the `threshold` value to `100`.  In this case, the rate
for the rule would apply to the entire amount above $100.
            
You can also create rules that make the entire product taxable if it exceeds a threshold, but is nontaxable
if it is below the threshold.  To choose this, set the `options` field to the value `TaxAll`. |
| `effectiveDate` | string | The first date at which this rule applies.  If `null`, this rule will apply to all dates prior to the end date. |
| `endDate` | string | The last date for which this rule applies.  If `null`, this rule will apply to all dates after the effective date. |
| `description` | string | A friendly name for this tax rule. |
| `entityUseCode` | string | The entity use code to which this rule applies. |
| `sourcing` | string | The sourcing types to which this rule applies. |
| `countyFIPS` | string | For U.S. tax rules, this is the county's Federal Information Processing Standard (FIPS) code.
            
This field is required for rules that apply to specific jurisdictions in the United States.  It is not required
if you set the `isAllJuris` flag to true. |
| `country` | string | Name or ISO 3166 code identifying the country where this rule will apply.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries |
| `region` | string | Name or ISO 3166 code identifying the region where this rule will apply.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions |
| `taxTypeGroup` | string | This field has different behavior based on the type of rule.
            
* For a product taxability rule, if the rule applies to an item, this value will override the tax type group of the original product.
* For other rules, this value determines what tax type groups will be affected by the rule. |
| `taxSubType` | string | This field has different behavior based on the type of rule.
            
* For a product taxability rule, if the rule applies to an item, this value will override the tax sub type of the original product.
* For other rules, this value determines what tax sub types will be affected by the rule. |
| `currencyCode` | string | The currency code to use for this rule. |
| `options` | string | Supports custom options for your tax rule. |
| `tariffCode` | string | The tariff code (HS Code) associated with this tax rule.
On the TaxRuleModel, this must be converted to TaxRuleProductDetailModel. |
| `unitOfBasis` | string | For tax rules that are calculated using units of measurement,
this indicates the unit of measurement type used to calculate the amounts for this rule. |

### DynamicRuleInputModel

A Dynamic Rule is a type of a custom rule which is similar to an Advanced Rule, but
has a graph-based execution flow made up of modular Conditions and Actions that may
be linked to one or more traditional custom Tax Rules.

| Property | Type | Description |
|---|---|---|
| `id` | integer | Unique identifier for the execution |
| `definition` | DynamicRuleDefinitionInputModel | The definition of the rule, which defines its parameters, variables, and execution flow |
| `name` | string | The name of the execution |
| `description` | string | The description of the execution |
| `effectiveDate` | string | The start date when the execution is valid |
| `endDate` | string | The end date when the execution is valid |
| `enabled` | boolean | Whether the execution is enabled |
| `continueOnError` | boolean | Whether to continue execution if this rule fails |
| `isDraft` | boolean | Whether this is a draft rule; draft rules are not executed
on transactions unless specifically enabled for testing |
| `priority` | integer | The execution priority of the rule, which is used for sorting rules; within
each execution step, rules with a lower priority value are executed earlier |

### DynamicRuleOutputModel

A Dynamic Rule is a type of a custom rule which is similar to an Advanced Rule, but
has a graph-based execution flow made up of modular Conditions and Actions that may
be linked to one or more traditional custom Tax Rules.

| Property | Type | Description |
|---|---|---|
| `id` | integer | Unique identifier for the execution |
| `definition` | DynamicRuleDefinitionOutputModel | The definition of the rule, which defines its parameters, variables, and execution flow |
| `companyId` | integer | The company ID of the execution |
| `name` | string | The name of the execution |
| `description` | string | The description of the execution |
| `effectiveDate` | string | The start date when the execution is valid |
| `endDate` | string | The end date when the execution is valid |
| `enabled` | boolean | Whether the execution is enabled |
| `continueOnError` | boolean | Whether to continue execution if this rule fails |
| `isDraft` | boolean | Whether this is a draft rule; draft rules are not executed
on transactions unless specifically enabled for testing |
| `priority` | integer | The execution priority of the rule, which is used for sorting rules; within
each execution step, rules with a lower priority value are executed earlier |
| `version` | integer | Version number of the rule |
| `createdDate` | string | The date when the execution was created |
| `createdUserId` | integer | The user who created the execution |
| `modifiedDate` | string | The date when the execution was last modified |
| `modifiedUserId` | integer | The user who last modified the execution |

### DynamicRuleOutputModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### DynamicRuleTemplateRequestModel

Model for constructing a simple template graph based on user selected node subtypes

| Property | Type | Description |
|---|---|---|
| `nodeSubtypes` | array | The node types that must be included in the resulting template |

### DynamicRuleTokenDefinitionModel

Represents a valid expression token in Dynamic Rules, i.e. the variables, delimited by double curly braces,
that may be used when performing string manipulation or evaluating formulas within a Dynamic Rule.

| Property | Type | Description |
|---|---|---|
| `token` | string | Full contents of the token, including the prefix, but excluding functions. |
| `tokenType` | string | The type of the token before evaluation. Usually this corresponds to the prefix. |
| `evaluatedType` | string | The type of the token after evaluation. |
| `category` | string | Filterable token category. |
| `description` | string | Details about the token's purpose or usage. |

### DynamicRuleTokenDefinitionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### DynamicRuleValidationMessageModel

Represents a single validation message for a dynamic rule.

| Property | Type | Description |
|---|---|---|
| `level` | string | The severity level of the message (error, warning, or info). |
| `message` | string | The detailed message content. |
| `refersTo` | string | An optional reference indicating what part of the rule or configuration this message pertains to.
This is usually a node identifier, but may be empty if the message is not related to a specific node. |

### DynamicRuleValidationPlanStepModel

Represents a single step in the execution plan of a dynamic rule.

| Property | Type | Description |
|---|---|---|
| `step` | string | Describes the stage or phase of calculation this step belongs to.
For example, "BeforeCalc". |
| `order` | integer | The order in which this step will be executed. |
| `nodes` | array | A list of node identifiers that are part of this execution step, in the order they will be executed.
These refer to specific conditions or actions. |

### DynamicRuleValidationResultModel

Represents the complete validation result for a dynamic rule, including a summary,
individual messages, an execution plan, and affected tax rules.

| Property | Type | Description |
|---|---|---|
| `summary` | DynamicRuleValidationSummaryModel | A summary of the validation results, including counts of errors, warnings, and info messages. |
| `messages` | array | A list of detailed validation messages (errors, warnings, info). |
| `executionPlan` | array | A list of steps outlining the execution plan for the dynamic rule.
This can help in understanding how the rule will be processed. |
| `taxRules` | array | A list of tax rules that would be generated or affected by this dynamic rule if it were saved. |
| `lookupFilesUsed` | array | The list of lookup files used by this rule. |

### DynamicRuleValidationSummaryModel

Represents a summary of the validation results for a dynamic rule.

| Property | Type | Description |
|---|---|---|
| `message` | string | A high-level message describing the overall validation status.
For example, "Errors are present, do not save rule." |
| `errorCount` | integer | The total number of errors found during validation. |
| `warningCount` | integer | The total number of warnings found during validation. |
| `infoCount` | integer | The total number of informational messages generated during validation. |
| `taxRuleCount` | integer | The total number of tax rules that would be generated or affected by this dynamic rule. |

### ECommerceTokenOutputModel

The resource model returned by the ECommerceTokenController's endpoints.

| Property | Type | Description |
|---|---|---|
| `token` | string | The JWT token that authorizes the gencert tool to operate. |
| `clientIds` | array | The list of clients that the token is valid for. |
| `createdDate` | string | The date the token was created. |
| `expirationDate` | string | The date that the token will expire. |

### ECommerceTokenOutputModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### EcmsDetailModel

Represents an ECMS record, used internally by AvaTax to track information about exemptions.

| Property | Type | Description |
|---|---|---|
| `exemptCertDetailId` | integer | Unique, system-assigned identifier of a ExemptCertDetail record. |
| `exemptCertId` | integer | The calc_id associated with a certificate in CertCapture. |
| `stateFips` | string | State FIPS |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `idNo` | string | The customer Tax Id Number (tax_number) associated with a certificate. This is same as exemptionNo in Transactions. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `endDate` | string | End date of this exempt certificate |
| `idType` | string | The type of idNo (tax_number) associated with a certificate.
Example: Driver's Licence Number, Permit Number. |
| `isTaxCodeListExclusionList` | integer | Is the tax code list an exculsion list? |
| `taxCodes` | array | optional: list of tax code associated with this exempt certificate detail |

### EcmsDetailTaxCodeModel

| Property | Type | Description |
|---|---|---|
| `exemptCertDetailTaxCodeId` | integer | Id of the exempt certificate detail tax code |
| `exemptCertDetailId` | integer | exempt certificate detail id |
| `taxCodeId` | integer | tax code id |

### EcmsModel

Exempt certificate

| Property | Type | Description |
|---|---|---|
| `exemptCertId` | integer | The calc_id associated with a certificate in CertCapture. |
| `companyId` | integer | Company ID |
| `customerCode` | string | Customer code |
| `customerName` | string | Customer name |
| `address1` | string | Address line 1 |
| `address2` | string | Address line 2 |
| `address3` | string | Address line 3 |
| `city` | string | City |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `postalCode` | string | Postal code / zip code |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `exemptCertTypeId` | string | The type of exemption certificate. Permitted values are: Blanket and Single. |
| `documentRefNo` | string | Document Reference Number, in the case of single-use exemption certificates, the DocumentCode or PurchaseOrderNo to which the certificate should apply. |
| `businessTypeId` | integer | Business type the customer belongs to. |
| `businessTypeOtherDescription` | string | Other description for this business type |
| `exemptReasonId` | string | Exempt reason associated with the certificate, coded by CustomerUsageType.
Example: A - Federal Government. |
| `exemptReasonOtherDescription` | string | Other description for exempt reason i.e. Populated on if exemptReasonId is 'L' - Other. |
| `effectiveDate` | string | Effective date for this exempt certificate |
| `regionsApplicable` | string | A list of applicable regions for this exempt certificate.
            
To list more than one applicable region, separate the list of region codes with commas. |
| `exemptCertStatusId` | string | Status for this exempt certificate |
| `createdDate` | string | Date when this exempt certificate was created |
| `lastTransactionDate` | string | Date when last transaction with this exempt certificate happened |
| `expiryDate` | string | When this exempt certificate will expire |
| `createdUserId` | integer | User that creates the certificate |
| `modifiedDate` | string | Date when this exempt certificate was modified |
| `modifiedUserId` | integer | Who modified this exempt certificate |
| `countryIssued` | string | Name or ISO 3166 code identifying the country that issued this ECMS certificate.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `avaCertId` | string | If the certificate record was synced from an AvaTax Certs account(as opposed to being entered in ECMS directly),
the unique AvaTax Certs identifier for the certificate record. Usually same as the Id of a Certificate. |
| `exemptCertReviewStatusId` | string | Review status for this exempt certificate |
| `details` | array | Exempt Cert details |

### EcmsModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### EcoNexusThresholdsModel

Response model for GET /api/v2/companies/{companyId}/econexusthresholds.

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | The Avalara company identifier. |
| `states` | array | Per-state threshold summaries for the company. Empty array if no evaluated data exists. |
| `lastRefreshedAt` | string | UTC timestamp of when the TPS in-memory cache last successfully refreshed from Snowflake.
Omitted when a refresh has not yet completed. |

### EntityUseCodeModel

Represents a code describing the intended use for a product that may affect its taxability

| Property | Type | Description |
|---|---|---|
| `code` | string | The Avalara-recognized entity use code for this definition |
| `name` | string | The name of this entity use code |
| `description` | string | Text describing the meaning of this use code |
| `validCountries` | array | A list of countries where this use code is valid |

### EntityUseCodeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ErrorCodeOutputModel

Model that has the matching count for an errorcode

| Property | Type | Description |
|---|---|---|
| `errorCode` | string | Name of the error code |
| `count` | integer | Number of error code recorded |

### ErrorCodeOutputModelCappedFetchResult

| Property | Type | Description |
|---|---|---|
| `@isRecordsetCountCapped` | boolean |  |
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ErrorDetail

| Property | Type | Description |
|---|---|---|
| `code` | string |  |
| `number` | integer |  |
| `message` | string |  |
| `description` | string |  |
| `faultCode` | string |  |
| `faultSubCode` | string |  |
| `helpLink` | string |  |
| `refersTo` | string |  |
| `severity` | string |  |

### ErrorInfo

Information about the error that occurred

| Property | Type | Description |
|---|---|---|
| `code` | string | Type of error that occurred |
| `message` | string | Short one-line message to summaryize what went wrong |
| `target` | string | What object or service caused the error? |
| `details` | array | Array of detailed error messages |

### ErrorResult

Helper function for throwing known error response

| Property | Type | Description |
|---|---|---|
| `error` | ErrorInfo | Information about the error(s) |

### ErrorTransactionModelBase

Base model class for single error transaction delete request

| Property | Type | Description |
|---|---|---|
| `documentType` | string | Type of transaction of the error transaction |
| `documentCode` | string | The internal reference code (used by the client application) of the error transaction |

### ErrorTransactionOutputModel

Error Transaction Model

| Property | Type | Description |
|---|---|---|
| `errorCode` | string | Error code of the error result from transaction creation |
| `errorMessage` | string | Error message of the error result from transaction creation |
| `avataxErrorJson` | string | The full JSON of the error result from transaction creation |
| `avataxCreateTransactionJson` | string | The full JSON of the transaction creation request |
| `datasource` | string | The datasource instance that made the transaction creation call |
| `documentDate` | string | The date of the document |
| `expiresAt` | string | The date that this ErrorTransaction will be automatically purged from the detabase. |
| `amount` | number | The amount of the transaction. |
| `datasourceSource` | string | The Datasource source of the transaction creation call. |
| `shipToCountry` | string | The country of the ship to address for the transaction creation call. |
| `shipToRegion` | string | The region of the ship to address for the transaction creation call. |
| `documentType` | string | Type of transaction of the error transaction |
| `documentCode` | string | The internal reference code (used by the client application) of the error transaction |

### ErrorTransactionOutputModelCappedFetchResult

| Property | Type | Description |
|---|---|---|
| `@isRecordsetCountCapped` | boolean |  |
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### EventDeleteBatchMessageModel

Model to delete message

| Property | Type | Description |
|---|---|---|
| `receiptHandle` | string | The receipt handle associated with the message to delete. |
| `messageId` | string | A system-assigned message ID |

### EventDeleteMessageModel

Encloses the delete message command.

| Property | Type | Description |
|---|---|---|
| `eventDeleteBatchMessageCommands` | array | Command details for the delete message |

### EventMessageResponse

Encloses event message details

| Property | Type | Description |
|---|---|---|
| `body` | string | Message content |
| `messageId` | string | A system-assigned message ID |
| `receiptHandle` | string | The receipt handle associated with the message to delete. |

### EventMessageResponseFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ExemptionReasonModel

An exemption reason defines why a certificate allows a customer to be exempt
for purposes of tax calculation.  For a full list of defined exemption reasons,
please call the `ListCertificateExemptionReasons` API.

| Property | Type | Description |
|---|---|---|
| `id` | integer | A unique ID number representing this exemption reason. |
| `name` | string | A friendly name describing this exemption reason. |

### ExemptionReasonModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ExemptionStatusModel

Indicates the customer's exemption status in a specific country and region.

| Property | Type | Description |
|---|---|---|
| `status` | string | The exemption status of this customer in this country/region. |
| `certificate` | CertificateModel | Certificate if the customer is exempted |

### ExportDocumentLineModel

An input model for executing a report detailed to the document line level

| Property | Type | Description |
|---|---|---|
| `format` | string | The file format. |
| `startDate` | string | The start date filter for report execution. If no date provided, same date of last month will be used as the startDate.
Accepts date in short format yyyy-mm-dd as well as date time stamp |
| `endDate` | string | The end date filter for report execution. If no date provided, today's date will be used as the endDate.
Accepts date in short format yyyy-mm-dd as well as date time stamp |
| `country` | string | The transactions in the country you wish to run a report.
Use "ALL" for all countries
Use "ALL Non-US" for all international countries
Or use a single 2-char ISO country code |
| `state` | string | The state associated with the transactions you wish to run a report.
Use "ALL" for all states or 2-char state code. |
| `dateFilter` | string | The type of date to filter your transactions |
| `docType` | string | The transaction type you want to run a report on |
| `currencyCode` | string | The currency your report is displayed in.
Accepts "USD" or leave this blank to get all the documents with all the currencies |
| `numberOfPartitions` | integer | DEPRECATED - Date: 02/18/2026, Version: 26.3.0, Message: This field is deprecated. Please do not use it. This will be removed from the model on 08/18/2027.
Number of partitions (2 - 250) to split the report into.
If a value is provided for this property, a value must also be provided for the partition property. |
| `partition` | integer | DEPRECATED - Date: 02/18/2026, Version: 26.3.0, Message: This field is deprecated. Please do not use it. This will be removed from the model on 08/18/2027.
The zero-based partition number to retrieve in this export request.
If a value is provided for this property, a value must also be provided for the numberOfPartitions property. |
| `isLocked` | boolean | If true, include only documents that are locked.
If false, include only documents that are not locked.
Defaults to false if not specified. |
| `merchantSellerIdentifier` | string | If set, include only documents associated with these merchantSellerIds.Multiple merchantSellerIds should be sent by comma separated values. |
| `documentStatus` | string | DocumentStatus
For documentStatus, accepted values are: Saved, Posted, Committed, Cancelled |
| `isModifiedDateSameAsDocumentDate` | boolean | Use this parameter when dateFilter = ModifiedDate.
For dateFilter = DocumentDate, PaymentDate, TaxDate or ReportingDate, the isModifiedDateSameAsDocumentDate parameter is ignored.
Set this parameter to true when you would like to get Documents which have the Document Date same as Modified Date.
Defaults to false if not specified. |
| `taxGroup` | string | TaxGroup is required to support Sales tax (Sales + SellersUse) and VAT (Input+ Output).
TaxTypes, such as Lodging, Bottle, LandedCost, Ewaste, BevAlc, etc |
| `taxName` | string | The description of the tax |
| `taxCode` | string | The AvaTax tax code or customer tax code associated with the item or SKU in the transaction |
| `customerVendorCode` | string | The code your business application uses to identify a customer or vendor |
| `taxSubType` | string | Defines the individual taxes associated with a TaxType category, such as Lodging TaxType which supports numerous TaxSubTypes, including Hotel, Occupancy, ConventionCenter, Accommotations, etc. |
| `reportSource` | string | Defines report source. |
| `liabilityParameters` | LiabilityParametersModel | Liability Parameters to access Returns API |
| `compression` | string | Defines the compression mode of the result file
For compression, the accepted values are: NONE, GZIP |
| `includeDocumentLineDetails` | boolean | If true, include document line details in the generated report.
If false, include only document line in the generated report.
Defaults to false if not specified. |
| `includeMultiTaxLineDetails` | boolean | If true, include multi tax line details in the generated report.
If false, include document or document line in the generated report based on includeDocumentLineDetails.
Defaults to false if not specified. |
| `incorrectCurrencyOnly` | boolean | If true, shows all transactions that are in the incorrect currency.
If false, hides all transactions that are in the incorrect currency.
Defaults to false if not specified. |
| `includeAdditionalAttributes` | boolean | If true, shows all additional transaction attributes.
If false, hides all additional transaction attributes.
Defaults to false if not specified. |
| `includeUserDefinedFields` | boolean | If true, shows all user defined fields.
If false, hides all user defined fields.
Defaults to false if not specified. |
| `importId` | string | Sets the ImportId for Accounts Payable reports.
Defaults to an empty string if not specified. |
| `filterAtLineLevel` | boolean | If true, filter using the user-defined field at the document line level.
If false, filter using the user-defined field at the document level.
Defaults to true if not specified. |
| `udfFilter` | object | Sets a user-defined field filter as a name/value pair.
Only one name/value pair is allowed.
Returns null if both name and value are not set. |
| `jurisdictionNames` | array | The names of the jurisdictions for which document lines are fetched.
Defaults to null if not specified. |
| `includePOAandPOO` | boolean | If true, include Point of Order Acceptance (POA) and Point of Order Origin (POO) in the generated report.
If false, exclude POA and POO from the generated report.
Defaults to false if not specified. |
| `companyIds` | array | List of company IDs to include in the report.
If not specified, only the current company is included. |

### ExposureZoneModel

Information about a physical area or zone in which a certificate can apply.
An exposure zone for an exemption certificate will generally be a tax authority such
as a state, country, or local government entity.

| Property | Type | Description |
|---|---|---|
| `id` | integer | A unique ID number representing this exposure zone. |
| `companyId` | integer | The unique ID number of the AvaTax company that recorded this customer. |
| `name` | string | The short name of this exposure zone, suitable for use in a drop-down list. |
| `tag` | string | A tag indicating |
| `description` | string | A more complete description of this exposure zone, suitable for use as a tooltip or help text. |
| `created` | string | The date when this record was created. |
| `modified` | string | The date/time when this record was last modified. |
| `region` | string | Two or three character ISO 3166 region, province, or state name of this exposure zone. |
| `country` | string | Two character ISO 3166 county code for the country component of this exposure zone. |

### ExposureZoneModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### FailedHSCodeClassificationModel

Failed HS code classification model.

| Property | Type | Description |
|---|---|---|
| `itemId` | integer | The failed item ID. |
| `errors` | array | A list of errors, if any. |

### FiledReturnModel

Filing Returns Model

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | The unique ID number of the company filing return. |
| `endPeriodMonth` | integer | The month of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `endPeriodYear` | integer | The year of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `taxformCode` | string | The unique code of the form. |

### FiledReturnModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### FilingAdjustmentModel

A model for return adjustments.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number for the adjustment. |
| `filingId` | integer | The filing return id that this applies too |
| `amount` | number | The adjustment amount. |
| `period` | string | The filing period the adjustment is applied to. |
| `type` | string | The type of the adjustment. |
| `isCalculated` | boolean | Whether or not the adjustment has been calculated. |
| `accountType` | string | The account type of the adjustment. |
| `reason` | string | A descriptive reason for creating this adjustment. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### FilingAnswerModel

| Property | Type | Description |
|---|---|---|
| `filingQuestionId` | integer | The ID number for a filing question |
| `answer` | object | The value of the answer for the filing question identified by filingQuestionId |

### FilingAttachmentModel

An attachment associated with a filing return

| Property | Type | Description |
|---|---|---|
| `resourceFileId` | integer | The resourceFileId used to retrieve the attachment |
| `description` | string | The description of the attachment |

### FilingAugmentationModel

A model for return augmentations.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number for the augmentation. |
| `filingId` | integer | The filing return id that this applies too |
| `fieldAmount` | number | The field amount. |
| `fieldName` | string | The field name. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### FilingCalendarEditModel

An edit to be made on a filing calendar.

| Property | Type | Description |
|---|---|---|
| `fieldName` | string | The name of the field to be modified. |
| `questionId` | integer | The unique ID of the filing calendar question. "Filing calendar question" is the wording displayed to users for a given field. |
| `oldValue` | object | The current value of the field. |
| `newValue` | object | The new/proposed value of the field. |

### FilingCalendarModel

Represents a commitment to file a tax return on a recurring basis.
Only used if you subscribe to Avalara Returns.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing calendar. |
| `companyId` | integer | The unique ID number of the company to which this filing calendar belongs. |
| `returnName` | string | DEPRECATED - Date: 9/13/2018, Version: 18.10, Message: Please use `taxFormCode` instead.
The legacy return name of the tax form to file. |
| `formCountry` | string | Name or ISO 3166 code identifying the country that issued the tax form for this filing calendar.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `formRegion` | string | Name or ISO 3166 code identifying the region that issued the tax form for this filing calendar.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `taxFormCode` | string | The Avalara standard tax form code of the tax form for this filing calendar.  The first two characters of the tax form code
are the ISO 3166 country code of the country that issued this form. |
| `fiscalYearStartMonth` | integer | The start period of a fiscal year for this form/company |
| `locationCode` | string | If this calendar is for a location-specific tax return, specify the location code here.  To file for all locations, leave this value NULL. |
| `outletTypeId` | string | DEPRECATED - Date: 9/17/2021, Version: 21.9.0, Message: Field will be no longer be available after the 21.9.0 release.
If this calendar is for a location-specific tax return, specify the location-specific behavior here. |
| `paymentCurrency` | string | Specify the ISO 4217 currency code for the currency to remit for this tax return.  For all tax returns in the United States, specify "USD". |
| `filingFrequencyId` | string | The frequency on which this tax form is filed. |
| `months` | integer | A 16-bit bitmap containing a 1 for each month when the return should be filed. |
| `stateRegistrationId` | string | Tax Registration ID for this Region - in the U.S., this is for your state. |
| `localRegistrationId` | string | Tax Registration ID for the local jurisdiction, if any. |
| `employerIdentificationNumber` | string | The Employer Identification Number or Taxpayer Identification Number that is to be used when filing this return. |
| `line1` | string | DEPRECATED - Date: 9/1/2017, Version: 17.9, Message: Field will be no longer be available after the 17.9 release.
The first line of the mailing address that will be used when filling out this tax return. |
| `line2` | string | DEPRECATED - Date: 9/1/2017, Version: 17.9, Message: Field will be no longer be available after the 17.9 release.
The second line of the mailing address that will be used when filling out this tax return.
Please note that some tax forms do not support multiple address lines. |
| `city` | string | DEPRECATED - Date: 9/1/2017, Version: 17.9, Message: Field will be no longer be available after the 17.9 release.
The city name of the mailing address that will be used when filling out this tax return. |
| `region` | string | DEPRECATED - Date: 9/1/2017, Version: 17.9, Message: Field will be no longer be available after the 17.9 release.
The state, region, or province of the mailing address that will be used when filling out this tax return. |
| `postalCode` | string | DEPRECATED - Date: 9/1/2017, Version: 17.9, Message: Field will be no longer be available after the 17.9 release.
The postal code or zip code of the mailing address that will be used when filling out this tax return. |
| `country` | string | DEPRECATED - Date: 9/1/2017, Version: 17.9, Message: Field will be no longer be available after the 17.9 release.
The two character ISO-3166 country code of the mailing address that will be used when filling out this tax return. |
| `mailingAddressLine1` | string | The first line of the mailing address that will be used when filling out this tax return. |
| `mailingAddressLine2` | string | The second line of the mailing address that will be used when filling out this tax return.
Please note that some tax forms do not support multiple address lines. |
| `mailingAddressCity` | string | The city name of the mailing address that will be used when filling out this tax return. |
| `mailingAddressRegion` | string | Name or ISO 3166 code identifying the region of the mailing address that will be used when filling out this tax return.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `mailingAddressPostalCode` | string | The postal code or zip code of the mailing address that will be used when filling out this tax return. |
| `mailingAddressCountry` | string | Name or ISO 3166 code identifying the country of the mailing address that will be used when filling out this tax return.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `phone` | string | The phone number to be used when filing this return. |
| `customerFilingInstructions` | string | DEPRECATED - Date: 9/17/2021, Version: 21.9.0, Message: Field will be no longer be available after the 21.9.0 release.
Special filing instructions to be used when filing this return.
Please note that requesting special filing instructions may incur additional costs. |
| `legalEntityName` | string | The legal entity name to be used when filing this return. |
| `effectiveDate` | string | The earliest date for the tax period when this return should be filed.
This date specifies the earliest date for tax transactions that should be reported on this filing calendar.
Please note that tax is usually filed one month in arrears: for example, tax for January transactions is typically filed during the month of February. |
| `endDate` | string | The last date for the tax period when this return should be filed.
This date specifies the last date for tax transactions that should be reported on this filing calendar.
Please note that tax is usually filed one month in arrears: for example, tax for January transactions is typically filed during the month of February. |
| `filingTypeId` | string | The method to be used when filing this return. |
| `eFileUsername` | string | If you file electronically, this is the username you use to log in to the tax authority's website. |
| `eFilePassword` | string | If you file electronically, this is the password or pass code you use to log in to the tax authority's website. |
| `prepayPercentage` | integer | If you are required to prepay a percentage of taxes for future periods, please specify the percentage in whole numbers;
for example, the value 90 would indicate 90%. |
| `prePaymentRequired` | boolean | Determines if a prepayment is required for this filing calendar |
| `fixedPrepaymentAmount` | number | If your company is required to make a prepayment that is designated by a fixed amount each period, please specify the amount here. |
| `taxTypeId` | string | DEPRECATED - Date: , Version: , Message: The 'taxTypes' list field should be used going forward.
The type of tax to report on this return. |
| `taxTypes` | array | The list of tax types to report on this return. |
| `internalNotes` | string | DEPRECATED - Date: 9/17/2021, Version: 21.9.0, Message: Field will be no longer be available after the 21.9.0 release.
Internal filing notes. |
| `alSignOn` | string | Custom filing information field for Alabama. |
| `alAccessCode` | string | Custom filing information field for Alabama. |
| `meBusinessCode` | string | Custom filing information field for Maine. |
| `iaBen` | string | Custom filing information field for Iowa. |
| `ctReg` | string | Custom filing information field for Connecticut. |
| `other1Name` | string | Custom filing information field.  Leave blank. |
| `other1Value` | string | Custom filing information field.  Leave blank. |
| `other2Name` | string | Custom filing information field.  Leave blank. |
| `other2Value` | string | Custom filing information field.  Leave blank. |
| `other3Name` | string | Custom filing information field.  Leave blank. |
| `other3Value` | string | Custom filing information field.  Leave blank. |
| `taxAuthorityId` | integer | The unique ID of the tax authority of this return. |
| `taxAuthorityName` | string | The name of the tax authority of this return. |
| `taxAuthorityType` | string | The type description of the tax authority of this return. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `bulkAccountId` | string | User name of bulk account. |
| `siteCode` | string | The bulk account site code. |
| `bulkAccountValidationStatus` | string | The status of the bulk account's validation. |
| `settings` | array | CompanyReturn settings for complext filing calendar |
| `autoLockOverrideDay` | integer | Auto Lock Override Day |
| `currency` | string | The three-character currency code according to country. For example if country is 'US' then currency is 'USD'. Similarly, if country is 'CA' then currency is 'CAD', etc. |

### FilingCalendarModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### FilingFrequencyModel

FilingFrequency Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing frequency. |
| `description` | string | The description name of this filing frequency |

### FilingFrequencyModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### FilingModel

Represents a listing of all tax calculation data for filings and for accruing to future filings.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing. |
| `companyId` | integer | The unique ID number of the company for this filing. |
| `month` | integer | The month of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `year` | integer | The year of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `type` | string | Indicates whether this is an original or an amended filing. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `filingRegions` | array | A listing of regional tax filings within this time period. |

### FilingModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### FilingPaymentModel

A model for return payments.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number for the payment. |
| `filingId` | integer | The filing return id that this applies too |
| `paymentAmount` | number | The payment amount. |
| `type` | string | The type of the payment. |
| `isCalculated` | boolean | Whether or not the payment has been calculated. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### FilingRegionModel

Regions

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing region. |
| `filingId` | integer | The filing id that this region belongs too |
| `country` | string | The two-character ISO-3166 code for the country. |
| `region` | string | The two or three character region code for the region. |
| `salesAmount` | number | The sales amount. |
| `taxableAmount` | number | The taxable amount. |
| `taxAmount` | number | The tax amount. |
| `taxDueAmount` | number | The tax amount due. |
| `collectAmount` | number | The amount collected by Avalara for this region |
| `totalRemittanceAmount` | number | Total remittance amount of all returns in region |
| `nonTaxableAmount` | number | The non-taxable amount. |
| `consumerUseTaxAmount` | number | Consumer use tax liability. |
| `consumerUseNonTaxableAmount` | number | Consumer use non-taxable amount. |
| `consumerUseTaxableAmount` | number | Consumer use taxable amount. |
| `approveDate` | string | The date the filing region was approved. |
| `startDate` | string | The start date for the filing cycle. |
| `endDate` | string | The end date for the filing cycle. |
| `hasNexus` | boolean | Whether or not you have nexus in this region. |
| `status` | string | The current status of the filing region. |
| `returns` | array | A list of tax returns in this region. |
| `suggestReturns` | array | A list of tax returns in this region. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### FilingRequestDataModel

Represents a commitment to file a tax return on a recurring basis.
Only used if you subscribe to Avalara Returns.

| Property | Type | Description |
|---|---|---|
| `companyReturnId` | integer | The company return ID if requesting an update. |
| `returnName` | string | DEPRECATED - Date: 9/13/2018, Version: 18.10, Message: Please use `taxFormCode` instead.
The legacy return name of the requested calendar. |
| `taxFormCode` | string | The Avalara standard tax form code of the tax form for this filing calendar.  The first two characters of the tax form code
are the ISO 3166 country code of the country that issued this form. |
| `filingFrequencyId` | string | The filing frequency of the request |
| `registrationId` | string | State registration ID of the company requesting the filing calendar. |
| `months` | integer | The months of the request |
| `fiscalYearStartMonth` | integer | The start period of a fiscal year for this form/company |
| `taxTypeId` | string | The type of tax to report on this return. |
| `locationCode` | string | Location code of the request |
| `effDate` | string | Filing cycle effective date of the request |
| `endDate` | string | Filing cycle end date of the request |
| `isClone` | boolean | Flag if the request is a clone of a current filing calendar |
| `autoLockOverrideDay` | integer | Auto Lock Override Day |
| `country` | string | The two character ISO 3166 country code of the country that issued the tax form for this filing calendar. |
| `region` | string | The two or three character ISO 3166 code of the region / state / province that issued the tax form for this filing calendar. |
| `taxAuthorityId` | integer | The tax authority id of the return |
| `taxAuthorityName` | string | The tax authority name on the return |
| `answers` | array | Filing question answers |

### FilingRequestModel

Represents a commitment to file a tax return on a recurring basis.
Only used if you subscribe to Avalara Returns.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing request. |
| `companyId` | integer | The unique ID number of the company to which this filing request belongs. |
| `filingRequestStatusId` | string | The current status of this request |
| `data` | FilingRequestDataModel | The data model object of the request |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### FilingRequestModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### FilingReturnCreditModel

An attachment associated with a filing return

| Property | Type | Description |
|---|---|---|
| `totalSales` | number | The resourceFileId used to retrieve the attachment |
| `totalExempt` | number | The resourceFileId used to retrieve the attachment |
| `totalTaxable` | number | The resourceFileId used to retrieve the attachment |
| `totalTax` | number | The resourceFileId used to retrieve the attachment |
| `transactionDetails` | array | The excluded carry over credit documents |

### FilingReturnModel

Filing Returns Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing return. |
| `filingRegionId` | integer | The region id that this return belongs too |
| `filingCalendarId` | integer | The unique ID number of the filing calendar associated with this return. |
| `registrationId` | string | The registration ID from the return's filing calendar. |
| `resourceFileId` | integer | The resourceFileId of the return.  Will be null if not available. |
| `taxAuthorityId` | integer | Tax Authority ID of this return |
| `status` | string | The current status of the filing return. |
| `filingFrequency` | string | The filing frequency of the return. |
| `filedDate` | string | The date the return was filed by Avalara. |
| `startPeriod` | string | The start date of this return |
| `endPeriod` | string | The end date of this return |
| `salesAmount` | number | The sales amount. |
| `filingType` | string | The filing type of the return. |
| `formName` | string | The name of the form. |
| `remitAmount` | number | The remittance amount of the return. |
| `formCode` | string | The unique code of the form. |
| `taxFormCode` | string | The unique code of the form, prefixed by the country code. |
| `description` | string | A description for the return. |
| `taxableAmount` | number | The taxable amount. |
| `taxAmount` | number | The tax amount. |
| `collectAmount` | number | The amount collected by avalara for this return |
| `taxDueAmount` | number | The tax due amount. |
| `nonTaxableAmount` | number | The non-taxable amount. |
| `nonTaxableDueAmount` | number | The non-taxable due amount. |
| `consumerUseTaxAmount` | number | Consumer use tax liability during the period. |
| `consumerUseTaxDueAmount` | number | Consumer use tax liability accrued during the period. |
| `consumerUseNonTaxableAmount` | number | Consumer use non-taxable amount. |
| `consumerUseTaxableAmount` | number | Consumer use taxable amount. |
| `totalAdjustments` | number | Total amount of adjustments on this return |
| `excludedSalesAmount` | number | The amount of sales excluded from the liability calculation |
| `excludedNonTaxableAmount` | number | The amount of non-taxable sales excluded from the liability calculation |
| `excludedTaxAmount` | number | The amount of tax excluded from the liability calculation |
| `carryOverSalesAmount` | number | The amount of carry over sales applied to the liability calculation |
| `carryOverNonTaxableAmount` | number | The amount of carry over non taxable sales applied to the liability calculation |
| `carryOverTaxAmount` | number | The amount of carry over sales tax applied to the liability calculation |
| `carryOverConsumerUseTaxAmount` | number | The amount of carry over consumer use tax applied to the liability calculation |
| `taxAccrualAmount` | number | The total amount of total tax accrued in the current active period |
| `salesAccrualAmount` | number | The total amount of sales accrued in the current active period |
| `nonTaxableAccrualAmount` | number | The total amount of nontaxable sales accrued in the current active period |
| `taxableAccrualAmount` | number | The total amount of taxable sales accrued in the current active period |
| `salesTaxAccrualAmount` | number | The total amount of sales tax accrued in the current active period |
| `sellersUseTaxAccrualAmount` | number | The total amount of sellers use tax accrued in the current active period |
| `consumerUseTaxAccrualAmount` | number | The total amount of consumer use tax accrued in the current active period |
| `consumerUseTaxableAccrualAmount` | number | The total amount of consumer use taxable sales accrued in the current active period |
| `consumerUseNonTaxableAccrualAmount` | number | The total amount of consumer use non taxable sales accrued in the current active period |
| `adjustments` | array | The Adjustments for this return. |
| `totalAugmentations` | number | Total amount of augmentations on this return |
| `augmentations` | array | The Augmentations for this return. |
| `totalPayments` | number | Total amount of payments on this return |
| `payments` | array | The payments for this return. |
| `accrualType` | string | Accrual type of the return |
| `month` | integer | The month of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `year` | integer | The year of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `type` | string | The FilingTaskType for this return. |
| `attachments` | array | The attachments for this return. |
| `excludedCarryOverCredits` | FilingReturnCreditModel | The excluded carry over credit documents |
| `appliedCarryOverCredits` | FilingReturnCreditModel | The applied carry over credit documents |
| `liabilityCurrencyCode` | string | The three-character liability currency code. |
| `filingCalendarCurrencyCode` | string | The three-character filing calendar currency code for this return. For example if country is 'US' then currency is 'USD'. Similarly, if country is 'CA' then currency is 'CAD', etc. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |

### FilingReturnModelBasic

Filing Returns Model

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | The unique ID number of the company filing return. |
| `id` | integer | The unique ID number of this filing return. |
| `filingId` | integer | The filing id that this return belongs too |
| `resourceFileId` | integer | The resourceFileId of the return |
| `filingRegionId` | integer | The region id that this return belongs too |
| `filingCalendarId` | integer | The unique ID number of the filing calendar associated with this return. |
| `country` | string | The country of the form. |
| `region` | string | The region of the form. |
| `endPeriodMonth` | integer | The month of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `endPeriodYear` | integer | The year of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `status` | string | The current status of the filing return. |
| `filingFrequency` | string | The filing frequency of the return. |
| `filedDate` | string | The date the return was filed by Avalara. |
| `salesAmount` | number | The sales amount. |
| `filingType` | string | The filing type of the return. |
| `formName` | string | The name of the form. |
| `remitAmount` | number | The remittance amount of the return. |
| `formCode` | string | The unique code of the form. |
| `taxFormCode` | string | The unique code of the form, prefixed by the country code. |
| `description` | string | A description for the return. |
| `taxableAmount` | number | The taxable amount. |
| `taxAmount` | number | The tax amount. |
| `collectAmount` | number | The amount collected by avalara for this return |
| `taxDueAmount` | number | The tax due amount. |
| `nonTaxableAmount` | number | The non-taxable amount. |
| `nonTaxableDueAmount` | number | The non-taxable due amount. |
| `consumerUseTaxAmount` | number | Consumer use tax liability. |
| `consumerUseNonTaxableAmount` | number | Consumer use non-taxable amount. |
| `consumerUseTaxableAmount` | number | Consumer use taxable amount. |
| `excludedSalesAmount` | number | The amount of sales excluded from the liability calculation |
| `excludedNonTaxableAmount` | number | The amount of non-taxable sales excluded from the liability calculation |
| `excludedTaxAmount` | number | The amount of tax excluded from the liability calculation |
| `accrualType` | string | Accrual type of the return |
| `attachments` | array | The attachments for this return. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |

### FilingReturnModelBasicFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### FilingStatusChangeModel

Represents a change request for filing status for a company

| Property | Type | Description |
|---|---|---|
| `requestedStatus` | string | Indicates the filing status you are requesting for this company |

### FilingsCheckupAuthorityModel

Cycle Safe Expiration results.

| Property | Type | Description |
|---|---|---|
| `taxAuthorityId` | integer | Unique ID of the tax authority |
| `locationCode` | string | Location Code of the tax authority |
| `taxAuthorityName` | string | Name of the tax authority |
| `taxAuthorityTypeId` | integer | Type Id of the tax authority |
| `jurisdictionId` | integer | Jurisdiction Id of the tax authority |
| `tax` | number | Amount of tax collected in this tax authority |
| `taxTypeId` | string | Tax Type collected in the tax authority |
| `suggestedForms` | array | Suggested forms to file due to tax collected |

### FilingsCheckupModel

Results of the Worksheet Checkup report

| Property | Type | Description |
|---|---|---|
| `authorities` | array | A collection of authorities in the report |

### FilingsCheckupSuggestedFormModel

Worksheet Checkup Report Suggested Form Model

| Property | Type | Description |
|---|---|---|
| `taxAuthorityId` | integer | Tax Authority ID of the suggested form returned |
| `country` | string | Country of the suggested form returned |
| `region` | string | Region of the suggested form returned |
| `taxFormCode` | string | Name of the suggested form returned |
| `returnName` | string | Legacy Name of the suggested form returned |

### FilingsTaxDetailsModel

Represents a listing of all tax calculation data for filings and for accruing to future filings.

| Property | Type | Description |
|---|---|---|
| `taxType` | string | The tax type associated with the summary |
| `salesAmount` | number | The total sales amount |
| `nonTaxableAmount` | number | The nontaxable amount |
| `taxAmount` | number | The tax amount |
| `numberOfNights` | integer | The number of nights |

### FilingsTaxSummaryModel

Represents a listing of all tax calculation data for filings and for accruing to future filings.

| Property | Type | Description |
|---|---|---|
| `salesAmount` | number | The total sales amount |
| `taxableAmount` | number | The taxable amount |
| `nonTaxableAmount` | number | The nontaxable amount |
| `taxAmount` | number | The tax amount |
| `remittanceAmount` | number | The remittance amount |
| `collectAmount` | number | The collect amount |
| `salesAccrualAmount` | number | The sales accrual amount |
| `taxableAccrualAmount` | number | The taxable sales accrual amount |
| `nonTaxableAccrualAmount` | number | The nontaxable accrual amount |
| `taxAccrualAmount` | number | The tax accrual amount |
| `reportableSalesAmount` | number | reportableSalesAmount |
| `reportableNonTaxableAmount` | number | reportableNonTaxableAmount |
| `reportableTaxableAmount` | number | reportableTaxableAmount |
| `reportableTaxAmount` | number | reportableTaxAmount |

### FilterModel

Filter Model

| Property | Type | Description |
|---|---|---|
| `filter` | string | Filter |

### FilterValue

Represents a filter value that can be a string, array, or object

| Property | Type | Description |
|---|---|---|
| `value` | object | The filter value - can be string, array, or object |

### FirmClientLinkageInputModel

Account Linkage Input model

| Property | Type | Description |
|---|---|---|
| `clientAccountId` | integer | Client AccountId that needs to be linked to the firm |
| `clientAccountName` | string | Client AccountName that needs to be linked to the firm |

### FirmClientLinkageModel

Account Linkage output model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of firm-client linkage. |
| `firmAccountId` | integer | Firm Account to be linked with the firm |
| `firmAccountName` | string | FIrm Account name |
| `clientAccountId` | integer | Client Account to be linked with the firm |
| `clientAccountName` | string | Client Account name |
| `createdDate` | string | Created date of the linkage |
| `createdUserId` | integer | User who created the linkage |
| `modifiedDate` | string | Modified date of the linkage |
| `modifiedUserId` | integer | User who modified the linkage |
| `status` | string | The status of the account linkage. The following are the available statuses
* Requested - When a linkage is requested
* Approved - When the linkage is approved
* Rejected - When the linkage is rejected
* Revoked - When the linkage is revoked. |
| `isDeleted` | boolean | This is set to 1 if the linkage is deleted. |
| `firmContactName` | string | Name of the firm's point of contact person for the client |
| `firmContactEmail` | string | Email of the firm's point of contact person for the client |

### FirmClientLinkageOutputModel

Account Linkage output model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of firm-client linkage. |
| `firmAccountId` | integer | Firm Account to be linked with the firm |
| `firmAccountName` | string | FIrm Account name |
| `clientAccountId` | integer | Client Account to be linked with the firm |
| `clientAccountName` | string | Client Account name |
| `createdDate` | string | Created date of the linkage |
| `createdUserId` | integer | User who created the linkage |
| `modifiedDate` | string | Modified date of the linkage |
| `modifiedUserId` | integer | User who modified the linkage |
| `status` | string | The status of the account linkage. The following are the available statuses
* Requested - When a linkage is requested
* Approved - When the linkage is approved
* Rejected - When the linkage is rejected
* Revoked - When the linkage is revoked. |
| `isDeleted` | boolean | This is set to 1 if the linkage is deleted. |
| `firmContactName` | string | Name of the firm's point of contact person for the client |
| `firmContactEmail` | string | Email of the firm's point of contact person for the client |

### FirmClientLinkageOutputModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ForbiddenErrorResponse

This is used to map the error details in response

| Property | Type | Description |
|---|---|---|
| `code` | integer | Status code in the response |
| `message` | string | Error message in the response |

### FormMasterModel

Represents information about a tax form known to Avalara

| Property | Type | Description |
|---|---|---|
| `id` | integer | Unique ID number of this form master object |
| `formTypeId` | integer | The type of the form being submitted |
| `taxFormCode` | string | Unique tax form code representing this tax form |
| `legacyReturnName` | string | Legacy return name as known in the AvaFileForm table |
| `taxFormName` | string | Human readable form summary name |
| `description` | string | Description of this tax form |
| `isEffective` | boolean | True if this form is available for use |
| `country` | string | ISO 3166 code of the country that issued this tax form |
| `region` | string | The region within which this form was issued |
| `authorityName` | string | Tax authority that issued the form |
| `shortCode` | string | DEPRECATED |
| `dueDay` | integer | Day of the month when the form is due |
| `delinquentDay` | integer | Day of the month on which the form is considered delinquent. Almost always the same as DueDay |
| `fiscalYearStartMonth` | integer | Month of the year the state considers as the first fiscal month |
| `hasMultiFrequencies` | boolean | Can form support multi frequencies |
| `isPOARequired` | boolean | Does this tax authority require a power of attorney in order to speak to Avalara |
| `isRegistrationRequired` | boolean | True if this form requires that the customer register with the authority |
| `hasMultiRegistrationMethods` | boolean | Unused |
| `hasSchedules` | boolean | Unused |
| `hasMultiFilingMethods` | boolean | Unused |
| `hasMultiPayMethods` | boolean | Unused |
| `isEFTRequired` | boolean | Unused |
| `isFilePayMethodLinked` | boolean | Unused |
| `mailingReceivedRuleId` | integer | Unused |
| `proofOfMailingId` | integer | Unused |
| `isNegAmountAllowed` | boolean | True if you can report a negative amount in a single jurisdiction on the form |
| `allowNegativeOverallTax` | boolean | True if the form overall can go negative |
| `isNettingRequired` | boolean | Unused |
| `roundingMethodId` | integer | Unused |
| `vendorDiscountAnnualMax` | number | Total amount of discounts that can be received by a vendor each year |
| `versionsRequireAuthorityApproval` | boolean | Unused |
| `outletReportingMethodId` | integer | Type of outlet reporting for this form |
| `hasReportingCodes` | boolean | Unused |
| `hasPrepayments` | boolean | Not sure if used |
| `grossIncludesInterstateSales` | boolean | Unused |
| `grossIncludesTax` | string | Unused |
| `hasEfileFee` | boolean | Unused |
| `hasEpayFee` | boolean | Unused |
| `hasDependencies` | boolean | Unused |
| `requiredEfileTrigger` | string | Unused |
| `requiredEftTrigger` | string | Unused |
| `vendorDiscountEfile` | boolean | Unused |
| `vendorDiscountPaper` | boolean | Unused |
| `peerReviewed` | string | Unused |
| `peerReviewedId` | string | Unused |
| `peerReviewedDate` | string | Unused |
| `createdUserId` | integer | ID of the Avalara user who created the form |
| `createdDate` | string | Date when form was created |
| `modifiedUserId` | integer | ID of the Avalara user who modified the form |
| `modifiedDate` | string | Date when form was modified |
| `dorAddressMailTo` | string | Mailing address of the department of revenue |
| `dorAddress1` | string | Mailing address of the department of revenue |
| `dorAddress2` | string | Mailing address of the department of revenue |
| `dorAddressCity` | string | Mailing address of the department of revenue |
| `dorAddressRegion` | string | Mailing address of the department of revenue |
| `dorAddressPostalCode` | string | Mailing address of the department of revenue |
| `dorAddressCountry` | string | Mailing address of the department of revenue |
| `zeroAddressMailTo` | string | Mailing address to use when a zero dollar form is filed |
| `zeroAddress1` | string | Mailing address to use when a zero dollar form is filed |
| `zeroAddress2` | string | Mailing address to use when a zero dollar form is filed |
| `zeroAddressCity` | string | Mailing address to use when a zero dollar form is filed |
| `zeroAddressRegion` | string | Mailing address to use when a zero dollar form is filed |
| `zeroAddressPostalCode` | string | Mailing address to use when a zero dollar form is filed |
| `zeroAddressCountry` | string | Mailing address to use when a zero dollar form is filed |
| `amendedAddressMailTo` | string | Mailing address to use when filing an amended return |
| `amendedAddress1` | string | Mailing address to use when filing an amended return |
| `amendedAddress2` | string | Mailing address to use when filing an amended return |
| `amendedAddressCity` | string | Mailing address to use when filing an amended return |
| `amendedAddressRegion` | string | Mailing address to use when filing an amended return |
| `amendedAddressPostalCode` | string | Mailing address to use when filing an amended return |
| `amendedAddressCountry` | string | Mailing address to use when filing an amended return |
| `onlineBackFiling` | boolean | Unused |
| `onlineAmendedReturns` | boolean | Unused |
| `prepaymentFrequency` | string | --Need Further Clarification |
| `outletLocationIdentifiersRequired` | boolean | Unused |
| `listingSortOrder` | string | --Need Further Clarification |
| `dorWebsite` | string | Link to the state department of revenue website, if available |
| `fileForAllOutlets` | boolean | --Need Further Clarification |
| `paperFormsDoNotHaveDiscounts` | boolean | --Need Further Clarification |
| `stackAggregation` | boolean | Internal behavior |
| `roundingPrecision` | string | --Need Further Clarification |
| `inconsistencyTolerance` | string | --Need Further Clarification |
| `effDate` | string | Date when this form became effective |
| `endDate` | string | Date when this form expired |
| `visibleToCustomers` | boolean | True if this form can be shown to customers |
| `requiresOutletSetup` | boolean | True if this form requires that you set up outlets in the state |
| `achCreditAllowed` | boolean | True if this state permits payment by ACH Credit |
| `reportLevel` | string | Jurisdiction level of the state |
| `postOfficeValidated` | boolean | True if this form is verified filed via email |
| `stackAggregationOption` | string | Internal Avalara flag |
| `sstBehavior` | string | Internal Avalara flag |
| `nonSstBehavior` | string | Internal Avalara flag |
| `dorPhoneNumber` | string | Phone number of the department of revenue |
| `averageCheckClearDays` | string | Unused |
| `filterZeroRatedLineDetails` | boolean | Unused |
| `allowsBulkFilingAccounts` | boolean | Unused |
| `bulkAccountInstructionLink` | string | Unused |
| `registrationIdFormat` | string | Unused |
| `thresholdTrigger` | string | Unused |
| `transactionSortingOption` | string | Unused |
| `contentReviewFrequencyId` | integer | Unused |
| `aliasForFormMasterId` | string | Unused |

### FormMasterModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### FormTypeMappingModel

Represents the resolved extraction task information for a given form type.

| Property | Type | Description |
|---|---|---|
| `taskId` | string | The extraction task identifier resolved from the form type. |
| `formType` | string | The form type that was resolved. |
| `mappedKey` | string | The mapped key associated with the form type. |

### FreeTrialRequestModel

Represents a request for a free trial account for AvaTax.
Free trial accounts are only available on the Sandbox environment.

| Property | Type | Description |
|---|---|---|
| `firstName` | string | The first or given name of the user requesting a free trial. |
| `lastName` | string | The last or family name of the user requesting a free trial. |
| `email` | string | The email address of the user requesting a free trial. |
| `company` | string | The company or organizational name for this free trial.  If this account is for personal use, it is acceptable
to use your full name here. |
| `phone` | string | The phone number of the person requesting the free trial. |
| `campaign` | string | Campaign identifier for Notification purpose |
| `companyAddress` | CompanyAddress | The Address information of the account |
| `website` | string | Website of the company or user requesting a free trial |
| `haveReadAvalaraTermsAndConditions` | boolean | Read Avalara's terms and conditions is necessary for a free trial account |
| `acceptAvalaraTermsAndConditions` | boolean | Accept Avalara's terms and conditions is necessary for a free trial |

### FrequencyAvailableModel

Frequency Available object

| Property | Type | Description |
|---|---|---|
| `frequencyCode` | string | Frequency Code |
| `frequencyName` | string | Frequency Name |
| `reason` | string | Reason |
| `availableCycles` | array | Expired Calendar End Date |

### FundingConfigurationModel

Status of an Avalara Managed Returns funding configuration for a company

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | CompanyID |
| `systemType` | string | Domain |
| `currency` | string | Recipient |
| `isFundingSetup` | boolean | Sender |
| `fundingMethod` | string | DocumentKey |
| `lastUpdated` | string | LastPolled |

### FundingESignMethodReturn

Represents the current status of a funding ESign method

| Property | Type | Description |
|---|---|---|
| `method` | string | Method |
| `javaScriptReady` | boolean | JavaScriptReady |
| `javaScript` | string | The actual javascript to use to render this object |

### FundingInitiateModel

| Property | Type | Description |
|---|---|---|
| `requestEmail` | boolean | Set this value to true to request an email to the recipient |
| `fundingEmailRecipient` | string | If you have requested an email for funding setup, this is the recipient who will receive an
email inviting them to setup funding configuration for Avalara Managed Returns.  The recipient can
then click on a link in the email and setup funding configuration for this company. |
| `requestWidget` | boolean | Set this value to true to request an HTML-based funding widget that can be embedded within an
existing user interface.  A user can then interact with the HTML-based funding widget to set up
funding information for the company. |
| `currency` | string | Currency |
| `agreementType` | string | AgreementType |

### FundingStatusModel

Status of an Avalara Managed Returns funding configuration for a company

| Property | Type | Description |
|---|---|---|
| `requestId` | integer | The unique ID number of this funding request |
| `subledgerProfileID` | integer | SubledgerProfileID |
| `companyID` | string | CompanyID |
| `domain` | string | Domain |
| `recipient` | string | Recipient |
| `sender` | string | Sender |
| `documentKey` | string | DocumentKey |
| `documentType` | string | DocumentType |
| `documentName` | string | DocumentName |
| `methodReturn` | FundingESignMethodReturn | MethodReturn |
| `status` | string | Status |
| `errorMessage` | string | ErrorMessage |
| `lastPolled` | string | LastPolled |
| `lastSigned` | string | LastSigned |
| `lastActivated` | string | LastActivated |
| `templateRequestId` | integer | TemplateRequestId |
| `currency` | string | Currency |
| `agreementType` | string | AgreementType |

### GLAccountBulkUploadInputModel

Represents a bulk upload input model.

| Property | Type | Description |
|---|---|---|
| `glAccounts` | array | List of GL accounts |

### GLAccountBulkUploadOutputModel

Represents a bulk upload response model.

| Property | Type | Description |
|---|---|---|
| `total` | integer | The total number of processed objects |
| `failed` | array | A dictionary of the object and a respective list of errors |

### GLAccountRequestModel

GL account request model

| Property | Type | Description |
|---|---|---|
| `entityUseCode` | string | The entity use code |
| `effectiveDate` | string | The "effective from" date |
| `endDate` | string | The end date |
| `defaultItem` | Int64TaxProfileObjectReferenceModel | The default item for this GL account |
| `glAccountCode` | string | The GL account code |

### GLAccountSuccessResponseModel

GL account response model

| Property | Type | Description |
|---|---|---|
| `glAccountId` | integer | The GL account ID |
| `companyId` | integer | The company ID to which this GL account belongs |
| `meta` | TaxProfileMetaDataModel | Meta data of this GL account |
| `entityUseCode` | string | The entity use code |
| `effectiveDate` | string | The "effective from" date |
| `endDate` | string | The end date |
| `defaultItem` | Int64TaxProfileObjectReferenceModel | The default item for this GL account |
| `glAccountCode` | string | The GL account code |

### GLAccountSuccessResponseModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### GLAccountUploadErrorModel

Represents a GL account upload error model

| Property | Type | Description |
|---|---|---|
| `rowIndex` | integer | Row index of a GL account |
| `glAccountCode` | string | GL Account code |
| `errors` | array | List of errors for against given GL account code |

### HSCodeClassificationError

The HS code classification error model.

| Property | Type | Description |
|---|---|---|
| `code` | string | The error code. |
| `message` | string | The error message |
| `target` | string | Target is source where failure is happened. |
| `faultCode` | string | The fault code |

### HistoryModel

Update history for Avalara.AvaTax.AccountServices.Models.v2.CustomerModel and Avalara.AvaTax.AccountServices.Models.v2.CertificateModel. This is exposed in the URL's `$includes`.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this history. |
| `account` | string | The account name this history belongs to. |
| `field` | string | The name of the field to update. |
| `oldValue` | string | The old value of the field. |
| `newValue` | string | The new value of the field. |
| `created` | string | The date/time when this history was created. |

### HsCode

| Property | Type | Description |
|---|---|---|
| `original` | string |  |
| `modified` | string |  |

### HsCodeModel

Describes an element in the harmonized tariff system.
            
According to the [United States International Trade Commission](https://www.usitc.gov), the harmonized tariff schedule is defined as follows:
            
The HTS is a U.S. nomenclature system used to classify traded goods based on their material composition, product name, and/or intended
function. The HTS is designed so that each article falls into only one category. It is divided into chapters, each of which has a 2-digit
number. Each product category within the various chapters is designated by 4, 6, 8, or 10 digits. The 4-digit categories are called
"headings." The 6-, 8- and 10-digit classifications are called "subheadings."
            
Within AvaTax, the `HsCodeModel` object can refer to sections, chapters, headings, subheadings, or articles.  Each object represents one
classification.  Many of these objects have child objects underneath them; these child objects are more specific than their parent objects.

| Property | Type | Description |
|---|---|---|
| `hsCode` | string | The harmonized tariff system code for this section and chapter.
            
A full HS code contains more than six characters.  Partial HS codes with two, four, or six characters may have child codes underneath them.
A child code is one that contains greater specificity than a parent code.  It is recommended that when you identify a product you use
the most detailed code available to identify it.
            
Top level sections do not have HS Codes. |
| `id` | integer | A unique identifier for this harmonized tariff system code.
            
To search for a list of child codes underneath a specific HS code, search for codes where the child's `parentHsCodeId` value matches the parent's `id` value. |
| `parentHsCodeId` | integer | The unique ID number of the parent HS code or HS code prefix.
            
To search for a list of child codes underneath a specific HS code, search for codes where the child's `parentHsCodeId` value matches the parent's `id` value. |
| `description` | string | A human readable description that identifies Code descriptive text for this Section, Chapter, Heading, or Subheading. |
| `system` | string | The system to which this HS code belongs. |
| `destinationCountry` | string | The destination country identified with this HS Code.  This value applies when certain products are classified in specific ways by
bilateral trade agreements. |
| `effDate` | string | For codes that have been expired or defined on specific dates, this value indicates the earliest
date for which this code is considered valid.
            
If this value is null, this code can be used for any valid date earlier than its end date. |
| `endDate` | string | For codes that have been expired or defined on specific dates, this value indicates the latest
date for which this code is considered valid.
            
If this value is null, this code can be used for any valid date later than its effective date. |

### HsCodeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### InspectResponseModel

Response model used as output for InspectLine API.

| Property | Type | Description |
|---|---|---|
| `determinationFactors` | array | A list of determination factors for a line that is being inspected through the InspectLine API. |

### Int64TaxProfileObjectReferenceModel

TaxProfile Service Object Reference Model

| Property | Type | Description |
|---|---|---|
| `identifier` | integer | Identifier or Id of data |
| `displayName` | string | Display name |
| `location` | string | Location |

### InternalServerErrorResponse

This is used to map the error details in response

| Property | Type | Description |
|---|---|---|
| `code` | integer | Status code in the response |
| `message` | string | Error message in the response |

### InvoiceMessageModel

Represents a message to be displayed on an invoice.

| Property | Type | Description |
|---|---|---|
| `content` | string | The content of the invoice message. |
| `lineNumbers` | array | The applicable tax line numbers and codes. |

### IsoCountryModel

Represents an ISO 3166 recognized country

| Property | Type | Description |
|---|---|---|
| `code` | string | The two character ISO 3166 country code |
| `alpha3Code` | string | The three character ISO 3166 country code |
| `name` | string | The full name of this country in uppercase.
            
For names in proper or formal case, or for names in other languages, please examine the `localizedNames` element for an appropriate name. |
| `isEuropeanUnion` | boolean | True if this country is a member of the European Union |
| `localizedNames` | array | A list of localized names in a variety of languages.
            
This list is maintained by the International Standards Organization. |
| `addressesRequireRegion` | boolean | Whether or not this country requires a region in postal addresses. |

### IsoCountryModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### IsoLocalizedName

Represents a language-specific localized name of a particular geographic entity such
as a country or a region.

| Property | Type | Description |
|---|---|---|
| `languageAlpha2Code` | string | The two-character alphanumeric code identifying the language in which this name is used.
            
Note that languageAlpha2Code and language3AlphaCode refer to the same language. |
| `languageAlpha3Code` | string | The three-character alphanumeric code identifying the language in which this name is used.
            
Note that languageAlpha2Code and language3AlphaCode refer to the same language. |
| `name` | string | The name of this geographic entity as known in this language. |

### IsoRegionModel

Represents a region, province, or state within a country

| Property | Type | Description |
|---|---|---|
| `countryCode` | string | The two-character ISO 3166 country code this region belongs to |
| `code` | string | The three character ISO 3166 region code |
| `name` | string | The full name, using localized characters, for this region, in uppercase.
            
For names in proper or formal case, or for names in other languages, please examine the `localizedNames` element for an appropriate name. |
| `classification` | string | The word in the local language that classifies what type of a region this represents |
| `streamlinedSalesTax` | boolean | For the United States, this flag indicates whether a U.S. State participates in the Streamlined
Sales Tax program.  For countries other than the US, this flag is null. |
| `localizedNames` | array | A list of localized names in a variety of languages.
            
This list is maintained by the International Standards Organization. |
| `isRegionTaxable` | boolean | Whether the region collects tax or not. This field will be populated for US country only and will be null for all the other countries. |

### IsoRegionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ItemAdditionalHSCodeDutyInputModel

Represents input model for additional HS Code Duty Details request.

| Property | Type | Description |
|---|---|---|
| `itemId` | integer | The unique ID of the item. |
| `companyId` | integer | The unique ID of the company. |
| `countryOfImport` | string | The country of import. |
| `countryOfExport` | string | The country of export. |
| `countryOfOrigin` | string | The country of origin. |
| `manufacturerName` | string | The manufacturer name. |
| `hscode` | string | The country of import. |
| `isAdditionalDuty` | boolean | The country of import. |

### ItemBulkUploadInputModel

Represents a bulk upload input model.

| Property | Type | Description |
|---|---|---|
| `items` | array | List of items |

### ItemBulkUploadOutputModel

Represents a bulk upload response model.

| Property | Type | Description |
|---|---|---|
| `total` | integer | Count of processed objects |
| `failed` | array | Dictionary of object and respective list of errors |

### ItemCatalogueInputModel

Represents an item in your company's product catalog.

| Property | Type | Description |
|---|---|---|
| `itemId` | integer | The unique ID number of this item. |
| `itemCode` | string | A unique code representing this item. |
| `description` | string | A friendly description of this item in your product catalog. |
| `taxCode` | string | The tax code of the item. |
| `itemType` | string | Type of item |
| `upc` | string | The universal product code of the item.
            
Deprecated - As of 6/25/2024, this field is deprecated. Instead of using this field, you can pass this value as a parameter. The parameter name is UPC. |
| `summary` | string | Long Summary for Item
            
Deprecated - As of 6/25/2024, this field is deprecated. Instead of using this field, you can pass this value as a parameter. The parameter name is Summary. |
| `itemGroup` | string | A way to group similar items. |
| `category` | string | A path to the category where item is included. |
| `source` | string | The source of creation of this item. |
| `sourceEntityId` | string | The unique identifier of this item at the source |
| `properties` | object | Additional key-description of the product. |
| `classifications` | array | Classifications Attached to the Product
Please note: `taxCode` (ProductCode for SystemCode `AVATAXCODE`) is being removed from `classifications`. You can still find it in the `taxCode` field. |
| `parameters` | array | Parameters Attached to the Product |
| `customParameters` | array | List of item custom parameters |

### ItemCatalogueOutputModel

Item Catalogue output model.

| Property | Type | Description |
|---|---|---|
| `total` | integer | Total number of items processed. |
| `result` | array | List of the items that is created, updated, deleted or failed (error) |

### ItemCatalogueResultModel

| Property | Type | Description |
|---|---|---|
| `itemId` | integer | The unique ID number of this item. |
| `itemCode` | string | A unique code representing this item. |
| `sourceEntityId` | string | The unique identifier of this item at the source |
| `itemEvent` | string | A CRUD event for item db operations |
| `errors` | array | Contains list of errors for item catalogue entry |

### ItemClassificationInputModel

Product classification input model.

| Property | Type | Description |
|---|---|---|
| `productCode` | string | The product code of an item in a given system. |
| `systemCode` | string | The system code in which the product belongs. |
| `country` | string | The country associated with the product. |

### ItemClassificationOutputModel

Product classification output model.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this product. |
| `itemId` | integer | The unique ID number of the item this product belongs to. |
| `systemId` | integer | The system id which the product belongs. |
| `productCode` | string | A unique code representing this item. |
| `systemCode` | string | A unique code representing this item. |
| `country` | string | A unique code representing this item. |
| `isPremium` | boolean | If there is an premium classification justification present for this classification |
| `classificationEvent` | string | This represents the type of classification event. |

### ItemClassificationOutputModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ItemCustomParametersModel

Class to accommodate Custom defined parameters

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this item custom parameter |
| `name` | string | A unique code representing this item custom parameter. |
| `value` | string | The value of the custom parameter for this item.
When creating or updating an item, you can specify custom parameter values
to store additional metadata or business-specific information. |

### ItemCustomParametersModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ItemHSCodeClassificationInputModel

Input model of the HS code classification.

| Property | Type | Description |
|---|---|---|
| `itemId` | integer | The unique item ID. |
| `countryOfDestinations` | array | Country of destination for this HS code classification.
Please provide all the values as valid 2-letter ISO 3166 country code.
Refer to 'ListCountries' api to get valid country code for any country if needed. |
| `isPremiumClassification` | boolean | Used for checking the premium classification status. |
| `isReclassification` | boolean | A field for checking whether this is a reclassification. |
| `isDisputed` | boolean | Whether this item classification is disputed. |
| `isPriority` | boolean | Whether this item classification is a priority classification. |
| `isExport` | boolean | the item is exported to other countries. |
| `isExportControl` | boolean | IsExportControl flag to identify cross border classification |
| `isCompliance` | boolean | Indicates whether this classification is for compliance purposes. |
| `instructions` | string | Instructions related to this item classification. |
| `language` | string | The language used in this item classification. |

### ItemHSCodeClassificationOutputModel

The output model for an HS code classification.

| Property | Type | Description |
|---|---|---|
| `total` | integer | The total items requested for classification. |
| `failed` | array | A list of failed HS code classifications. |

### ItemHSCodeClassificationSlaOutputModel

Represents a HsCodeClassification SLA Response for a given company.

| Property | Type | Description |
|---|---|---|
| `slaInHours` | integer | The SLA time in hours |

### ItemHSCodeClassificationStatusInputModel

ItemHsCodeClassificationStatusInputModel

| Property | Type | Description |
|---|---|---|
| `country` | string | The Country for which the item is getting classified |
| `status` | string | Status of the HS Code classification |
| `details` | string | The description for the HS Code classification created/updated |

### ItemHSCodeClassificationStatusModel

Represent HS code classification for a given item.

| Property | Type | Description |
|---|---|---|
| `id` | string | The unique ID of this HS code classification. |
| `companyId` | integer | The unique ID of the company that owns this HS code classification. |
| `itemId` | integer | A unique code representing the item |
| `country` | string | The country for which the item is getting classified. |
| `status` | string | The status of the HS code classification |
| `details` | string | The description for the HS code classification being created/updated. |
| `createdAt` | string | The date when this record was created. |
| `createdUserId` | integer | The ID of the user who created this record. |
| `modifiedAt` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The ID of the user who last modified this record. |
| `completedAt` | string | The date/time when the request for this record was completed. |

### ItemHSCodeClassificationStatusOutputModel

Item HSCode Classification Status Output Model

| Property | Type | Description |
|---|---|---|
| `name` | string | Status |
| `description` | string | Description |

### ItemHSCodeCvdAddDetailModel

Represents HS Code CVD (Countervailing Duty) and ADD (Anti-Dumping Duty) Details.

| Property | Type | Description |
|---|---|---|
| `type` | string | The type of duty (cvd, add, etc.). |
| `rate` | string | The rate for this duty. |
| `uom` | string | The unit of measure. |

### ItemHSCodeDutyDetailModel

Represents HS Code Duty Details for an item.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID of the HS Code Duty Detail. |
| `itemId` | integer | The unique ID of the item. |
| `companyId` | integer | The unique ID of the company. |
| `countryOfImport` | string | The country of import. |
| `countryOfExport` | string | The country of export. |
| `countryOfOrigin` | string | The country of origin. |
| `manufacturerName` | string | The manufacturer name. |
| `mfnRate` | string | The MFN rate. |
| `uom` | string | The unit of measure. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The user ID of the user who created this record. |
| `ftaDetails` | array | List of FTA details. |
| `cvdAddDetails` | array | List of CVD/ADD details. |
| `punitiveRateDetails` | array | List of punitive rate details. |
| `restrictionDetails` | array | List of restriction details. |

### ItemHSCodeFTADetailModel

Represents HS Code FTA (Free Trade Agreement) Details.

| Property | Type | Description |
|---|---|---|
| `name` | string | The name of the FTA. |
| `rate` | string | The rate for this FTA. |
| `uom` | string | The unit of measure. |

### ItemHSCodePunitiveRateDetailModel

Represents HS Code Punitive Rate Details.

| Property | Type | Description |
|---|---|---|
| `rate` | string | The rate for this punitive duty. |
| `uom` | string | The unit of measure. |
| `isStackable` | boolean | Whether this rate is stackable with other rates. |
| `isTaxOnTax` | boolean | Whether this is a tax on tax. |

### ItemHSCodeRestrictionDetailModel

Represents HS Code Restriction Details.

| Property | Type | Description |
|---|---|---|
| `type` | string | The type of restriction. |
| `regulation` | string | The regulation governing this restriction. |
| `name` | string | The name of the restriction. |
| `summary` | string | The summary of the restriction. |
| `governmentAgency` | string | The government agency responsible for this restriction. |
| `complianceTitle` | string | The compliance title. |
| `complianceMessage` | string | The compliance message. |
| `complianceCitation` | string | The compliance citation or reference. |

### ItemHSCodeVerificationFailedRowModel

A single failed row from an HS code verification batch request.

| Property | Type | Description |
|---|---|---|
| `rowIndex` | integer | Zero-based index of the element in the request array. |
| `itemId` | string | Item id for the row when available (string for JSON consistency). |
| `errors` | array | All error descriptions for this row. |
| `errorCode` | string | Primary error code for the row (when available). |

### ItemHSCodeVerificationInputModel

Represents a HsCodeClassification SLA Response for a given company.

| Property | Type | Description |
|---|---|---|
| `itemId` | integer | The unique ID of this item. |
| `country` | string | The country code for HS code verification (2-letter ISO 3166 country code). |
| `hsCode` | string | The HS code to verify. |

### ItemHSCodeVerificationOutputModel

Response for HS code verification batch requests. When Avalara.ItemMasterCoreService.Models.v2.ItemHSCodeVerificationOutputModel.failed is non-empty, no rows were persisted or published.

| Property | Type | Description |
|---|---|---|
| `total` | integer | Number of rows in the request (same as request array length). |
| `failed` | array | Rows that failed validation; empty when the full batch was accepted. |

### ItemImageDetailOutputModel

Item image output model with the image URL

| Property | Type | Description |
|---|---|---|
| `imageUrl` | string | The image url |
| `itemImageId` | string | Guid Primary key for ItemImage |
| `itemImageDetailId` | integer | Numeric primary key for ItemImage |
| `companyId` | integer | Gets or sets the company ID associated with the item image. |
| `itemId` | integer | Gets or sets the item ID. |
| `createdAt` | string | Gets or sets the creation timestamp of the item image. |
| `createdUserId` | integer | Gets or sets the ID of the user who created the item image. |
| `modifiedAt` | string | Gets or sets the last modification timestamp of the item image. |
| `modifiedUserId` | integer | Gets or sets the ID of the user who last modified the item image. |

### ItemImageDetailsModel

Item image details model

| Property | Type | Description |
|---|---|---|
| `itemImageId` | string | Guid Primary key for ItemImage |
| `itemImageDetailId` | integer | Numeric primary key for ItemImage |
| `companyId` | integer | Gets or sets the company ID associated with the item image. |
| `itemId` | integer | Gets or sets the item ID. |
| `createdAt` | string | Gets or sets the creation timestamp of the item image. |
| `createdUserId` | integer | Gets or sets the ID of the user who created the item image. |
| `modifiedAt` | string | Gets or sets the last modification timestamp of the item image. |
| `modifiedUserId` | integer | Gets or sets the ID of the user who last modified the item image. |

### ItemModel

Represents an item in your company's product catalog.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this item. |
| `companyId` | integer | The unique ID number of the company that owns this item. |
| `itemCode` | string | A unique code representing this item. |
| `taxCodeId` | integer | The unique ID number of the tax code that is applied when selling this item.
When creating or updating an item, you can either specify the Tax Code ID number or the Tax Code string;
you do not need to specify both values. |
| `taxCode` | string | The unique code string of the Tax Code that is applied when selling this item.
When creating or updating an item, you can either specify the Tax Code ID number or the Tax Code string;
you do not need to specify both values. |
| `description` | string | A friendly description of this item in your product catalog. |
| `itemGroup` | string | A way to group similar items. |
| `category` | string | A category of product |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `source` | string | Source of creation of this. |
| `sourceEntityId` | string | The unique identifier of this item at the source |
| `itemType` | string | Type of item |
| `upc` | string | Universal unique code for item
            
Deprecated - As of 6/25/2024, this field is deprecated. Instead of using this field, you can pass this value as a parameter. `The parameter name is UPC`. |
| `summary` | string | Long Summary for Item
            
Deprecated - As of 6/25/2024, this field is deprecated. Instead of using this field, you can pass this value as a parameter. `The parameter name is Summary`. |
| `classifications` | array | List of classifications that belong to this item.
A single classification consists of a productCode and a systemCode for a particular item.
            
Please note: `taxCode` (ProductCode for SystemCode `AVATAXCODE`) is being removed from `classifications`. You can still find it in the `taxCode` field. |
| `parameters` | array | List of item parameters. |
| `customParameters` | array | List of item custom parameters |
| `tags` | array | List of item tags. |
| `properties` | object | Additional key-description of the product. |
| `itemStatus` | array | List of item status |
| `taxCodeRecommendationStatus` | TaxCodeRecommendationStatusOutputModel | Item tax code recommendation status |
| `taxCodeRecommendations` | array | Item tax code recommendations |
| `taxCodeDetails` | ItemTaxCodeDetailsOutputModel | taxCode details for the item |
| `hsCodeClassificationStatus` | array | List of item parameters |
| `image` | ItemImageDetailsModel | Item image of an item |

### ItemModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ItemParameterModel

Represents a parameter associated with an item.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The id of the parameter. |
| `name` | string | The parameter's name. |
| `value` | string | The value for the parameter. |
| `unit` | string | The unit of measurement code for the parameter. |
| `itemId` | integer | The item id |
| `isNeededForCalculation` | boolean | This field identifies if parameter is needed for calculation |
| `isNeededForReturns` | boolean | This field identifies if parameter is needed for returns |
| `isNeededForClassification` | boolean | This field identifies if parameter is needed for classification |

### ItemParameterModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ItemPremiumClassificationInputModel

Represents a premium classification associated with an item's HS code for a system code.

| Property | Type | Description |
|---|---|---|
| `hsCode` | string | The HsCode for which this premium classification is being created. |
| `justification` | string | Justification why this HsCode is attached to this item. |
| `country` | string | The two-character ISO 3166 country code for which this premium classification is being created. |

### ItemPremiumClassificationOutputModel

Represents a Premium Classification output model associated with an item's SystemCode..

| Property | Type | Description |
|---|---|---|
| `id` | string | ItemPremiumClassificationDetailId |
| `itemCode` | string | Item associated with this premium classification. |
| `companyId` | integer | CompanyId with which the Item is associated. |
| `hsCode` | string | The HS code associated with this item's premium classification. |
| `systemCode` | string | SystemCode associated with this premium classificaitons. |
| `justification` | string | Justification why this HsCode is attached to this item. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The user who created the record. |
| `country` | string | The country code associated with this premium classification. |

### ItemPremiumClassificationOutputModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ItemRestrictionInputModel

Represents a parameter associated with an item.

| Property | Type | Description |
|---|---|---|
| `itemCode` | string | Item for which this restrictions exists |
| `companyId` | integer | CompanyId associated with the item |
| `hsCode` | string | The HsCode for which this restriction is getting created |
| `countryOfImport` | string | The Country Of Import for which this restriction is getting created |
| `countryOfExport` | string | The Country Of Export for which this restriction is getting create |
| `countryOfManufacture` | string | The Country Of Manufacture for which this restriction is getting create |
| `restrictionType` | string | Restriction Type of the Item |
| `regulation` | string | Regulation of the Item |
| `governmentAgency` | string | Government agency which is related for this restriction |
| `complianceMessage` | string | Message |

### ItemRestrictionOutputModel

Represents a parameter associated with an item.

| Property | Type | Description |
|---|---|---|
| `id` | string |  |
| `countryOfImport` | string | The Country Of Import for which this restriction is there |
| `countryOfExport` | string | The Country Of Export for which this restriction is there |
| `countryOfManufacture` | string | The Country Of Manufacture for which this restriction is there |
| `hsCode` | string | The HsCode for which this restriction is getting created |
| `itemCode` | string | Item for which this restrictions exists |
| `companyId` | integer | CompanyId associated with the item |
| `restrictionType` | string | Restriction Type of the Item |
| `regulation` | string | Regulation of the Item |
| `governmentAgency` | string | Government agency which is related for this restriction |
| `complianceMessage` | string | Message |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The user which created the record |

### ItemRestrictionOutputModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ItemReverseSyncEventDefinitionOutputModel

Item Reverse Sync Event Definition Output Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | Id |
| `name` | string | Name |
| `description` | string | Description |

### ItemReverseSyncRegistrationInputModel

Input model used to create a Connector Data Sync (reverse sync) webhook registration.
            
A registration tells Avalara which connector should be notified when an item-related
event occurs (currently `HSCodeAssigned`), the callback URL to invoke, and the
events the connector wishes to subscribe to.

| Property | Type | Description |
|---|---|---|
| `connectorName` | string | The connector name. This value is also used as the OAuth scope for the registration. |
| `url` | string | The webhook callback URL that the connector exposes to receive notifications. |
| `typeName` | string | The registration delivery channel (for example, Webhook). |
| `events` | string | The list of events this registration subscribes to. |

### ItemReverseSyncRegistrationOutputModel

Output model representing a Connector Data Sync (reverse sync) webhook registration.

| Property | Type | Description |
|---|---|---|
| `registrationId` | integer | The unique identifier for this registration. |
| `connectorName` | string | The connector name. This value is also used as the OAuth scope for the registration. |
| `companyId` | integer | The Avalara company identifier that owns this registration. |
| `url` | string | The webhook callback URL that the connector exposes to receive notifications. |
| `typeName` | string | The registration delivery channel (for example, Webhook). |
| `isActive` | boolean | Indicates whether this registration is currently active. |
| `events` | string | The list of events this registration subscribes to. |
| `modifiedDate` | string | The date and time when this record was last modified. |
| `modifiedUserId` | integer | The user ID who last modified this record. |
| `createdDate` | string | The date and time when this record was created. |
| `createdUserId` | integer | The user ID who created this record. |

### ItemReverseSyncRegistrationOutputModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ItemReverseSyncRegistrationUpdateModel

Update model for an existing Connector Data Sync (reverse sync) webhook registration.
            
Only the fields included in the request body will be updated.

| Property | Type | Description |
|---|---|---|
| `url` | string | The webhook callback URL that the connector exposes to receive notifications. |
| `typeName` | string | The registration delivery channel (for example, Webhook). Omit to leave the persisted value unchanged. |
| `events` | string | The list of events this registration subscribes to. |

### ItemStatusModel

Status Output Model

| Property | Type | Description |
|---|---|---|
| `name` | string | Status |
| `description` | string | Description |

### ItemStatusOutputModel

Output model for item status

| Property | Type | Description |
|---|---|---|
| `status` | string | Item Status |
| `modifiedDate` | string | Last modified date |

### ItemSyncModel

An abridged item model used for syncing product catalogs with AvaTax.

| Property | Type | Description |
|---|---|---|
| `itemCode` | string | A unique code representing this item. |
| `description` | string | A friendly description of the item. If your company has enrolled in Streamlined Sales Tax, this description must be auditable. |
| `itemGroup` | string | A group to which the item belongs. |
| `taxCode` | string | The tax code of the item (optional) |

### ItemTagDetailInputModel

| Property | Type | Description |
|---|---|---|
| `tagName` | string | The tag name. |
| `itemId` | integer | The unique ID number of this item. |
| `companyId` | integer | The unique ID number of the company that owns this item. |

### ItemTagDetailOutputModel

Represents a tag for an item in your company's product catalog.

| Property | Type | Description |
|---|---|---|
| `tagName` | string | The tag name. |
| `itemId` | integer | The unique ID number of this item. |
| `companyId` | integer | The unique ID number of the company that owns this item. |
| `itemTagDetailId` | integer | The unique ID number of the item-tag relation. |
| `tagId` | integer | The unique tag Id for the tags. |
| `createdDate` | string | The date when this record was created. |

### ItemTagDetailOutputModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ItemTaxCodeClassificationRequestInputModel

Represents a tax code classification request input model

| Property | Type | Description |
|---|---|---|
| `itemIds` | array | Item ids for which classification has to be initiated |

### ItemTaxCodeClassificationRequestOutputModel

Represents a tax code classification request output model

| Property | Type | Description |
|---|---|---|
| `requestId` | integer | The unique Request Id of classification request |
| `companyId` | integer | The unique ID number of the company that has created classification request. |
| `request` | string | The classification request |
| `status` | string | The status of classification request |
| `requestType` | string | The request type of classification request |
| `createdUserId` | integer | The User ID of the user who created this classification request. |
| `createdDate` | string | The date/time when this request was created. |
| `modifiedDate` | string | The date/time when this record was last modified. |

### ItemTaxCodeDetailsOutputModel

ItemTaxCodeDetailsOutputModel

| Property | Type | Description |
|---|---|---|
| `taxCode` | string | TaxCode assigned to Item |
| `description` | string | Description for the TaxCode |
| `isActive` | boolean | Provides if the TaxCode is Active or Not |

### ItemTaxCodeRecommendationStatusModel

Status Output Model

| Property | Type | Description |
|---|---|---|
| `name` | string | Status |
| `description` | string | Description |

### ItemTaxcodeRecommendationBaseBatchOutputModel

One recommended tax code (code, level, and Indix description) for bulk tax code recommendation responses.

| Property | Type | Description |
|---|---|---|
| `taxCode` | string | Recommended TaxCode |
| `level` | string | Recommended TaxCode Level |
| `taxCodeDescription` | string | Recommended TaxCode description (from Indix) |

### ItemTaxcodeRecommendationBatchStatusOutputModel

Represents the output model containing the status and results of a tax code recommendation batch.

| Property | Type | Description |
|---|---|---|
| `batchId` | integer | The unique ID of the batch. |
| `batchStatus` | string | The current processing status of the batch.
Possible values: "Pending", "Processing", "Completed", "Failed", "Deleted" |
| `value` | array | The list of items with their tax code recommendations.
This property is populated only when the batch status is "Completed". |
| `message` | string | An optional message providing additional information about the batch. |

### ItemTaxcodeRecommendationBatchesInputModel

Represents an input model of a single item for tax code recommendation batches (both synchronous and asynchronous).

| Property | Type | Description |
|---|---|---|
| `description` | string | A brief description of the item. |
| `category` | string | The category of the item.
For example: "Home > Kitchen > Mugs" |
| `itemType` | string | The type of item. (optional)
Examples: "Physical", "Digital", "Service", "Freight" |
| `upc` | string | The Universal Product Code (UPC) associated with the item. (optional) |
| `summary` | string | A summary or detailed description of the item. (optional) |

### ItemTaxcodeRecommendationBatchesOutputModel

Represents the output model for tax code recommendation batches (both synchronous and asynchronous).

| Property | Type | Description |
|---|---|---|
| `description` | string | A brief description of the item. |
| `category` | string | The category of the item. |
| `itemType` | string | The type of item. Examples: "Physical", "Digital", "Service", "Freight" |
| `upc` | string | The Universal Product Code (UPC) associated with the item. |
| `summary` | string | A summary or detailed description of the item. |
| `taxCodeRecommendations` | array | The list of generated tax code recommendations for this item. |

### ItemUploadErrorModel

Represents a item upload error model.

| Property | Type | Description |
|---|---|---|
| `rowIndex` | integer | Row index of an item |
| `itemCode` | string | Item code |
| `errors` | array | List of errors for against given item code |

### JobModel

A job associated with a certificate or customer. Used for $include=jobs on certificate/customer
fetch APIs, and as the request/response body for the standalone Jobs CRUD endpoints.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this job. |
| `jobNumber` | string | The job number of this job. |
| `name` | string | The name of this job. |
| `createdDate` | string | The date when this job was created. |
| `modifiedDate` | string | The date when this job was last modified. |
| `exposureZone` | ExposureZoneModel | The exposure zone associated with this job.
On input, only `id` is required. |
| `phases` | array | A list of phases associated with this job.
            
You can fetch this data by specifying `$include=phases` when calling a job fetch API.
Use `$include=phases,tasks` to also expand the tasks within each phase. |

### JobModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### JobPhaseModel

A phase within a certificate job.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this phase. |
| `name` | string | The name of this phase. |
| `jobId` | integer | The ID of the job this phase belongs to. |
| `phaseCode` | string | The unique code for this phase. |
| `createdDate` | string | The date when this phase was created. |
| `modifiedDate` | string | The date when this phase was last modified. |
| `tasks` | array | A list of tasks within this phase. |

### JobTaskModel

A task within a certificate job phase.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this task. |
| `phaseId` | integer | The ID of the phase this task belongs to. |
| `name` | string | The name of this task. |
| `taskCode` | string | The unique code for this task. |
| `createdDate` | string | The date when this task was created. |
| `modifiedDate` | string | The date when this task was last modified. |

### JurisNameModel

Represents JurisName Model

| Property | Type | Description |
|---|---|---|
| `jurisName` | string | Value |

### JurisNameModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### JurisdictionHierarchyModel

Represents information about a single legal taxing jurisdiction with parent jurisdiction

| Property | Type | Description |
|---|---|---|
| `parentId` | integer | ParentId of the Jurisdiction |
| `nexus` | array | List of Nexus details associated with the jurisdiction |
| `code` | string | The code that is used to identify this jurisdiction |
| `name` | string | The name of this jurisdiction |
| `type` | string | The type of the jurisdiction, indicating whether it is a country, state/region, city, for example. |
| `rate` | number | The base rate of tax specific to this jurisdiction. |
| `salesRate` | number | The "Sales" tax rate specific to this jurisdiction. |
| `signatureCode` | string | The Avalara-supplied signature code for this jurisdiction. |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `useRate` | number | The "Seller's Use" tax rate specific to this jurisdiction. |
| `city` | string | The city name of this jurisdiction |
| `county` | string | The county name of this jurisdiction |
| `country` | string | Name or ISO 3166 code identifying the country of this jurisdiction.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `shortName` | string | A short name of the jurisidiction |
| `stateFips` | string | State FIPS code |
| `countyFips` | string | County FIPS code |
| `placeFips` | string | City FIPS code |
| `id` | integer | Unique AvaTax Id of this Jurisdiction |
| `effectiveDate` | string | The date this jurisdiction starts to take effect on tax calculations |
| `endDate` | string | The date this jurisdiction stops to take effect on tax calculations |
| `isAcm` | boolean | The isAcm specific to this jurisdiction. |
| `isSst` | boolean | The isSst specific to this jurisdiction. |
| `createDate` | string | The CreateDate specific to this jurisdiction. |
| `isLocalAdmin` | boolean | IsLocalAdmin. |
| `modifiedDate` | string | ModifiedDate |
| `taxAuthorityTypeId` | integer | TaxAuthorityTypeId. |

### JurisdictionHierarchyModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### JurisdictionModel

Represents information about a single legal taxing jurisdiction

| Property | Type | Description |
|---|---|---|
| `code` | string | The code that is used to identify this jurisdiction |
| `name` | string | The name of this jurisdiction |
| `type` | string | The type of the jurisdiction, indicating whether it is a country, state/region, city, for example. |
| `rate` | number | The base rate of tax specific to this jurisdiction. |
| `salesRate` | number | The "Sales" tax rate specific to this jurisdiction. |
| `signatureCode` | string | The Avalara-supplied signature code for this jurisdiction. |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `useRate` | number | The "Seller's Use" tax rate specific to this jurisdiction. |
| `city` | string | The city name of this jurisdiction |
| `county` | string | The county name of this jurisdiction |
| `country` | string | Name or ISO 3166 code identifying the country of this jurisdiction.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `shortName` | string | A short name of the jurisidiction |
| `stateFips` | string | State FIPS code |
| `countyFips` | string | County FIPS code |
| `placeFips` | string | City FIPS code |
| `id` | integer | Unique AvaTax Id of this Jurisdiction |
| `effectiveDate` | string | The date this jurisdiction starts to take effect on tax calculations |
| `endDate` | string | The date this jurisdiction stops to take effect on tax calculations |
| `isAcm` | boolean | The isAcm specific to this jurisdiction. |
| `isSst` | boolean | The isSst specific to this jurisdiction. |
| `createDate` | string | The CreateDate specific to this jurisdiction. |
| `isLocalAdmin` | boolean | IsLocalAdmin. |
| `modifiedDate` | string | ModifiedDate |
| `taxAuthorityTypeId` | integer | TaxAuthorityTypeId. |

### JurisdictionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### JurisdictionNexusModel

Model to represent the detail of NexusTaxTpeGroup and TaxName for Jurisdiction

| Property | Type | Description |
|---|---|---|
| `taxTypeGroupId` | string | TaxTypeGroupId for Nexus of Jurisdiction |
| `nexusTaxTypeGroupId` | string | NexusTaxTypeGroupId for Nexus of Jurisdiction |
| `taxName` | string | TaxName for Nexus of Jurisdiction |
| `taxableNexus` | boolean | Shows if system nexus records are associated with tax collection |

### JurisdictionOverrideModel

Represents an override of tax jurisdictions for a specific address.
            
During the time period represented by EffDate through EndDate, all tax decisions for addresses matching
this override object will be assigned to the list of jurisdictions designated in this object.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this override. |
| `accountId` | integer | The unique ID number assigned to this account. |
| `description` | string | A description of why this jurisdiction override was created. |
| `line1` | string | The street address of the physical location affected by this override. |
| `city` | string | The city address of the physical location affected by this override. |
| `region` | string | Name or ISO 3166 code identifying the region within the country to be affected by this override.
            
Note that only United States addresses are affected by the jurisdiction override system.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `country` | string | The two character ISO-3166 country code of the country affected by this override.
            
Note that only United States addresses are affected by the jurisdiction override system. |
| `postalCode` | string | The postal code of the physical location affected by this override. |
| `effectiveDate` | string | The date when this override first takes effect.  Set this value to null to affect all dates up to the end date. |
| `endDate` | string | The date when this override will cease to take effect.  Set this value to null to never expire. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `jurisdictions` | array | A list of the tax jurisdictions that will be assigned to this overridden address. |
| `taxRegionId` | integer | The TaxRegionId of the new location affected by this jurisdiction override. |
| `boundaryLevel` | string | The boundary level of this override |
| `isDefault` | boolean | True if this is a default boundary |

### JurisdictionOverrideModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### JurisdictionRateTypeTaxTypeMappingModel

Represents a Jurisdiction with applicable TaxType, TaxSubType and RateType.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this Jurisdiction RateType TaxType Mapping. |
| `country` | string | Name or ISO 3166 code identifying the country of this jurisdiction.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `state` | string | Name or ISO 3166 code identifying the region of this jurisdiction.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `jurisdictionType` | string | Jurisdiction TypeId |
| `jurisdictionCode` | string | Jurisdiction Code |
| `longName` | string | Jurisdiction long name |
| `taxTypeId` | string | Tax Type to which this jurisdiction is applicable |
| `taxSubTypeId` | string | Tax Type to which this jurisdiction is applicable |
| `taxTypeGroupId` | string | Tax Type Group to which this jurisdiction is applicable |
| `rateTypeId` | string | Rate Type to which this jurisdiction is applicable |
| `stateFips` | string | StateFips value of this jurisdiction |
| `effectiveDate` | string | The date this jurisdiction starts to take effect on tax calculations |
| `endDate` | string | The date this jurisdiction stops to take effect on tax calculations |

### JurisdictionRateTypeTaxTypeMappingModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### JurisdictionTaxTypesAndSubTypesModel

One tax type + subtype combination for a jurisdiction.

| Property | Type | Description |
|---|---|---|
| `taxTypeId` | string | ID of the tax type. |
| `taxTypeDescription` | string | Text description of the tax type. |
| `taxSubTypeId` | string | ID of the tax subtype. |
| `taxSubTypeDescription` | string | Text description of the tax subtype. |
| `jurisdictionTaxTypeSubtypeDescription` | string | Summary tax type display name derived from tax type and subtype. |
| `rateTypes` | array | Populated when `$includeRateTypes=true` (default). Empty when rate types are omitted. |

### JurisdictionTaxTypesAndSubTypesModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |

### LiabilityParametersModel

The model for liability parameters definitions

| Property | Type | Description |
|---|---|---|
| `liabilityType` | string | The type of Returns liability report to be generated |
| `returnsReportType` | string | The type of Returns report to be generated |
| `hospitalityAccountId` | integer | The Hospitality Account ID with Subscription Type as AvaLoding |
| `year` | integer | Filter report based on the year |
| `month` | integer | Filter report based on the month. Accepts a single integer value between 1 and 12 representing the calendar month.
Validation behavior:
- If an invalid value is provided, the Execute button will be disabled in Swagger UI
- Invalid month value will result in a JsonFormatError when called through Postman |
| `country` | string | Filter report based on the country code |
| `region` | string | Filter report based on the region code or state code |

### LicenseKeyModel

Represents a license key for this account.

| Property | Type | Description |
|---|---|---|
| `accountId` | integer | The primary key of the account |
| `privateLicenseKey` | string | This is your private license key.  You must record this license key for safekeeping.
If you lose this key, you must contact the ResetLicenseKey API in order to request a new one.
Each account can only have one license key at a time. |
| `httpRequestHeader` | string | If your software allows you to specify the HTTP Authorization header directly, this is the header string you
should use when contacting Avalara to make API calls with this license key. |

### LineItemModel

Represents one line item in a transaction

| Property | Type | Description |
|---|---|---|
| `number` | string | The line number of this line within the document.  This can be any text that is useful to you, such as numeric line numbers, alphabetic line numbers, or other text. |
| `quantity` | number | Quantity of items in this line.  This quantity value should always be a positive value representing the quantity of product that changed hands, even when handling returns or refunds.
            
If not provided, or if set to zero, the quantity value is assumed to be one (1). |
| `amount` | number | Total amount for this line.  The amount represents the net currency value that changed hands from the customer (represented by the `customerCode` field) to the company (represented by the `companyCode`) field.
            
For sale transactions, this value must be positive.  It indicates the amount of money paid by the customer to the company.
            
For refund or return transactions, this value must be negative. |
| `addresses` | AddressesModel | The addresses to use for this transaction line.
            
If you set this value to `null`, or if you omit this element from your API call, then instead the transaction
will use the `addresses` from the document level.
            
If you specify any other value besides `null`, only addresses specified for this line will be used for this line. |
| `taxCode` | string | Tax Code - System or Custom Tax Code.
            
You can use your own tax code mapping or standard Avalara tax codes.  For a full list of tax codes, see `ListTaxCodes`. |
| `customerUsageType` | string | DEPRECATED - Date: 10/16/2017, Version: 17.11, Message: Please use `entityUseCode` instead. |
| `entityUseCode` | string | Entity Use Code - The client application customer or usage type.  This field allows you to designate a type of usage that
may make this transaction considered exempt by reason of exempt usage.
            
For a list of entity use codes, see the Definitions API `ListEntityUseCodes`. |
| `itemCode` | string | Item Code (SKU).  If you provide an `itemCode` field, the AvaTax API will look up the item you created with the `CreateItems` API call
and use all the information available about that item for this transaction. |
| `exemptionCode` | string | The customer Tax Id Number (tax_number) associated with a certificate - Sales tax calculation requests first determine if there is an applicable
ECMS entry available, and will utilize it for exemption processing. If no applicable ECMS entry is available, the AvaTax service
will determine if an Exemption Number field is populated or an Entity/Use Code is included in the sales tax calculation request,
and will perform exemption processing using either of those two options.
Note: This is same as 'exemptNo' in TransactionModel. |
| `discounted` | boolean | True if the document discount should be applied to this line.  If this value is false, or not provided, discounts will not be
applied to this line even if they are specified on the root `discount` element. |
| `taxIncluded` | boolean | Indicates whether the `amount` for this line already includes tax.
            
If this value is `true`, the final price of this line including tax will equal the value in `amount`.
            
If this value is `null` or `false`, the final price will equal `amount` plus whatever taxes apply to this line. |
| `revenueAccount` | string | Revenue Account (Customer Defined Field).
            
This field is available for you to use to provide whatever information your implementation requires.  It does not affect tax calculation. |
| `ref1` | string | Ref1 (Customer Defined Field)
            
This field is available for you to use to provide whatever information your implementation requires.  It does not affect tax calculation. |
| `ref2` | string | Ref2 (Customer Defined Field)
            
This field is available for you to use to provide whatever information your implementation requires.  It does not affect tax calculation. |
| `description` | string | Item description.
            
For Streamlined Sales Tax (SST) customers, this field is required if an unmapped `itemCode` is used. |
| `businessIdentificationNo` | string | VAT business identification number for the customer for this line item.  If you leave this field empty,
this line item will use whatever business identification number you provided at the transaction level.
            
If you specify a VAT business identification number for the customer in this transaction and you have also set up
a business identification number for your company during company setup, this transaction will be treated as a
business-to-business transaction for VAT purposes and it will be calculated according to VAT tax rules. |
| `taxOverride` | TaxOverrideModel | Specifies a tax override for this line. |
| `parameters` | array | Special parameters that apply to this line within this transaction.
            
To get a full list of available parameters, please use the `ListParameters` API. |
| `userDefinedFields` | array | Custom user fields/flex fields for this line. |
| `hsCode` | string | The Item code for Custom Duty / Global Import tax determination
Harmonized Tariff System code for this transaction.
            
For a list of harmonized tariff codes, see the Definitions API for harmonized tariff codes. |
| `merchantSellerId` | integer | DEPRECATED - Date: 04/15/2021, Version: 21.4, Message: Please use merchantSellerIdentifier instead.
ID of the merchant selling on the Marketplace. This field must be populated by Marketplace. |
| `merchantSellerIdentifier` | string | ID of the merchant selling on the Marketplace. This field must be populated by Marketplace. |
| `marketplaceLiabilityType` | string | This field will identify who is remitting Marketplace or Seller. This field must be populated by Marketplace. |
| `originationDocumentId` | string | The transaction's original ID in its origination system |
| `originationSite` | string | Synonym of Marketplace Origination. Name of the Marketplace where the transaction originated from. |
| `category` | string | Product category breadcrumbs. This is the full path to the category where item is included. Categories should be separated by “ > “.  Multiple category paths per item are accepted. In this case, category paths should be separated by “;”. |
| `summary` | string | A long description of the product. |

### LinkCertificatesModel

Represents a customer to whom you sell products and/or services.

| Property | Type | Description |
|---|---|---|
| `certificates` | array | An array of certificate ID numbers to link |

### LinkCustomersModel

Represents a customer to whom you sell products and/or services.

| Property | Type | Description |
|---|---|---|
| `customers` | array | An array of customerCodes that are exempted by this certificate |

### LocationModel

A location where this company does business.
Some jurisdictions may require you to list all locations where your company does business.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this location. |
| `companyId` | integer | The unique ID number of the company that operates at this location. |
| `locationCode` | string | A code that identifies this location.  Must be unique within your company. |
| `description` | string | A friendly name for this location. |
| `addressTypeId` | string | Indicates whether this location is a physical place of business or a temporary salesperson location. |
| `addressCategoryId` | string | Indicates the type of place of business represented by this location. |
| `isMarketplaceOutsideUsa` | boolean | Indicates whether the Marketplace is outside or in USA |
| `line1` | string | The first line of the physical address of this location. |
| `line2` | string | The second line of the physical address of this location. |
| `line3` | string | The third line of the physical address of this location. |
| `city` | string | The city of the physical address of this location. |
| `county` | string | The county name of the physical address of this location.  Not required. |
| `region` | string | Name or ISO 3166 code identifying the region within the country of the physical address of this location.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `postalCode` | string | The postal code or zip code of the physical address of this location. |
| `country` | string | Name or ISO 3166 code identifying the country of the physical address of this location.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `latitude` | number | Geospatial latitude measurement, in Decimal Degrees floating point format.
If provided along with longitude, these coordinates will be used for tax calculations
and will take precedence over the address fields. |
| `longitude` | number | Geospatial longitude measurement, in Decimal Degrees floating point format.
If provided along with latitude, these coordinates will be used for tax calculations
and will take precedence over the address fields. |
| `isDefault` | boolean | Set this flag to true to indicate that this is the default location for this company. |
| `isRegistered` | boolean | Set this flag to true to indicate that this location has been registered with a tax authority. |
| `dbaName` | string | If this location has a different business name from its legal entity name, specify the "Doing Business As" name for this location. |
| `outletName` | string | A friendly name for this location. |
| `effectiveDate` | string | The date when this location was opened for business, or null if not known. |
| `endDate` | string | If this place of business has closed, the date when this location closed business. |
| `lastTransactionDate` | string | The most recent date when a transaction was processed for this location.  Set by AvaTax. |
| `registeredDate` | string | The date when this location was registered with a tax authority.  Not required. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `settings` | array | Extra information required by certain jurisdictions for filing.
For a list of settings recognized by Avalara, query the endpoint "/api/v2/definitions/locationquestions".
To determine the list of settings required for this location, query the endpoint "/api/v2/companies/(id)/locations/(id)/validate". |
| `parameters` | array | List of location parameters. |

### LocationModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### LocationParameterModel

The parameter associated with a company location.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The ID number of the parameter. |
| `name` | string | The parameter's name. |
| `unit` | string | The parameter's value. |
| `value` | string | The value of the parameter. |
| `locationId` | integer | The ID of the company location the parameter associated with. |

### LocationParameterModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### LocationQuestionModel

Information about questions that the local jurisdictions require for each location

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this location setting type |
| `question` | string | This is the prompt for this question |
| `description` | string | If additional information is available about the location setting, this contains descriptive text to help
you identify the correct value to provide in this setting. |
| `regularExpression` | string | If available, this regular expression will verify that the input from the user is in the expected format. |
| `exampleValue` | string | If available, this is an example value that you can demonstrate to the user to show what is expected. |
| `jurisdictionName` | string | Indicates which jurisdiction requires this question |
| `jurisdictionType` | string | Indicates which type of jurisdiction requires this question |
| `jurisdictionCountry` | string | Indicates the country that this jurisdiction belongs to |
| `jurisdictionRegion` | string | Indicates the state, region, or province that this jurisdiction belongs to |
| `helpText` | string | Help and guidance for this specific question |
| `maxLength` | integer | Maximum length of the answer string |
| `required` | boolean | True if this question must be answered for this filing calendar |
| `dataType` | string | Data type of the answer |
| `staticOptions` | string |  |
| `unique` | boolean |  |

### LocationQuestionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### LocationSettingModel

Represents the answer to one local jurisdiction question for a location.

| Property | Type | Description |
|---|---|---|
| `questionId` | integer | The unique ID number of the location question answered. |
| `questionName` | string | The name of the question |
| `value` | string | The answer the user provided. |

### LocationValidationModel

Tells you whether this location object has been correctly set up to the local jurisdiction's standards

| Property | Type | Description |
|---|---|---|
| `settingsValidated` | boolean | True if the location has a value for each jurisdiction-required setting.
The user is required to ensure that the values are correct according to the jurisdiction; this flag
does not indicate whether the taxing jurisdiction has accepted the data you have provided. |
| `requiredSettings` | array | A list of settings that must be defined for this location |

### LockTransactionModel

Commit this transaction as permanent

| Property | Type | Description |
|---|---|---|
| `isLocked` | boolean | Set this value to be true to commit this transaction.
Committing a transaction allows it to be reported on a tax return.  Uncommitted transactions will not be reported. |

### MarketplaceLocationModel

Marketplace Location Output model

| Property | Type | Description |
|---|---|---|
| `region` | string | Marketplace Location State |
| `country` | string | Marketplace Location Country |
| `marketplaceId` | string | Marketplace Location Id |
| `marketplace` | string | Marketplace Location |
| `marketplaceAdoptionDate` | string | Marketplace Location Adoption Date |
| `marketplaceEndDate` | string | Marketplace Location End Date |
| `legislativeEffectiveDate` | string | Marketplace Location Legislative Effective Date |
| `enforcementDate` | string | Marketplace Location Enforcement Date |
| `createdDate` | string | Marketplace Location Created Date |
| `modifiedDate` | string | Marketplace Location Modified Date |

### MarketplaceLocationModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### MarketplaceModel

Marketplace Location Output model

| Property | Type | Description |
|---|---|---|
| `marketplaceId` | string | Marketplace Location Id |
| `marketplace` | string | Marketplace Location |

### MarketplaceModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### MemoryAlert

Memory alert information

| Property | Type | Description |
|---|---|---|
| `id` | string | Unique identifier for the alert |
| `title` | string | Title of the alert |
| `description` | string | Detailed description of the alert |
| `severity` | string | Severity level of the alert |
| `timestamp` | string | Timestamp when the alert was generated |
| `metrics` | object | Additional metrics associated with the alert |

### MemoryRecommendation

Memory optimization recommendation

| Property | Type | Description |
|---|---|---|
| `id` | string | Unique identifier for the recommendation |
| `title` | string | Title of the recommendation |
| `description` | string | Detailed description of the recommendation |
| `impact` | string | Impact of implementing the recommendation |
| `implementation` | string | Implementation guidance for the recommendation |
| `priority` | string | Priority level of the recommendation |
| `estimatedMemorySavingsMB` | number | Estimated memory savings in megabytes if recommendation is implemented |

### MemoryUsageStats

Memory usage statistics

| Property | Type | Description |
|---|---|---|
| `totalPhysicalMemory` | integer | Total physical memory available on the system in bytes |
| `totalPhysicalMemoryGB` | number | Total physical memory available on the system in GB |
| `availablePhysicalMemory` | integer | Available physical memory on the system in bytes |
| `availablePhysicalMemoryGB` | number | Available physical memory on the system in GB |
| `usedPhysicalMemory` | integer | Used physical memory on the system in bytes |
| `usedPhysicalMemoryGB` | number | Used physical memory on the system in GB |
| `physicalMemoryUsagePercentage` | number | Percentage of physical memory currently in use |
| `totalVirtualMemory` | integer | Total virtual memory available to the process in bytes |
| `totalVirtualMemoryGB` | number | Total virtual memory available to the process in GB |
| `availableVirtualMemory` | integer | Available virtual memory to the process in bytes |
| `availableVirtualMemoryGB` | number | Available virtual memory to the process in GB |
| `usedVirtualMemory` | integer | Used virtual memory by the process in bytes |
| `usedVirtualMemoryGB` | number | Used virtual memory by the process in GB |
| `virtualMemoryUsagePercentage` | number | Percentage of virtual memory currently in use |
| `managedHeapSize` | integer | Total size of the managed heap in bytes |
| `managedHeapSizeGB` | number | Total size of the managed heap in GB |
| `managedHeapUsed` | integer | Used portion of the managed heap in bytes |
| `managedHeapUsedGB` | number | Used portion of the managed heap in GB |
| `managedHeapFree` | integer | Free portion of the managed heap in bytes |
| `managedHeapFreeGB` | number | Free portion of the managed heap in GB |
| `managedHeapUsagePercentage` | number | Percentage of managed heap currently in use |
| `workingSetSize` | integer | Current working set size of the process in bytes |
| `workingSetSizeGB` | number | Current working set size of the process in GB |
| `privateMemorySize` | integer | Private memory size of the process in bytes |
| `privateMemorySizeGB` | number | Private memory size of the process in GB |
| `peakWorkingSetSize` | integer | Peak working set size of the process in bytes |
| `peakWorkingSetSizeGB` | number | Peak working set size of the process in GB |
| `peakVirtualMemorySize` | integer | Peak virtual memory size of the process in bytes |
| `peakVirtualMemorySizeGB` | number | Peak virtual memory size of the process in GB |
| `garbageCollectionGen0Count` | integer | Number of Gen0 garbage collections performed |
| `garbageCollectionGen1Count` | integer | Number of Gen1 garbage collections performed |
| `garbageCollectionGen2Count` | integer | Number of Gen2 garbage collections performed |
| `timestamp` | string | Timestamp when the memory statistics were collected |
| `machineName` | string | Name of the machine where the process is running |
| `processName` | string | Name of the process |
| `processId` | integer | Process ID |

### MemoryUsageTrend

Memory usage trend data

| Property | Type | Description |
|---|---|---|
| `dataPoints` | array | List of memory usage data points over time |
| `duration` | string | Duration of the trend analysis period |
| `averageMemoryUsage` | number | Average memory usage percentage over the trend period |
| `peakMemoryUsage` | number | Peak memory usage percentage during the trend period |
| `lowMemoryUsage` | number | Lowest memory usage percentage during the trend period |

### MrsCompanyModel

A company and account

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | The unique ID number of this company. |
| `companyName` | string | The name of this company, as shown to customers. |
| `accountId` | integer | The unique ID number of the account this company belongs to. |
| `accountName` | string | The name of this account, as shown to customers. |
| `tin` | string | The taxpayer identification number for the company |
| `companyCode` | string | The company code for the company |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### MrsCompanyModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### MultiDocumentLineItemModel

Represents one line item in a MultiDocument transaction

| Property | Type | Description |
|---|---|---|
| `companyCode` | string | Specify the code of the company for this line of transaction.
            
If you leave this value null, the `companyCode` at the root level will be used instead. |
| `reportingLocationCode` | string | Sets the sale location code (Outlet ID) for reporting this document to the tax authority.
            
If you leave this value `null`, the `reportingLocationCode` at the root level will be used instead. |
| `number` | string | The line number of this line within the document.  This can be any text that is useful to you, such as numeric line numbers, alphabetic line numbers, or other text. |
| `quantity` | number | Quantity of items in this line.  This quantity value should always be a positive value representing the quantity of product that changed hands, even when handling returns or refunds.
            
If not provided, or if set to zero, the quantity value is assumed to be one (1). |
| `amount` | number | Total amount for this line.  The amount represents the net currency value that changed hands from the customer (represented by the `customerCode` field) to the company (represented by the `companyCode`) field.
            
For sale transactions, this value must be positive.  It indicates the amount of money paid by the customer to the company.
            
For refund or return transactions, this value must be negative. |
| `addresses` | AddressesModel | The addresses to use for this transaction line.
            
If you set this value to `null`, or if you omit this element from your API call, then instead the transaction
will use the `addresses` from the document level.
            
If you specify any other value besides `null`, only addresses specified for this line will be used for this line. |
| `taxCode` | string | Tax Code - System or Custom Tax Code.
            
You can use your own tax code mapping or standard Avalara tax codes.  For a full list of tax codes, see `ListTaxCodes`. |
| `customerUsageType` | string | DEPRECATED - Date: 10/16/2017, Version: 17.11, Message: Please use `entityUseCode` instead. |
| `entityUseCode` | string | Entity Use Code - The client application customer or usage type.  This field allows you to designate a type of usage that
may make this transaction considered exempt by reason of exempt usage.
            
For a list of entity use codes, see the Definitions API `ListEntityUseCodes`. |
| `itemCode` | string | Item Code (SKU).  If you provide an `itemCode` field, the AvaTax API will look up the item you created with the `CreateItems` API call
and use all the information available about that item for this transaction. |
| `exemptionCode` | string | The customer Tax Id Number (tax_number) associated with a certificate - Sales tax calculation requests first determine if there is an applicable
ECMS entry available, and will utilize it for exemption processing. If no applicable ECMS entry is available, the AvaTax service
will determine if an Exemption Number field is populated or an Entity/Use Code is included in the sales tax calculation request,
and will perform exemption processing using either of those two options.
Note: This is same as 'exemptNo' in TransactionModel. |
| `discounted` | boolean | True if the document discount should be applied to this line.  If this value is false, or not provided, discounts will not be
applied to this line even if they are specified on the root `discount` element. |
| `taxIncluded` | boolean | Indicates whether the `amount` for this line already includes tax.
            
If this value is `true`, the final price of this line including tax will equal the value in `amount`.
            
If this value is `null` or `false`, the final price will equal `amount` plus whatever taxes apply to this line. |
| `revenueAccount` | string | Revenue Account (Customer Defined Field).
            
This field is available for you to use to provide whatever information your implementation requires.  It does not affect tax calculation. |
| `ref1` | string | Ref1 (Customer Defined Field)
            
This field is available for you to use to provide whatever information your implementation requires.  It does not affect tax calculation. |
| `ref2` | string | Ref2 (Customer Defined Field)
            
This field is available for you to use to provide whatever information your implementation requires.  It does not affect tax calculation. |
| `description` | string | Item description.
            
For Streamlined Sales Tax (SST) customers, this field is required if an unmapped `itemCode` is used. |
| `businessIdentificationNo` | string | VAT business identification number for the customer for this line item.  If you leave this field empty,
this line item will use whatever business identification number you provided at the transaction level.
            
If you specify a VAT business identification number for the customer in this transaction and you have also set up
a business identification number for your company during company setup, this transaction will be treated as a
business-to-business transaction for VAT purposes and it will be calculated according to VAT tax rules. |
| `taxOverride` | TaxOverrideModel | Specifies a tax override for this line. |
| `parameters` | array | Special parameters that apply to this line within this transaction.
            
To get a full list of available parameters, please use the `ListParameters` API. |
| `userDefinedFields` | array | Custom user fields/flex fields for this line. |
| `hsCode` | string | The Item code for Custom Duty / Global Import tax determination
Harmonized Tariff System code for this transaction.
            
For a list of harmonized tariff codes, see the Definitions API for harmonized tariff codes. |
| `merchantSellerId` | integer | DEPRECATED - Date: 04/15/2021, Version: 21.4, Message: Please use merchantSellerIdentifier instead.
ID of the merchant selling on the Marketplace. This field must be populated by Marketplace. |
| `merchantSellerIdentifier` | string | ID of the merchant selling on the Marketplace. This field must be populated by Marketplace. |
| `marketplaceLiabilityType` | string | This field will identify who is remitting Marketplace or Seller. This field must be populated by Marketplace. |
| `originationDocumentId` | string | The transaction's original ID in its origination system |
| `originationSite` | string | Synonym of Marketplace Origination. Name of the Marketplace where the transaction originated from. |
| `category` | string | Product category breadcrumbs. This is the full path to the category where item is included. Categories should be separated by “ > “.  Multiple category paths per item are accepted. In this case, category paths should be separated by “;”. |
| `summary` | string | A long description of the product. |

### MultiDocumentModel

A MultiDocument transaction represents a sale or purchase that occurred between more than two companies.
            
A traditional transaction requires exactly two parties: a seller and a buyer.  MultiDocument transactions can
involve a marketplace of vendors, each of which contributes some portion of the final transaction.  Within
a MultiDocument transaction, each individual buyer and seller pair are matched up and converted to a separate
document.  This separation of documents allows each seller to file their taxes separately.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this MultiDocument object. |
| `accountId` | integer | The unique ID number of the AvaTax customer account that created this MultiDocument object. |
| `code` | string | The transaction code of the MultiDocument transaction.
            
All individual transactions within this MultiDocument object will have this code as a prefix. |
| `type` | string | Indicates the type of MultiDocument transaction.  Common values are:
            
* SalesOrder - An estimate that is not permanently recorded
* SalesInvoice - An invoice that can be reported on a tax return
            
For more information about document types, see [DocumentType](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/DocumentType/) |
| `createdUserId` | integer | The user ID of the user who created this record. |
| `createdDate` | string | The date/time when this record was created. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `documents` | array | A separate document will exist for each unique combination of buyer and seller in this MultiDocument transaction. |

### MultiDocumentModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### MultiTaxFilingModel

Represents a listing of all tax calculation data for filings and for accruing to future filings.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing. |
| `companyId` | integer | The unique ID number of the company for this filing. |
| `month` | integer | The month of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `year` | integer | The year of the filing period for this tax filing.
The filing period represents the year and month of the last day of taxes being reported on this filing.
For example, an annual tax filing for Jan-Dec 2015 would have a filing period of Dec 2015. |
| `type` | string | Indicates whether this is an original or an amended filing. |
| `taxSummary` | FilingsTaxSummaryModel | A summary of all taxes combined for this period |
| `taxDetails` | array | A detailed breakdown of the taxes in this filing |
| `filingRegions` | array | A listing of regional tax filings within this time period. |

### MultiTaxFilingModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### MultiTaxFilingRegionModel

Regions

| Property | Type | Description |
|---|---|---|
| `country` | string | The two-character ISO-3166 code for the country. |
| `region` | string | The two or three character region code for the region. |
| `hasNexus` | boolean | Whether or not you have nexus in this region. |
| `status` | string | The current status of the filing region. |
| `regionTaxSummary` | FilingsTaxSummaryModel | A summary of all taxes compbined for this period |
| `regionTaxDetails` | array | A detailed breakdown of the taxes in this filing |
| `suggestReturns` | array | A list of tax returns in this region. |
| `returns` | array | A list of tax returns in this region. |

### MultiTaxFilingReturnModel

Filing Returns Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing return. |
| `filingCalendarId` | integer | The unique ID number of the filing calendar associated with this return. |
| `registrationId` | string | The registration ID from the return's filing calendar. |
| `status` | string | The current status of the filing return. |
| `filingFrequency` | string | The filing frequency of the return. |
| `filingType` | string | The filing type of the return. |
| `formName` | string | The name of the form. |
| `formCode` | string | The unique code of the form. |
| `taxFormCode` | string | The unique code of the form, prefixed by the country code. |
| `description` | string | A description for the return. |
| `taxAuthorityId` | integer | Tax Authority ID of this return |
| `filedDate` | string | The date the return was filed by Avalara. |
| `accrualType` | string | Accrual type of the return |
| `startPeriod` | string | The start date of this return |
| `endPeriod` | string | The end date of this return |
| `type` | string | The FilingTaskType for this return. |
| `liabilityCurrencyCode` | string | The three-character liability currency code. |
| `filingCalendarCurrencyCode` | string | The three-character filing calendar currency code for this return. For example if country is 'US' then currency is 'USD'. Similarly, if country is 'CA' then currency is 'CAD', etc. |
| `canUnlock` | boolean | Can the return be unlocked or not. |
| `returnTaxSummary` | FilingsTaxSummaryModel | A summary of all taxes compbined for this period |
| `returnTaxDetails` | array | A detailed breakdown of the taxes in this filing |
| `excludedCarryOverCredits` | FilingReturnCreditModel | The excluded carry over credit documents |
| `appliedCarryOverCredits` | FilingReturnCreditModel | The applied carry over credit documents |
| `totalAdjustments` | number | Total amount of adjustments on this return |
| `adjustments` | array | The Adjustments for this return. |
| `totalAugmentations` | number | Total amount of augmentations on this return |
| `augmentations` | array | The Augmentations for this return. |
| `totalPayments` | number | Total amount of payments on this return |
| `payments` | array | The payments for this return. |
| `attachments` | array | The attachments for this return. |

### NaturalLanguageSearchRequestModel

Request model for natural language search

| Property | Type | Description |
|---|---|---|
| `query` | string | Natural language query to search for items |

### NaturalLanguageSearchResponseModel

Response model for natural language search

| Property | Type | Description |
|---|---|---|
| `intent` | string | Intent of the search query (e.g., "GET" for read operations, "WRITE" for write operations) |
| `filters` | object | Structured filters extracted from the natural language query |

### NewAccountModel

Represents information about a newly created account

| Property | Type | Description |
|---|---|---|
| `accountId` | integer | This is the ID number of the account that was created |
| `accountDetailsEmailedTo` | string | This is the email address to which credentials were mailed |
| `createdDate` | string | The date and time when this account was created |
| `emailedDate` | string | The date and time when account information was emailed to the user |
| `limitations` | string | If this account includes any limitations, specify them here |
| `licenseKey` | string | The license key of the account that was created |
| `paymentUrl` | string | The payment url where the payment method can be set up |

### NewAccountRequestModel

Represents a request for a new account with Avalara for a new subscriber.
Contains information about the account requested and the rate plan selected.

| Property | Type | Description |
|---|---|---|
| `offer` | string | The offer code provided to you by your Avalara business development contact.
            
This code controls what services and rates the customer will be provisioned with upon creation.
            
If you do not know your offer code, please contact your Avalara business development representative. |
| `connectorId` | string | The id associated with the connector |
| `campaign` | string | If your Avalara business development representative requests, please provide the campaign ID associated with your
signup process.  This campaign identifier helps Avalara match users to the context in which they learned about the product
to help improve the accuracy of our messaging.
            
The `campaign` field must be either null or a value provided to you by an Avalara business development representative.
If you provide an unexpected value in this field, your API call will fail. |
| `leadSource` | string | If your Avalara business development representative requests, please provide the lead source value associated with your
signup process.  This lead source identifier helps Avalara match users to the context in which they learned about the product
to help improve the accuracy of our messaging.
            
The `leadSource` field must be either null or a value provided to you by an Avalara business development representative.
If you provide an unexpected value in this field, your API call will fail. |
| `effectiveDate` | string | The date on which the account should take effect.  If null, defaults to today.
            
You should leave this value `null` unless specifically requested by your Avalara business development manager. |
| `endDate` | string | The date on which the account should expire.
            
You should leave this value `null` unless specifically requested by your Avalara business development manager. |
| `accountName` | string | The name of the account to create |
| `website` | string | Website of the new customer whose account is being created.
            
It is strongly recommended to provide the customer's website URL, as this will help our support representatives better
assist customers. |
| `paymentMethodId` | string | Payment Method to be associated with the account.
            
This is strictly to be used internally unless your Avalara business development manager specifically asks you to provide this value
while attempting to create an account. |
| `firstName` | string | First name of the primary contact person for this account |
| `lastName` | string | Last name of the primary contact person for this account |
| `title` | string | Title of the primary contact person for this account |
| `phoneNumber` | string | Phone number of the primary contact person for this account |
| `email` | string | Email of the primary contact person for this account |
| `username` | string | The username to be associated with the user created.
If this is not provided, email address will be used as the username. |
| `userPassword` | string | If instructed by your Avalara business development manager, set this value to a temporary password to permit the user to continue their onboarding process.
            
If this value is null, a temporary password is generated by the system and emailed to the user.
            
The user will then be asked to choose a permanent password when they first log on to the AvaTax website. |
| `welcomeEmail` | string | This option controls what type of a welcome email is sent when the account is created.
            
* `Normal` - A standard welcome email will be sent.
* `Suppressed` - No email will be sent.
* `Custom` - If your Avalara business development representative provides you with a customized welcome email for your customers, please select this option. |
| `companyAddress` | CompanyAddress | Address information of the account being created. |
| `companyCode` | string | Company code to be assigned to the company created for this account.
            
If no company code is provided, this will be defaulted to "DEFAULT" company code. |
| `properties` | array | Properties of the primary contact person for this account |
| `acceptAvalaraTermsAndConditions` | boolean | Set this to true if and only if the owner of the newly created account accepts Avalara's terms and conditions for your account.
            
Reading and accepting Avalara's terms and conditions is necessary in order for the account to receive a license key. |
| `haveReadAvalaraTermsAndConditions` | boolean | Set this to true if and only if the owner of the newly created account has fully read Avalara's terms and conditions for your account.
            
Reading and accepting Avalara's terms and conditions is necessary in order for the account to receive a license key. |
| `marketingContext` | object | A dynamic key-value pair for the marketing context information |
| `accountType` | string | Type of the account to be created. Regular, Firm or FirmClient |
| `isTest` | boolean | Set this to true if this is a test account |
| `taxPayerIdNumber` | string | United States Taxpayer ID number, usually your Employer Identification Number if you are a business or your
Social Security Number if you are an individual.
This value is required if the address provided is inside the US and if you subscribed to the Avalara Managed Returns or SST Certified Service Provider service. Otherwise it is optional. |

### NewFirmClientAccountRequestModel

Represents a request for a new account with Avalara for a new Firm client.

| Property | Type | Description |
|---|---|---|
| `accountName` | string | The name of the account to create |
| `firstName` | string | First name of the primary contact person for this account |
| `lastName` | string | Last name of the primary contact person for this account |
| `title` | string | Title of the primary contact person for this account |
| `phoneNumber` | string | Phone number of the primary contact person for this account |
| `email` | string | Email of the primary contact person for this account |
| `companyCode` | string | Company code to be assigned to the company created for this account.
            
If no company code is provided, this will be defaulted to "DEFAULT" company code. |
| `companyAddress` | CompanyAddress | Address information of the account being created. |
| `taxPayerIdNumber` | string | United States Taxpayer ID number, usually your Employer Identification Number if you are a business or your
Social Security Number if you are an individual.
This value is required if the address provided is inside the US. Otherwise it is optional. |
| `properties` | array | Properties of the primary contact person for this account |

### NexusByAddressModel

Contains information about nexus jurisdictions that were declared
as a result of a call to `DeclareNexusByAddress`.  For each address,
this object model contains a list of the nexus objects that were declared
according to the geocoding that corresponds to this address.

| Property | Type | Description |
|---|---|---|
| `address` | DeclareNexusByAddressModel | The address that was provided by the user in the call to `DeclareNexusByAddress` |
| `declaredNexus` | array | List of all nexus objects that were affected by declaring nexus at the address specified
by `address`. |

### NexusByTaxFormModel

Identifies all nexus that match a particular tax form

| Property | Type | Description |
|---|---|---|
| `formCode` | string | The code of the tax form that was requested |
| `companyId` | integer | The company ID of the company that was used to load the companyNexus array.  If this value is null, no company data was loaded. |
| `nexusDefinitions` | array | A list of all Avalara-defined nexus that are relevant to this tax form |
| `companyNexus` | array | A list of all currently-defined company nexus that are related to this tax form |

### NexusForReturnsModel

Reponse model for the returns specific nexus fetch API

| Property | Type | Description |
|---|---|---|
| `id` | integer | The nexus's id |
| `companyId` | integer | Company Id |
| `assignedToCountryId` | integer | For region nexus, the assigned id for the country.
For country nexus, null. |
| `country` | string | The two character ISO-3166 country code of the country in which this company declared nexus. |
| `region` | string | The two or three character ISO region code of the region, state, or province in which this company declared nexus. |
| `jurisName` | string | Jurisdiction Name |
| `nexusTaxTypeGroup` | string | Nexus Tax Type Group |
| `nexusTypeId` | string | Nexus Type |
| `hasLocalNexus` | boolean | Has Local Nexus? |
| `localNexusType` | string | Local Nexus Tax Type or null if no local nexus |
| `sstNexusId` | integer | The id of the SST nexus record if there is one. |
| `sstType` | string | If has SST Nexus, the nexus type id of the nexus |
| `effectiveDate` | string | Min the effective Date can be |
| `endDate` | string | Max the end date can be |
| `sstEffectiveDate` | string | SST Effective Date |
| `sstEndDate` | string | SST End Date |
| `isRemoteSeller` | boolean | Has nexus parameter IsRemoteSeller? |

### NexusForReturnsModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NexusForReturnsRequestModel

Request model for the returns specific nexus fetch API

| Property | Type | Description |
|---|---|---|
| `nexusTaxTypeGroup` | string | Description of the desired nexus tax type group (e.g. SalesAndUse, Lodging, etc.) |
| `nexusTypeId` | string | The nexus type id desired (optional) |
| `localNexusTypeId` | string | The local nexus type id desired (optional) |
| `showHistorical` | boolean | Flag indicating whether the response should include inactive nexus entries (optional) |
| `showSSTOnly` | boolean | Flag indicating whether to only include SST nexus entries in the response (optional) |

### NexusModel

Represents a declaration of nexus within a particular taxing jurisdiction.
            
To create a nexus declaration for your company, you must first call the Definitions API `ListNexus` to obtain a
list of Avalara-defined nexus.  Once you have determined which nexus you wish to declare, you should customize
only the user-selectable fields in this object.
            
The user selectable fields for the nexus object are `companyId`, `effectiveDate`, `endDate`, `localNexusTypeId`,
`taxId`, `nexusTypeId`, `hasPermanentEstablishment`, and `isSellerImporterOfRecord`.
            
When calling `CreateNexus` or `UpdateNexus`, all values in your nexus object except for the user-selectable fields
must match an Avalara-defined system nexus object.  You can retrieve a list of Avalara-defined system nexus objects
by calling `ListNexus`.  If any data does not match, AvaTax may not recognize your nexus declaration.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this declaration of nexus.
            
This field is defined automatically when you declare nexus.  You do not need to provide a value for this field. |
| `companyId` | integer | The unique ID number of the company that declared nexus.
            
This field is user-selectable and should be provided when creating or updating a nexus object. |
| `country` | string | Name or ISO 3166 code identifying the country in which this company declared nexus.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `jurisTypeId` | string | DEPRECATED - Date: 12/20/2017, Version: 18.1, Message: Please use jurisdictionTypeId instead.
The jurisdiction type of the jurisdiction in which this company declared nexus. |
| `jurisdictionTypeId` | string | The type of the jurisdiction in which this company declared nexus.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `jurisCode` | string | The code identifying the jurisdiction in which this company declared nexus.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `jurisName` | string | The common name of the jurisdiction in which this company declared nexus.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `effectiveDate` | string | The date when this nexus began.  If not known, set to null.
            
This field is user-selectable and should be provided when creating or updating a nexus object. |
| `endDate` | string | If this nexus will end or has ended on a specific date, set this to the date when this nexus ends.
            
This field is user-selectable and should be provided when creating or updating a nexus object. |
| `shortName` | string | The short name of the jurisdiction.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `signatureCode` | string | The signature code of the boundary region as defined by Avalara.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `stateAssignedNo` | string | The state assigned number of this jurisdiction.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `nexusTypeId` | string | The type of nexus that this company is declaring.
            
If you are voluntarily declaring nexus in a jurisdiction, you should select `SalesOrSellersUseTax` for your
nexus type option.  This option allows you to calculate tax correctly whether you are selling in-state or
shipping from an out-of-state location.
            
If you are legally obligated to declare nexus due to physical presence or other sufficient nexus, you
should select `SalesTax`.  This indicates that, as a legal requirement, your company must always collect
and remit full sales tax in this jurisdiction.
            
If you are participating in the Streamlined Sales Tax program, your SST administrator will select nexus
settings for you in all SST jurisdictions.  Do not select any SST options by yourself.
            
This field is user-selectable and should be provided when creating or updating a nexus object. |
| `sourcing` | string | Indicates whether this nexus is defined as origin or destination nexus.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `hasLocalNexus` | boolean | True if you are also declaring local nexus within this jurisdiction.
Many U.S. states have options for declaring nexus in local jurisdictions as well as within the state.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `localNexusTypeId` | string | If you are declaring local nexus within this jurisdiction, this indicates whether you are declaring only
a specified list of local jurisdictions, all state-administered local jurisdictions, or all local jurisdictions.
            
This field is user-selectable and should be provided when creating or updating a nexus object. |
| `hasPermanentEstablishment` | boolean | Set this value to true if your company has a permanent establishment within this jurisdiction.
            
This field is user-selectable and should be provided when creating or updating a nexus object. |
| `taxId` | string | Optional - the tax identification number under which you declared nexus.
            
This field is user-selectable and should be provided when creating or updating a nexus object. |
| `streamlinedSalesTax` | boolean | DEPRECATED - Date: 4/29/2017, Version: 19.4, Message: Please use isSSTActive instead.
For the United States, this flag indicates whether this particular nexus falls within a U.S. State that participates
in the Streamlined Sales Tax program.  For countries other than the US, this flag is null.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `isSSTActive` | boolean | For the United States, this flag indicates whether this particular nexus falls within a U.S. State that participates
in the Streamlined Sales Tax program and if the account associated with the Nexus has an active AvaTaxCsp subscription.
For countries other than the US, this flag is null.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `createdDate` | string | The date when this record was created.
            
This field is defined automatically when you declare nexus.  You do not need to provide a value for this field. |
| `createdUserId` | integer | The User ID of the user who created this record.
            
This field is defined automatically when you declare nexus.  You do not need to provide a value for this field. |
| `modifiedDate` | string | The date/time when this record was last modified.
            
This field is defined automatically when you declare nexus.  You do not need to provide a value for this field. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record.
            
This field is defined automatically when you declare nexus.  You do not need to provide a value for this field. |
| `taxTypeGroup` | string | The type group of nexus that this company is declaring
Use [ListTaxTypeGroups](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListTaxTypeGroups/) API for a list of nexus tax type groups.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`.
NOTE: This optional field will trigger nexus subtype lookup when populated. When using make sure TaxTypeGroup matches corresponding NexusTaxTypeGroup |
| `nexusTaxTypeGroup` | string | The type of nexus that this company is declaring.Replaces NexusTypeId.
Use [ListNexusTaxTypeGroups](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListNexusTaxTypeGroups/) API for a list of nexus tax type groups.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `taxAuthorityId` | integer | A unique ID number of the tax authority that is associated with this nexus.
            
This field is defined by Avalara.  All Avalara-defined fields must match an Avalara-defined nexus object found by calling `ListNexus`. |
| `isSellerImporterOfRecord` | boolean | For nexus declarations at the country level, specifies whether this company is considered the importer of record in this nexus region.
            
Some taxes only apply if the seller is the importer of record for a product.  In cases where companies are working together to
ship products, there may be mutual agreement as to which company is the entity designated as importer of record.  The importer
of record will then be the company designated to pay taxes marked as being obligated to the importer of record.
            
Set this value to `true` to consider your company as the importer of record and collect these taxes.  Leave this value as false
or null and taxes will be calculated as if your company is not the importer of record.
            
This value may also be set during each transaction API call.  See `CreateTransaction()` for more information.
            
This field is user-selectable and should be provided when creating or updating a nexus object. |
| `taxName` | string | A description of corresponding tax type applied to the nexus.
            
When a custom nexus is created, it'll have to be matched to a system nexus to be validated successfully. The matched system nexus has a
field to describe the tax type applied to it, that field will be copied over to the nexus that is being created.
            
This field is defined by Avalara. Its main purpose is to give a simple description of the tax type associated with the nexus so
users have a better understanding of the nexus when it is displayed. |
| `parameters` | array | List of nexus parameters. |
| `taxableNexus` | boolean | Shows if system nexus records are associated with tax collection |

### NexusModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NexusParameterDetailModel

Represents a parameter associated with a nexus.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The id of the parameter. |
| `name` | string | The parameter's name. |
| `value` | string | The value for the parameter. |
| `unit` | string | The unit of measurement code for the parameter. |
| `nexusId` | integer | The nexus id |

### NexusParameterDetailModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NexusSummaryModel

Nexus summary model

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | Company Id |
| `nexusSummary` | array | Nexus summary for this company |

### NexusTaxTypeGroupCountModel

Nexus tax type groupe with count

| Property | Type | Description |
|---|---|---|
| `nexusTaxTypeGroup` | string | Which nexus tax type group |
| `count` | integer | How many nexus in the group |

### NexusTaxTypeGroupModel

Represents a group of tax types

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this nexus tax type group. |
| `nexusTaxTypeGroupId` | string | The unique human readable Id of this nexus tax type group. |
| `description` | string | The description of this nexus tax type group. |
| `subscriptionTypeId` | integer | If this tax type group requires a subscription, this contains the ID number of the subscription type required to use it. |
| `subscriptionDescription` | string | If this tax type group requires a subscription, this contains the friendly name of the subscription type required to use it. |
| `tabName` | string | The name of the tab in the AvaTax website corresponding to this tax type group. |
| `showColumn` | boolean | True if this tax type group is displayed in the user interface of the AvaTax website. |

### NexusTaxTypeGroupModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NotFoundErrorResponse

This is used to map the error details in response

| Property | Type | Description |
|---|---|---|
| `code` | integer | Status code in the response |
| `message` | string | Error message in the response |

### NoticeCommentModel

Represents communication between Avalara and the company regarding the processing of a tax notice.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this notice. |
| `noticeId` | integer | The ID of the notice this comment is attached too |
| `date` | string | The date this comment was entered |
| `comment` | string | TaxNoticeComment |
| `commentUserId` | integer | TaxNoticeCommentUserId |
| `commentUserName` | string | TaxNoticeCommentUserName |
| `commentTypeId` | integer | taxNoticeCommentTypeId |
| `commentType` | string | taxNoticeCommentType |
| `commentLink` | string | TaxNoticeCommentLink |
| `taxNoticeFileName` | string | TaxNoticeFileName |
| `resourceFileId` | integer | resourceFileId |
| `documentId` | integer | documentId |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `attachmentUploadRequest` | ResourceFileUploadRequestModel | An attachment to the detail |

### NoticeCommentModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeCustomerFundingOptionModel

Tax Authority Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax notice customer FundingOption. |
| `description` | string | The description name of this tax authority FundingOption. |
| `activeFlag` | boolean | A flag if the FundingOption is active |
| `sortOrder` | integer | sort order of the FundingOptions |

### NoticeCustomerFundingOptionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeCustomerTypeModel

Tax Authority Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax notice customer type. |
| `description` | string | The description name of this tax authority type. |
| `activeFlag` | boolean | A flag if the type is active |
| `sortOrder` | integer | sort order of the types |

### NoticeCustomerTypeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeFilingTypeModel

Tax Notice FilingType Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax notice customer type. |
| `description` | string | The description name of this tax authority type. |
| `activeFlag` | boolean | A flag if the type is active |
| `sortOrder` | integer | sort order of the types |

### NoticeFilingTypeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeFinanceModel

Represents estimated financial results from responding to a tax notice.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The Unique Id of the Finance Model |
| `noticeId` | integer | The unique ID of the the tax notice associated with the the finance detail |
| `noticeDate` | string | The date of the notice |
| `dueDate` | string | The due date of the notice |
| `noticeNumber` | string | The sequential number of the notice |
| `taxDue` | number | The amount of tax due on the notice |
| `penalty` | number | The amound of penalty listed on the notice |
| `interest` | number | The amount of interest listed on the notice |
| `credits` | number | The amount of credits listed on the notice |
| `taxAbated` | number | The amount of tax abated on the notice |
| `customerPenalty` | number | The amount of customer penalty on the notice |
| `customerInterest` | number | The amount of customer interest on the notice |
| `cspFeeRefund` | number | The amount of CSP Fee Refund on the notice |
| `fileName` | string | The name of the file attached to the finance detail |
| `paymentMethod` | string | The payment method on the notice |
| `resourceFileId` | integer | The ResourceFileId of the finance detail attachment |
| `documentId` | integer | documentId |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `attachmentUploadRequest` | ResourceFileUploadRequestModel | An attachment to the finance detail |

### NoticeFinanceModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeModel

Represents a letter received from a tax authority regarding tax filing.
These letters often have the warning "Notice" printed at the top, which is why
they are called "Notices".

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this notice. |
| `companyId` | integer | The unique ID number of the company to which this notice belongs. |
| `statusId` | integer | The status id of the notice |
| `status` | string | The status of the notice |
| `receivedDate` | string | The received date of the notice |
| `closedDate` | string | The closed date of the notice |
| `totalRemit` | number | The total remmitance amount for the notice |
| `customerTypeId` | string | NoticeCustomerTypeID can be retrieved from the definitions API |
| `country` | string | Name or ISO 3166 code identifying the country that sent this notice.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `region` | string | Name or ISO 3166 code identifying the region within the country that sent this notice.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `taxAuthorityId` | integer | The tax authority id of the notice |
| `filingFrequency` | string | The filing frequency of the notice |
| `filingTypeId` | string | The filing type of the notice |
| `ticketReferenceNo` | string | The ticket reference number of the notice |
| `ticketReferenceUrl` | string | The ticket reference url of the notice |
| `salesForceCase` | string | The sales force case of the notice |
| `salesForceCaseUrl` | string | The URL to the sales force case |
| `taxPeriod` | string | The tax period of the notice |
| `reasonId` | integer | The notice reason id |
| `reason` | string | The notice reason |
| `typeId` | integer | The tax notice type id |
| `type` | string | The tax notice type description |
| `customerFundingOptionId` | string | The notice customer funding options |
| `priorityId` | string | The priority of the notice |
| `customerComment` | string | Comments from the customer on this notice |
| `hideFromCustomer` | boolean | Indicator to hide from customer |
| `expectedResolutionDate` | string | Expected resolution date of the notice |
| `showResolutionDateToCustomer` | boolean | Indicator to show customer this resolution date |
| `closedByUserId` | integer | The unique ID number of the user that closed the notice |
| `createdByUserName` | string | The user who created the notice |
| `modifiedUserName` | string | The user who modified the notice |
| `closedByUserName` | string | The user who closed the notice |
| `ownedByUserId` | integer | The unique ID number of the user that owns the notice |
| `description` | string | The description of the notice |
| `revenueContactId` | integer | The id of the revenue contact |
| `complianceContactId` | integer | The id of the compliance contact |
| `taxFormCode` | string | The tax form code of the notice |
| `documentReference` | string | The document reference of the notice |
| `jurisdictionName` | string | The jurisdiction name of the notice |
| `jurisdictionType` | string | The jurisdiction type of the notice |
| `comments` | array | Additional comments on the notice |
| `finances` | array | Finance details of the notice |
| `responsibility` | array | Notice Responsibility Details |
| `rootCause` | array | Notice Root Cause Details |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `registrationId` | string | The registration id of the notice |

### NoticeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticePriorityModel

Tax Notice Priority Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax notice customer Priority. |
| `description` | string | The description name of this tax authority Priority. |
| `activeFlag` | boolean | A flag if the Priority is active |
| `sortOrder` | integer | sort order of the Prioritys |

### NoticePriorityModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeReasonModel

Tax Notice Reason Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax notice customer type. |
| `description` | string | The description name of this tax authority type. |
| `activeFlag` | boolean | A flag if the type is active |
| `sortOrder` | integer | sort order of the types |

### NoticeReasonModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeResponsibilityDetail

NoticeResponsibility Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing frequency. |
| `noticeId` | integer | TaxNoticeId |
| `taxNoticeResponsibilityId` | integer | TaxNoticeResponsibilityId |

### NoticeResponsibilityDetailFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeResponsibilityDetailModel

NoticeResponsibility Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing frequency. |
| `noticeId` | integer | TaxNoticeId |
| `taxNoticeResponsibilityId` | integer | TaxNoticeResponsibilityId |
| `description` | string | The description name of this filing frequency |

### NoticeResponsibilityModel

NoticeResponsibility Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this notice responsibility. |
| `description` | string | The description name of this notice responsibility |
| `isActive` | boolean | Defines if the responsibility is active |
| `sortOrder` | integer | The sort order of this responsibility |

### NoticeResponsibilityModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeRootCauseDetail

NoticeRootCause Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing frequency. |
| `noticeId` | integer | TaxNoticeId |
| `taxNoticeRootCauseId` | integer | TaxNoticeRootCauseId |

### NoticeRootCauseDetailFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeRootCauseDetailModel

NoticeRootCause Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this filing frequency. |
| `noticeId` | integer | TaxNoticeId |
| `taxNoticeRootCauseId` | integer | TaxNoticeRootCauseId |
| `description` | string | The description name of this root cause |

### NoticeRootCauseModel

NoticeRootCause Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this notice RootCause. |
| `description` | string | The description name of this notice RootCause |
| `isActive` | boolean | Defines if the RootCause is active |
| `sortOrder` | integer | The sort order of this RootCause |

### NoticeRootCauseModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeStatusModel

Tax Notice Status Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax authority type. |
| `description` | string | The description name of this tax authority type. |
| `isOpen` | boolean | True if a tax notice in this status is considered 'open' and has more work expected to be done before it is closed. |
| `sortOrder` | integer | If a list of status values is to be displayed in a dropdown, they should be displayed in this numeric order. |
| `activeFlag` | boolean | The active Flag of this tax authority type. |

### NoticeStatusModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NoticeTypeModel

Tax Notice Type Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax notice customer type. |
| `description` | string | The description name of this tax authority type. |
| `activeFlag` | boolean | A flag if the type is active |
| `sortOrder` | integer | sort order of the types |

### NoticeTypeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### NotificationModel

Represents a single notification.
            
A notification is a message from Avalara that may have relevance to your business.  You may want
to regularly review notifications and then dismiss them when you are certain that you have addressed
any relevant concerns raised by this notification.
            
An example of a notification would be a message about new software, or a change to AvaTax that may
affect you, or a potential issue with your company's tax profile.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique id of the notification. |
| `accountId` | integer | The unique ID number of the account that received this notification. |
| `companyId` | integer | If this notification was tied to a specific company, this will be the
unique ID number of the company that received the notification.  Notifications that
are tied to accounts will have a `NULL` value for `companyId`. |
| `referenceObject` | string | The type name of object referred to by this notification, if any.
            
Some notifications may include information about a related data object.
            
For example, if this notification was related to a nexus declaration, the `referenceObject` field would
be  `Nexus` and the `referenceId` field would be the unique ID number of that nexus. |
| `referenceId` | integer | The unique reference Id number of the object referred to by this notification, if any.
            
Some notifications may include information about a related data object.
            
For example, if this notification was related to a nexus declaration, the `referenceObject` field would
be  `Nexus` and the `referenceId` field would be the unique ID number of that nexus. |
| `severityLevelId` | string | The severity level of the notification. |
| `category` | string | The category of this notification.
            
Notification categories are a useful way to group related notifications together. Category names may change
over time.
            
For Example: "Backdated Transactions" or "Nexus Jurisdiction Alerts", or "Certificate Expiration". |
| `topic` | string | The topic of this notification.
            
Notification topics contain information about the notification.  They are a summary of the issue and can
help you decide what type of action to take.
            
For Example: "Backdated Transactions" or "Nexus Jurisdiction Alerts", or "Certificate Expiration". |
| `message` | string | The message for this notification.  This is a friendly description of the notification and any relevant
information that can help you decide what kind of action, if any, to take in response. |
| `needsAction` | boolean | If this notification object requires user action to resolve, this value will be set to true. |
| `actionName` | string | If there is a specific action suggested by this notification, this is the name of the action.
            
An action is a suggested next step such as "Review Your Tax Profile."  If an action is suggested,
you should give the viewer a hyperlink to the location referred to by `actionLink` and give the
hyperlink the name `actionName`. |
| `actionLink` | string | If there is a specific action suggested by this notification, this is the URL of the action.
            
An action is a suggested next step such as "Review Your Tax Profile."  If an action is suggested,
you should give the viewer a hyperlink to the location referred to by `actionLink` and give the
hyperlink the name `actionName`. |
| `actionDueDate` | string | If there is a specific action suggested by this notification, and if this action is requested
by a specific due date, this value will be the due date for the action.
            
An action is a suggested next step such as "Review Your Tax Profile."  If an action is suggested,
you should give the viewer a hyperlink to the location referred to by `actionLink` and give the
hyperlink the name `actionName`.
            
For actions that have deadlines, such as "Confirm your tax registration before filing", this value
will be set to the deadline date for the action.  Otherwise, this value will be null. |
| `dismissed` | boolean | When a user has finished reviewing a notification, they may opt to dismiss it by calling the
`DismissNotification` API.  This API marks the notification as dismissed, and dismissed notifications
will generally not appear in most user interfaces. |
| `dismissedByUserId` | integer | If this notification has been dismissed, this indicates the unique ID number of the user that
dismissed the notification. |
| `dismissedDate` | string | If this notification has been dismissed, this indicates the timestamp (in UTC time) when the user
dismissed the notification. |
| `expireDate` | string | If this notification is time sensitive, this is the latest date when the notification should be
displayed to the user. |
| `createdUserId` | integer | The unique ID number of the user who created the notification. |
| `createdDate` | string | The UTC timestamp of the time when this notification was created. |
| `modifiedUserId` | integer | The unique ID number of the user who most recently modified this notification. |
| `modifiedDate` | string | The UTC timestamp of the time when this notification was last modified. |

### NotificationModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ObjectDeletedErrorModel

| Property | Type | Description |
|---|---|---|
| `code` | string |  |
| `number` | integer |  |
| `message` | string |  |
| `description` | string |  |
| `faultCode` | string |  |
| `faultSubCode` | string |  |
| `helpLink` | string |  |
| `refersTo` | string |  |
| `severity` | string |  |

### OfferModel

Gets the response for the offer request

| Property | Type | Description |
|---|---|---|
| `id` | string | Id of the transaction |
| `offerMessage` | string | Message indicating what action took place |

### Operation

| Property | Type | Description |
|---|---|---|
| `value` | object |  |
| `path` | string |  |
| `op` | string |  |
| `from` | string |  |

### OriginalApiRequestResponseModel

Represents the exact API request and response from the original transaction API call, if available

| Property | Type | Description |
|---|---|---|
| `request` | CreateTransactionModel | API request |
| `response` | TransactionModel | API response |

### ParameterModel

An extra property that can change the behavior of tax transactions.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this property. |
| `category` | string | DEPRECATED - Date: 07/25/2018, Version: 18.7, Message: This field is deprecated and will return null.
The category grouping of this parameter.  When your user interface displays a large number of parameters, they should
be grouped by their category value. |
| `name` | string | The name of the property.  To use this property, add a field on the `parameters` object of a [CreateTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/) call. |
| `dataType` | string | The data type of the property. |
| `helpText` | string | Help text to be shown to the user when they are filling out this parameter.  Help text may include HTML links to additional
content with more information about a parameter. |
| `serviceTypes` | array | A list of service types to which this parameter applies. |
| `prompt` | string | DEPRECATED - Date: 07/25/2018, Version: 18.7, Message: This field is deprecated and will return null.
The prompt you should use when displaying this parameter to a user.  For example, if your user interface displays a
parameter in a text box, this is the label you should use to identify that text box. |
| `regularExpression` | string | DEPRECATED - Date: 07/25/2018, Version: 18.7, Message: This field is deprecated and will return null.
If your user interface permits client-side validation of parameters, this string is a regular expression you can use
to validate the user's data entry prior to submitting a tax request. |
| `label` | string | Label that helps the user to identify a parameter |
| `helpUrl` | string | A help url that provides more information about the parameter |
| `attributeType` | string | The type of parameter as determined by its application, e.g. Product, Transaction, Calculated |
| `attributeSubType` | string | The sub-type of parameter as determined by its application. |
| `values` | array | If the parameter is of enumeration data type, then this list will be populated with all of the possible enumeration values. |
| `measurementType` | string | The unit of measurement type of the parameter |
| `isNeededForCalculation` | boolean | This field identifies if parameter is needed for calculation |
| `isNeededForReturns` | boolean | This field identifies if parameter is needed for returns |
| `isNeededForClassification` | boolean | This field identifies if parameter is needed for classification |

### ParameterModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ParameterUsageModel

usage of system defined parameters.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this property. |
| `parameterId` | integer | The id of the parameter. |
| `productCode` | string | Product code for the parameter usage item. |
| `country` | string | The country for the parameter usage item. |
| `region` | string | The state for the parameter usage item. |
| `systemId` | integer | System Id for the parameter usage item |
| `taxTypeId` | string | tax type for the parameter usage item. |
| `attributeType` | string | The type of parameter as determined by its application, e.g. Product, Transaction, Calculated |
| `attributeSubType` | string | The sub-type of parameter as determined by its application. |
| `name` | string | The name of the property.  To use this property, add a field on the `parameters` object of a [CreateTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/) call. |
| `dataType` | string | The data type of the property. |
| `helpText` | string | Help text to be shown to the user when they are filling out this parameter.  Help text may include HTML links to additional
content with more information about a parameter. |
| `label` | string | Label that helps the user to identify a parameter |
| `helpUrl` | string | A help url that provides more information about the parameter |
| `values` | array | If the parameter is of enumeration data type, then this list will be populated with all of the possible enumeration values. |
| `valueDescriptions` | array | If the parameter is of enumeration data type, then this list will be populated with description for each enum value. |
| `measurementType` | string | The unit of measurement type of the parameter |

### ParameterUsageModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### PasswordChangeModel

Password Change Model

| Property | Type | Description |
|---|---|---|
| `oldPassword` | string | Old Password |
| `newPassword` | string | New Password |

### PatchOperation

Represents a single patch operation

| Property | Type | Description |
|---|---|---|
| `op` | string | The operation to perform (add, replace, remove, etc.) |
| `path` | string | Path to the property being modified |
| `value` | string | Value as a string (for add and replace operations) |

### PingResultModel

Ping Result Model

| Property | Type | Description |
|---|---|---|
| `version` | string | Version number |
| `authenticated` | boolean | Returns true if you provided authentication for this API call; false if you did not. |
| `authenticationType` | string | Returns the type of authentication you provided, if authenticated |
| `authenticatedUserName` | string | The username of the currently authenticated user, if any. |
| `authenticatedUserId` | integer | The ID number of the currently authenticated user, if any. |
| `authenticatedAccountId` | integer | The ID number of the currently authenticated user's account, if any. |
| `authenticatedCompanyId` | integer | The ID number of the currently authenticated user's company, if any. |
| `crmid` | string | The connected Salesforce account. |

### PoNumberModel

Represents a purchase order number for a transaction

| Property | Type | Description |
|---|---|---|
| `id` | integer | Unique ID number |
| `poNumber` | string | Purchase order number. |

### PointOfSaleDataRequestModel

Point-of-Sale Data Request Model

| Property | Type | Description |
|---|---|---|
| `companyCode` | string | A unique code that references a company within your account. |
| `documentDate` | string | The date associated with the response content. Default is current date. This field can be used to backdate or postdate the response content. |
| `responseType` | string | The format of your response. Formats include JSON, CSV, and XML. |
| `taxCodes` | array | A list of tax codes to include in this point-of-sale file. If no tax codes are specified, response will include all distinct tax codes associated with the Items within your company. |
| `itemCodes` | array | A list of item codes to include in this point-of-sale file. If no item codes are specified, responese will include all distinct item codes associated with the Items within your company. |
| `locationCodes` | array | A list of location codes to include in this point-of-sale file. If no location codes are specified, response will include all locations within your company. |
| `includeJurisCodes` | boolean | Set this value to true to include Juris Code in the response. |
| `partnerId` | string | A unique code assoicated with the Partner you may be working with. If you are not working with a Partner or your Partner has not provided you an ID, leave null. |

### PostalCodeModel

Represents a PostalCode and its associated data like: country, region, effective dates, etc.

| Property | Type | Description |
|---|---|---|
| `country` | string | Country this PostalCode locates in |
| `region` | string | The Region/State/Province this PostalCode locates in |
| `taxRegionId` | integer | An Avalara assigned TaxRegion Id associated to the PostalCode |
| `effDate` | string | The date when the PostalCode becomes effective |
| `endDate` | string | The date when the PostalCode becomes expired |
| `postalCode` | string | The postalCode |

### PostalCodeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### PowerOfAttorneyCheckModel

Response when checking if a company has a POA on file with Avalara

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | companyId of the request |
| `country` | string | Country POA is for |
| `region` | string | Region POA is for |
| `activePoa` | boolean | Notes if there is an actice POA |
| `effectiveDate` | string | Effective Date of the POA |
| `expirationDate` | string | End Date of POA |
| `availablePoa` | ResourceFileDownloadResult | POA download |

### PreferredProgramModel

A preferred program is a customs and/or duty program that can be used to handle cross-border transactions.
Customers who sign up for a preferred program may obtain better terms for their customs and duty payments.
            
To indicate that your company has signed up for a preferred program, specify the `code` value from this
object as the value for the `AvaTax.LC.PreferredProgram` parameter in your transaction.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number representing this preferred program. |
| `code` | string | A code that identifies this preferred program.  To select this program, specify this code
value in the `AvaTax.LC.PreferredProgram` parameter. |
| `originCountry` | string | The ISO 3166 country code for the origin permitted by this program |
| `destinationCountry` | string | The ISO 3166 country code for the destination permitted by this program |
| `effectiveDate` | string | The earliest date for which this preferred program can be used in AvaTax.  If `null`, this preferred program
is valid for all dates earlier than `endDate`. |
| `endDate` | string | The latest date for which this preferred program can be used in AvaTax.  If `null`, this preferred program
is valid for all dates later than `effectiveDate`. |

### PreferredProgramModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ProblemDetails

| Property | Type | Description |
|---|---|---|
| `type` | string |  |
| `title` | string |  |
| `status` | integer |  |
| `detail` | string |  |
| `instance` | string |  |

### ProductClassificationSystemModel

Represents a product classification system.

| Property | Type | Description |
|---|---|---|
| `systemId` | integer | Its Integer SystemId value for System |
| `systemCode` | string | The System code for this System. |
| `description` | string | A friendly human-readable name representing this System. |
| `customsValue` | string | custom value set for the system |
| `countries` | array | List of all countries that belong to the system including |

### ProductClassificationSystemModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ProductSystemCountryModel

Represents a System Country.

| Property | Type | Description |
|---|---|---|
| `systemCountryId` | integer | Its Integer SystemCountryId value for SystemCountry |
| `systemId` | integer | Its Integer SystemId value for SystemCountry |
| `country` | string | string value of country code for SystemCountry |
| `effDate` | string | DateTime as EffDate for SystemCountry |
| `endDate` | string | DateTime as EffDate for SystemCountry |

### ProvisionStatusModel

Contains information about a company's exemption certificate status.
            
This model can be used to determine if your company is able to use the Customers, Certificates, and
CertExpressInvites APIs within AvaTax.

| Property | Type | Description |
|---|---|---|
| `status` | string | The status of exemption certificate setup for this company.
            
If this value is `Finished`, this company will then be able to use the Customers, Certificates, and
CertExpressInvites APIs within AvaTax. |
| `accountId` | integer | The accountId of the company represented by this status |
| `companyId` | integer | The AvaTax company represented by this status |

### QueryRequestModel

Represents a complex query request to parse using query filter guidelines from Microsoft REST standards

| Property | Type | Description |
|---|---|---|
| `filter` | string | A list of conditions to filter objects. |
| `include` | string | A list of included commands for this fetch operation. |
| `maxResults` | integer | For pagination: This is the maximum number of results to return. |
| `startIndex` | integer | For pagination: This is the index of the first result. |
| `sortBy` | string | Sorts the resulting objects in a specific manner. |

### RateItemModel

Represents a single tax rate item

| Property | Type | Description |
|---|---|---|
| `rate` | number | The tax rate as a decimal (e.g., 0.20 for 20%) |
| `displayName` | string | The display name formatted as " ()" (e.g., "20.0% (VAT/GST)") |
| `taxName` | string | The tax name (e.g., "VAT/GST") |
| `jurisCode` | string | The jurisdiction code |
| `jurisName` | string | The jurisdiction name |
| `jurisdictionTypeId` | string | The jurisdiction type ID |
| `country` | string | The country code |
| `rateTypeId` | string | The rate type ID |
| `taxTypeGroupId` | string | The tax type group ID |
| `taxSubType` | string | The tax sub type ID |

### RateItemModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### RateModel

Indicates one element of a sales tax rate.

| Property | Type | Description |
|---|---|---|
| `rate` | number | The sales tax rate for general tangible personal property in this jurisdiction. |
| `name` | string | A readable name of the tax or taxing jurisdiction related to this tax rate. |
| `type` | string | The type of jurisdiction associated with this tax rate. |

### RateType1703Model

Represents RateType1703 Model

| Property | Type | Description |
|---|---|---|
| `rateTypeIdSK` | integer | RateTypeIdSK |
| `rateTypeId` | string | RateTypeId |
| `description` | string | Description |

### RateType1703ModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### RateTypeModel

Rate type Model

| Property | Type | Description |
|---|---|---|
| `id` | string | The unique ID number of this rate type. |
| `description` | string | Description of this rate type. |
| `country` | string | Country code for this rate type |

### RateTypeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### RateTypeTaxTypeMappingModel

Represents RateTypeTaxTypeMappingModel Model

| Property | Type | Description |
|---|---|---|
| `rateTypeTaxTypeMappingId` | integer | TaxTypeMappingId |
| `taxTypeMappingId` | integer | TaxTypeMappingId |
| `rateTypeIdSK` | integer | RateTypeIdSK |
| `rateTypeId` | string | RateTypeId |

### RateTypeTaxTypeMappingModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### RateTypesModel

Rate types Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this rate type. |
| `rateType` | string | The name of this rateType |
| `description` | string | The description of this rate type. |

### RateTypesModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### RebuildFilingsModel

Rebuild a set of filings.

| Property | Type | Description |
|---|---|---|
| `rebuild` | boolean | Set this value to true in order to rebuild the filings. |

### ReconstructedApiRequestResponseModel

This model contains a reconstructed CreateTransaction request object that could potentially be used
to recreate this transaction.
            
Note that the API changes over time, and this reconstructed model is likely different from the exact request
that was originally used to create this transaction.

| Property | Type | Description |
|---|---|---|
| `request` | CreateTransactionModel | API request |

### ReconstructedMultiDocumentModel

Contains information about the original API request and response that created
a MultiDocument object.

| Property | Type | Description |
|---|---|---|
| `request` | CreateMultiDocumentModel | The original request that was used to create a MultiDocument object. |

### RefreshECommerceTokenInputModel

A model used to request the refresh of a CertCapture eCommerce token.

| Property | Type | Description |
|---|---|---|
| `token` | string | The token that requires its expiration to be extended. |

### RefundTransactionModel

Refund a committed transaction

| Property | Type | Description |
|---|---|---|
| `refundTransactionCode` | string | The transaction code for the refund.  This code will be saved to the `ReturnInvoice` transaction, and does not need to match the code of the original sale. |
| `refundDate` | string | The date of the refund.  For customers using Avalara's Managed Returns Service, this date controls the month in which the refund
transaction will be reported on a tax filing. |
| `refundType` | string | Type of this refund.
            
To submit a full refund, specify `Full`.
            
To refund only specific lines from the transaction, specify `Partial` and indicate the lines you wish to apply in the `refundLines` field.
            
To refund the tax that was paid in the previous transaction, specify `TaxOnly`.
            
To issue a percentage-based discount, specify `Percentage`. |
| `refundPercentage` | number | The percentage for refund.
            
This value only applies if you choose `refundType = Percentage` or `refundType = Partial`. |
| `refundLines` | array | If you chose a refund of type `Partial`, this indicates which lines from the original transaction are being refunded. |
| `referenceCode` | string | A user-defined reference field containing information about this refund. |

### RemoveTransactionLineModel

Model to specify lines to be removed

| Property | Type | Description |
|---|---|---|
| `companyCode` | string | company code |
| `transactionCode` | string | document code for the transaction to add lines |
| `documentType` | string | document type |
| `lines` | array | List of line numbers to be removed |
| `renumber` | boolean | ption to renumber lines after removal. After renumber, the line number becomes: "1", "2", "3", ... |

### ReportAuditLogFilterInputModel

Represents a filter within audit log report input parameters.

| Property | Type | Description |
|---|---|---|
| `name` | string | The name of the filter (column name). |
| `values` | array | The values for this filter. |

### ReportAuditLogFilterModel

Represents a filter within audit log report parameters.

| Property | Type | Description |
|---|---|---|
| `name` | string | The name of the filter (column name). |
| `values` | array | The values for this filter. |

### ReportAuditLogModel

An input model for requesting an export of audit logs

| Property | Type | Description |
|---|---|---|
| `reportType` | string | The type of the report (e.g., "audit"). |
| `reports` | array | The list of reports for this audit log report. |
| `startDate` | string | The start date for the audit log report. |
| `endDate` | string | The end date for the audit log report. |
| `compression` | string | The compression type for the report output (e.g., "NONE", "GZIP"). |
| `reportSource` | string | The source of the report (e.g., "AUDITLOGS"). |

### ReportAuditLogParametersModel

The output model for audit log report parameter definitions.

| Property | Type | Description |
|---|---|---|
| `reportType` | string | The type of the report (e.g., "audit"). |
| `reports` | array | The list of reports for this audit log report. |
| `startDate` | string | The start date for the audit log report. |
| `endDate` | string | The end date for the audit log report. |
| `compression` | string | The compression type for the report output (e.g., "NONE", "GZIP"). |

### ReportAuditLogReportInputModel

Represents a report within audit log report input parameters.

| Property | Type | Description |
|---|---|---|
| `reportSubType` | string | The report sub-type (e.g., "account"). |
| `filters` | array | The filters for this report. |

### ReportAuditLogReportModel

Represents a report within audit log report parameters.

| Property | Type | Description |
|---|---|---|
| `reportSubType` | string | The report sub-type (e.g., "account"). |
| `filters` | array | The filters for this report. |

### ReportAuditLogResponseModel

A model for displaying audit log report task metadata

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique identifier of the report task |
| `accountId` | integer | The account id associated with the report |
| `parameters` | ReportAuditLogParametersModel | The parameters used to build the report |
| `status` | string | The current status of the report building task |
| `size` | integer | The size of the report file, if available |
| `format` | string | The format of the report file |
| `file` | string | The name of the report file, if available |
| `createdDate` | string | The time when the report task was initiated |
| `createdUserId` | integer | The Id of the user who initiated this task |
| `createdUser` | string | The userName of the user who initiated the report task |
| `completedDate` | string | The time when the report was finished building, if completed |
| `reportSource` | string | The source of the report |

### ReportCodeOptionModel

Represents ReportCodeOption Model

| Property | Type | Description |
|---|---|---|
| `stateAssignedCode` | string | Value |
| `label` | string | Label |
| `jurisName` | string | JurisName |

### ReportCodeOptionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ReportModel

A model for displaying report task metadata

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique identifier of the report task |
| `accountId` | integer | The ID of the account the reported transactions are from |
| `companyId` | integer | The ID of the company the reported transactions are from |
| `reportType` | string | The type of the report: ExportDocumentLine, etc. |
| `parameters` | ReportParametersModel | The parametes used to build the report |
| `status` | string | The current status of the report building task |
| `size` | integer | The size of the report file, if available |
| `format` | string | The format of the report file |
| `file` | string | The name of the report file, if available |
| `createdDate` | string | The time when the report task was initiated |
| `createdUserId` | integer | The Id of the user who initiated this task |
| `createdUser` | string | The userName of the user who initiated the report task |
| `completedDate` | string | The time when the report was finished building, if completed |

### ReportModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ReportParametersModel

The output model for report parameter definitions

| Property | Type | Description |
|---|---|---|
| `startDate` | string | The start date filter used for your report |
| `endDate` | string | The end date filter used for your report |
| `country` | string | The country filter used for your report |
| `state` | string | The state filter used for your report |
| `dateFilter` | string | The date type filter used for your report |
| `docType` | string | The doc type filter used for your report |
| `dateFormat` | string | The date format used for your report |
| `currencyCode` | string | The currency code used for your report |
| `numberOfPartitions` | integer | DEPRECATED - Date: 02/18/2026, Version: 26.3.0, Message: This field is deprecated. Please do not use it. This will be removed from the model on 08/18/2027.
Number of partitions to split the report into. |
| `partition` | integer | DEPRECATED - Date: 02/18/2026, Version: 26.3.0, Message: This field is deprecated. Please do not use it. This will be removed from the model on 08/18/2027.
The zero-based partition number to retrieve in this export request. |
| `isLocked` | boolean | If true, include only documents that are locked.
If false, include only documents that are not locked.
Defaults to false if not specified. |
| `merchantSellerId` | string | If set, include only documents associated with this merchantSellerId. |
| `documentStatus` | string | The Document status filter used for report
For documentStatus, accepted values are: Temporary, Saved, Posted, Committed, Cancelled, Adjusted, Queued, PendingApproval |
| `isModifiedDateSameAsDocumentDate` | boolean | If true, modified date will be same as document date
If false, modified date will not be same as document date
Defaults to false if not specified. |
| `taxGroup` | string | TaxGroup is required to support Sales tax (Sales + SellersUse) and VAT (Input+ Output).
TaxTypes, such as Lodging, Bottle, LandedCost, Ewaste, BevAlc, etc |
| `taxName` | string | The description of the tax |
| `taxCode` | string | The AvaTax tax code or customer tax code associated with the item or SKU in the transaction |
| `customerVendorCode` | string | The code your business application uses to identify a customer or vendor |
| `taxSubType` | string | Defines the individual taxes associated with a TaxType category, such as Lodging TaxType which supports numerous TaxSubTypes, including Hotel, Occupancy, ConventionCenter, Accommotations, etc. |
| `liabilityParameters` | LiabilityParametersModel | Liability Parameters to access Returns API |
| `compression` | string | Defines the compression mode of the result file
For compression, the accepted values are: NONE, GZIP |
| `includeDocumentLineDetails` | boolean | If true, include document line details in the generated report.
If false, include only document line in the generated report.
Defaults to false if not specified. |
| `includeMultiTaxLineDetails` | boolean | If true, include multi tax line details in the generated report.
If false, include document or document line in the generated report based on includeDocumentLineDetails.
Defaults to false if not specified. |
| `incorrectCurrencyOnly` | boolean | If true, shows all transactions that are in the incorrect currency.
If false, hides all transactions that are in the incorrect currency.
Defaults to false if not specified. |
| `includeAdditionalAttributes` | boolean | If true, shows all additional transaction attributes.
If false, hides all additional transaction attributes.
Defaults to false if not specified. |
| `includeUserDefinedFields` | boolean | If true, shows all user defined fields.
If false, hides all user defined fields.
Defaults to false if not specified. |
| `importId` | string | Sets the ImportId for Accounts Payable reports.
Defaults to an empty string if not specified. |
| `filterAtLineLevel` | boolean | If true, filter using the user-defined field at the document line level.
If false, filter using the user-defined field at the document level.
Defaults to true if not specified. |
| `udfFilter` | object | Sets a user-defined field filter as a name/value pair.
Only one name/value pair is allowed.
Returns null if both name and value are not set. |
| `jurisdictionNames` | array | The names of the jurisdictions for which document lines are fetched.
Defaults to null if not specified. |
| `includePOAandPOO` | boolean | If true, include Point of Order Acceptance (POA) and Point of Order Origin (POO) in the generated report.
If false, exclude POA and POO from the generated report.
Defaults to false if not specified. |
| `companyIds` | array | List of company IDs included in the report. |

### ResetLicenseKeyModel

Represents a license key reset request.

| Property | Type | Description |
|---|---|---|
| `accountId` | integer | The primary key of the account ID to reset |
| `confirmResetLicenseKey` | boolean | Set this value to true to reset the license key for this account.
This license key reset function will only work when called using the credentials of the account administrator of this account. |

### ResourceFileDownloadResult

Represents everything downloaded from resource files

| Property | Type | Description |
|---|---|---|
| `success` | boolean | True if this download succeeded |
| `bytes` | string | Bytes of the file |
| `filename` | string | Original filename |
| `contentType` | string | Mime content type |

### ResourceFileUploadRequestModel

A request to upload a file to Resource Files

| Property | Type | Description |
|---|---|---|
| `content` | string | This stream contains the bytes of the file being uploaded. |
| `username` | string | The username adding the file |
| `accountId` | integer | The account ID to which this file will be attached. |
| `companyId` | integer | The company ID to which this file will be attached. |
| `name` | string | The original name of this file. |
| `length` | integer | Length of the file in bytes. |

### ReturnsParameterUsageModel

usage of system defined parameters for returns.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this property. |
| `parameterId` | integer | The id of the parameter. |
| `productCode` | string | Product code for the return parameter usage item. |
| `taxTypeId` | string | tax type for the returns parameter usage item. |
| `attributeType` | string | The type of parameter as determined by its application, e.g. Product, Transaction, Calculated |
| `attributeSubType` | string | The sub-type of parameter as determined by its application. |
| `name` | string | The name of the property.  To use this property, add a field on the `parameters` object of a [CreateTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/) call. |
| `dataType` | string | The data type of the property. |
| `helpText` | string | Help text to be shown to the user when they are filling out this parameter.  Help text may include HTML links to additional
content with more information about a parameter. |
| `label` | string | Label that helps the user to identify a parameter |
| `helpUrl` | string | A help url that provides more information about the parameter |
| `values` | array | If the parameter is of enumeration data type, then this list will be populated with all of the possible enumeration values. |
| `measurementType` | string | The unit of measurement type of the parameter |

### ReturnsParameterUsageModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### SecurityRoleModel

Represents a single security role.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this security role. |
| `description` | string | A description of this security role |

### SecurityRoleModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### SendSalesRequestModel

SendSales Request Model.

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | The companyId for which the send sales file is being generated. |
| `taxCodes` | array | List of taxCodes to be included in send sales file. |
| `date` | string | The date for which send sales file is being generated. |
| `format` | string | The send sales file format. |
| `type` | string | The send sales file type |

### SetPasswordModel

Set Password Model

| Property | Type | Description |
|---|---|---|
| `newPassword` | string | New Password |
| `suppressResetPasswordEmail` | boolean | SuppressResetPasswordEmail |

### SettingModel

This object is used to keep track of custom information about a company.
            
The company settings system is a metadata system that you can use to store extra information
about a company.  Your integration or connector could use this data storage to keep track of
preference information, reminders, or any other storage that would need to persist even if
the customer uninstalls your application.
            
A setting can refer to any type of data you need to remember about this company object.
When creating this object, you may define your own `set`, `name`, and `value` parameters.
To define your own values, please choose a `set` name that begins with `X-` to indicate an extension.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this setting. |
| `companyId` | integer | The unique ID number of the company this setting refers to. |
| `set` | string | A user-defined "set" containing this setting.
            
Avalara defines some sets that cannot be changed.  To create your own set, choose a set
name that begins with `X-` to indicate that this is an extension value.
            
We recommend that you choose a set name that clearly identifies your application, and then
store data within name/value pairs within that set.  For example, if you were creating an
application called MyApp, you might choose to create a set named `X-MyCompany-MyApp`. |
| `name` | string | A user-defined "name" for this name-value pair. |
| `value` | string | The value of this name-value pair. |
| `modifiedDate` | string | The value when the entry was last modified. |
| `modifiedUserId` | integer | The value identifying who last modified the entry. |

### SettingModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### SettleTransactionModel

Settle this transaction with your ledger by executing one or many actions against that transaction.
            
You may use this endpoint to verify the transaction, change the transaction's code, and commit the transaction for reporting purposes.
This endpoint may be used to execute any or all of these actions at once.

| Property | Type | Description |
|---|---|---|
| `verify` | VerifyTransactionModel | To verify this transaction, you may provide information in this field.
            
If you leave this field null, the transaction will not be verified. |
| `changeCode` | ChangeTransactionCodeModel | To change the code for this transaction, you may provide information in this field.
            
If you leave this field null, the transaction's code will not be changed. |
| `commit` | CommitTransactionModel | To commit this transaction so that it can be reported on a tax filing, you may provide information in this field.
            
If you leave this field null, the transaction's commit status will not be changed.
            
If you use Avalara's Managed Returns Service, committing a transaction will allow that transaction to be filed. |

### StateModel

Defines a state, region, or province as known to Avalara's certificate management system.

| Property | Type | Description |
|---|---|---|
| `id` | integer | A unique ID number that represents this state, region, or province. |
| `name` | string | The state, region, or province name as known in US English. |
| `initials` | string | The abbreviated two or three character ISO 3166 state, province, or region code. |
| `geoCode` | integer | A geocoding identification number for this state |
| `country` | CountryModel | Information about the country in which this state exists. |

### StringFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### SubscriptionModel

Represents a service that this account has subscribed to.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this subscription. |
| `accountId` | integer | The unique ID number of the account this subscription belongs to. |
| `subscriptionTypeId` | integer | The unique ID number of the service that the account is subscribed to. If this is provided, subscription description is ignored. |
| `subscriptionDescription` | string | A friendly description of the service that the account is subscribed to. You can either provide the subscription type Id or this but not both. If
subscription type Id is provided, then this information is ignored and this field will be updated with the information from subscription type id. |
| `effectiveDate` | string | The date when the subscription began. |
| `endDate` | string | If the subscription has ended or will end, this date indicates when the subscription ends. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### SubscriptionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### SubscriptionTypeModel

Represents a service or a subscription type.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this subscription type. |
| `description` | string | The friendly name of the service this subscription type represents. |
| `system` | string | Identifies the system this ServiceType belongs to - Avatax, ECM, Avatax-Returns etc, |
| `taxTypeGroupIdSK` | integer | TaxTypeGroupIdSK to be associated with ServiceType |

### SubscriptionTypeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### SyncItemsRequestModel

Represents a request to sync items.

| Property | Type | Description |
|---|---|---|
| `items` | array | A list of items to sync with AvaTax. |

### SyncItemsResponseModel

The response returned after an item sync was requested.

| Property | Type | Description |
|---|---|---|
| `status` | string | The status of the request |

### TagsModel

Represents a tag for an item in your company's product catalog.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of the tag. |
| `tagName` | string | The tag name. |

### TagsModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxAuthorityFormModel

Represents a form that can be filed with a tax authority.

| Property | Type | Description |
|---|---|---|
| `taxAuthorityId` | integer | The unique ID number of the tax authority. |
| `formName` | string | The form name of the form for this tax authority. |

### TaxAuthorityFormModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxAuthorityInfo

Information about a tax authority relevant for an address.

| Property | Type | Description |
|---|---|---|
| `avalaraId` | string | A unique ID number assigned by Avalara to this tax authority. |
| `jurisdictionName` | string | The friendly jurisdiction name for this tax authority. |
| `jurisdictionType` | string | The type of jurisdiction referenced by this tax authority. |
| `signatureCode` | string | An Avalara-assigned signature code for this tax authority. |

### TaxAuthorityModel

Tax Authority Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax authority. |
| `name` | string | The friendly name of this tax authority. |
| `taxAuthorityTypeId` | integer | The type of this tax authority. |
| `jurisdictionId` | integer | The unique ID number of the jurisdiction for this tax authority. |

### TaxAuthorityModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxAuthorityTypeModel

Tax Authority Type Model

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax Authority customer type. |
| `description` | string | The description name of this tax authority type. |
| `taxAuthorityGroup` | string | Tax Authority Group |

### TaxAuthorityTypeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxCodeModel

Represents a tax code that can be applied to items on a transaction.
A tax code can have specific rules for specific jurisdictions that change the tax calculation behavior.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax code. |
| `companyId` | integer | The unique ID number of the company that owns this tax code. |
| `taxCode` | string | A code string that identifies this tax code. |
| `taxCodeTypeId` | string | The type of this tax code. |
| `description` | string | A friendly description of this tax code. |
| `parentTaxCode` | string | If this tax code is a subset of a different tax code, this identifies the parent code. |
| `isPhysical` | boolean | True if this tax code type refers to a physical object.  Read only field. |
| `goodsServiceCode` | integer | The Avalara Goods and Service Code represented by this tax code. |
| `entityUseCode` | string | The Avalara Entity Use Code represented by this tax code. |
| `isActive` | boolean | True if this tax code is active and can be used in transactions. |
| `isSSTCertified` | boolean | True if this tax code has been certified by the Streamlined Sales Tax governing board.
By default, you should leave this value empty. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### TaxCodeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxCodeRecommendationOutputModel

Tax Code Recommendation Output Model

| Property | Type | Description |
|---|---|---|
| `taxCode` | string | Recommended TaxCode |
| `level` | string | Recommended TaxCode Level |

### TaxCodeRecommendationStatusOutputModel

Output model for item tax code recommendation status

| Property | Type | Description |
|---|---|---|
| `status` | string | Recommendation status |
| `message` | string | Status message |

### TaxCodeTypesModel

Information about Avalara-defined tax code types.
This list is used when creating tax codes and tax rules.

| Property | Type | Description |
|---|---|---|
| `types` | object | The list of Avalara-defined tax code types. |

### TaxDetailsByTaxSubType

Tax Details by Tax subtype

| Property | Type | Description |
|---|---|---|
| `taxSubType` | string | Tax subtype |
| `totalTaxable` | number | Total taxable amount by tax type |
| `totalExempt` | number | Total exempt by tax type |
| `totalNonTaxable` | number | Total non taxable by tax type |
| `totalTax` | number | Total tax by tax type |

### TaxDetailsByTaxType

Tax Details by Tax Type

| Property | Type | Description |
|---|---|---|
| `taxType` | string | Tax Type |
| `totalTaxable` | number | Total taxable amount by tax type |
| `totalExempt` | number | Total exempt by tax type |
| `totalNonTaxable` | number | Total non taxable by tax type |
| `totalTax` | number | Total tax by tax type |
| `taxSubTypeDetails` | array | Tax subtype details |

### TaxOverrideModel

Represents a tax override for a transaction

| Property | Type | Description |
|---|---|---|
| `type` | string | Identifies the type of tax override |
| `taxAmount` | number | Indicates a total override of the calculated tax on the document.  AvaTax will distribute
the override across all the lines.
            
Tax will be distributed on a best effort basis.  It may not always be possible to override all taxes.  Please consult
your account manager for information about overrides. |
| `taxDate` | string | The override tax date to use
            
This is used when the tax has been previously calculated
as in the case of a layaway, return or other reason indicated by the Reason element.
If the date is not overridden, then it should be set to the same as the DocDate. |
| `reason` | string | This provides the reason for a tax override for audit purposes.  It is required for types 2-4.
            
Typical reasons include:
"Return"
"Layaway" |
| `taxAmountByTaxTypes` | array | Indicates a total override of the calculated tax on the line with TaxType.
AvaTax will distribute the override across all the line details for that TaxType.
            
TaxAmountByTaxType can be used only at the Line level. |

### TaxProfileErrorResponseModel

Info model for Problem Detail

| Property | Type | Description |
|---|---|---|
| `title` | string | Title |
| `status` | string | Status |
| `detail` | string | Detail |

### TaxProfileMetaDataModel

Tax Profile Service Meta data information

| Property | Type | Description |
|---|---|---|
| `createdUser` | string | Created By User |
| `createdDate` | string | Created Date |
| `modifiedUser` | string | Modified User |
| `modifiedDate` | string | Modified Date |

### TaxRateModel

Contains information about the general tangible personal property sales tax rates for this jurisdiction.
            
This rate is calculated by making assumptions about the tax calculation process.  It does not account for:
            
* Sourcing rules, such as origin-and-destination based transactions.
* Product taxability rules, such as different tax rates for different product types.
* Nexus declarations, where some customers are not obligated to collect tax in specific jurisdictions.
* Tax thresholds and rate differences by amounts.
* And many more custom use cases.
            
To upgrade to a fully-featured and accurate tax process that handles these scenarios correctly, please
contact Avalara to upgrade to AvaTax!

| Property | Type | Description |
|---|---|---|
| `totalRate` | number | The total sales tax rate for general tangible personal property sold at a retail point of presence
in this jurisdiction on this date. |
| `rates` | array | The list of individual rate elements for general tangible personal property sold at a retail
point of presence in this jurisdiction on this date. |

### TaxRegionJurisdictionModel

The tax region jurisdiction model.

| Property | Type | Description |
|---|---|---|
| `jurisdictionId` | integer | The id of the jurisdiction. |
| `taxRegionId` | integer | The id of the tax region. |
| `jurisdictionLevelId` | integer | The id of the jurisdiction level. |
| `rockName` | string | The rock name. |
| `reportLevel` | integer | The report level. |
| `stateAssignedCode` | string | The state assigned code. |
| `taxAuthorityId` | integer | The id of the tax authority. |
| `signatureCode` | string | The signature code. |
| `effectiveDate` | string | The date in which this tax region jurisdiction starts to take effect. |
| `endDate` | string | The date in which this tax region jurisdiction stops to take effect. |
| `modifiedDate` | string | The modifiedDate of the tax region jurisdiction. |

### TaxRegionModel

The tax region model.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The id of the tax region. |
| `code` | string | The code of the tax region. |
| `name` | string | The name of the tax region. |
| `county` | string | The name of the county. |
| `city` | string | The name of the city. |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `country` | string | Name or ISO 3166 code identifying the country of this jurisdiction.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `serCode` | string | The ser code. |
| `signatureCode` | string | The tax region signature code. |
| `effectiveDate` | string | The date this tax region starts to take effect. |
| `endDate` | string | The date this tax region stops to take effect. |
| `isAcm` | boolean | Is Acm flag. |
| `isSst` | boolean | Is SST flag. |
| `jurisdictions` | array | List of jurisdictions associated with this tax region. |
| `createDate` | string | The date this tax region was created. |
| `modifiedDate` | string | The date this tax region was modified. |
| `foodSERCode` | string | Food SER Code |

### TaxRuleModel

Represents a tax rule that changes the behavior of Avalara's tax engine for certain products and/or entity use codes
in certain jurisdictions.
            
Avalara supports a few different types of tax rules.  For information about tax rule types, see
[TaxRuleTypeId](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/TaxRuleTypeId/)
            
Because different types of tax rules have different behavior, some fields may change their behavior based on
the type of tax rule selected.  Please read the documentation for each field carefully and ensure that
the value you send is appropriate for the type of tax rule.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax rule. |
| `companyId` | integer | The unique ID number of the company that owns this tax rule. |
| `taxCodeId` | integer | For rules that apply to a specific tax code only, this specifies which tax code is affected by this rule.
            
You can choose to specify a tax code either by passing its unique ID number in the `taxCodeId` field or
by passing its alphanumeric code in the `taxCode` field.  To search for the appropriate tax code for your
custom rule, use the `ListTaxCodes` API.
            
The `RateOverrideRule`, `BaseRule`, and `ExemptEntityRule` rule types can be applied to all tax codes.  To
make a rule that applies to all tax codes, leave both fields blank.
            
The `ProductTaxabilityRule` rule must be associated with a tax code.  If you attempt to create a product taxability rule
without a tax code, you will get an error message. |
| `taxCode` | string | For rules that apply to a specific tax code only, this specifies which tax code is affected by this rule.
            
You can choose to specify a tax code either by passing its unique ID number in the `taxCodeId` field or
by passing its alphanumeric code in the `taxCode` field.  To search for the appropriate tax code for your
custom rule, use the `ListTaxCodes` API.
            
The `RateOverrideRule`, `BaseRule`, and `ExemptEntityRule` rule types can be applied to all tax codes.  To
make a rule that applies to all tax codes, leave both fields blank.
            
The `ProductTaxabilityRule` rule must be associated with a tax code.  If you attempt to create a product taxability rule
without a tax code, you will get an error message. |
| `stateFIPS` | string | For U.S. tax rules, this is the state's Federal Information Processing Standard (FIPS) code.
            
This field is required for rules that apply to specific jurisdictions in the United States.  It is not required
if you set the `isAllJuris` flag to true. |
| `jurisName` | string | The name of the jurisdiction to which this tax rule applies.
            
Custom tax rules can apply to a specific jurisdiction or to all jurisdictions.  To select a jurisdiction, use the
[ListJurisdictions API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListJurisdictions/)
or the [ListJurisdictionsByAddress API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListJurisdictionsByAddress/).
To set a rule that applies to all jurisdictions of a specific type, see `isAllJuris`.
            
Once you have determined which jurisdiction you wish to assign to the tax rule, you should fill in the `jurisName`, `jurisCode`, and
`jurisdictionTypeId` fields using the information you retrieved from the API above. |
| `jurisCode` | string | The code of the jurisdiction to which this tax rule applies.
            
Custom tax rules can apply to a specific jurisdiction or to all jurisdictions.  To select a jurisdiction, use the
[ListJurisdictions API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListJurisdictions/)
or the [ListJurisdictionsByAddress API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListJurisdictionsByAddress/).
            
Once you have determined which jurisdiction you wish to assign to the tax rule, you should fill in the `jurisName`, `jurisCode`, and
`jurisdictionTypeId` fields using the information you retrieved from the API above. |
| `jurisTypeId` | string | DEPRECATED - Date: 12/20/2017, Version: 18.1, Message: Please use `jurisdictionTypeId` instead. |
| `jurisdictionTypeId` | string | The type of the jurisdiction to which this tax rule applies.
            
Custom tax rules can apply to a specific jurisdiction or to all jurisdictions.  To select a jurisdiction, use the
[ListJurisdictions API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListJurisdictions/)
or the [ListJurisdictionsByAddress API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListJurisdictionsByAddress/).
            
Once you have determined which jurisdiction you wish to assign to the tax rule, you should fill in the `jurisName`, `jurisCode`, and
`jurisdictionTypeId` fields using the information you retrieved from the API above.
            
To make a custom tax rule for US or Canada that applies to all jurisdictions of a specific type, see the `isAllJuris`
field for more information. |
| `customerUsageType` | string | DEPRECATED - Date: 10/16/2017, Version: 17.11, Message: Please use `entityUseCode` instead. |
| `entityUseCode` | string | The entity use code to which this rule applies.
            
You can create custom `entityUseCode` values with specific behavior using this API, or you can change
the behavior of Avalara's system-defined entity use codes.
            
For a full list of Avalara-defined entity use codes, see the [ListEntityUseCodes API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListEntityUseCodes/). |
| `taxTypeId` | string | DEPRECATED - Date: 09/30/2021, Version: 21.9.0, Message: Please use `taxTypeCode` instead.
Some tax type groups contain multiple different types of tax.  To create a rule that affects only one
type of tax within a tax type group, set this value to the code matching the specific tax type within
that group.  The custom tax rule will then only apply to taxes calculated for that specific type.
            
For rules that affect all tax types, use the value `A` to match `All` tax types within that group. |
| `taxTypeCode` | string | Indicates the code of the tax type that applies to this rule. Use /api/v2/definitions/taxtypes endpoint to retrieve the list of tax types applicable for your company. |
| `taxRuleProductDetail` | array | TaxRule Product Detail indicates the HSCode(s) to which the tax rule applies. |
| `rateTypeId` | string | DEPRECATED - Date: 8/27/2018, Version: 18.9, Message: Please use `rateTypeCode`, `taxTypeGroup` and `subTaxType` instead. |
| `rateTypeCode` | string | Indicates the code of the rate type that applies to this rule.  Use [ListRateTypesByCountry](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListRateTypesByCountry/) API for a full list of rate type codes.
            
If you specify a value in the rateTypeCode field, this rule will cause tax lines that are affected by the rule
to change to a different rate type code. |
| `taxRuleTypeId` | string | This type value determines the behavior of the tax rule.
            
You can specify that this rule controls the product's taxability or exempt / nontaxable status, the product's rate
(for example, if you have been granted an official ruling for your product's rate that differs from the official rate),
or other types of behavior. |
| `isAllJuris` | boolean | Allows you to make tax rules apply to lower jurisdictions.  This feature is only available in the United States and Canada.
            
* In the United States, this value can be used for rules written at the `State` jurisdictional level.  If set to `true`, this rule will at the state level, county level, city level, and special jurisdiction level.
* In Canada, this value can be used for rules written at the `Country` or `State` jurisdictional levels.  If set to `true`, this rule will at all lower jurisdictional levels.
            
For any other use case, this value must be `false`. |
| `value` | number | This field has different behavior based on the type of the tax rule.
            
* For a product taxability rule, this value is either 1 or 0, indicating taxable or non-taxable.
* For a rate override rule, this value is the corrected rate stored as a decimal, for example, a rate of 5% would be stored as 0.05 decimal.  If you use the special value of 1.0, only the cap and threshold values will be applied and the rate will be left alone. |
| `cap` | number | The maximum cap for the price of this item according to this rule.  Any amount above this cap will not be subject to this rule.
            
For example, if you must pay 5% of a product's value up to a maximum value of $1000, you would set the `cap` to `1000.00` and the `value` to `0.05`. |
| `threshold` | number | The per-unit threshold that must be met before this rule applies.
            
For example, if your product is nontaxable unless it is above $100 per product, you would set the `threshold` value to `100`.  In this case, the rate
for the rule would apply to the entire amount above $100.
            
You can also create rules that make the entire product taxable if it exceeds a threshold, but is nontaxable
if it is below the threshold.  To choose this, set the `options` field to the value `TaxAll`. |
| `options` | string | Supports custom options for your tax rule.
            
Supported options include:
* `TaxAll` - This value indicates that the entire amount of the line becomes taxable when the line amount exceeds the `threshold`. |
| `effectiveDate` | string | The first date at which this rule applies.  If `null`, this rule will apply to all dates prior to the end date. |
| `endDate` | string | The last date for which this rule applies.  If `null`, this rule will apply to all dates after the effective date. |
| `description` | string | A friendly name for this tax rule. |
| `countyFIPS` | string | For U.S. tax rules, this is the county's Federal Information Processing Standard (FIPS) code.
            
This field is required for rules that apply to specific jurisdictions in the United States.  It is not required
if you set the `isAllJuris` flag to true. |
| `isSTPro` | boolean | DEPRECATED - Date: 8/27/2018, Version: 18.9, Message: This field is no longer required. |
| `country` | string | Name or ISO 3166 code identifying the country where this rule will apply.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `region` | string | Name or ISO 3166 code identifying the region where this rule will apply.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`.
NOTE: Region is required for US and not required for non-US countries because the user may be either creating a Country-level or Region-level rule. |
| `sourcing` | string | The sourcing types to which this rule applies. |
| `taxTypeGroup` | string | This field has different behavior based on the type of rule.
            
* For a product taxability rule, if the rule applies to an item, this value will override the tax type group of the original product.
* For other rules, this value determines what tax type groups will be affected by the rule.
            
Refer to `ListTaxTypeGroups` for a list of tax type groups supported by AvaTax. |
| `taxSubType` | string | This field has different behavior based on the type of rule.
            
* For a product taxability rule, if the rule applies to an item, this value will override the tax sub type of the original product.
* For other rules, this value determines what tax sub types will be affected by the rule.
            
Refer to `ListTaxSubtypes` for a list of tax sub types supported by AvaTax. |
| `nonPassthroughExpression` | string | Reserved for Avalara internal usage.  Leave this field null. |
| `currencyCode` | string | The currency code to use for this rule.
            
For a list of currencies supported by AvaTax, use the [ListCurrencies API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListCurrencies/). |
| `preferredProgramId` | integer | Reserved for Avalara internal usage.  Leave this field null. |
| `uomId` | integer | For tax rules that are calculated using units of measurement, this indicates the unit of measurement type
used to calculate the amounts for this rule.
            
For a list of units of measurement, use the [ListUnitsOfMeasurement API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListUnitOfMeasurement/). |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `unitOfBasis` | string | The UnitOfBasis for the TaxRule |

### TaxRuleModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxRuleProductDetailModel

Represents a tax rule product detail that changes the behavior of Avalara's tax engine for certain tax rules.
            
Avalara supports a two types of tax product detail.  For information about tax rule Product Types
HSCode and TaxCode
            
Because different types of tax rules have different behavior, some fields may change their behavior based on
the type of tax rule selected.  Please read the documentation for each field carefully and ensure that
the value you send is appropriate for the type of tax rule.

| Property | Type | Description |
|---|---|---|
| `taxRuleProductDetailId` | integer | The unique ID number of this Tax rule product detail. |
| `taxRuleId` | integer | TaxRule Id of TaxRule Product Detail entry |
| `productCode` | string | Product Code value |
| `effectiveDate` | string | The first date at which this product detail applies.  If `null`, this product detail will apply to all dates prior to the end date. |
| `endDate` | string | The last date for which this product detail applies.  If `null`, this product detail will apply to all dates after the effective date. |
| `systemId` | integer | Represents the system Id the detail is applicable for. |

### TaxSubType1703Model

Represents RateTypeTaxTypeMapping Model

| Property | Type | Description |
|---|---|---|
| `taxSubTypeIdSK` | integer | TaxSubTypeIdSK |
| `taxSubTypeId` | string | TaxSubTypeId |
| `description` | string | Description |

### TaxSubType1703ModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxSubTypeModel

Represents a tax subtype

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax sub-type. |
| `taxSubType` | string | The unique human readable Id of this tax sub-type. |
| `description` | string | The description of this tax sub-type. |
| `taxTypeGroup` | string | The upper level group of tax types. |

### TaxSubTypeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxType1703Model

Represents TaxType1703 Model

| Property | Type | Description |
|---|---|---|
| `taxTypeIdSK` | integer | TaxTypeIdSK |
| `taxTypeId` | string | TaxTypeId |
| `description` | string | Description |

### TaxType1703ModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxTypeGroupModel

Represents a tax type group

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax type group. |
| `taxTypeGroup` | string | The unique human readable Id of this tax type group. |
| `description` | string | The description of this tax type group. |
| `subscriptionTypeId` | integer | If this tax type group requires a subscription, this contains the ID number of the subscription type required to use it. |
| `subscriptionDescription` | string | If this tax type group requires a subscription, this contains the friendly name of the subscription type required to use it. |
| `tabName` | string | The name of the tab in the AvaTax website corresponding to this tax type group. |
| `showColumn` | boolean | True if this tax type group is displayed in the user interface of the AvaTax website. |
| `displaySequence` | integer | The order this record is being returned in the response |

### TaxTypeGroupModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxTypeMappingModel

Represents TaxTypeMapping Model

| Property | Type | Description |
|---|---|---|
| `taxTypeMappingId` | integer | TaxTypeMappingId |
| `taxTypeGroupIdSK` | integer | TaxTypeGroupIdSK |
| `taxTypeIdSK` | integer | TaxTypeIdSK |
| `taxSubTypeIdSK` | integer | TaxSubTypeIdSK |
| `generalOrStandardRateTypeIdSK` | integer | GeneralOrStandardRateTypeIdSK |
| `taxTypeGroupId` | string | TaxTypeGroupId |
| `taxTypeId` | string | TaxTypeId |
| `taxSubTypeId` | string | TaxSubTypeId |
| `country` | string | Country |
| `generalOrStandardRateTypeId` | string | GeneralOrStandardRateTypeId |

### TaxTypeMappingModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxTypeModel

Represents a tax type

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax type. |
| `taxType` | string | The name of this tax type. |
| `description` | string | The description of this tax type. |

### TaxTypeModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TaxcodeBatchOutputModel

Represents the output model for tax code batches creation.

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | The unique ID of the company. |
| `batchId` | integer | The batch identifier. |

### ThresholdStateSummaryModel

Economic nexus threshold status for a single US region.

| Property | Type | Description |
|---|---|---|
| `id` | string | Opaque unique identifier for this threshold record (UUID from the upstream data source). |
| `region` | string | Two-letter US state postal code (e.g. CA, TX, WA). |
| `regionName` | string | Full display name of the region. |
| `status` | string | Threshold status as determined by the upstream data pipeline. Typical values: 'met', 'notmet'. |
| `thresholdTimeframe` | string | Label describing the measurement window used for threshold evaluation (e.g. 'Prior calendar year'). |
| `thresholdStartDate` | string | Start of the threshold evaluation window. |
| `thresholdEndDate` | string | End of the threshold evaluation window. |
| `triggerType` | string | What triggered the threshold evaluation. Typical values: 'Sales', 'Transactions'. |
| `transactionThreshold` | integer | The configured transaction count threshold for this region, if applicable. |
| `salesThreshold` | number | The configured sales amount threshold for this region, if applicable. |
| `totalSalesAmount` | number | Actual total sales amount in the evaluation window. |
| `totalTransactions` | integer | Actual total transaction count in the evaluation window. |
| `sourceLastUpdatedAt` | string | UTC timestamp of when the upstream Snowflake source record was last modified. |

### TransactionAddressModel

An address used within this transaction.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this address. |
| `transactionId` | integer | The unique ID number of the document to which this address belongs. |
| `boundaryLevel` | string | The boundary level at which this address was validated. |
| `line1` | string | The first line of the address. |
| `line2` | string | The second line of the address. |
| `line3` | string | The third line of the address. |
| `city` | string | The city for the address. |
| `region` | string | The ISO 3166 region code. E.g., the second part of ISO 3166-2. |
| `postalCode` | string | The postal code or zip code for the address. |
| `country` | string | The ISO 3166 country code |
| `taxRegionId` | integer | The unique ID number of the tax region for this address. |
| `latitude` | string | Latitude for this address |
| `longitude` | string | Longitude for this address |
| `jurisdictions` | array | List of all the qualified jurisdictions for the TaxRegionId. |

### TransactionBatchItemModel

Represents a transaction batch item.
Only one child transaction model should contain data.

| Property | Type | Description |
|---|---|---|
| `memo` | string | Represents a transaction memo. |
| `createTransactionModel` | CreateTransactionModel | Represents a transaction to be created. |
| `adjustTransactionModel` | BatchAdjustTransactionModel | Represents an existing transaction to be adjusted. |
| `createOrAdjustTransactionModel` | CreateOrAdjustTransactionModel | Represents a transaction to be created or to be adjusted if exists. |
| `voidTransactionModel` | BatchVoidTransactionModel | Represents an existing transaction to be voided. |

### TransactionLineDetailModel

An individual tax detail element.  Represents the amount of tax calculated for a particular jurisdiction, for a particular line in an invoice.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this tax detail. |
| `transactionLineId` | integer | The unique ID number of the line within this transaction. |
| `transactionId` | integer | The unique ID number of this transaction. |
| `addressId` | integer | The unique ID number of the address used for this tax detail. |
| `country` | string | The two character ISO 3166 country code of the country where this tax detail is assigned. |
| `region` | string | The two-or-three character ISO region code for the region where this tax detail is assigned. |
| `countyFIPS` | string | For U.S. transactions, the Federal Information Processing Standard (FIPS) code for the county where this tax detail is assigned. |
| `stateFIPS` | string | For U.S. transactions, the Federal Information Processing Standard (FIPS) code for the state where this tax detail is assigned. |
| `exemptAmount` | number | The amount of this line that was considered exempt in this tax detail. |
| `exemptReasonId` | integer | The unique ID number of the exemption reason for this tax detail. |
| `exemptRuleId` | integer | The rule according to which portion of this detail was considered exempt. |
| `inState` | boolean | True if this detail element represented an in-state transaction. |
| `jurisCode` | string | The code of the jurisdiction to which this tax detail applies. |
| `jurisName` | string | The name of the jurisdiction to which this tax detail applies. |
| `jurisdictionId` | integer | The unique ID number of the jurisdiction to which this tax detail applies. |
| `signatureCode` | string | The Avalara-specified signature code of the jurisdiction to which this tax detail applies. |
| `stateAssignedNo` | string | The state assigned number of the jurisdiction to which this tax detail applies. |
| `jurisType` | string | DEPRECATED - Date: 12/20/2017, Version: 18.1, Message: Use jurisdictionTypeId instead.
The type of the jurisdiction to which this tax detail applies. |
| `jurisdictionType` | string | The type of the jurisdiction in which this tax detail applies. |
| `nonTaxableAmount` | number | The amount of this line item that was considered nontaxable in this tax detail. |
| `nonTaxableRuleId` | integer | The rule according to which portion of this detail was considered nontaxable. |
| `nonTaxableType` | string | The type of nontaxability that was applied to this tax detail. |
| `rate` | number | The rate at which this tax detail was calculated. |
| `rateRuleId` | integer | The unique ID number of the rule according to which this tax detail was calculated. |
| `rateSourceId` | integer | The unique ID number of the source of the rate according to which this tax detail was calculated. |
| `serCode` | string | For Streamlined Sales Tax customers, the SST Electronic Return code under which this tax detail should be applied. |
| `sourcing` | string | Indicates whether this tax detail applies to the origin or destination of the transaction. |
| `tax` | number | The amount of tax for this tax detail. |
| `taxableAmount` | number | The taxable amount of this tax detail. |
| `taxType` | string | The type of tax that was calculated.  Depends on the company's nexus settings as well as the jurisdiction's tax laws. |
| `taxSubTypeId` | string | The id of the tax subtype. |
| `taxTypeGroupId` | string | The id of the tax type group. |
| `taxName` | string | The name of the tax against which this tax amount was calculated. Note: This output field is informational, and the values in this field may change. As such, we discourage hardcoding any string matching on this field. |
| `taxAuthorityTypeId` | integer | The type of the tax authority to which this tax will be remitted. |
| `taxRegionId` | integer | The unique ID number of the tax region. |
| `taxCalculated` | number | The amount of tax that AvaTax calculated.
If an override for tax amount is used, there may be a difference between the tax
field which applies your override, and the this amount that is calculated without override. |
| `taxOverride` | number | The amount of tax override that was specified for this tax line. |
| `rateType` | string | DEPRECATED - Date: 12/20/2017, Version: 18.1, Message: Please use rateTypeCode instead.
The rate type for this tax detail. |
| `rateTypeCode` | string | Indicates the code of the rate type that was used to calculate this tax detail.  Use [ListRateTypesByCountry](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListRateTypesByCountry/) API for a full list of rate type codes. |
| `taxableUnits` | number | Number of units in this line item that were calculated to be taxable according to this rate detail. |
| `nonTaxableUnits` | number | Number of units in this line item that were calculated to be nontaxable according to this rate detail. |
| `exemptUnits` | number | Number of units in this line item that were calculated to be exempt according to this rate detail. |
| `unitOfBasis` | string | When calculating units, what basis of measurement did we use for calculating the units? |
| `isNonPassThru` | boolean | True if this value is a non-passthrough tax.
            
A non-passthrough tax is a tax that may not be charged to a customer; it must be paid directly by the company. |
| `isFee` | boolean | The Taxes/Fee component. True if the fee is applied. 
When `isFee` is `false`, this represents a tax rate percentage. For example, `"rate": 0.022500` represents a 2.25% tax rate.
When `isFee` is `true`, this represents a specific monetary amount. For example, for `"currencyCode": "USD"` and `"isFee": true`, the `"rate": 15` represents a fee of $15.00 USD. |
| `reportingTaxableUnits` | number | Number of units in this line item that were calculated to be taxable according to this rate detail in the reporting currency. |
| `reportingNonTaxableUnits` | number | Number of units in this line item that were calculated to be nontaxable according to this rate detail in the reporting currency. |
| `reportingExemptUnits` | number | Number of units in this line item that were calculated to be exempt according to this rate detail in the reporting currency. |
| `reportingTax` | number | The amount of tax for this tax detail in the reporting currency. |
| `reportingTaxCalculated` | number | The amount of tax that AvaTax calculated in the reporting currency.
If an override for tax amount is used, there may be a difference between the tax
field which applies your override, and the this amount that is calculated without override. |
| `liabilityType` | string | LiabilityType identifies the party liable to file the tax. This field is used to filter taxes from reports and tax filings as appropriate. |
| `chargedTo` | string | ChargedTo identifies the party responsible for covering the tax. This field is used to filter taxes from reports and tax filings as appropriate. |
| `avtUserBIN` | string | ID of the AvaTax user creating the transaction. This field will be calculated by AvaTax based on the Company settings and the transaction details. |
| `recoverabilityPercentage` | number | The percentage of input VAT/GST that is recoverable. |
| `recoverableAmount` | number | The amount of input VAT/GST that is recoverable based on the recoverability percentage. |
| `nonRecoverableAmount` | number | The amount of input VAT/GST that is not recoverable. |
| `vatCode` | string | Indicates the VAT code for this detail. |
| `granularDutyDetails` | array | Contains granular duty details as a list of key-value pairs.
This field provides additional detailed information about duty calculations
specific to TCS (Tax Calculation Service) operations. |

### TransactionLineLocationTypeModel

Represents information about location types stored in a line

| Property | Type | Description |
|---|---|---|
| `documentLineLocationTypeId` | integer | The unique ID number of this line location address model |
| `documentLineId` | integer | The unique ID number of the document line associated with this line location address model |
| `documentAddressId` | integer | The address ID corresponding to this model |
| `locationTypeCode` | string | The location type code corresponding to this model |

### TransactionLineModel

One line item on this transaction.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this transaction line item. |
| `transactionId` | integer | The unique ID number of the transaction to which this line item belongs. |
| `lineNumber` | string | The line number or code indicating the line on this invoice or receipt or document. |
| `boundaryOverrideId` | integer | The unique ID number of the boundary override applied to this line item. |
| `customerUsageType` | string | DEPRECATED - Date: 10/16/2017, Version: 17.11, Message: Please use entityUseCode instead.
The customer usage type for this line item.  Usage type often affects taxability rules. |
| `entityUseCode` | string | The entity use code for this line item.  Usage type often affects taxability rules. |
| `description` | string | A description of the item or service represented by this line. |
| `destinationAddressId` | integer | The unique ID number of the destination address where this line was delivered or sold.
In the case of a point-of-sale transaction, the destination address and origin address will be the same.
In the case of a shipped transaction, they will be different. |
| `originAddressId` | integer | The unique ID number of the origin address where this line was delivered or sold.
In the case of a point-of-sale transaction, the origin address and destination address will be the same.
In the case of a shipped transaction, they will be different. |
| `discountAmount` | number | The amount of discount that was applied to this line item.  This represents the difference between list price and sale price of the item.
In general, a discount represents money that did not change hands; tax is calculated on only the amount of money that changed hands. |
| `discountTypeId` | integer | The type of discount, if any, that was applied to this line item. |
| `exemptAmount` | number | The amount of this line item that was exempt. |
| `exemptCertId` | integer | The unique ID number of the exemption certificate that applied to this line item. It is the calc_id associated with a certificate in CertCapture. |
| `certificateId` | string | The CertCapture Certificate ID |
| `exemptNo` | string | The customer Tax Id Number (tax_number) associated with a certificate - Sales tax calculation requests first determine if there is an applicable
ECMS entry available, and will utilize it for exemption processing. If no applicable ECMS entry is available, the AvaTax service
will determine if an Exemption Number field is populated or an Entity/Use Code is included in the sales tax calculation request,
and will perform exemption processing using either of those two options. |
| `isItemTaxable` | boolean | True if this item is taxable. |
| `isSSTP` | boolean | True if this item is a Streamlined Sales Tax line item. |
| `itemCode` | string | The code string of the item represented by this line item. |
| `lineAmount` | number | The total amount of the transaction, including both taxable and exempt.  This is the total price for all items.
To determine the individual item price, divide this by quantity. |
| `quantity` | number | The quantity of products sold on this line item. |
| `ref1` | string | A user-defined reference identifier for this transaction line item. |
| `ref2` | string | A user-defined reference identifier for this transaction line item. |
| `reportingDate` | string | The date when this transaction should be reported.  By default, all transactions are reported on the date when the actual transaction took place.
In some cases, line items may be reported later due to delayed shipments or other business reasons. |
| `revAccount` | string | The revenue account number for this line item. |
| `sourcing` | string | Indicates whether this line item was taxed according to the origin or destination. |
| `tax` | number | The tax for this line in this transaction.
            
If you used a `taxOverride` of type `taxAmount` for this line, this value
will represent the amount of your override.  AvaTax will still attempt to calculate the correct tax
for this line and will store that calculated value in the `taxCalculated` field.
            
You can compare the `tax` and `taxCalculated` fields to check for any discrepancies
between an external tax calculation provider and the calculation performed by AvaTax. |
| `taxableAmount` | number | The taxable amount of this line item. |
| `taxCalculated` | number | The amount of tax that AvaTax calculated for the transaction.
            
If you used a `taxOverride` of type `taxAmount`, there may be a difference between
the `tax` field which applies your override, and the `taxCalculated` field which
represents the amount of tax that AvaTax calculated without the override.
            
You can compare the `tax` and `taxCalculated` fields to check for any discrepancies
between an external tax calculation provider and the calculation performed by AvaTax. |
| `taxCode` | string | The code string for the tax code that was used to calculate this line item. |
| `taxCodeId` | integer | The unique ID number for the tax code that was used to calculate this line item. |
| `taxDate` | string | The date that was used for calculating tax amounts for this line item.  By default, this date should be the same as the document date.
In some cases, for example when a consumer returns a product purchased previously, line items may be calculated using a tax date in the past
so that the consumer can receive a refund for the correct tax amount that was charged when the item was originally purchased. |
| `taxEngine` | string | The tax engine identifier that was used to calculate this line item. |
| `taxOverrideType` | string | If a tax override was specified, this indicates the type of tax override. |
| `businessIdentificationNo` | string | VAT business identification number used for this transaction. |
| `taxOverrideAmount` | number | If a tax override was specified, this indicates the amount of tax that was requested. |
| `taxOverrideReason` | string | If a tax override was specified, represents the reason for the tax override. |
| `taxIncluded` | boolean | Indicates whether the `amount` for this line already includes tax.
            
If this value is `true`, the final price of this line including tax will equal the value in `amount`.
            
If this value is `null` or `false`, the final price will equal `amount` plus whatever taxes apply to this line. |
| `merchantSellerId` | integer | DEPRECATED - Date: 04/15/2021, Version: 21.4, Message: Please use merchantSellerIdentifier instead.
ID of the merchant selling on the Marketplace. This field must be populated by Marketplace. |
| `merchantSellerIdentifier` | string | ID of the merchant selling on the Marketplace. This field must be populated by Marketplace. |
| `marketplaceLiabilityType` | string | This field will identify who is remitting Marketplace or Seller. This field must be populated by Marketplace. |
| `originationDocumentId` | string | The transaction's original ID in its origination system |
| `originationSite` | string | Synonym of Marketplace Origination. Name of the Marketplace where the transaction originated from. |
| `details` | array | Optional: A list of tax details for this line item.
            
Tax details represent taxes being charged by various tax authorities. Taxes that appear in the `details` collection are intended to be
displayed to the customer and charged as a 'tax' on the invoice.
            
To fetch this list, add the query string `?$include=Details` to your URL. |
| `accountPayableSalesTaxDetails` | array | Optional: A list of Account payable Sales tax details for this line item.
            
To fetch this list, add the query string `?$include=AccountPayableSalesTaxDetails` to your URL. |
| `nonPassthroughDetails` | array | Optional: A list of non-passthrough tax details for this line item.
            
Tax details represent taxes being charged by various tax authorities. Taxes that appear in the `nonPassthroughDetails` collection are
taxes that must be paid directly by the company and not shown to the customer. |
| `lineLocationTypes` | array | Optional: A list of location types for this line item.  To fetch this list, add the query string "?$include=LineLocationTypes" to your URL. |
| `parameters` | array | Contains a list of extra parameters that were set when the transaction was created. |
| `userDefinedFields` | array | Custom user fields/flex fields for this transaction. |
| `hsCode` | string | The cross-border harmonized system code (HSCode) used to calculate tariffs and duties for this line item.
For a full list of HS codes, see `ListCrossBorderCodes()`. |
| `costInsuranceFreight` | number | Indicates the cost of insurance and freight for this line. |
| `vatCode` | string | Indicates the VAT code for this line item. |
| `vatNumberTypeId` | integer | Indicates the VAT number type for this line item. |
| `taxAmountByTaxTypes` | array | Contains a list of TaxType that are to be overridden with their respective TaxOverrideAmount. |
| `deemedSupplier` | string | Deemed Supplier field indicates which party on the marketplace transaction is liable for collecting and reporting the VAT. This is based on the 2021 E-commerce legislative reforms in EU and UK. This field will not be used until after July 1, 2021. |
| `category` | string | Product category breadcrumbs. This is the full path to the category where item is included. Categories should be separated by “ > “.  Multiple category paths per item are accepted. In this case, category paths should be separated by “;”. |
| `summary` | string | A long description of the product. |
| `recoverabilityPercentage` | number | The percentage of input VAT/GST that is recoverable. |
| `recoverableAmount` | number | The amount of input VAT/GST that is recoverable based on the recoverability percentage. |
| `nonRecoverableAmount` | number | The amount of input VAT/GST that is not recoverable. |

### TransactionLineParameterModel

Represents a transaction parameter.

| Property | Type | Description |
|---|---|---|
| `name` | string | The name of the parameter. |
| `value` | string | The value of the parameter. |
| `unit` | string | The unit of measure of the parameter value. |

### TransactionLineTaxAmountByTaxTypeModel

Represents a transaction parameter.

| Property | Type | Description |
|---|---|---|
| `taxTypeId` | string | The name of the TaxType. |
| `taxAmount` | number | The value of the TaxOverrideAmount. |

### TransactionLineUserDefinedFieldModel

User Defined fields/Flex Fields at Transaction Line level.

| Property | Type | Description |
|---|---|---|
| `name` | string | The name of the user defined field. |
| `value` | string | The value of the user defined field. |

### TransactionLocationTypeModel

Information about a location type

| Property | Type | Description |
|---|---|---|
| `documentLocationTypeId` | integer | Location type ID for this location type in transaction |
| `documentId` | integer | Transaction ID |
| `documentAddressId` | integer | Address ID for the transaction |
| `locationTypeCode` | string | Location type code |

### TransactionModel

This object represents a single transaction; for example, a sales invoice or purchase order.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this transaction. |
| `code` | string | A unique customer-provided code identifying this transaction. |
| `companyId` | integer | The unique ID number of the company that recorded this transaction. |
| `date` | string | The date on which this transaction occurred. |
| `paymentDate` | string | DEPRECATED - Date: 07/25/2018, Version: 18.7, Message: This field is deprecated and will return null till its removed.
The date when payment was made on this transaction.  By default, this should be the same as the date of the transaction. |
| `status` | string | The status of the transaction. |
| `type` | string | The type of the transaction.
            
Transactions of type `SalesOrder`, `ReturnOrder`, and so on are temporary estimates and will not be saved.
            
Transactions of type `SalesInvoice, `ReturnInvoice`, and so on are permanent transactions that can be reported to tax authorities
if they are in status `Committed`.
            
A sales transaction represents a sale from the company to a customer.  A purchase transaction represents a purchase made by the company.
A return transaction represents a customer who decided to request a refund after purchasing a product from the company.  An inventory
transfer transaction represents goods that were moved from one location of the company to another location without changing ownership. |
| `batchCode` | string | If this transaction was created as part of a batch, this code indicates which batch. |
| `currencyCode` | string | The three-character ISO 4217 currency code representing the ‘invoice currency’ (the currency the transaction was invoiced in). 
If this is different than the currency the tax liability needs to be reported in, you’ll also need to provide the 
`exchangeRateCurrencyCode` and the `exchangeRate` for conversion to the reporting country. |
| `exchangeRateCurrencyCode` | string | The three-character ISO 4217 currency code representing the ‘reporting currency’ (the currency the transaction’s tax liability needs to be reported in). 
You can leave this blank if the invoice currency provided in the `currencyCode` field is also the reporting currency. |
| `customerUsageType` | string | DEPRECATED - Date: 10/16/2017, Version: 17.11, Message: Please use entityUseCode instead.
The customer usage type for this transaction.  Customer usage types often affect exemption or taxability rules. |
| `entityUseCode` | string | The entity use code for this transaction.  Entity use codes often affect exemption or taxability rules. |
| `customerVendorCode` | string | DEPRECATED - Date: 3/1/2018, Version: 18.3, Message: Please use `customerCode`
This field has been renamed to `customerCode` to match documentation for other APIs related to exemption customers. |
| `customerCode` | string | Unique code identifying the customer that requested this transaction.
            
When you specify a `customerCode`, AvaTax will look to see if a customer exists with this code in the exemption certificate system.
If that customer exists, and if that customer has uploaded an exemption certificate that applies to this transaction, the relevant
parts of this transaction that can use the exemption certificate will be treated as exempt. |
| `exemptNo` | string | The customer Tax Id Number (tax_number) associated with a certificate - Sales tax calculation requests first determine if there is an applicable
ECMS entry available, and will utilize it for exemption processing. If no applicable ECMS entry is available, the AvaTax service
will determine if an Exemption Number field is populated or an Entity/Use Code is included in the sales tax calculation request,
and will perform exemption processing using either of those two options. |
| `reconciled` | boolean | If this transaction has been reconciled against the company's ledger, this value is set to true. |
| `locationCode` | string | DEPRECATED - Date: 3/1/2018, Version: 18.3, Message: In order to ensure consistency of field names, Please use reportingLocationCode instead.
This field has been replaced by the reportingLocationCode field |
| `reportingLocationCode` | string | For customers who use [location-based tax reporting](https://developer.avalara.com/avatax/dev-guide/locations/location-based-reporting),
this field controls how this transaction will be filed for multi-location tax filings.
            
If you specify a non-null value for this field, AvaTax will ensure that this transaction is reported on the tax return associated
with the [LocationModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LocationModel/) identified by this code.
            
This field does not affect any addresses for the transaction.  It only controls the tax filing behavior of this transaction.
            
If you are looking for information about how to set up addresses for a transaction, please see [Using Address Types](https://developer.avalara.com/avatax/dev-guide/customizing-transaction/address-types/)
in the AvaTax Developer Guide. |
| `purchaseOrderNo` | string | The customer-supplied purchase order number of this transaction. |
| `referenceCode` | string | A user-defined reference code for this transaction. |
| `salespersonCode` | string | The salesperson who provided this transaction.  Not required. |
| `taxOverrideType` | string | If a tax override was applied to this transaction, indicates what type of tax override was applied. |
| `taxOverrideAmount` | number | If a tax override was applied to this transaction, indicates the amount of tax that was requested by the customer. |
| `taxOverrideReason` | string | If a tax override was applied to this transaction, indicates the reason for the tax override. |
| `totalAmount` | number | The total amount of this transaction. |
| `totalExempt` | number | The amount of this transaction that was exempt. |
| `totalDiscount` | number | The total amount of discounts applied to all lines within this transaction. |
| `totalTax` | number | The total tax for all lines in this transaction.
            
If you used a `taxOverride` of type `taxAmount` for any lines in this transaction, this value
may be different than the amount of tax calculated by AvaTax.  The amount of tax calculated by
AvaTax will be stored in the `totalTaxCalculated` field, whereas this field will contain the
total tax that was charged on the transaction.
            
You can compare the `totalTax` and `totalTaxCalculated` fields to check for any discrepancies
between an external tax calculation provider and the calculation performed by AvaTax. |
| `totalTaxable` | number | The portion of the total amount of this transaction that was taxable. |
| `totalTaxCalculated` | number | The amount of tax that AvaTax calculated for the transaction.
            
If you used a `taxOverride` of type `taxAmount` for any lines in this transaction, this value
will represent the amount that AvaTax calculated for this transaction without applying the override.
The field `totalTax` will be the total amount of tax after all overrides are applied.
            
You can compare the `totalTax` and `totalTaxCalculated` fields to check for any discrepancies
between an external tax calculation provider and the calculation performed by AvaTax. |
| `adjustmentReason` | string | If this transaction was adjusted, indicates the unique ID number of the reason why the transaction was adjusted. |
| `adjustmentDescription` | string | If this transaction was adjusted, indicates a description of the reason why the transaction was adjusted. |
| `locked` | boolean | If this transaction has been reported to a tax authority, this transaction is considered locked and may not be adjusted after reporting. |
| `region` | string | The two-or-three character ISO region code of the region for this transaction. |
| `country` | string | The two-character ISO 3166 code of the country for this transaction. |
| `version` | integer | If this transaction was adjusted, this indicates the version number of this transaction.  Incremented each time the transaction
is adjusted. |
| `softwareVersion` | string | The software version used to calculate this transaction. |
| `originAddressId` | integer | The unique ID number of the origin address for this transaction. |
| `destinationAddressId` | integer | The unique ID number of the destination address for this transaction. |
| `exchangeRateEffectiveDate` | string | If this transaction included foreign currency exchange, this is the date as of which the exchange rate was calculated. |
| `exchangeRate` | number | The currency exchange rate from the invoice currency (`currencyCode`) to the reporting currency (`exchangeRateCurrencyCode`).
This only needs to be set if the invoice currency and the reporting currency are different. It defaults to 1.0. |
| `isSellerImporterOfRecord` | boolean | By default, the value is null, when the value is null, the value can be set at nexus level and used.
If the value is not null, it will override the value at nexus level.
            
If true, this seller was considered the importer of record of a product shipped internationally.
            
If this transaction is not an international transaction, this field may be left blank.
            
The "importer of record" is liable to pay customs and import duties for products shipped internationally.  If
you specify that the seller is the importer of record, then estimates of customs and import duties will be added
as tax details to the transaction.  Otherwise, the buyer is considered the importer of record, and customs
and import duties will not be added to the tax details for this transaction. |
| `description` | string | Description of this transaction.  Field permits unicode values. |
| `email` | string | Email address associated with this transaction. |
| `businessIdentificationNo` | string | VAT business identification number used for this transaction. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |
| `taxDate` | string | Tax date for this transaction |
| `lines` | array | A list of line items in this transaction.  To fetch this list, add the query string `?$include=Lines` or `?$include=Details` to your URL. |
| `addresses` | array | A list of line items in this transaction.  To fetch this list, add the query string `?$include=Addresses` to your URL.
            
For more information about transaction addresses, please see [Using Address Types](https://developer.avalara.com/avatax/dev-guide/customizing-transaction/address-types/)
in the AvaTax Developer Guide. |
| `locationTypes` | array | A list of location types in this transaction.  To fetch this list, add the query string `?$include=Addresses` to your URL. |
| `summary` | array | Contains a summary of tax on this transaction. |
| `taxDetailsByTaxType` | array | Contains the tax details per tax type |
| `parameters` | array | Contains a list of extra parameters that were set when the transaction was created. |
| `userDefinedFields` | array | Custom user fields/flex fields for this transaction. |
| `messages` | array | List of informational and warning messages regarding this API call.  These messages are only relevant to the current API call. |
| `invoiceMessages` | array | Invoice messages associated with this document. Currently, this stores legally-required VAT messages. |
| `customerSupplierName` | string | The name of the supplier / exporter / seller.
For sales doctype this will be the name of your own company for which you are reporting.
For purchases doctype this will be the name of the supplier you have purchased from. |
| `dataSourceId` | integer | The Id of the datasource from which this transaction originated.
This value will be overridden by the system to take the datasource Id from the call header. |
| `deliveryTerms` | string | Delivery Terms (or Incoterms) refer to agreed-upon conditions between a buyer and a seller for the delivery of goods. They are three-letter 
trade terms that describe the practical arrangements for the delivery of goods from sellers to buyers and set out the obligations, costs, and 
risks between the two parties.
The DeliveryTerms field determines who acts as the Importer of Record and who arranges the Transport of the goods when this 
information is not separately sent to AvaTax in the request. When used in conjunction with isSellerImporterOfRecord, this parameter can also 
influence whether AvaTax includes Import Duty and Tax in the transaction totals. If the fields for transport or isSellerImporterOfRecord are 
passed in the request and conflict with the DeliveryTerms, the values provided in the first will take priority over the DeliveryTerms 
parameter. If neither transport nor isSellerImporterOfRecord is passed in the request and DeliveryTerms is passed, AvaTax will determine who 
acts as Importer of Record and who arranges the Transport of the goods based on the specified DeliveryTerms. If none of these fields is 
passed, AvaTax will keep the current behavior and default transport to "Seller" for goods and isSellerImporterOfRecord to "False" (i.e., the 
AvaTax user does not act as Importer of record)."
Finally, this field is also used for reports.

The Delivery Terms that the user can pass are the following:
1. Ex Works (EXW)
2. Free Carrier (FCA)
3. Carrier and Insurance Paid to (CIP)
4. Carriage Paid To (CPT)
5. Delivered at Place (DAP)
6. Delivered at Place Unloaded (DPU)
7. Delivered Duty Paid (DDP)
8. Free Alongside Ship (FAS)
9. Free on Board (FOB)
10. Cost and Freight (CFR)
11. Cost, Insurance and Freight (CIF)

DAP and DDP are two delivery terms that indicate that Import Duty and Tax should be included in the transaction total. |
| `apStatusCode` | string | Users can set tolerance or threshold limits on transactions and inform users of appropriate actions to take
if a transaction falls outside of these values. 
An Accounts Payable (AP) status code indicates the action that needs to be taken when the tolerance/threshold 
falls above or below the tolerance/threshold limits.
            
Available AP status codes are:
1. NoAccrualMatch
2. NoAccrualUndercharge
3. NoAccrualOvercharge
4. NoAccrualAmountThresholdNotMet
5. NoAccrualTrustedVendor
6. NoAccrualExemptedCostCenter
7. NoAccrualExemptedItem
8. NoAccrualExemptedVendor
9. NoAccrualRejectMatch
10. NoAccrualRejectUndercharge
11. NoAccrualShortPayAvalaraCalculated
12. NoAccrualRejectOvercharge
13. NoAccrualExemptedGLAccount
14. AccruedUndercharge
15. AccruedVendor
16. AccruedShortPayItemsMatch
17. AccruedShortPayItemsUndercharge
18. AccruedShortPayItemsOvercharge
19. NeedReviewUndercharge
20. NeedReviewVendor
21. NeedReviewMatch
22. NeedReviewOvercharge
23. PendingAccrualVendor
24. PendingAccrualUndercharge
25. PendingShortPayItemsUndercharge
26. PendingShortPayItemsMatch
27. PendingShortPayItemsOvercharge |
| `apStatus` | string | An Accounts Payable (AP) status indicates an action that needs to be taken when the tolerance amount falls 
above or below certain threshold limits. |
| `vendorName` | string | The name of the vendor |
| `varianceAmount` | number | The transaction-level variance (the difference between Vendor Charged Tax and AvaTax Calculated Tax) that has been calculated for this AP transaction. |

### TransactionModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### TransactionParameterModel

Represents a transaction parameter.

| Property | Type | Description |
|---|---|---|
| `name` | string | The name of the parameter. |
| `value` | string | The value of the parameter. |
| `unit` | string | The unit of measure of the parameter value. |

### TransactionSummary

Summary information about an overall transaction.

| Property | Type | Description |
|---|---|---|
| `country` | string | Two character ISO-3166 country code. |
| `region` | string | Two or three character ISO region, state or province code, if applicable. |
| `jurisType` | string | The type of jurisdiction that collects this tax. |
| `jurisCode` | string | Jurisdiction Code for the taxing jurisdiction |
| `jurisName` | string | The name of the jurisdiction that collects this tax. |
| `taxAuthorityType` | integer | The unique ID of the Tax Authority Type that collects this tax. |
| `stateAssignedNo` | string | The state assigned number of the jurisdiction that collects this tax. |
| `taxType` | string | The tax type of this tax. |
| `taxSubType` | string | The tax subtype of this tax. |
| `taxName` | string | The name of the tax. |
| `taxGroup` | string | Group code when special grouping is enabled. |
| `rateType` | string | DEPRECATED - Date: 3/1/2018, Version: 18.3, Message: Please use rateTypeCode instead.
Indicates the tax rate type. |
| `rateTypeCode` | string | Indicates the code of the rate type.  Use [ListRateTypesByCountry](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListRateTypesByCountry/) API for a full list of rate type codes. |
| `taxable` | number | Tax Base - The adjusted taxable amount. |
| `rate` | number | Tax Rate - The rate of taxation, as a fraction of the amount. |
| `tax` | number | Tax amount - The calculated tax (Base * Rate). |
| `taxCalculated` | number | The amount of tax that AvaTax calculated for the transaction.
            
If you used a `taxOverride` of type `taxAmount`, there may be a difference between
the `tax` field which applies your override, and the `TaxCalculated` field which
represents the amount of tax that AvaTax calculated for this transaction without override.
            
You can use this for comparison. |
| `nonTaxable` | number | The amount of the transaction that was non-taxable. |
| `exemption` | number | The amount of the transaction that was exempt. |

### TransactionUserDefinedFieldModel

User Defined fields/Flex Fields at Transaction level.

| Property | Type | Description |
|---|---|---|
| `name` | string | The name of the user defined field. |
| `value` | string | The value of the user defined field. |

### UPCModel

One Universal Product Code object as defined for your company.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number for this UPC. |
| `companyId` | integer | The unique ID number of the company to which this UPC belongs. |
| `upc` | string | The 12-14 character Universal Product Code, European Article Number, or Global Trade Identification Number. |
| `legacyTaxCode` | string | Legacy Tax Code applied to any product sold with this UPC. |
| `description` | string | Description of the product to which this UPC applies. |
| `effectiveDate` | string | If this UPC became effective on a certain date, this contains the first date on which the UPC was effective. |
| `endDate` | string | If this UPC expired or will expire on a certain date, this contains the last date on which the UPC was effective. |
| `usage` | integer | A usage identifier for this UPC code. |
| `isSystem` | integer | A flag indicating whether this UPC code is attached to the AvaTax system or to a company. |
| `createdDate` | string | The date when this record was created. |
| `createdUserId` | integer | The User ID of the user who created this record. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `modifiedUserId` | integer | The user ID of the user who last modified this record. |

### UPCModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### UnauthorizedErrorResponse

This is used to map the error details in response

| Property | Type | Description |
|---|---|---|
| `code` | integer | Status code in the response |
| `message` | string | Error message in the response |

### UnitOfBasisModel

| Property | Type | Description |
|---|---|---|
| `unitOfBasisId` | integer | UnitOfBasisId |
| `unitOfBasis` | string | UnitOfBasis Name |
| `measurementTypeId` | integer | UnitOfBasis measurement type ID |
| `measurementTypeCode` | string | UnitOfBasis measurement type code |
| `attributesUsed` | array | UnitOfBasis attributes used |
| `isFee` | boolean | A boolean value based on the current definition of a Fee in AvaTax |

### UnitOfBasisModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### UomModel

The "Unit of Measurement" model captures information about a type of measurement.  Types of measurement refer to
different scales for the same dimension.  For example, measurements of type "Distance" may include units of measurement
such as meters, feet, inches, and miles.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this unit of measurement. |
| `code` | string | The code that refers to this unit of measurement. |
| `shortDesc` | string | A short description of this unit of measurement. |
| `description` | string | A longer description of this unit of measurement. |
| `measurementTypeId` | integer | The ID number of the measurement type, such as "Distance" or "Mass". |
| `measurementTypeCode` | string | The code describing the measurement type. |
| `siUOM` | string | For a particular measurement type, this is the ID number of the unit of measurement object corresponding to the
International System of Units (abbreviated SI) unit of measurement standard.  This pointer allows you to select
the SI unit of measurement for a particular measurement type. |
| `measurementTypeDescription` | string | A description of the measurement type system. |
| `isSiUom` | boolean | True if this measurement is an International System of Units (abbreviated SI) defined standard. |

### UomModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### UpdateCompanyLocationRemittanceModel

Expire a location without restriction then update with new remittance and dates.

| Property | Type | Description |
|---|---|---|
| `addressCategoryId` | string | Indicates whether this location is a physical place of business or a temporary salesperson location. |
| `effectiveDate` | string | The date when this location was opened for business. |
| `endDate` | string | If this place of business has closed, the date when this location closed business. If null it'll be set to the date of 9998-12-31. |

### UpdateCustomFields

Update custom fields model

| Property | Type | Description |
|---|---|---|
| `id` | integer | Id of the custom field |
| `value` | string | Value of the custom field |

### UpdateCustomFieldsModel

UpdateCustomFieldsModel with list of UpdateCustomFields

| Property | Type | Description |
|---|---|---|
| `customFields` | array | List of UpdateCustomFields |

### UserEntitlementModel

User Entitlement Model

| Property | Type | Description |
|---|---|---|
| `permissions` | array | List of API names and categories that this user is permitted to access |
| `accessLevel` | string | What access privileges does the current user have to see companies? |
| `companies` | array | The identities of all companies this user is permitted to access |

### UserModel

An account user who is permitted to use AvaTax.

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this user. |
| `accountId` | integer | The unique ID number of the account to which this user belongs. |
| `companyId` | integer | If this user is locked to one company (and its children), this is the unique ID number of the company to which this user belongs. |
| `userName` | string | The username which is used to log on to the AvaTax website, or to authenticate against API calls. |
| `firstName` | string | The first or given name of the user. |
| `lastName` | string | The last or family name of the user. |
| `email` | string | The email address to be used to contact this user.  If the user has forgotten a password, an email can be sent to this email address with information on how to reset this password. |
| `postalCode` | string | The postal code in which this user resides. |
| `securityRoleId` | string | The security level for this user. |
| `passwordStatus` | string | The status of the user's password. For a new user created, this is always going to be `UserMustChange` |
| `isActive` | boolean | True if this user is currently active. |
| `createdDate` | string | The date when this record was created. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `subjectId` | string | Matches the subjectId of corresponding user record in AI. |
| `migratedDate` | string | The date/time when this record was migrated to Avalara Identity modified. |
| `suppressNewUserEmail` | boolean | Suppress new user email |
| `isDeleted` | boolean | A boolean flag to identify if the user is deleted |

### UserModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### ValidatedAddressInfo

Represents a validated address

| Property | Type | Description |
|---|---|---|
| `addressType` | string | Address type code. One of:
* Firm or company address
* General Delivery address
* High-rise or business complex
* PO Box address
* Rural route address
* Street or residential address |
| `line1` | string | First line of the street address |
| `line2` | string | Second line of the street address |
| `line3` | string | Third line of the street address |
| `city` | string | City component of the address |
| `region` | string | Name or ISO 3166 code identifying the region within the country.
            
This field supports many different region identifiers:
 * Two and three character ISO 3166 region codes
 * Fully spelled out names of the region in ISO supported languages
 * Common alternative spellings for many regions
            
For a full list of all supported codes and names, please see the Definitions API `ListRegions`. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `postalCode` | string | Postal Code / Zip Code component of the address. |
| `latitude` | number | Geospatial latitude measurement, in Decimal Degrees floating point format. |
| `longitude` | number | Geospatial longitude measurement, in Decimal Degrees floating point format. |

### VarianceDetail

| Property | Type | Description |
|---|---|---|
| `taxSubType` | string |  |
| `amount` | number |  |
| `currency` | string |  |

### VarianceLine

| Property | Type | Description |
|---|---|---|
| `lineNo` | string |  |
| `hsCode` | string |  |
| `dutyRate` | number |  |
| `taxRate` | number |  |
| `amount` | VarianceUnit |  |
| `taxableAmount` | VarianceUnit |  |
| `dutyPaid` | VarianceUnit |  |
| `taxPaid` | VarianceUnit |  |
| `totalTaxPaid` | VarianceUnit |  |
| `details` | array |  |

### VarianceRequestModel

Request model used as input for Variance API.

| Property | Type | Description |
|---|---|---|
| `documentId` | integer |  |
| `documentCode` | string |  |
| `purchaseOrderNo` | string |  |
| `referenceNo` | string |  |
| `exchangeRate` | number |  |
| `lines` | array |  |
| `amount` | VarianceUnit |  |
| `taxableAmount` | VarianceUnit |  |
| `dutyPaid` | VarianceUnit |  |
| `taxPaid` | VarianceUnit |  |
| `totalTaxPaid` | VarianceUnit |  |
| `details` | array |  |

### VarianceResponseEntity

| Property | Type | Description |
|---|---|---|
| `documentId` | integer |  |
| `documentCode` | string |  |
| `customInvoiceId` | integer |  |
| `varianceId` | integer |  |
| `status` | string |  |
| `errorMessage` | string |  |
| `taxableVariance` | number |  |
| `dutyVariance` | number |  |
| `taxVariance` | number |  |
| `totalTaxVariance` | number |  |
| `unMappedDetails` | array |  |
| `varianceLines` | array |  |

### VarianceResponseLine

| Property | Type | Description |
|---|---|---|
| `lineNo` | string |  |
| `hsCodeVariance` | HsCode |  |
| `dutyRateVariance` | string |  |
| `taxableVariance` | number |  |
| `dutyVariance` | number |  |
| `taxVariance` | number |  |
| `totalTaxVariance` | number |  |
| `unMappedDetails` | array |  |

### VarianceResponseModel

| Property | Type | Description |
|---|---|---|
| `totalRequest` | integer |  |
| `variance` | array |  |

### VarianceUnit

| Property | Type | Description |
|---|---|---|
| `amount` | number |  |
| `currency` | string |  |

### VendorAdditionalInfoModel

Represents additional information for vendor

| Property | Type | Description |
|---|---|---|
| `id` | integer | The unique ID number of this vendor additional info record. |
| `vendorId` | integer | The ID of the vendor (customer) this additional information is associated with. |
| `costCenterId` | integer | The identifier for the cost center associated with this vendor. |
| `costCenterCode` | string | The cost center code associated with this vendor. |
| `itemCodeId` | integer | The identifier for the item code associated with this vendor. |
| `itemCode` | string | The item code associated with this vendor. |
| `defaultTaxExemption` | string | The default tax exemption for this vendor. |
| `shipFromLocationId` | integer | The ID of the ship-from location for this vendor. |
| `shipFromLocationCode` | string | The code identifying the ship-from location for this vendor. |
| `shipFromAddressLine` | string | Street address line of the ship-from location for this vendor. |
| `shipFromAddressCity` | string | City component of the ship-from address for this vendor. |
| `shipFromAddressState` | string | State or region component of the ship-from address for this vendor. |
| `shipFromAddressZip` | string | Postal code / zip code component of the ship-from address for this vendor. |
| `shipFromAddressCountry` | string | Country component of the ship-from address for this vendor. |
| `shipToLocationId` | integer | The unique ID of the ship-to location for this vendor. |
| `shipToLocationCode` | string | The code identifying the ship-to location for this vendor. |
| `shipToAddressLine` | string | Street address line of the ship-to location for this vendor. |
| `shipToAddressCity` | string | City component of the ship-to address for this vendor. |
| `shipToAddressState` | string | State or region component of the ship-to address for this vendor. |
| `shipToAddressZip` | string | Postal code / zip code component of the ship-to address for this vendor. |
| `shipToAddressCountry` | string | Country component of the ship-to address for this vendor. |
| `isTrustedVendor` | boolean | This value is `true` if this vendor is marked as a trusted vendor. |
| `isAccrual` | boolean | This value is `true` if accrual accounting is enabled for this vendor. |
| `isTaxOnVendor` | boolean | This value is `true` if tax liability is on the vendor rather than the purchaser. |

### VendorCertificateModel

Represents a certificate document for vendors.
This model inherits all properties from CertificateModel and adds vendor-specific functionality.

| Property | Type | Description |
|---|---|---|
| `documentTypeId` | integer | The unique ID number of the document type for this vendor certificate. |
| `documentTypeName` | string | The name of the document type for this vendor certificate. |
| `documentTypeDescription` | string | The description of the document type for this vendor certificate. |
| `documentTypeOutgoing` | boolean | Indicates whether this document type is for outgoing documents. |
| `id` | integer | The unique ID number of this certificate. |
| `companyId` | integer | The unique ID number of the AvaTax company that recorded this certificate. |
| `signedDate` | string | The date when this certificate was signed. |
| `expirationDate` | string | Expiration date when this certificate will no longer be valid. |
| `filename` | string | File name for the image of this certificate.
            
When creating a certificate, if you do not upload a PDF or JPG image, you must specify the filename
of the certificate as it is tracked in your repository.
            
To create a certificate, you must provide one of the following fields: either a `filename`, a `pdf` file,
or an array of JPG `pages`.  The API will return an error if you omit these fields or if you attempt to
put values in more than one of them. |
| `documentExists` | boolean | This value is true if there exists scanned PDF copy of this certificate or the PDF version of the form that the customer filled via the CertCapture wizard on S3 bucket. |
| `valid` | boolean | True if this certificate is marked as valid.  A valid certificate can be considered for exemption purposes.
When a certificate is marked invalid, it will no longer be considered when calculating exemption for
a customer. |
| `verified` | boolean | This value is true if the certificate has gone through the certificate validation process.
For more information on the certificate validation process, please see the Avalara Help Center. |
| `exemptPercentage` | number | If this certificate provides exemption from transactional taxes, what percentage of the transaction
is considered exempt?
            
For a fully exempt certificate, this percentage should be 100. |
| `isSingleCertificate` | boolean | This value is true if this certificate is a single (or standalone) certificate.  This value is set
during the audit stage of the certificate validation process. |
| `exemptionNumber` | string | Indicates the tax number passed in for the certificate. |
| `validatedExemptionReason` | ExemptionReasonModel | The exemption reason that CertCapture audit/internal logic identifies for created certificate. |
| `exemptionReason` | ExemptionReasonModel | The exemption reason associated with this certificate.  For example, the reason code for exemption
for purposes of resale is `RESALE`.
            
For a list of exemption reasons, call `ListCertificateExemptReasons`. |
| `status` | string | The status of the certificate.
Possible values for status COMPLETE,PENDING,PENDING-FUTURE,PENDING-MULTI,PENDING-SINGLE,REVOKED |
| `ecmStatus` | string | The status of the certificate as displayed on https://exemptions.avalara.com. The values in `CertificateEcmStatus` include all the possible status values. |
| `createdDate` | string | The date/time when this record was created. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `taxNumberType` | string | The tax number type for the certificate. For example, `FEIN`, `Social Security Number`, or `Employer Identification Number`. |
| `businessNumberType` | string | Description of business for the certificate. For example, `Retail trade`, `Professional services`, or `Construction`. |
| `pageCount` | integer | The number of pages contained within this certificate. |
| `customers` | array | A list of customers to which this certificate applies.  You can fetch this data by specifying
`$include=customers` when calling a certificate fetch API. |
| `poNumbers` | array | A list of purchase order numbers that are valid for use with this certificate.
            
If this certificate is applicable for all purchase order numbers, this field will be empty.
            
You can fetch this data by specifying `$include=po_numbers` when calling a certificate fetch API. |
| `exposureZone` | ExposureZoneModel | The exposure zone where this certificate is valid. |
| `exposureZoneName` | string | The name of the exposure zone where this certificate is valid.
This is a computed property for filtering purposes. |
| `jurisdictions` | array | A list of jurisdictions associated with this certificate, indicating the tax authority
regions where the certificate applies. A certificate can have one or more jurisdictions.
            
You can fetch this data by specifying `$include=jurisdictions` when calling a certificate fetch API. |
| `attributes` | array | A list of certificate attributes that apply to this certificate.
            
You can fetch this data by specifying `$include=attributes` when calling a certificate fetch API. |
| `histories` | array | A list of update histories for this certificate.
            
You can fetch this data by specifying `$include=histories` when calling a certificate fetch API. |
| `jobs` | array | The jobs (and their phases / tasks) associated with this certificate.
            
On POST / PUT: supply the `id` of each existing job — and optionally nested phase /
task `id`s — to link them to this certificate. All other fields on each entry
(`name`, `jobNumber`, `isExplicit`, etc.) are server-computed and ignored
on input.
            
On GET: populated when `$include=jobs` is specified. Use `$include=jobs.phases`
to also expand the phases within each job, and `$include=jobs.tasks` to expand the
tasks within each phase (which implies `jobs` and `jobs.phases`). |
| `logs` | array | A list of logs for this certificate.
            
You can fetch this data by specifying `$include=logs` when calling a certificate fetch API. |
| `invalidReasons` | array | For a certificate with an invalid status, this lists the reasons why the certificate is invalid.
            
You can fetch this data by specifying `$include=invalid_reasons` when calling a certificate fetch API. |
| `customFields` | array | A list of custom defined fields for this certificate.
            
You can fetch this data by specifying `$include=custom_fields` when calling a certificate fetch API. |
| `ecmsId` | integer | The unique ID number of current AvaTax Exemption Certificate that refers this certificate. |
| `ecmsStatus` | string | The status of current AvaTax Exemption Certificate  that refers to this certificate. |
| `pdf` | string | This field is available for input only.  To retrieve the image after creation, use the
`DownloadCertificateImage` API.
            
When creating a certificate, you may optionally provide a PDF image in Base64 URLEncoded format.
PDFs are automatically parsed into individual page JPG images and can be retrieved back
later as either the original PDF or the individual pages.
            
To create a certificate, you must provide one of the following fields: either a `filename`, a `pdf` file,
or an array of JPG `pages`.  The API will return an error if you omit these fields or if you attempt to
put values in more than one of them. |
| `pages` | array | This field is available for input only.  To retrieve the image after creation, use the
`DownloadCertificateImage` API.
            
When creating a certificate, you may optionally provide a list of JPG images, one per page, in
Base64 URLEncoded format.  These JPG images are automatically combined into a single downloadable
PDF and can be retrieved back later as either the original JPG images or the combined PDF.
            
To create a certificate, you must provide one of the following fields: either a `filename`, a `pdf` file,
or an array of JPG `pages`.  The API will return an error if you omit these fields or if you attempt to
put values in more than one of them. |

### VendorCertificateModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### VendorModel

Represents a vendor from whom you purchase products and/or services.
This model inherits all properties from CustomerModel and adds vendor-specific functionality.

| Property | Type | Description |
|---|---|---|
| `isVendor` | boolean | Indicates whether this entity is a vendor.
This flag helps distinguish vendors from regular customers in the system.
Note: This field is automatically set to true for vendor endpoints and cannot be overridden by user filters. |
| `vendorAdditionalInfo` | VendorAdditionalInfoModel | Additional vendor information including cost center, item codes, shipping locations, and tax settings.
This property is only available for AvaTaxAP subscription. |
| `id` | integer | The unique ID number of this customer. |
| `companyId` | integer | The unique ID number of the AvaTax company that recorded this customer. |
| `customerCode` | string | The unique code identifying this customer.  Must be unique within your company.
            
This code should be used in the `customerCode` field of any call that creates or adjusts a transaction
in order to ensure that all exemptions that apply to this customer are correctly considered.
            
Note: This field is case sensitive. |
| `alternateId` | string | A customer-configurable alternate ID number for this customer.  You may set this value to match any
other system that would like to reference this customer record. |
| `name` | string | A friendly name identifying this customer. |
| `attnName` | string | Indicates the "Attn:" component of the address for this customer, if this customer requires mailings to be shipped
to the attention of a specific person or department name. |
| `line1` | string | First line of the street address of this customer. |
| `line2` | string | Second line of the street address of this customer. |
| `city` | string | City component of the street address of this customer. |
| `postalCode` | string | Postal Code / Zip Code component of the address of this customer. |
| `phoneNumber` | string | The main phone number for this customer. |
| `faxNumber` | string | The fax phone number for this customer, if any. |
| `emailAddress` | string | The main email address for this customer. |
| `contactName` | string | The name of the main contact person for this customer. |
| `lastTransaction` | string | Date when this customer last executed a transaction. |
| `createdDate` | string | The date when this record was created. |
| `modifiedDate` | string | The date/time when this record was last modified. |
| `country` | string | Name or ISO 3166 code identifying the country.
            
This field supports many different country identifiers:
 * Two character ISO 3166 codes
 * Three character ISO 3166 codes
 * Fully spelled out names of the country in ISO supported languages
 * Common alternative spellings for many countries
            
For a full list of all supported codes and names, please see the Definitions API `ListCountries`. |
| `region` | string | ISO 3166 code identifying the region within the country.
Two and three character ISO 3166 region codes.
This is a required field if the country is US or CA. For other countries, this is an optional field.
For a full list of all supported codes, please see the Definitions API `ListRegions`. |
| `isBill` | boolean | True if this customer record is specifically used for bill-to purposes. |
| `isShip` | boolean | True if this customer record is specifically used for ship-to purposes. |
| `taxpayerIdNumber` | string | For customers in the United States, this field is the federal taxpayer ID number.  For businesses, this is
a Federal Employer Identification Number.  For individuals, this will be a Social Security Number. |
| `certificates` | array | A list of exemption certficates that apply to this customer.  You can fetch this data by specifying
`$include=certificates` when calling a customer fetch API. |
| `customFields` | array | A list of custom fields defined on this customer.
            
For more information about custom fields, see the [Avalara Help Center article about custom fields](https://help.avalara.com/0021_Avalara_CertCapture/All_About_CertCapture/Edit_or_Remove_Details_about_Customers). |
| `exposureZones` | array | A list of exposure zones where you do business with this customer.
            
To keep track of certificates that are needed for each customer, set this value to a list of all exposure zones where you
sell products to this customer.  You can find a list of exposure zones by calling `ListExposureZones`.
            
This field is often called "Ship-To States" or "Ship-To Zones", since it generally refers to locations where you ship products
when this customer makes a purchase.
            
This field is useful for audit purposes since it helps you ensure you have the necessary certificates for each customer. |
| `billTos` | array | A list of bill-to customer records that are connected to this ship-to customer.
            
Customer records represent businesses or individuals who can provide exemption certificates.  Some customers
may have certificates that are linked to their shipping address or their billing address.  To group these
customer records together, you may link multiple bill-to and ship-to addresses together to represent a single
entity that has multiple different addresses of different kinds. |
| `shipTos` | array | A list of ship-to customer records that are connected to this bill-to customer.
            
Customer records represent businesses or individuals who can provide exemption certificates.  Some customers
may have certificates that are linked to their shipping address or their billing address.  To group these
customer records together, you may link multiple bill-to and ship-to addresses together to represent a single
entity that has multiple different addresses of different kinds. |
| `attributes` | array | A list of attributes that apply to this customer.
            
You can fetch this data by specifying `$include=attributes` when calling a customer fetch API. |
| `activeCertificates` | array | A list of active certificates with exemption reasons. |
| `histories` | array | A list of field update histories for this customer. |
| `logs` | array | A list of logs for this customer. |
| `shipToStates` | array | A list of states where this customer ships to. |

### VendorModelFetchResult

| Property | Type | Description |
|---|---|---|
| `@recordsetCount` | integer |  |
| `value` | array |  |
| `@nextLink` | string |  |
| `pageKey` | string |  |

### VerifyMultiDocumentModel

Verify that a MultiDocument object matches the information in your accounting system.
            
If all attributes of the MultiDocument object match the values in your request, the
MultiDocument object will be moved to the document status `Posted`.
            
For more information on document status, see [DocumentStatus](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/DocumentStatus/).

| Property | Type | Description |
|---|---|---|
| `code` | string | Represents the unique code of this MultiDocument transaction.
            
A MultiDocument transaction is uniquely identified by its `accountId`, `code`, and `type`. |
| `type` | string | Represents the document type of this MultiDocument transaction.  For more information about
document types, see [DocumentType](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/DocumentType/).
            
A MultiDocument transaction is uniquely identified by its `accountId`, `code`, and `type`. |
| `verifyTransactionDate` | string | Set this value if you wish to verify a match between `verifyTransactionDate` and
the `documentDate` value on the transaction recorded in AvaTax.
            
If you leave this field empty, we will skip verification for this field. |
| `verifyTotalAmount` | number | Set this value if you wish to verify a match between `verifyTotalAmount` and
the `totalAmount` value on the transaction recorded in AvaTax.
            
If you leave this field empty, we will skip verification for this field. |
| `verifyTotalTax` | number | Set this value if you wish to verify a match between `verifyTotalTax` and
the `totalTax` value on the transaction recorded in AvaTax.
            
If you leave this field empty, we will skip verification for this field. |

### VerifyTransactionModel

Verify this transaction by matching it to values in your accounting system.
            
You may specify one or more of the following fields to verify: `date`, `totalAmount`, or `totalTax`.
This call will report an error if there is any difference between the data stored in AvaTax and
the data stored in your accounting system.

| Property | Type | Description |
|---|---|---|
| `verifyTransactionDate` | string | Set this value if you wish to verify a match between `verifyTransactionDate` and
the `documentDate` value on the transaction recorded in AvaTax.
            
If you leave this field empty, we will skip verification for this field. |
| `verifyTotalAmount` | number | Set this value if you wish to verify a match between `verifyTotalAmount` and
the `totalAmount` value on the transaction recorded in AvaTax.
            
If you leave this field empty, we will skip verification for this field. |
| `verifyTotalTax` | number | Set this value if you wish to verify a match between `verifyTotalTax` and
the `totalTax` value on the transaction recorded in AvaTax.
            
If you leave this field empty, we will skip verification for this field. |

### VoidTransactionModel

A request to void a previously created transaction

| Property | Type | Description |
|---|---|---|
| `code` | string | Please specify the reason for voiding or cancelling this transaction.
To void the transaction, please specify the reason 'DocVoided'.
If you do not provide a reason, the void command will fail. |
