# FAQs

Source: https://developer.avalara.com/ecommerce-integration-guide/design-the-document-workflow/design-the-transaction-workflow-faqs/

This section provides answers to common questions that users face when designing a transaction workflow.

[![Closed](https://avalara-devdocs-prod.mcoutput.com/avatax-for-ecom/Content/Skins/Default/Stylesheets/Images/transparent.gif)How do I handle quoting/estimates?](javascript:void\(0\);)

Calling the AvaTaxservice with a `SalesOrder` document `type` returns a calculation/quote but doesn’t record the transaction.

If you need to provide a quote, but you don't have the full address, use the [DownloadTaxRatesByZipCode](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/TaxContent/DownloadTaxRatesByZipCode/) endpoint and store that on the client side. After you have the full address information, use AvaTax to get the rooftop level tax calculation.

[![Closed](https://avalara-devdocs-prod.mcoutput.com/avatax-for-ecom/Content/Skins/Default/Stylesheets/Images/transparent.gif)When do I call for tax?](javascript:void\(0\);)

When you call for tax depends on where you are in the workflow. As a best practice, don't call for tax every time a user adds or removes an item from the cart. Some implementations loop in an explicit **Calculate Tax** button, or they incorporate the tax calculation in the **Save** function. You can also call AvaTax for tax calculation upon receiving shipping information.