Avalara W-9 Forms API

Collect and manage W-9 forms

Documentation

Specifications

OpenAPI Specification

avalara-w-9-forms-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Avalara 1099 & W-9 1099 Forms W-9 Forms 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: W-9 Forms
  description: Collect and manage W-9 forms
paths:
  /w9/requests:
    post:
      operationId: createW9Request
      summary: Avalara Create a W-9 Collection Request
      description: Sends a W-9 collection request to a payee, allowing them to submit their taxpayer information electronically.
      tags:
      - W-9 Forms
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/W9Request'
      responses:
        '201':
          description: W-9 request created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/W9RequestResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
    get:
      operationId: listW9Requests
      summary: Avalara List W-9 Requests
      tags:
      - W-9 Forms
      parameters:
      - name: status
        in: query
        schema:
          type: string
          enum:
          - Pending
          - Completed
          - Expired
      - name: $top
        in: query
        schema:
          type: integer
      - name: $skip
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: List of W-9 requests
  /w9/{w9Id}:
    get:
      operationId: getW9
      summary: Avalara Get a Completed W-9 Form
      tags:
      - W-9 Forms
      parameters:
      - name: w9Id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: W-9 form details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/W9Form'
components:
  schemas:
    W9RequestResponse:
      type: object
      properties:
        requestId:
          type: string
        status:
          type: string
        payeeEmail:
          type: string
        createdDate:
          type: string
          format: date-time
        expirationDate:
          type: string
          format: date-time
    W9Request:
      type: object
      required:
      - payeeEmail
      - payeeName
      properties:
        payeeEmail:
          type: string
          format: email
        payeeName:
          type: string
        companyId:
          type: string
        expirationDays:
          type: integer
          default: 30
        message:
          type: string
    W9Form:
      type: object
      properties:
        id:
          type: string
        payeeName:
          type: string
        businessName:
          type: string
        taxClassification:
          type: string
          enum:
          - Individual
          - C_Corporation
          - S_Corporation
          - Partnership
          - Trust
          - LLC
          - Other
        tin:
          type: string
          description: Taxpayer Identification Number (masked)
        tinType:
          type: string
          enum:
          - SSN
          - EIN
        address:
          type: object
          properties:
            line1:
              type: string
            city:
              type: string
            state:
              type: string
            postalCode:
              type: string
        signedDate:
          type: string
          format: date
        status:
          type: string
          enum:
          - Valid
          - Expired
          - Revoked
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
  responses:
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  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/