# Avalara Tax Content — API Reference

Avalara Tax Content (ATC) provides centralized, regularly updated tax data to support accurate tax calculation across systems. It delivers jurisdiction-specific tax rates, rules, and taxability logic that integrate with ERP, point-of-sale (POS), billing, and custom applications.

Source: https://developer.avalara.com/products/avalara-tax-content/api/
**Total endpoints:** 26 across 3 APIs

---

## Avalara Tax Content - Configuration Service

Use this service to configure your ATC jobs and schedules.

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

### 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 |  |


---

## Avalara Tax Content - Job and Data Management Service

Use this API to start/cancel ATC job runs. You can also use your runId to check job status, get available downloads and download the files.

**Version:** v1
**Base URL:** https://rest.avatax.com/api/v2/content/jobs
**Endpoints:** 5

### Endpoints

#### Downloads

##### Get a list of paths for downloadable files for a specific run.

`GET /v1/companies/{company}/Runs/{runId}/downloads`

If you have a `company` and an `runId`, you can use this api to get a list of all files that are available for that run.

For example if you get this in the response

{"tte": { "full": "/tte", "delta": "/tte-delta" }} 

you can add the path 
* GET /v1/companies/{company}/Runs/{runId}/downloads/tte -> downloads the full TTE file.
* GET /v1/companies/{company}/Runs/{runId}/downloads/tte-delta -> downloads the delta TTE file.

 You can also use the ATC Jobs api to get a list of recent run ids and their statuses.

**Parameters:**

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

##### Download file in specified output format.

`GET /v1/companies/{company}/Runs/{runId}/downloads/{path}`

Valid values for path:
            
* `dtt`
* `dtt-delta`
* `tte`
* `tte/*`
* `tte-delta`
* `tte-delta/*`
* `tte-lodging/array`
* `tte-lodging/array/*`
* `tte-lodging-delta/array`
* `tte-lodging-delta/array/*`
* `tte-lodging-udfds`
* `aptos/*`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `company` | integer | path | Yes | Company ID. |
| `runId` | string | path | Yes | Run ID. |
| `path` | string | path | Yes | Download path provided in the response of /downloads endpoint. |


#### Runs

##### List the status of all Transaction Tax Extract pipeline runs or for a single run.

`GET /v1/companies/{companyId}/Runs`

