AvaTax for Communications Use Cases

New to AvaTax for Communications? Check out the AvaTax for Communications REST v2 Developer Guide. This document explains everything about using the AvaTax for Communications API, from connecting to the API to how to calculate tax offline when your Internet connection goes down.

If you’re eager to get started, the best place to begin is:

Online Store or Selling Page

  • When your customer opens a shopping cart and puts an item in it, you can call the CalculateTaxes API with the transaction details to calculate tax based on the addresses and line item details. To ensure that the transaction is treated as a temporary quote that won’t impact reporting, set Commit (cmmt) to false and leave the Doc Code (doc) field blank. This creates an uncommitted transaction that is not included on compliance reports.
  • When the customer finalizes the order, use the CalculateTaxes API to send the full transaction details with Commit (cmmt) set to false, and with the Doc Code (doc) field set to unique a Document Code. This creates an uncommitted transaction with the finalized transaction details.
    • It isn’t possible to directly edit transactions once they’re created, so it’s best practice to use a Document Code naming convention different than your actual invoice numbers. You can send the invoice number itself in the Invoice Number (invn) field.
  • When the order ships, call the Commit API with the Document Code specified in the doc field and with cmmt set to true to set the document status to committed, so that it will be included on compliance reports.
  • If there are any discrepancies between the committed transaction and the data in your eCommerce system, you can use the Commit API to specify the document code in the doc field with cmmt set to false to uncommit the transaction. This removes it from compliance reporting.
  • Using a new Document Code in the doc field, call the CalculateTaxes API with the corrected transaction details. You can send cmmt = true to commit it immediately, or send cmmt = false if you plan to use the Commit API later to commit it later.

Accounting or ERP System

In addition to the workflows above, there are additional considerations and processes to account for.

  • Quotes and sales orders tend not to reflect actual sales, and can often be abandoned (without a void or return processed). For this, we recommend using cmmt = false and leaving the Document Code (doc) blank.
  • Invoices usually represent an actual sale, so you can use a unique Document Code (doc) with cmmt = false. The creation of an invoice does not usually represent the finalization of that sale, so this keeps the document in an uncommitted status.
  • When the invoice is posted and the sale is recognized, the document should be committed via the Commit API by setting cmmt = true. Commit only works when a Document Code (doc) is specified in the doc field.
  • Returns, credit memos, and adjustments work just like invoices, but they should be sent with negative amounts and some date considerations. You can also send adj = true to specify that a line item represents an adjustment, causing the line item to be treated as a negative amount.
  • If invoices or returns are voided, that cancellation needs to be communicated by using the Commit API with cmmt = false to uncommit the Document Code (doc).

If you’re ready to start some testing, you may want to review the full AvaTax for Communications REST API Reference. You can also continue reading the Developer Guide - it has great information on best practices, how to customize tax calculation for your specific business profile, and more!