openapi: 3.1.0 info: title: Avalara 1099 & W-9 1099 Forms Reports 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: Reports description: Generate and retrieve tax reports paths: /api/v2/companies/{companyId}/reports: get: operationId: listReports summary: Avalara List Reports for a Company tags: - Reports parameters: - $ref: '#/components/parameters/companyId' responses: '200': description: List of reports /api/v2/reports/{id}: get: operationId: getReport summary: Avalara Retrieve a Single Report tags: - Reports parameters: - name: id in: path required: true schema: type: integer responses: '200': description: Report details /api/v2/reports/{id}/attachment: get: tags: - Reports summary: Avalara DownloadReport description: "This API downloads the file associated with a report.\r\n \r\nIf the report is not yet complete, you will receive a `ReportNotFinished` error. To check if a report is complete,\r\nuse the `GetReport` API.\r\n \r\nReports are run as asynchronous report tasks on the server. When complete, the report file will be available for download\r\nfor up to 30 days after completion. To run an asynchronous report, you should follow these steps:\r\n \r\n* Begin a report by calling the report's Initiate API. There is a separate initiate API call for each report type.\r\n* In the result of the Initiate API, you receive back a report's `id` value.\r\n* Check the status of a report by calling `GetReport` and passing in the report's `id` value.\r\n* When a report's status is `Completed`, call `DownloadReport` to retrieve the file.\r\n \r\n* We throttle this API. You can only call this API up to 5 times in a minute.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, 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: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /api/v2/companies/{companyId}/reports/exportdocumentline/initiate: post: tags: - Reports summary: Avalara InitiateExportDocumentLineReport description: "Begins running an `ExportDocumentLine` report task and returns the identity of the report.\r\n \r\nReports are run as asynchronous report tasks on the server. When complete, the report file will be available for download\r\nfor up to 30 days after completion. To run an asynchronous report, you should follow these steps:\r\n \r\n* Begin a report by calling the report's Initiate API. There is a separate initiate API call for each report type.\r\n* In the result of the Initiate API, you receive back a report's `id` value.\r\n* Check the status of a report by calling `GetReport` and passing in the report's `id` value.\r\n* When a report's status is `Completed`, call `DownloadReport` to retrieve the file.\r\n \r\nThe `ExportDocumentLine` report produces information about invoice lines recorded within your account.\r\n \r\nTo split large reports into multiple smaller partitions, use the numberOfPartitions and partition properties on ExportDocumentLineModel.\r\n \r\nExample - split a report into three partitions\r\n \r\n* Follow the steps above with numberOfPartitions = 3 and partition = 0\r\n* Follow the steps above with numberOfPartitions = 3 and partition = 1\r\n* Follow the steps above with numberOfPartitions = 3 and partition = 2\r\n* Once all three reports are downloaded merge the files on the client side.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.\n" requestBody: content: application/json: schema: type: object example: format: CSV startDate: '2023-07-13T00:00:00+00:00' endDate: '2023-08-13T00:00:00+00:00' country: US state: All dateFilter: DocumentDate docType: Sales currencyCode: USD numberOfPartitions: 10 partition: 0 isLocked: true merchantSellerIdentifier: abc,xyz documentStatus: Committed isModifiedDateSameAsDocumentDate: false taxGroup: Alcohol taxName: VAT taxCode: '123' taxSubType: Prepared Food and Beverage reportSource: SNOWFLAKE compression: NONE includeDocumentLineDetails: 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 responses: '200': description: Successful response content: application/json: {} /api/v2/reports: get: tags: - Reports summary: Avalara ListReports description: "List all report tasks for your account.\r\n \r\nReports are run as asynchronous report tasks on the server. When complete, the report file will be available for download\r\nfor up to 30 days after completion. To run an asynchronous report, you should follow these steps:\r\n \r\n* Begin a report by calling the report's Initiate API. There is a separate initiate API call for each report type.\r\n* In the result of the Initiate API, you receive back a report's `id` value.\r\n* Check the status of a report by calling `GetReport` and passing in the report's `id` value.\r\n* When a report's status is `Completed`, call `DownloadReport` to retrieve the file.\r\n \r\nThis API call returns information about all report types across your entire account.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, 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: parameters: companyId: name: companyId in: path required: true schema: type: integer description: The numeric ID of the company 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/