openapi: 3.2.0 info: title: Avalara Nexus API version: '1.0' description: 'Operations tagged Nexus across 2 of this provider''s published API definitions: avalara-avatax-rest-openapi.yml, avatax-apis-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://rest.avatax.com description: AvaTax Production - url: https://sandbox-rest.avatax.com description: AvaTax Sandbox - url: http://{{baseurl}} tags: - name: Nexus description: Manage tax nexus declarations for companies paths: /api/v2/companies/{companyId}/nexus: get: operationId: listNexusByCompany summary: Avalara List Nexus for a Company description: Retrieves all nexus declarations for the specified company. tags: - Nexus parameters: - $ref: '#/components/parameters/companyId' - $ref: '#/components/parameters/filter' - $ref: '#/components/parameters/top' - $ref: '#/components/parameters/skip' responses: '200': description: List of nexus declarations content: application/json: schema: $ref: '#/components/schemas/FetchResult_NexusModel' security: - basicAuth: [] - bearerAuth: [] post: operationId: createNexus summary: Avalara Create Nexus for a Company tags: - Nexus parameters: - $ref: '#/components/parameters/companyId' requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/NexusModel' responses: '201': description: Nexus created content: application/json: schema: type: array items: $ref: '#/components/schemas/NexusModel' security: - basicAuth: [] - bearerAuth: [] servers: - url: https://rest.avatax.com description: AvaTax Production - url: https://sandbox-rest.avatax.com description: AvaTax Sandbox /api/v2/companies/{companyId}/nexus/{nexusId}/parameters: post: tags: - Nexus summary: Avalara CreateNexusParameters description: '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 an 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 an 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, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.' requestBody: content: application/json: schema: type: object example: id: 0 name: IsRemoteSeller value: 'true' parameters: - name: Content-Type in: header schema: type: string example: application/json - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: nexusId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: postApiV2CompaniesByCompanyIdNexusByNexusIdParameters x-operation-id-source: derived delete: tags: - Nexus summary: Avalara DeleteNexusParameters description: '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 an 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 an nexus parameter if they share the same parameter name. ### Security Policies * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.' parameters: - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: nexusId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: deleteApiV2CompaniesByCompanyIdNexusByNexusIdParameters x-operation-id-source: derived get: tags: - Nexus summary: Avalara ListNexusParameters description: '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 an 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 an 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 . Paginate your results using the `$top`, `$skip`, and `$orderby` parameters. ### Security Policies * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.' parameters: - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: nexusId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: getApiV2CompaniesByCompanyIdNexusByNexusIdParameters x-operation-id-source: derived servers: - url: http://{{baseurl}} /api/v2/companies/{companyId}/nexus/byaddress: post: tags: - Nexus summary: Avalara DeclareNexusByAddress description: '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, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.' requestBody: content: application/json: schema: type: object example: effectiveDate: '2018-01-01T00:00:00' endDate: '2020-12-31T00:00:00' line1: 2000 Main Street city: Irvine region: CA country: US postalCode: '92614' parameters: - name: Content-Type in: header schema: type: string example: application/json - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: postApiV2CompaniesByCompanyIdNexusByaddress x-operation-id-source: derived servers: - url: http://{{baseurl}} /api/v2/companies/{companyId}/nexus/{id}: delete: tags: - Nexus summary: Avalara DeleteNexus description: '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, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.' parameters: - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: deleteApiV2CompaniesByCompanyIdNexusById x-operation-id-source: derived get: tags: - Nexus summary: Avalara GetNexus description: '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, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.' parameters: - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: getApiV2CompaniesByCompanyIdNexusById x-operation-id-source: derived put: tags: - Nexus summary: Avalara UpdateNexus description: '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, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.' requestBody: content: application/json: schema: type: object example: id: 0 companyId: 0 country: US region: CA jurisTypeId: STA jurisdictionTypeId: State jurisCode: '06' jurisName: CALIFORNIA shortName: CA signatureCode: '' stateAssignedNo: '' nexusTypeId: SalesOrSellersUseTax hasLocalNexus: true hasPermanentEstablishment: true streamlinedSalesTax: false isSSTActive: false createdDate: '2006-10-09T05:55:50.25' createdUserId: 0 modifiedDate: '2018-01-24T03:43:37.31' modifiedUserId: 0 taxTypeGroup: SalesAndUse nexusTaxTypeGroup: SalesAndUse isSellerImporterOfRecord: false parameters: - name: Content-Type in: header schema: type: string example: application/json - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: putApiV2CompaniesByCompanyIdNexusById x-operation-id-source: derived servers: - url: http://{{baseurl}} /api/v2/companies/{companyId}/nexus/{nexusId}/parameters/{id}: delete: tags: - Nexus summary: Avalara DeleteNexusParameter description: '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 an 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 an nexus parameter if they share the same parameter name. ### Security Policies * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.' parameters: - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: nexusId in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: deleteApiV2CompaniesByCompanyIdNexusByNexusIdParametersById x-operation-id-source: derived get: tags: - Nexus summary: Avalara GetNexusParameter description: '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 an 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 an nexus parameter if they share the same parameter name. ### Security Policies * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.' parameters: - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: nexusId in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: getApiV2CompaniesByCompanyIdNexusByNexusIdParametersById x-operation-id-source: derived put: tags: - Nexus summary: Avalara UpdateNexusParameter description: 'Update an 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 the transaction state line might have lines added. A parameter specified on a transaction line will override an item parameter if they share the same parameter name.????? I dont know about this? ### Security Policies * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.' requestBody: content: application/json: schema: type: object example: id: 0 name: IsRemoteSeller value: 'true' parameters: - name: Content-Type in: header schema: type: string example: application/json - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: nexusId in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: putApiV2CompaniesByCompanyIdNexusByNexusIdParametersById x-operation-id-source: derived servers: - url: http://{{baseurl}} /api/v2/companies/{companyId}/nexus/byform/{formCode}: get: tags: - Nexus summary: Avalara GetNexusByFormCode description: '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, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.' parameters: - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: formCode in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: getApiV2CompaniesByCompanyIdNexusByformByFormCode x-operation-id-source: derived servers: - url: http://{{baseurl}} /api/v2/companies/{companyId}/nexus/byTaxTypeGroup/{taxTypeGroup}: get: tags: - Nexus summary: Avalara ListNexusByCompanyAndTaxTypeGroup description: '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 . 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, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.' parameters: - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection - name: companyId in: path schema: type: string required: true - name: taxTypeGroup in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: getApiV2CompaniesByCompanyIdNexusByTaxTypeGroupByTaxTypeGroup x-operation-id-source: derived servers: - url: http://{{baseurl}} /api/v2/nexus: get: tags: - Nexus summary: Avalara QueryNexus description: '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 . 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, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.' parameters: - name: X-Avalara-Client in: header schema: type: string description: Identifies the software you are using to call this API. For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/). example: AvaTax Postman Collection responses: '200': description: Successful response content: application/json: {} security: - basicAuth: [] operationId: getApiV2Nexus x-operation-id-source: derived servers: - url: http://{{baseurl}} components: parameters: companyId: name: companyId in: path required: true schema: type: integer description: The numeric ID of the company top: name: $top in: query schema: type: integer default: 1000 description: Maximum number of results to return filter: name: $filter in: query schema: type: string description: OData filter expression for result filtering skip: name: $skip in: query schema: type: integer default: 0 description: Number of results to skip for pagination schemas: NexusModel: type: object properties: id: type: integer companyId: type: integer country: type: string description: Two-character ISO 3166 country code region: type: string description: State or province code jurisTypeId: type: string enum: - STA - CTY - CIT - STJ - CNT jurisdictionTypeId: type: string jurisCode: type: string jurisName: type: string effectiveDate: type: string format: date endDate: type: string format: date nexusTypeId: type: string enum: - None - SalesOrSellersUseTax - SalesTax - SSTVolunteer - SSTNonVolunteer hasLocalNexus: type: boolean FetchResult_NexusModel: type: object properties: '@recordsetCount': type: integer value: type: array items: $ref: '#/components/schemas/NexusModel' securitySchemes: basicAuth: type: http scheme: basic description: Use your AvaTax username/password or accountId/licenseKey as basic auth credentials bearerAuth: type: http scheme: bearer description: OAuth 2.0 bearer token externalDocs: description: AvaTax REST API v2 Documentation url: https://developer.avalara.com/api-reference/avatax/rest/v2/ x-refined-from: - avalara-avatax-rest-openapi.yml - avatax-apis-openapi.yml