This endpoint implements a subset of OData-style filtering. For general `$filter` syntax (e.g. `eq`, string literals), see
            [Filtering in AvaTax REST](https://developer.avalara.com/avatax/filtering-in-rest/) on Avalara Developer.
            The generated OpenAPI document also includes an external documentation link for the same page.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | Company ID for which to get runs. |
| `jobId` | string | query | No | Job ID for which to get runs. |
| `limit` | integer | query | No | Integer specifying the maximum number of results to retrieve. |
| `nextToken` | string | query | No | URI encoded continuation token from a previous request. |
| `productType` | string | query | No | accepted values ["default","lodging","autorental","atcm", "special"], default is retail. |
| `$filter` | string | query | No | see https://developer.avalara.com/avatax/filtering-in-rest/, currently a subset is supported. (use 'and', use contains for name and eq for started,status fields) |
| `includeDownloads` | boolean | query | No | Include download information in the response. Default is false. |

##### Create a new Transaction Tax Extract (TTE) pipeline job.

`POST /v1/companies/{companyId}/Runs`

Creates a new Transaction Tax Extract pipeline job for a company. Jobs are the way that Avalara Tax Content for Retail delivers tax content to your point of sale system. 
You tell the API how to combine your settings (TTE, notification option, and delivery option), and then run the job when you are ready to receive the tax content.
            
Create a job by entering a unique name and specifying job settings. You can then run the job immediately, or save it
to be run at a later time. If a job is already running, you'll only have the option to save.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | ID of the company to run this job for. Required. |

##### Get the status of a specific Transaction Tax Extract pipeline run based on its Run ID. Note that statuses are not available for run jobs that are queued or still running.

`GET /v1/companies/{companyId}/Runs/{runId}`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The Company ID for this run. |
| `runId` | string | path | Yes | The Run ID of the job run that you want to retrieve. |
| `includeDownloads` | boolean | query | No | Include download information in the response. Default is false. |

##### Cancel an in-progress Transaction Tax Extract pipeline run.

`DELETE /v1/companies/{companyId}/Runs/{runId}`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `runId` | string | path | Yes | Run ID to cancel. |
| `companyId` | integer | path | Yes | Company ID for which to stop run. Required. |

##### Create a new Transaction Tax Extract pipeline run that compares deltas between two past runs.

`POST /v1/companies/{companyId}/Runs/delta`

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | Company ID for this run. |

### Models

#### Avalara.POS.API.Common.Controllers.Models.ErrorResponse

| Property | Type | Description |
|---|---|---|
| `referenceId` | string |  |
| `error` | object |  |

#### Avalara.POS.API.Common.Models.AtcAptos

| Property | Type | Description |
|---|---|---|
| `components` | array |  |

#### Avalara.POS.API.Common.Models.Downloads

| Property | Type | Description |
|---|---|---|
| `dtt` | Avalara.POS.API.Common.Models.Dtt |  |
| `tte` | Avalara.POS.API.Common.Models.Tte |  |
| `atcAptos` | Avalara.POS.API.Common.Models.AtcAptos |  |
| `tteLodging` | Avalara.POS.API.Common.Models.TteLodging |  |
| `tteAutoRental` | Avalara.POS.API.Common.Models.TteAutoRental |  |
| `tteSpecial` | Avalara.POS.API.Common.Models.TteSpecial |  |
| `dttMulti` | Avalara.POS.API.Common.Models.DttMulti |  |

#### Avalara.POS.API.Common.Models.Dtt

| Property | Type | Description |
|---|---|---|
| `full` | string |  |
| `delta` | string |  |

#### Avalara.POS.API.Common.Models.DttMulti

| Property | Type | Description |
|---|---|---|
| `components` | object |  |

#### Avalara.POS.API.Common.Models.Tte

| Property | Type | Description |
|---|---|---|
| `full` | string |  |
| `delta` | string |  |
| `fullComponents` | array |  |
| `deltaComponents` | array |  |

#### Avalara.POS.API.Common.Models.TteAtcseDelta

| Property | Type | Description |
|---|---|---|
| `data` | string |  |
| `arrayComponents` | array |  |

#### Avalara.POS.API.Common.Models.TteAtcseFull

| Property | Type | Description |
|---|---|---|
| `data` | string |  |
| `arrayComponents` | array |  |

#### Avalara.POS.API.Common.Models.TteAutoRental

| Property | Type | Description |
|---|---|---|
| `full` | Avalara.POS.API.Common.Models.TteAtcseFull |  |
| `delta` | Avalara.POS.API.Common.Models.TteAtcseDelta |  |
| `authority` | string |  |

#### Avalara.POS.API.Common.Models.TteLodging

| Property | Type | Description |
|---|---|---|
| `full` | Avalara.POS.API.Common.Models.TteLodgingFull |  |
| `customerData` | string |  |
| `authority` | string |  |
| `delta` | Avalara.POS.API.Common.Models.TteLodgingDelta |  |

#### Avalara.POS.API.Common.Models.TteLodgingDelta

| Property | Type | Description |
|---|---|---|
| `array` | string |  |
| `arrayComponents` | array |  |

#### Avalara.POS.API.Common.Models.TteLodgingFull

| Property | Type | Description |
|---|---|---|
| `array` | string |  |
| `arrayComponents` | array |  |
| `expandedComponents` | array |  |

#### Avalara.POS.API.Common.Models.TteSpecial

| Property | Type | Description |
|---|---|---|
| `full` | Avalara.POS.API.Common.Models.TteAtcseFull |  |
| `delta` | Avalara.POS.API.Common.Models.TteAtcseDelta |  |
| `authority` | string |  |

#### Avalara.POS.API.JMS.Controllers.RunQueryResponse

| Property | Type | Description |
|---|---|---|
| `records` | array | Query result records. |
| `recordCount` | integer | The number of records in this result set. |
| `nextToken` | string | Token for retrieving the next set of results, if any. |
| `nextLink` | string | URI to retrieve the next set of results, if any. |

#### Avalara.POS.API.JMS.Models.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.JMS.Models.DeltaRunConfigModel

| Property | Type | Description |
|---|---|---|
| `name` | string | Specify a name for this pipeline run. |
| `base_run_id` | string | The run ID to compare against the `latest_run_id`. |
| `latest_run_id` | string | The latest run ID to compare against the `base_run_id`. |
| `companyId` | integer | Company ID. |
| `accountId` | integer | Account ID. |
| `jobType` | string | Specify the job type.

Values: `Production`, `Test` |
| `configurationName` | string | The configuration name for this pipeline run. |
| `jobId` | string | Specify an ID for this job. This ID can be used to retrieve a run for a specific job. |
| `execution_details` | Avalara.POS.API.JMS.Models.JobExecutionDetails |  |
| `output_type` | string | Specify the output type.

Values: 
- `Full`: Returns full runs for both the base and latest runs.
- `Differences only`: Returns the deltas between the base and latest runs. |
| `tteId` | string | Specify an ID for this TTE Job Configuration. |
| `communicationId` | string | Enter a communication ID for this run. |
| `dttId` | string | Specify an ID for the Data Transport Toolkit (DTT) for this job. |
| `productType` | string | productType used to differenciate between ATC products default(retail), lodging, managers. |
| `deliveryConfigurations` | Avalara.POS.API.JMS.Models.DeliveryConfigurationDetails |  |

#### Avalara.POS.API.JMS.Models.JobExecutionDetails

Details describing how the run will be executed.

| Property | Type | Description |
|---|---|---|
| `executionsource` | string | Specify how the execution will run.

Values: `manual`, `scheduled`, `automatic`.
            
- `manual` runs the job when it is created.
- `scheduled` allows you to specify a time and date to run a job.
- `automatic` will run a job whenever new content is published. |
| `notes` | string | Gets or sets release notes. |
| `autoJobRunType` | string | Gets or sets autorunjob type. |
| `VersionName` | string | Gets or sets the release name
March-2023 |
| `ReleaseDate` | string | Gets or sets the actual release data
2023-03-06T10:22:19.431Z |

#### Avalara.POS.API.JMS.Models.PrebuiltTemplate

| Property | Type | Description |
|---|---|---|
| `templateType` | string |  |
| `templateName` | string |  |
| `templateTypeLabel` | string |  |
| `internalTemplateName` | string |  |
| `templateTypeIsConfigurable` | boolean |  |

#### Avalara.POS.API.JMS.Models.RunConfigModel

Represents a configuration for a new Content Extract Pipeline run.

| Property | Type | Description |
|---|---|---|
| `name` | string | Specify a name for this pipeline run. |
| `jobId` | string | Specify an ID for this job. This ID can be used to retrieve a run for a specific job. |
| `configurationName` | string | The configuration name for this pipeline run. |
| `execution_details` | Avalara.POS.API.JMS.Models.JobExecutionDetails |  |
| `configurations` | array | Run configurations for each company to extract data for.
            
Can either be in the form of a fully explicit run configuration
or a configuration ID representing an existing configuration.
networkDetails only needed in case of destination = exavault |
| `jobType` | string | Specify the job type.

Values: `Production`, `Test` |
| `output_type` | string | Specify the output type.

Values: `Full` for a full run or `Differences only` for changes.

- `Full`: Run a full job. This downloads the all of the associated tax content for use with your point of sale (POS) system.
- `Differences only`: Retrieve just the changes in a job. This creates a file that identifies the differences in tax content between two job runs. 
   You can compare the output between a new and a previous job run or between two previous job runs. Requires `base_run_id` to be set. |
| `base_run_id` | string | When running a `Differences only` job, specify the base run ID for the job you want to compare this to. |
| `productType` | string | productType used to differenciate between ATC products default(retail), lodging, managers. |
| `prebuiltTemplate` | Avalara.POS.API.JMS.Models.PrebuiltTemplate |  |

#### Avalara.POS.API.JMS.Models.RunConfigModel+ConfigurationModel

| Property | Type | Description |
|---|---|---|
| `tteId` | string | TTE ID. |
| `tteType` | string | TTE Type. |
| `dttId` | string | Job ID. |
| `prebuiltId` | string | Specify an ID for this prebuiltsettings. This ID can be used to retrieve a prebuiltSettings. |
| `communicationId` | string | Communication ID. |
| `dateRange` | Avalara.POS.API.JMS.Models.RunConfigModel+DateRangeConfiguration |  |
| `deliveryConfigurations` | Avalara.POS.API.JMS.Models.DeliveryConfigurationDetails |  |
| `companyId` | integer | AvaTax Company ID. |
| `accountId` | integer | AvaTax Account ID. |

#### Avalara.POS.API.JMS.Models.RunConfigModel+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.JMS.Models.RunStatusModel

Metadata for a new Content Extract Pipeline run.

| Property | Type | Description |
|---|---|---|
| `name` | string | Title of the pipeline run. |
| `jobId` | string | ID for the combined TTE configuration, delivery method, and communication method. |
| `runId` | string | ID for the pipeline run. |
| `dttId` | string | ID for the DTT configuration |
| `status` | string | Status of the pipeline run.
            
Values are: `QUEUED`, `RUNNING`, `FAILURE`, `SUCCESS`. |
| `configurationName` | string | Configuration Name for the pipeline run. |
| `jobType` | string | Job type. |
| `platform` | string | Platform for the pipeline run. |
| `started` | string | When the pipeline run began. |
| `completed` | string | When the pipeline run finished. |
| `execution_details` | Avalara.POS.API.JMS.Models.JobExecutionDetails |  |
| `outputtype` | string | Output type for the pipeline run. |
| `tteType` | string | TTE type for the pipeline run, 'lodging' for lodging runs. |
| `baseRunId` | string | Base run ID. |
| `latestRunId` | string | Latest run ID. |
| `dttPreviewStatus` | string | DTT Preview status.
            
Values are: `enabled`, `disabled`, `warmup`. |
| `productType` | string | Product type for the pipeline run, 'lodging' for lodging runs. |
| `countryCodes` | array | Country codes from the TTE configuration. |
| `detailLevel` | string | Detail level from the TTE configuration. |
| `downloadInformation` | Avalara.POS.API.Common.Models.Downloads |  |

#### Microsoft.AspNetCore.Mvc.ProblemDetails

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


---

## Avalara Tax Content - Tax Region Lookup Service

Use this service to look up a tax region via latitude/longitude (or by address if this is not known).Tax regions are numeric identifiers used to identify a distinct area in ATC and are usually comprised of many Tax Jurisdictions (State/City etc).These may change from time to time as boundaries are redrawn.

**Version:** 1.0.0
**Base URL:** https://rest.content.avalara.com
**Endpoints:** 3

### Endpoints

#### Trls

##### Find Tax Region by address.

`POST /tax-regions/$lookup-by-address`

Retrieve Tax Region data for the specified address.
If the address cannot be resolved, zip9 (zip+plus4) will be used for accuracy.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `resolutionMode` | string | query | No | "coord" by default, set to "address" for explicit address lookup |
| `avalara-version` | string | header | No |  |

##### Find Tax Region by addresses (multiple supported).

`POST /tax-regions/$lookup-by-addresses`

Retrieve Tax Region data for the specified address.
If the address cannot be resolved, zip9 (zip+plus4) will be used for accuracy.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `resolutionMode` | string | query | No | "coord" by default, set to "address" for explicit address lookup |
| `avalara-version` | string | header | No |  |

##### Find Tax Region by coordinates.

`POST /tax-regions/$lookup-by-coordinates`

Retrieve Tax Region data for the specified latitude/longitude pairs.
Maximum of 1000 tax regions can be requested in a single request.

**Parameters:**

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `avalara-version` | string | header | No |  |

### Models

#### Address

| Property | Type | Description |
|---|---|---|
| `line1` | string | Address line 1. |
| `line2` | string | Address line 2. |
| `city` | string | City name. |
| `state` | string | State. |
| `zip` | string | Zip code. |
| `plus4` | string | Zip code +4. |
| `country` | string | Country. |
| `region` | string | Region (for Canada). |
| `postalCode` | string | Postal code (for Canada). |

#### AddressRequest

| Property | Type | Description |
|---|---|---|
| `address` | Address |  |
| `date` | string | Date. |
| `id` | string | ID. |

#### AddressResponse

| Property | Type | Description |
|---|---|---|
| `id` | string | ID. |
| `taxRegionId` | integer | Tax Region ID. |
| `resolveIssue` | object |  |

#### CoordinatesRequest

| Property | Type | Description |
|---|---|---|
| `id` | string | ID. |
| `coordinates` | LatLong |  |
| `date` | string | Date. |
| `radius` | number | Radius. |

#### CoordinatesResponse

| Property | Type | Description |
|---|---|---|
| `id` | string | ID. |
| `taxRegions` | array |  |

#### Error400

| Property | Type | Description |
|---|---|---|
| `error` | Error400Details |  |

#### Error400Details

| Property | Type | Description |
|---|---|---|
| `code` | string | Error code. |
| `message` | string | Error code. |

#### Error401

| Property | Type | Description |
|---|---|---|
| `error` | Error401Details |  |

#### Error401Details

| Property | Type | Description |
|---|---|---|
| `code` | string | Error code. |
| `message` | string | Error code. |

#### LatLong

| Property | Type | Description |
|---|---|---|
| `latitude` | number | Latitude. |
| `longitude` | number | Longitude. |

#### Taxregion

| Property | Type | Description |
|---|---|---|
| `taxRegionID` | integer | Tax Region ID. |
| `effectiveDate` | string | Effective Date. |
| `sunsetDate` | string | Sunset Date. |
| `state` | string | State or province abbreviation. |
| `country` | string | Country abbreviation. |
