VAT Reporting API

The Avalara VAT Reporting API orchestrates end-to-end VAT compliance workflows including onboarding, file ingress, error handling, filing of VAT Returns, EC Listings, Intrastat, and transaction reporting across multiple jurisdictions.

OpenAPI Specification

avalara-vat-reporting-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Avalara VAT Reporting API
  description: >-
    The Avalara VAT Reporting API orchestrates end-to-end VAT compliance
    workflows including onboarding, file ingress, error handling, filing of
    VAT Returns, EC Listings, Intrastat, and transaction reporting across
    multiple jurisdictions.
  version: '1.0'
  contact:
    name: Avalara Developer Relations
    url: https://developer.avalara.com/
    email: [email protected]
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  termsOfService: https://legal.avalara.com/#siteterms
externalDocs:
  description: VAT Reporting API Documentation
  url: https://developer.avalara.com/api-reference/vat-reporting/v1/
servers:
- url: https://api.avalara.com/vat-reporting/v1
  description: VAT Reporting API Production
tags:
- name: Filing Calendar
  description: Manage VAT filing obligations and calendars
- name: Onboarding
  description: Onboard companies for VAT reporting
- name: Returns
  description: Manage and file VAT returns
- name: Transactions
  description: Submit and manage VAT transactions
security:
- bearerAuth: []
paths:
  /returns:
    get:
      operationId: listReturns
      summary: Avalara List VAT Returns
      description: Retrieves VAT returns with optional filtering by status and period.
      tags:
      - Returns
      parameters:
      - name: status
        in: query
        schema:
          type: string
          enum:
          - Draft
          - Submitted
          - Accepted
          - Rejected
      - name: periodStart
        in: query
        schema:
          type: string
          format: date
      - name: periodEnd
        in: query
        schema:
          type: string
          format: date
      - name: countryCode
        in: query
        schema:
          type: string
      - name: $top
        in: query
        schema:
          type: integer
      - name: $skip
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: List of VAT returns
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnList'
  /returns/{returnId}:
    get:
      operationId: getReturn
      summary: Avalara Get a VAT Return by ID
      tags:
      - Returns
      parameters:
      - name: returnId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: VAT return details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VATReturn'
  /returns/{returnId}/submit:
    post:
      operationId: submitReturn
      summary: Avalara Submit a VAT Return for Filing
      description: Submits a finalized VAT return to the relevant tax authority.
      tags:
      - Returns
      parameters:
      - name: returnId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Return submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VATReturn'
  /transactions:
    post:
      operationId: submitTransactions
      summary: Avalara Submit VAT Transactions
      description: >-
        Submits a batch of transactions for VAT reporting. Transactions
        are validated and processed for inclusion in VAT returns.
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionBatch'
      responses:
        '202':
          description: Transactions accepted for processing
    get:
      operationId: listTransactions
      summary: Avalara List Submitted Transactions
      tags:
      - Transactions
      parameters:
      - name: $top
        in: query
        schema:
          type: integer
      - name: $skip
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: List of transactions
  /onboarding:
    post:
      operationId: onboardCompany
      summary: Avalara Onboard a Company for VAT Reporting
      description: >-
        Initiates the onboarding process for a company to begin VAT
        reporting in one or more jurisdictions.
      tags:
      - Onboarding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingRequest'
      responses:
        '201':
          description: Onboarding initiated
  /filing-calendars:
    get:
      operationId: listFilingCalendars
      summary: Avalara List Filing Calendar Obligations
      description: >-
        Retrieves the filing calendar showing due dates and obligations
        for each jurisdiction and filing period.
      tags:
      - Filing Calendar
      parameters:
      - name: countryCode
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Filing calendar entries
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FilingCalendarEntry'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 bearer token
  schemas:
    ReturnList:
      type: object
      properties:
        '@recordSetCount':
          type: integer
        value:
          type: array
          items:
            $ref: '#/components/schemas/VATReturn'
    VATReturn:
      type: object
      properties:
        returnId:
          type: string
        companyId:
          type: string
        countryCode:
          type: string
          description: ISO 3166-1 alpha-2 country code
        vatRegistrationNumber:
          type: string
        returnType:
          type: string
          enum:
          - VATReturn
          - ECListing
          - Intrastat
        periodStart:
          type: string
          format: date
        periodEnd:
          type: string
          format: date
        status:
          type: string
          enum:
          - Draft
          - Submitted
          - Accepted
          - Rejected
        totalOutputVAT:
          type: number
          format: double
        totalInputVAT:
          type: number
          format: double
        netVATDue:
          type: number
          format: double
        submissionDate:
          type: string
          format: date-time
        currency:
          type: string
    TransactionBatch:
      type: object
      properties:
        companyId:
          type: string
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/VATTransaction'
    VATTransaction:
      type: object
      properties:
        transactionId:
          type: string
        transactionDate:
          type: string
          format: date
        transactionType:
          type: string
          enum:
          - Sale
          - Purchase
          - IntraCommunitySupply
          - IntraCommunityAcquisition
          - Export
          - Import
        invoiceNumber:
          type: string
        supplierVATNumber:
          type: string
        customerVATNumber:
          type: string
        countryCode:
          type: string
        netAmount:
          type: number
          format: double
        vatRate:
          type: number
          format: double
        vatAmount:
          type: number
          format: double
        currency:
          type: string
    OnboardingRequest:
      type: object
      required:
      - companyId
      - countries
      properties:
        companyId:
          type: string
        companyName:
          type: string
        countries:
          type: array
          items:
            type: object
            properties:
              countryCode:
                type: string
              vatRegistrationNumber:
                type: string
              filingFrequency:
                type: string
                enum:
                - Monthly
                - Quarterly
                - Annual
    FilingCalendarEntry:
      type: object
      properties:
        countryCode:
          type: string
        returnType:
          type: string
        filingFrequency:
          type: string
        periodStart:
          type: string
          format: date
        periodEnd:
          type: string
          format: date
        dueDate:
          type: string
          format: date
        status:
          type: string
          enum:
          - Upcoming
          - Due
          - Overdue
          - Filed