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/