# Avalara Tax Content - Configuration Service

Use this service to configure your ATC jobs and schedules.

Source: https://developer.avalara.com/products/avalara-tax-content/api/

**Version:** v1
**Base URL:** https://rest.avatax.com/api/v2/content/configuration

---

## Endpoints

### Communications

#### Get a single record.

`GET /v1/companies/{company}/Communications/{identifier}`

Retrieve a single record for a company based the ID.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The ID to retrieve. |

#### Update an existing record.

`PUT /v1/companies/{company}/Communications/{identifier}`

Update an existing TTE configuration, communication, job, or onboarding record for a company based on its `tteId`, `communicationId`, `jobId`, or `onboardingId`.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The TTE, communication, job, or onboarding ID to update. |

#### Delete a communication record for a given company.

`DELETE /v1/companies/{company}/Communications/{identifier}`

Delete a communication record for a company based on its `communicationId`.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The communication ID to delete. |

#### List item by company ID.

`GET /v1/companies/{company}/Communications`

Retrieve a list of items for a specific company.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |

#### Create new record.

`POST /v1/companies/{company}/Communications`

TTE configurations allow you to configure a combination of tax rates and rules to support what your business sells at each location where you collect and remit tax.
            
Communication records determine who to notifiy when new content is delivered via a job. Specify a unique name and ID for the Communication job, and associate that job with up to 5 email addresses (recipients).
            
Jobs allow you to configure company-specific TTE job settings.
            
Onboarding allows you to specify how complete your company setup is. For each onboarding ID, you can specify whether the following are complete:
* isPOSSetupDone
* isTTESetupDone
* isJobsSetupDone
* isCommunicationSetupDone

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |


### Configurations

#### List TTE configurations by Company ID.

`GET /v1/companies/{company}/Configurations`

Retrieve a list of all TTE configurations available for a specific company. This list can be narrowed further by searching based on the `parentTTEId` and/or the `TTEName`.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `parentTTEId` | string | query | No | Parent TTE ID. |
| `searchTTEName` | string | query | No | TTE name. |
| `productType` | string | query | No | Product Type (default is retail). |

#### Create new record.

`POST /v1/companies/{company}/Configurations`

TTE configurations allow you to configure a combination of tax rates and rules to support what your business sells at each location where you collect and remit tax.
            
Communication records determine who to notifiy when new content is delivered via a job. Specify a unique name and ID for the Communication job, and associate that job with up to 5 email addresses (recipients).
            
Jobs allow you to configure company-specific TTE job settings.
            
Onboarding allows you to specify how complete your company setup is. For each onboarding ID, you can specify whether the following are complete:
* isPOSSetupDone
* isTTESetupDone
* isJobsSetupDone
* isCommunicationSetupDone

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |

#### Get a single record.

`GET /v1/companies/{company}/Configurations/{identifier}`

Retrieve a single record for a company based the ID.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The TTE to retrieve. |

#### Updates Configuration record.

`PUT /v1/companies/{company}/Configurations/{identifier}`

