You are here:
Comparing CPQ Tax and Billing Tax
Salesforce CPQ calculates tax on the quote object, while Salesforce Billing calculates tax on the order and invoice objects. Review this and other important differences when comparing the tax calculation processes between Salesforce CPQ and Salesforce Billing. (Salesforce Billing Managed Package)
Required Editions
| Available in: All Salesforce Billing Editions |
Your tax engine provides real-time calculations to your Salesforce org.
If your use case requires tax calculation on the quote, your Salesforce org must integrate with a third-party tax engine or custom configuration. This connection lets you calculate tax on the quote and benefit from other features such as automated tax rate updates, pre-built reports, and further customizations.
Tax Calculations for CPQ & Billing
- Estimated Tax vs. Actual Tax
- Your tax engine performs tax calculations on the quote, order, and invoice records.
- Since tax rates are subject to change, the quote and order tax calculations are only estimates. Salesforce Billing performs the final tax calculation on the invoice, which represents the final amount included on the customer’s billing.
- Using Legal Entities for Tax in Salesforce Billing
- In Salesforce Billing, tax rules may have tax treatments, which allow users to define tax calculations based on legal entity. The legal entity is a company-specific object associated with order products, rules, treatments, and other records. If an order product and a tax treatment have matching legal entities, Salesforce Billing applies the treatment to that order product. You can have multiple treatments on a rule, and each treatment can have a unique legal entity. This process lets you consider a broad group of order products under a single tax rule while specifying how smaller sets of order products in that group are treated based on their legal entities.
-
Note Tax rules and treatments aren’t part of Salesforce CPQ. They calculate tax only in Salesforce Billing. - Calculating Tax for CPQ vs. Billing
- Tax engines calculate quote-level tax by evaluating the product’s tax code and the related account’s shipping address. When calculating tax on orders and invoices, you can choose the tax calculation address in Salesforce Billing package settings. You can also override this field by using the Address Override fields on the order product.
- Salesforce CPQ and Salesforce Billing each make API calls at different stages throughout the quote to cash process. Each tax calculation requires an independent API call.
-
Key Differences Topic CPQ Billing Engine Use only an external engine. Only Avatax is available pre-packaged. All other tax engines are custom integrations. Use an external engine like Avalara or Vertex, or a custom integration to an external engine. You can also use Salesforce Billing’s internal engine for lightweight tax calculations. Timing Calculates quote line tax immediately upon quoting action Calculates order product tax upon order creation. Calculates invoice line tax during the invoice run(s). Limitations Up to 1000 quote lines Up to 2200 invoice lines in Avalara - API calls
- Salesforce CPQ and Billing make API calls at various stages throughout the quote-to-cash process. Each tax calculation requires an independent API call.
- Limitations
- The Salesforce CPQ and Billing internal tax engine can calculate tax for up to 1000 quote lines per API call.
- Avalara can calculate tax for up to 2200 invoice lines.
Impact of Tax Amount and Tax Status
- Estimated Tax on the Quote
- When Salesforce CPQ calculates quote tax, it has only limited tax-relevant information such as the account address and the quoted product. Since tax-relevant billing information hasn’t been decided yet, the quote’s tax serves as an estimate for the quote recipient. We recommend calculating quote tax on quotes with high subtotals (such as $1 million or greater) given the potential for a large tax calculation to significantly increase the quote’s total price.
- Estimated Tax on the Order
- When Salesforce Billing calculates order tax, it can evaluate other tax-relevant information such as tax treatments, exemptions, shipping address, or processes to skip tax calculation before manual tax preparation. Other information such as usage data is not yet available, so the order’s tax remains an estimate.
- Actual Tax on the Invoice
- When Salesforce Billing calculates invoice tax, it has access to all tax-relevant data for products, shipping, and usage. Salesforce Billing sends this data to either an external tax engine or its own tax engine. The Avalara and Vertex tax engines also post the data.
- Posting Tax on the Invoice
- When Salesforce Billing posts to an external tax engine, most tax services use the posted data to remit the tax directly to a governing authority, or to drive tax remittance through reporting. External engines ignore unposted transactions.
Did this article solve your issue?
Let us know so we can improve!

