Avalara Developer Network Developer avaTax


Document Workflow and Best Practices

Integrating to Avalara AvaTax is as simple as mirroring your document workflow in our system. Before we get started, here are some things you’ll need to consider:

  • When will you call AvaTax for tax calculation? Calculations contribute to your billable transaction count, so calling when a calculation isn't needed will add processing time to your application and increase your billable AvaTax transactions.
  • When are you going to record the transaction in AvaTax for reporting?
  • Will you need to handle returns? Voided invoices? Drop shipments? What other edge cases will you need to account for?

With these things in mind, let’s take a look at some general examples.


Avalara AvaTax Ecommerce Diagram

  • For every tax calculation done before a sale is complete, you should use DocType SalesOrder. This will not create a record of the calculation in AvaTax, so you won't have to do any cleanup for abandoned carts.
  • When you recognize the sale, make another call to AvaTax with DocType SalesInvoice to record the transaction for reporting. You can commit the document at this time, or later, depending on your business process.


Avalara AvaTax ERP Diagram

In addition to the workflows above, there are additional document types 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 DocType SalesOrder.
  • Invoices usually represent an actual sale, so you can use DocType SalesInvoice. Because the creation of an invoice does not usually represent the finalization of that sale, keep the document in an uncommitted status.
  • When the invoice is posted and the sale is recognized, the document should be committed by setting Commit=true on either GetTax or PostTax. Commit will only work when an invoice DocType is used.
  • Returns and credit memos work just like invoices, but they should be sent with negative amounts and some date considerations.
  • If invoices or returns are voided, that cancellation needs to be communicated to AvaTax with a CancelTax call.

If you’re ready to start some testing, you may want to review the API Reference, how we deal with shipping charges, and pick up some sample code.