openapi: 3.1.0
info:
title: Avalara 1099 & W-9 1099 Forms Batches 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: Batches
description: Submit and manage batch transaction processing
paths:
/api/v2/companies/{companyId}/batches:
get:
operationId: listBatches
summary: Avalara List Batches for a Company
tags:
- Batches
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/top'
- $ref: '#/components/parameters/skip'
responses:
'200':
description: List of batches
post:
operationId: createBatch
summary: Avalara Create a New Batch
tags:
- Batches
parameters:
- $ref: '#/components/parameters/companyId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BatchModel'
responses:
'201':
description: Batch created
content:
application/json:
schema:
$ref: '#/components/schemas/BatchModel'
/api/v2/companies/{companyId}/batches/{id}/cancel:
post:
tags:
- Batches
summary: Avalara CancelBatch
description: "Marks the in progress batch identified by this URL as cancelled.\r\n \r\nOnly JSON batches can be cancelled. If you attempt to cancel a file batch, you will receive an error message.\r\n \r\nOnly in progress batches can be cancelled. If you attempt to cancel a batch that its status is not Waiting or Processing, you will receive an error message.\r\nCancelling an in progress batch does not delete any transactions that were created before the cancellation.\r\n \r\nBecause the batch system processes with a degree of concurrency, and\r\nbecause of batch sizes in the queue vary, AvaTax API is unable to accurately\r\npredict when a batch will complete. If high performance processing is\r\nrequired, please use the\r\n[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, AccountOperator, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin.\n"
requestBody:
content:
application/json:
schema:
type: object
example: ''
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: {}
/api/v2/companies/{companyId}/batches/transactions:
post:
tags:
- Batches
summary: Avalara CreateTransactionBatch
description: "Create a new transaction batch objects attached to this company.\r\n \r\nWhen a transaction batch is created, it is added to the AvaTax Batch v2 Queue and will be\r\nprocessed as quickly as possible in the order it was received. To check the\r\nstatus of a batch, fetch the batch and retrieve the results of the batch\r\noperation.\r\n \r\nBecause the batch system processes with a degree of concurrency, and\r\nbecause of batch sizes in the queue vary, AvaTax API is unable to accurately\r\npredict when a batch will complete. If high performance processing is\r\nrequired, please use the\r\n[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).\r\n \r\nThe maximum content length of the request body is limited to 28.6 MB. If this limit\r\nis exceeded, a 404 Not Found status will be returned (possibly with a CORS error if\r\nthe API is called from a browser). In this situation, please split the request into\r\nsmaller batches.\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, AccountOperator, BatchServiceAdmin, CompanyAdmin, CSPTester, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin.\n"
requestBody:
content:
application/json:
schema:
type: object
example:
name: TestBatch-638274861770379744
transactions:
- createTransactionModel:
code: MyTransaction-638274861770379574
lines:
- number: '1'
quantity: 1
amount: 100
taxCode: PS081282
itemCode: Y0001
description: Yarn
type: SalesInvoice
companyCode: DEFAULT
date: '2023-08-13'
customerCode: ABC
purchaseOrderNo: 2023-08-13-001
addresses:
singleLocation:
line1: 2000 Main Street
city: Irvine
region: CA
country: US
postalCode: '92614'
commit: true
currencyCode: USD
description: Yarn
- adjustTransactionModel:
companyCode: DEFAULT
transactionCode: MyTransaction-638274861770379574
documentType: SalesInvoice
adjustmentReason: PriceAdjusted
adjustmentDescription: Price drop before shipping
newTransaction:
code: MyTransaction-638274861770379574
lines:
- number: '1'
quantity: 1
amount: 90
taxCode: PS081282
itemCode: Y0001
description: Yarn
type: SalesInvoice
companyCode: DEFAULT
date: '2023-08-13'
customerCode: ABC
purchaseOrderNo: 2023-08-13-001
addresses:
singleLocation:
line1: 2000 Main Street
city: Irvine
region: CA
country: US
postalCode: '92614'
commit: true
currencyCode: USD
description: Yarn
- createOrAdjustTransactionModel:
adjustmentReason: Other
adjustmentDescription: Test Description
createTransactionModel:
code: MyTransaction-638274861770379574
lines:
- number: '1'
quantity: 1
amount: 80
taxCode: PS081282
itemCode: Y0001
description: Yarn
type: SalesInvoice
companyCode: DEFAULT
date: '2023-08-13'
customerCode: ABC
purchaseOrderNo: 2023-08-13-001
addresses:
singleLocation:
line1: 2000 Main Street
city: Irvine
region: CA
country: US
postalCode: '92614'
commit: true
currencyCode: USD
description: Yarn
- voidTransactionModel:
companyCode: DEFAULT
transactionCode: MyTransaction-638274861770379574
documentType: SalesInvoice
code: DocVoided
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}/batches/{id}:
delete:
tags:
- Batches
summary: Avalara DeleteBatch
description: "Marks the batch identified by this URL as deleted.\r\n \r\nIf you attempt to delete a batch that is being processed, you will receive an error message.\r\nDeleting a batch does not delete any transactions that were created by importing the batch.\r\n \r\nBecause the batch system processes with a degree of concurrency, and\r\nbecause of batch sizes in the queue vary, AvaTax API is unable to accurately\r\npredict when a batch will complete. If high performance processing is\r\nrequired, please use the\r\n[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).\n\n### Security Policies\n\n* This API requires one of the following user roles: BatchServiceAdmin, CSPAdmin, CSPTester, SSTAdmin, SystemAdmin, SystemOperator, 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:
- Batches
summary: Avalara GetBatch
description: "Get the batch object identified by this URL. A batch object is a large\r\ncollection of API calls stored in a compact file.\r\n \r\nUse this endpoint to retrieve the results or check the status of a batch.\r\n \r\nWhen a batch is created, it is added to the AvaTax Batch Queue and will be\r\nprocessed as quickly as possible in the order it was received. To check the\r\nstatus of a batch, fetch the batch and retrieve the results of the batch\r\noperation.\r\n \r\nBecause the batch system processes with a degree of concurrency, and\r\nbecause of batch sizes in the queue vary, AvaTax API is unable to accurately\r\npredict when a batch will complete. If high performance processing is\r\nrequired, please use the\r\n[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, 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: {}
/api/v2/companies/{companyId}/batches/{batchId}/files/{id}/attachment:
get:
tags:
- Batches
summary: Avalara DownloadBatch
description: 'Download a single batch file identified by this URL.
### Security Policies
* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, TechnicalSupportAdmin, TechnicalSupportUser.
'
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: batchId
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/batches:
get:
tags:
- Batches
summary: Avalara QueryBatches
description: "Get multiple batch objects across all companies.\r\n \r\nA batch object is a large collection of API calls stored in a compact file.\r\n \r\nSearch for specific objects using the criteria in the `$filter` parameter;\r\nfull documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .\r\nPaginate results using the `$top`, `$skip`, and `$orderby` parameters.\r\n \r\nWhen a batch is created, it is added to the AvaTax Batch Queue and will be\r\nprocessed as quickly as possible in the order it was received. To check the\r\nstatus of a batch, fetch the batch and retrieve the results of the batch\r\noperation.\r\n \r\nBecause the batch system processes with a degree of concurrency, and\r\nbecause of batch sizes in the queue vary, AvaTax API is unable to accurately\r\npredict when a batch will complete. If high performance processing is\r\nrequired, please use the\r\n[CreateTransaction API](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CreateTransaction/).\n\n### Security Policies\n\n* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, SiteAdmin, SSTAdmin, SystemAdmin, SystemOperator, 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
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
schemas:
BatchModel:
type: object
properties:
id:
type: integer
companyId:
type: integer
name:
type: string
type:
type: string
enum:
- AvaCertUpdate
- AvaCertUpdateAll
- BatchMaintenance
- CompanyLocationImport
- DocumentImport
- ExemptCertImport
- ItemImport
- SalesAuditExport
- SstpTestDeckImport
- TaxRuleImport
- TransactionImport
- UPCBulkImport
- UPCBulkDelete
status:
type: string
enum:
- Waiting
- SystemErrors
- Cancelled
- Completed
- Creating
- Deleted
- Errors
- Paused
- Processing
- ReadyToDelete
recordCount:
type: integer
currentRecord:
type: integer
createdDate:
type: string
format: date-time
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/