# VerifyMultiDocumentTransaction

Verify a MultiDocument transaction

`POST /api/v2/transactions/multidocument/verify`

**API:** AvaTax API
**Tag:** MultiDocument
**API Version:** v2
**Base URL:** https://sandbox-rest.avatax.com/
**Content-Type:** `application/json`
**Accepts:** `application/json`
**Authentication:** API Key (`Authorization` in header) or OAuth 2.0 or Basic (username + license key)

Source: https://developer.avalara.com/products/crossborder/api/methods/MultiDocument/VerifyMultiDocumentTransaction/

## Description

Verifies that the MultiDocument transaction uniquely identified by this URL matches certain expected values.
            
If the transaction does not match these expected values, this API will return an error code indicating which value did not match.
            
A transaction represents a unique potentially taxable action that your company has recorded, and transactions include actions like
sales, purchases, inventory transfer, and returns (also called refunds).
            
NOTE: If your companyCode or transactionCode contains any of these characters /, +, ? or a space please use the following encoding before making a request:
* Replace '/' with '\_-ava2f-\_'  For example: document/Code becomes document_-ava2f-_Code
* Replace '+' with '\_-ava2b-\_'  For example: document+Code becomes document_-ava2b-_Code
* Replace '?' with '\_-ava3f-\_'  For example: document?Code becomes document_-ava3f-_Code
* Replace '%' with '\_-ava25-\_'  For example: document%Code becomes document_-ava25-_Code
* Replace '#' with '\_-ava23-\_'  For example: document#Code becomes document_-ava23-_Code
* Replace ' ' with '%20'  For example: document Code becomes document%20Code

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro.

## Parameters

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `X-Avalara-Client` | string | header | No | 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/) . |

## Request Body

**Schema:** `VerifyMultiDocumentModel`

Verify that a MultiDocument object matches the information in your accounting system.
            
If all attributes of the MultiDocument object match the values in your request, the
MultiDocument object will be moved to the document status `Posted`.
            
For more information on document status, see [DocumentStatus](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/DocumentStatus/).

| Property | Type | Required | Description |
|---|---|---|---|
| `code` | string | **Yes** | Represents the unique code of this MultiDocument transaction.
            
A MultiDocument transaction is uniquely identified by its `accountId`, `code`, and `type`. Example: `ABC`. |
| `type` | string | **Yes** | Represents the document type of this MultiDocument transaction.  For more information about
document types, see [DocumentType](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/DocumentType/).
            
A MultiDocument transaction is uniquely identified by its `accountId`, `code`, and `type`. Values: `SalesOrder`, `SalesInvoice`, `PurchaseOrder`, `PurchaseInvoice`, `ReturnOrder`, `ReturnInvoice`, `InventoryTransferOrder`, `InventoryTransferInvoice`, `ReverseChargeOrder`, `ReverseChargeInvoice`, `CustomsInvoice`, `CustomsOrder`, `InventoryTransferOutboundInvoice`, `InventoryTransferOutboundOrder`, `Any`. Example: `SalesOrder`. |
| `verifyTransactionDate` | string | No | Set this value if you wish to verify a match between `verifyTransactionDate` and
the `documentDate` value on the transaction recorded in AvaTax.
            
If you leave this field empty, we will skip verification for this field. |
| `verifyTotalAmount` | number | No | Set this value if you wish to verify a match between `verifyTotalAmount` and
the `totalAmount` value on the transaction recorded in AvaTax.
            
If you leave this field empty, we will skip verification for this field. |
| `verifyTotalTax` | number | No | Set this value if you wish to verify a match between `verifyTotalTax` and
the `totalTax` value on the transaction recorded in AvaTax.
            
If you leave this field empty, we will skip verification for this field. |

## Responses

| Status | Description | Schema |
|---|---|---|
| 200 | Success | `MultiDocumentModel` |
| 400 | Bad Request |  |
| 401 | Unauthorized |  |

### 200 Response: `MultiDocumentModel`

A MultiDocument transaction represents a sale or purchase that occurred between more than two companies.
            
A traditional transaction requires exactly two parties: a seller and a buyer.  MultiDocument transactions can
involve a marketplace of vendors, each of which contributes some portion of the final transaction.  Within
a MultiDocument transaction, each individual buyer and seller pair are matched up and converted to a separate
document.  This separation of documents allows each seller to file their taxes separately.

| Property | Type | Required | Description |
|---|---|---|---|
| `id` | integer | No | The unique ID number of this MultiDocument object. Example: `12`. |
| `accountId` | integer | No | The unique ID number of the AvaTax customer account that created this MultiDocument object. Example: `123456`. |
| `code` | string | No | The transaction code of the MultiDocument transaction.
            
All individual transactions within this MultiDocument object will have this code as a prefix. Example: `98602f3c-dfa4-4388-990a-26e8aca1e3b0`. |
| `type` | string | No | Indicates the type of MultiDocument transaction.  Common values are:
            
* SalesOrder - An estimate that is not permanently recorded
* SalesInvoice - An invoice that can be reported on a tax return
            
For more information about document types, see [DocumentType](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/DocumentType/) Values: `SalesOrder`, `SalesInvoice`, `PurchaseOrder`, `PurchaseInvoice`, `ReturnOrder`, `ReturnInvoice`, `InventoryTransferOrder`, `InventoryTransferInvoice`, `ReverseChargeOrder`, `ReverseChargeInvoice`, `CustomsInvoice`, `CustomsOrder`, `InventoryTransferOutboundInvoice`, `InventoryTransferOutboundOrder`, `Any`. Example: `SalesOrder`. |
| `createdUserId` | integer | No | The user ID of the user who created this record. Example: `87954`. |
| `createdDate` | string | No | The date/time when this record was created. Example: `2026-07-02T00:00:00+00:00`. |
| `modifiedDate` | string | No | The date/time when this record was last modified. Example: `2026-07-02T00:00:00+00:00`. |
| `modifiedUserId` | integer | No | The user ID of the user who last modified this record. Example: `66783`. |
| `documents` | TransactionModel[] | No | A separate document will exist for each unique combination of buyer and seller in this MultiDocument transaction. |

## Example Request

```bash
curl -X POST "https://sandbox-rest.avatax.com/api/v2/transactions/multidocument/verify" \
  -H "Authorization: Basic <credentials>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
  "code": "ABC",
  "type": "SalesInvoice"
}'
```