Update an existing configurationId`.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | configuration ID to update. |

#### Delete a TTE configuration record.

`DELETE /v1/companies/{company}/Configurations/{identifier}`

Delete a specific configuration record for a company based on its `tteId`.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The TTE ID that you want to delete. |

#### Get Lodging UDF records associated with TTE.

`GET /v1/companies/{company}/Configurations/downloadLodgingUdf/{identifier}`

Retrieve a single record for a company based the ID.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The TTE to retrieve. |


### Jobs

#### List jobs by Company ID.

`GET /v1/companies/{company}/Jobs`

Retrieve a list of all TTE configurations available for a specific company. This list can be narrowed further by searching based on the `parentTTEId` and/or the `TTEName`.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `productType` | string | query | No | Product Type (default is retail) |
| `configurationId` | string | query | No | Configuration ID (TTE ID) to filter jobs. |

#### Create company-specific configuration settings for TTE jobs.

`POST /v1/companies/{company}/Jobs`

Create company-specific job settings for your TTE jobs.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |

#### Get a single record.

`GET /v1/companies/{company}/Jobs/{identifier}`

Retrieve a single record for a company based the ID.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The ID to retrieve. |

#### Update an existing record.

`PUT /v1/companies/{company}/Jobs/{identifier}`

Update an existing TTE configuration, communication, job, or onboarding record for a company based on its `tteId`, `communicationId`, `jobId`, or `onboardingId`.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The TTE, communication, job, or onboarding ID to update. |

#### Delete a job.

`DELETE /v1/companies/{company}/Jobs/{identifier}`

Delete a TTE job setup for a specific company.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The Job Id to delete. |


### Lodging

#### Get all lodging Tax Names and Tax Jurisdiction names for a given state. Optional query filter available.

`GET /v1/atcse/TaxNames/{state}`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |
| `state` | string | path | Yes | US state. |
| `query` | string | query | No | Query filter to apply to result list, ie "Accomodations". |

#### Get all udf ds data for your company by US state.

`GET /v1/atcse/company/{company}/UdfDs/State/{state}`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |
| `state` | string | path | Yes | US state. |
| `query` | string | query | No | query filter. |
| `validate` | boolean | query | No | If true, checks if the tax is current and returns an extra field (isCurrent) for each record. |

#### Check whether you should do a TTE run based on all current Remittance data.
Throws an error if reporting the issue if not ready.

`GET /v1/atcse/company/{company}/UdfDs/ReadyToRun`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |

#### Get all approved ids to be used as udf dataset values in the lodging run.
Seperator is ',', CustomerSourceField's with commmas will have the comma stripped.

`GET /v1/atcse/company/{company}/UdfDs/UdfDatasetIds`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |

#### Try to fuzzy match a list of tax names to Avalara tax and tax jurisdiction names.

`POST /v1/atcse/company/{company}/UdfDs/match/{state}`

Rather than using this api, we recommend doing your own mapping to TaxName or TaxJurisdictionName, this is a convenience api only.

There is no guarantee for accuracy, you are responsible for making sure these estimates are correct.

Example `state`: "ID", `searchTerms`: [
 "Idaho State Sales Tax",
 "Pocatello-Chubbuck Auditorium District Tax"
]

These 2 rows will be added to your data, you may need to correct them.

match item 1: "TaxName": "ID State Sales & Use Tax", "TaxJurisdictionName": "IDAHO"

match item 2: "TaxName": "ID Special Sales & Use Tax", "TaxJurisdictionName": "POCATELLO CHUBBUCK AUDITORIUM DISTRICT SP"
.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |
| `state` | string | path | Yes | US state. |
| `jurisdictionLevel` | string | query | No | optional parameter if you know it. Accepted values: ['StateOrProvince', 'Special', 'CountyOrParish', 'PlaceOrCity']. |

#### Imports multiple UserDefinedFieldDatasetModel.

`POST /v1/atcse/company/{company}/UdfDs/Import/{udfKey}`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |
| `udfKey` | string | path | Yes | UdfKey for all imports in the request, ie "Remittance", this maps to your UDF field name. |
| `approvalState` | boolean | query | No | What to set for approval flag of imported items (default true).  You may want to set this to false if importing from fuzzy match results. |

#### List UserDefinedFieldDataset data by company ID.

`GET /v1/atcse/company/{company}/UdfDs`

Retrieve a list of items for a specific company.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `query` | string | query | No | Query filter. |
| `validate` | boolean | query | No | If true, checks if the tax is current and returns an extra field (isCurrent) for each record. |

#### Create a single UserDefinedFieldDatasetModel record.

`POST /v1/atcse/company/{company}/UdfDs`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |

#### Get a single UserDefinedFieldDatasetModel.

`GET /v1/atcse/company/{company}/UdfDs/{identifier}`

Retrieve a single record for a company based the ID.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `identifier` | string | path | Yes | The UDF Dataset id to retrieve. |

#### Update a single UserDefinedFieldDatasetModel item.  You may need to DELETE then POST if the tax details are changing.

`PUT /v1/atcse/company/{company}/UdfDs/{identifier}`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |
| `identifier` | string | path | Yes | the UdfDatasetId or record to udpate. |

#### Delete a single UserDefinedFieldDatasetModel item by UdfDatasetId.

`DELETE /v1/atcse/company/{company}/UdfDs/{identifier}`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |
| `identifier` | string | path | Yes | the UdfDatasetId or record to delete. |

#### Bulk add/remove approval to multiple UDF Dataset items.

`POST /v1/atcse/company/{company}/UdfDs/approve`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |
| `approvalState` | boolean | query | No | the state for approval, default is true. |

#### Deletes multiple UserDefinedFieldDatasetModel item by UdfDatasetId.

`DELETE /v1/atcse/company/{company}/UdfDs/delete`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | company id. |

#### Download lodging remittance template.

`GET /v1/atcse/company/{company}/UdfDs/downloadRemittanceTemplate`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `state` | string | query | No | State or Province 2 letter abbreviation. |
| `includeMissing` | boolean | query | No | Include tax/juris not already in Remittance dataset for template. |

---

## Models

### Avalara.POS.API.CFG.Model.CommunicationModel

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | AvaTax Company ID. |
| `accountId` | integer | AvaTax Account ID. |
| `createdBy` | integer | Created user ID. |
| `createdDate` | string | Created date. |
| `modifiedBy` | integer | Last modifying user ID. |
| `modifiedDate` | string | Last modified date. |
| `communicationId` | string | Communication ID. |
| `communicationName` | string | Communication name. |
| `emailAddresses` | string | Email addresses (separated by semicolon). |

### Avalara.POS.API.CFG.Model.ConfigurationModel

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | AvaTax Company ID. |
| `accountId` | integer | AvaTax Account ID. |
| `createdBy` | integer | Created user ID. |
| `createdDate` | string | Created date. |
| `modifiedBy` | integer | Last modifying user ID. |
| `modifiedDate` | string | Last modified date. |
| `tteId` | string | Configuration ID. |
| `tteName` | string | TTE configuration name. |
| `tteType` | string | TTE type.
Values: `Default` and `Lodging`. |
| `parentTTEId` | string | Parent TTE ID. |
| `tteConfiguration` | Avalara.POS.API.CFG.Model.ConfigurationModel+Configuration |  |
| `outputFile` | object |  |
| `defaultCountry` | string | Default country |
| `productType` | string | Product Type default should be treated as Retail |

### Avalara.POS.API.CFG.Model.ConfigurationModel+BracketFlagAssignment

| Property | Type | Description |
|---|---|---|
| `states` | array |  |
| `locations` | array |  |
| `taxTypeRateClasses` | array |  |

### Avalara.POS.API.CFG.Model.ConfigurationModel+Configuration

| Property | Type | Description |
|---|---|---|
| `_schemaVersion` | integer | Configuration schema version. |
| `accountId` | integer | AvaTax Account ID. |
| `companyId` | integer | AvaTax Company ID. |
| `platform` | string | Export Platform Name.
            
Values: "TTE", "Aptos", "XStore". |
| `dttId` | string | DTT ID: The ID of the toolkit to run. |
| `dateRange` | Avalara.POS.API.CFG.Model.ConfigurationModel+DateRange |  |
| `physicalLocationIds` | array | List of physical locations to be included.
            
Values: AvaTax API LocationModel.locationCode. |
| `sendSaleJurisdictionIds` | array | List of jurisdictions to be included where a company has nexus without physical locations.
            
Values: AvaTax API NexusModel.jurisCode. |
| `numberofPostalCodeDigits` | integer | NumberofPostalCodeDigits for postal code.
            
Values: 1, 3, 6. |
| `taxGroupIds` | array | List of TaxGroup IDs to be included.
            
Values: AvaTax API ItemModel.itemCode. |
| `itemGroupsName` | array | List of ItemGroupsNames to be included.
            
Values: AvaTax API ItemModel.itemGroupsName. |
| `avataxCodeIds` | array | List of AvataxCode IDs to be included.
            
Values: AvaTax API ItemModel.avataxCodeIds. |
| `taxGroupCodeType` | string | Taxgroupcodetype to identify selected code type.
            
Values: AvaTax API ItemModel.taxGroupCodeType. |
| `taxTypeIds` | array | TTE TaxType IDs to be included.
            
Values: `1` - Sales; `7` - Fees |
| `zeroRateDefaults` | array | List of jurisdictions where zero rate defaults should be generated.
            
Values: AvaTax API JurisdicitonModel.id. |
| `roundingMethod` | string | Rounding method to be applied.
            
Values: `RoundHalfUp`, `RoundHalfEven`, `RoundHalfDown`, `RoundUp`, `RoundDown`, `RoundEven`, `RoundCeiling` |
| `roundingDigits` | integer | Digits to be rounded to. |
| `bracketTax` | boolean | Indicate the applicablity of the bracket tax. |
| `combineRates` | boolean | Indicate the applicablity of the combined rates. |
| `combineRatesAmount` | boolean | Indicate the applicablity of the combined rates amount. |
| `bracketStates` | array | Bracket states to be applied. |
| `bracketTaxLevel` | integer | Bracket tax level to be applied. |
| `isJurisOverride` | boolean | Indicate the Jurisdiction override.
false |
| `isCustomRuleOverride` | boolean | Indicate the Custom rule override.
false |
| `isCustomTaxCodes` | boolean | Indicate the Custom tax override.
false |
| `taxOnTax` | boolean | Tax on Tax indicator
true |
| `combineTierTaxSimpleRate` | boolean | Indicate Threshold/Tier Tax for rollout.
false |
| `combineRatesMaxTierTaxLevel` | integer | TTE CombineRatesMaxTierLevel to be included.
Values : 1 or 2. |
| `combineRatesTierTax` | boolean | Indiacate combineRatesTierTax.
false |
| `isBracketFlagAssignment` | boolean |  |
| `bracketFlagAssignments` | array |  |
| `user_defined_fields` | array | User defined fields for lodging. |
| `injectCompanyId` | boolean | Inject a companyId for lodging for every row in the output. |
| `individualStates` | boolean | Generate component files by US state, ie CA, CO, HI-ID, etc.  These will be availble for download after the run is complete. |
| `filterStateProvinceTerritory` | array | Restrict ATC special export (lodging, autorental, etc) to specific states or provinces (Optional, default is all states if this is not provided). |
| `countryCodes` | array | Restrict ATC international special export (lodging, autorental, etc) to specific countries.  This is required if International is set in the TSA Options. |
| `DetailLevel` | Avalara.POS.API.CFG.Model.DetailLevel |  |
| `filterCountryState` | object | Filter states by country mapping.  This is used for Canada and the US. |

### Avalara.POS.API.CFG.Model.ConfigurationModel+DateRange

Defines a range of dates.
            
Expressed as either a range of absolute dates or relative days from when the job is run.

| Property | Type | Description |
|---|---|---|
| `startDate` | string | Date range start as an absolute date.
            
For use only with `EndDate`. |
| `endDate` | string | Date range end as an absolute date.
            
For use only with `StartDate`. |
| `relativeStartDays` | integer | Date range start as a relative date.
            
For use only with `RelativeEndDays`. |
| `relativeEndDays` | integer | Date range end as a relative date.
            
For use only with `RelativeStartDays`. |

### Avalara.POS.API.CFG.Model.DetailLevel

DetailLevel type for country entitlements.

### Avalara.POS.API.CFG.Model.JobModel

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | AvaTax Company ID. |
| `accountId` | integer | AvaTax Account ID. |
| `createdBy` | integer | Created user ID. |
| `createdDate` | string | Created date. |
| `modifiedBy` | integer | Last modifying user ID. |
| `modifiedDate` | string | Last modified date. |
| `jobId` | string | Job ID. |
| `jobName` | string | Job name. |
| `jobType` | string | Job type. |
| `tteId` | string | TTE ID. |
| `dttId` | string | Job ID. |
| `communicationId` | string | Communication ID. |
| `productType` | string | Product Type default should be treated as Retail. |
| `prebuiltId` | string |  |
| `dttPrebuiltName` | string |  |
| `dateRange` | Avalara.POS.API.CFG.Model.JobModel+DateRangeConfiguration |  |
| `deliveryConfigurations` | Avalara.POS.API.CFG.Model.JobModel+DeliveryConfigurationDetails |  |
| `customConfig` | object |  |

### Avalara.POS.API.CFG.Model.JobModel+DateRangeConfiguration

| Property | Type | Description |
|---|---|---|
| `relativeStartDays` | integer | Date range start as a relative date.
            
For use only with `RelativeEndDays`. |
| `relativeEndDays` | integer | Date range end as a relative date.
            
For use only with `RelativeStartDays`. |

### Avalara.POS.API.CFG.Model.JobModel+DeliveryConfigurationDetails

| Property | Type | Description |
|---|---|---|
| `platform` | string | Export Platform Name.
            
Values: `TTE`, `Aptos`, `XStore`. |
| `destination` | string | Export destination. |
| `networkDetails` | object | Network details. |
| `notifyApiDelivery` | boolean | Notify API delivery. |

### Avalara.POS.API.CFG.Model.LodgingModels.UserDefinedField

| Property | Type | Description |
|---|---|---|
| `src` | string | User defined field src. |
| `label` | string | User defined field label, the column header of this user defined field in the output. |
| `columnType` | string | User defined field column type, ie string, integer, decimal, etc. |
| `functions` | array | For future advanced user use only. |

### Avalara.POS.API.CFG.Model.LodgingModels.UserDefinedFieldDatasetModel

| Property | Type | Description |
|---|---|---|
| `companyId` | integer | AvaTax Company ID. |
| `accountId` | integer | AvaTax Account ID. |
| `createdBy` | integer | Created user ID. |
| `createdDate` | string | Created date. |
| `modifiedBy` | integer | Last modifying user ID. |
| `modifiedDate` | string | Last modified date. |
| `customerSourceField` | string |  |
| `taxJurisdictionName` | string |  |
| `taxJurisdictionLevel` | string |  |
| `taxName` | string |  |
| `state` | string |  |
| `approved` | boolean |  |
| `udfKey` | string |  |
| `udfValue` | string |  |
| `udfDatasetId` | string |  |
| `isCurrent` | boolean | Indicates whether this is the current active record.
This property is read-only and any attempts to set its value will be ignored.
The value is calculated internally based on the record's state. |

### Avalara.POS.API.CFG.Model.LodgingModels.UserDefinedFieldsConfig

| Property | Type | Description |
|---|---|---|
| `columns` | array | User defined field list. |
| `table` | Avalara.POS.API.CFG.Model.LodgingModels.UserDefinedFieldsTable |  |

### Avalara.POS.API.CFG.Model.LodgingModels.UserDefinedFieldsTable

| Property | Type | Description |
|---|---|---|
| `destinationName` | string | UDF table name, must be the default of "lodging-all", "autorental-all", or "special-all". |

### Avalara.POS.API.CFG.Model.ReferencesResponseModel

Response detailing references to an entity.

| Property | Type | Description |
|---|---|---|
| `references` | object | Collection of referring entities by ID and name. |

### Microsoft.AspNetCore.Mvc.ProblemDetails

| Property | Type | Description |
|---|---|---|
| `type` | string |  |
| `title` | string |  |
| `status` | integer |  |
| `detail` | string |  |
| `instance` | string |  |

### System.Text.Json.Nodes.JsonNode

| Property | Type | Description |
|---|---|---|
| `options` | System.Text.Json.Nodes.JsonNodeOptions |  |
| `parent` | System.Text.Json.Nodes.JsonNode |  |
| `root` | System.Text.Json.Nodes.JsonNode |  |

### System.Text.Json.Nodes.JsonNodeOptions

| Property | Type | Description |
|---|---|---|
| `propertyNameCaseInsensitive` | boolean |  |
