Chapter 7 - AvaTax for Communications Use Cases

Online Store, Point of Sale or Streaming

Commit First (Low Cart Abandonment)

  • When your customer places an item into their cart, send a request to the CalculateTaxes API. Use a unique Document Code (doc) and set the Commit flag (cmmt) to true.
  • If the purchase is finalized, there is nothing else you need to do. The transaction is complete. This transaction will appear in your compliance report.
  • If the purchase is not finalized, uncommit the Document Code through the Commit API using the Document Code specified in the doc field. Set cmmt to false.

    Note

    The uncommit process does not neeed to happen in sync with the customer purchase workflow in your application. The commit process is a simple way to determine the data that needs to appear in your compliance reports and which taxes are remitted at the end of your filing period. This is a good candidate for a queue or cron that runs outside of normal business hours when your systems are under utilized. The important part is that all Document Codes have their correct commit status by the end of the current filing or reconciliation period, before your Tax Analysts begin generating and reviewing reports.

Commit Last (Standard or High Cart Abandonment)

  • When your customer places an item into their cart, send a request to the CalculateTaxes API. Use a unique Document Code (doc) and set the Commit flag (cmmt) to false.
  • If the purchase is not finalized, there is nothing else you need to do. The transaction is complete and the Document Code remains uncommitted. This transaction will not appear in your committed compliance report.
  • If the purchase is finalized, commit the Document Code through the Commit API using the Document Code specified in the doc field. Set cmmt to true.
    As mentioned above, the commit process can happen out of sync with your customer purchase workflow. Your application does not need to wait for a response from the Commit API. At this point you have already calculated taxes related to the invoice, so the purchase can be finalized. In order for your compliance reports to be accurate within Avalara, you only need to ensure the Document Code is committed before the end of the current filing or reconciliation period.

Quotes

Quotes and sales orders tend not to reflect actual sales and can often be abandoned without a void or return processed. For these scenarios, we recommend leaving the Document Code empty. This will ensure the transaction is never committed and will not appear in a committed report.

Accounting or ERP System

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

  • Invoices, as opposed to quotes, usually represent an actual sale. Use a unique Document Code (doc) with cmmt set to false. The creation of an invoice does not usually represent the finalization of that sale, so this keeps the document in an uncommitted status. Use a metadata field, like Invoice Number Reference (invn) to create an association between the Document Code and your invoice.
  • When the invoice is posted and the sale is recognized, the Document Code should be committed through the Commit API by setting cmmt to true.
  • Returns, credit memos, and adjustments work just like invoices. Make the Charge amount (charge) negative and set the adjustment flag adj to true. More than likely your Invoice Date date will be the original date of the invoice, not the current date, to ensure our tax engine uses the same rates and logic as the original invoice.
  • If invoices or returns are voided within the same calendar month, uncommit the Document Code through the Commit API.
  • If invoices or returns are voided in a subsequent calendar month, the committed Document Code from a previous month will be locked. In this case, send an adjustment in the current filing period so that you can reclaim taxes filed in a previous filing period.

If you’re ready to start 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!