Avalara Reports API

Generate and retrieve tax reports

Documentation

Specifications

OpenAPI Specification

avalara-reports-api-openapi.yml Raw ↑
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/