openapi: 3.1.0
info:
title: Avalara 1099 & W-9 1099 Forms Nexus API
description: The Avalara 1099 and W-9 API automates collection, validation, and e-filing of IRS forms including 1099 variants (1099-NEC, 1099-MISC, 1099-K, 1099-INT, 1099-DIV), 1095 forms, W-2, and 1042-S. It provides endpoints for creating, updating, managing, and filing various IRS information returns.
version: '1.0'
contact:
name: Avalara Developer Relations
url: https://developer.avalara.com/
email: developer.relations@avalara.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
termsOfService: https://legal.avalara.com/#siteterms
servers:
- url: https://api.avalara.com/1099/v1
description: 1099 API Production
- url: https://api.sbx.avalara.com/1099/v1
description: 1099 API Sandbox
security:
- bearerAuth: []
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'
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'
/api/v2/companies/{companyId}/nexus/{nexusId}/parameters:
post:
tags:
- Nexus
summary: Avalara CreateNexusParameters
description: "Add parameters to the nexus.\r\nSome 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\".\r\n \r\nA parameter added to an nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.\r\n \r\nA parameter specified on a transaction line will override an nexus parameter if they share the same parameter name.\r\n \r\nTo see available parameters for this item, call `/api/v2/definitions/parameters?$filter=attributeType eq Nexus`\r\n \r\nSome 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.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.\n"
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: {}
delete:
tags:
- Nexus
summary: Avalara DeleteNexusParameters
description: "Delete all the parameters for a given nexus.\r\nSome 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\".\r\n \r\nA parameter added to an nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.\r\n \r\nA parameter specified on a transaction line will override an nexus parameter if they share the same parameter name.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.\n"
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: {}
get:
tags:
- Nexus
summary: Avalara ListNexusParameters
description: "List parameters for a nexus.\r\nSome 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\".\r\n \r\nA parameter added to an nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.\r\n \r\nA parameter specified on a transaction line will override an nexus parameter if they share the same parameter name. \r\n \r\nSearch for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .\r\nPaginate your results using the `$top`, `$skip`, and `$orderby` parameters.\n\n### Security Policies\n\n* 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.\n"
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: {}
/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\r\nAPI declares nexus for this company, for the list of addresses provided,\r\nfor the date range provided. You may also use this API to extend effective date on an already-declared nexus.\r\n \r\nThe concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional\r\ntaxes. The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your\r\naccountant or lawyer prior to declaring nexus.\r\n \r\nNote that not all fields within a nexus can be updated; Avalara publishes a list of all defined nexus at the\r\n'/api/v2/definitions/nexus' endpoint.\r\n \r\nYou may only define nexus matching the official list of declared nexus.\r\n \r\nPlease note that nexus changes may not take effect immediately and you should plan to update your nexus settings in advance\r\nof calculating tax for a location.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.\n"
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: {}
/api/v2/companies/{companyId}/nexus/{id}:
delete:
tags:
- Nexus
summary: Avalara DeleteNexus
description: "Marks the existing nexus object at this URL as deleted.\r\n \r\nThe concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional\r\ntaxes. The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your\r\naccountant or lawyer prior to declaring nexus.\r\n \r\nPlease note that nexus changes may not take effect immediately and you should plan to update your nexus settings in advance\r\nof calculating tax for a location.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.\n"
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: {}
get:
tags:
- Nexus
summary: Avalara GetNexus
description: "Get the nexus object identified by this URL.\r\n \r\nThe concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional\r\ntaxes. The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your\r\naccountant or lawyer prior to declaring nexus.\r\nYou may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:\r\n \r\n * Parameters\n\n### Security Policies\n\n* 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.\n"
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: {}
put:
tags:
- Nexus
summary: Avalara UpdateNexus
description: "Replace the existing nexus declaration object at this URL with an updated object.\r\n \r\nThe concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional\r\ntaxes. The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your\r\naccountant or lawyer prior to declaring nexus.\r\n \r\nTo create a nexus declaration for your company, you must first call the Definitions API `ListNexus` to obtain a\r\nlist of Avalara-defined nexus. Once you have determined which nexus you wish to declare, you should customize\r\nonly the user-selectable fields in this object.\r\n \r\nThe user selectable fields for the nexus object are `companyId`, `effectiveDate`, `endDate`, `localNexusTypeId`,\r\n`taxId`, `nexusTypeId`, `hasPermanentEstablishment`, and `isSellerImporterOfRecord`.\r\n \r\nWhen calling `CreateNexus` or `UpdateNexus`, all values in your nexus object except for the user-selectable fields\r\nmust match an Avalara-defined system nexus object. You can retrieve a list of Avalara-defined system nexus objects\r\nby calling `ListNexus`. If any data does not match, AvaTax may not recognize your nexus declaration.\r\n \r\nPlease note that nexus changes may not take effect immediately and you should plan to update your nexus settings in advance\r\nof calculating tax for a location.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.\n"
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: {}
/api/v2/companies/{companyId}/nexus/{nexusId}/parameters/{id}:
delete:
tags:
- Nexus
summary: Avalara DeleteNexusParameter
description: "Delete a single nexus parameter.\r\nSome 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\".\r\n \r\nA parameter added to an nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.\r\n \r\nA parameter specified on a transaction line will override an nexus parameter if they share the same parameter name.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.\n"
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: {}
get:
tags:
- Nexus
summary: Avalara GetNexusParameter
description: "Retrieve a single nexus parameter.\r\nSome 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\".\r\n \r\nA parameter added to an nexus will be used by default in tax calculation but will not show on the transaction line referencing the nexus.\r\n \r\nA parameter specified on a transaction line will override an nexus parameter if they share the same parameter name.\n\n### Security Policies\n\n* 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.\n"
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: {}
put:
tags:
- Nexus
summary: Avalara UpdateNexusParameter
description: "Update an nexus parameter.\r\n \r\nSome 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\".\r\n \r\nA 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.\r\n \r\nA parameter specified on a transaction line will override an item parameter if they share the same parameter name.????? I dont know about this?\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, TechnicalSupportAdmin.\n"
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: {}
/api/v2/companies/{companyId}/nexus/byform/{formCode}:
get:
tags:
- Nexus
summary: Avalara GetNexusByFormCode
description: "Retrieves a list of nexus related to a tax form.\r\n \r\nThe concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional\r\ntaxes. The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your\r\naccountant or lawyer prior to declaring nexus.\r\n \r\nThis API is intended to provide useful information when examining a tax form. If you are about to begin filing\r\na tax form, you may want to know whether you have declared nexus in all the jurisdictions related to that tax\r\nform in order to better understand how the form will be filled out.\r\nYou may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:\r\n \r\n * Parameters\n\n### Security Policies\n\n* 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.\n"
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: {}
/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.\r\n \r\nThe concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional\r\ntaxes. The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your\r\naccountant or lawyer prior to declaring nexus.\r\n \r\nSearch for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .\r\nPaginate your results using the `$top`, `$skip`, and `$orderby` parameters.\r\nYou may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:\r\n \r\n * Parameters\n\n### Security Policies\n\n* 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.\n"
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: {}
/api/v2/nexus:
get:
tags:
- Nexus
summary: Avalara QueryNexus
description: "Get multiple nexus objects across all companies.\r\n \r\nThe concept of Nexus indicates a place where your company is legally obligated to collect and remit transactional\r\ntaxes. The legal requirements for nexus may vary per country and per jurisdiction; please seek advice from your\r\naccountant or lawyer prior to declaring nexus.\r\n \r\nSearch for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .\r\nPaginate your results using the `$top`, `$skip`, and `$orderby` parameters.\r\nYou may specify one or more of the following values in the '$include' parameter to fetch additional nested data, using commas to separate multiple values:\r\n \r\n * Parameters\n\n### Security Policies\n\n* 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.\n"
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: {}
components:
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'
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
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: OAuth 2.0 bearer token
externalDocs:
description: 1099 & W-9 API Documentation
url: https://developer.avalara.com/api-reference/avalara1099/avalara1099/