Tax-Inclusive Pricing
By default, Abacus Tax Engine treats submitted prices as tax-exclusive - tax is calculated on top of the prices you provide and the customer pays your price plus tax. Setting is_tax_inclusive: true reverses this: the engine treats your prices as already containing tax and extracts the tax component rather than adding to it.
For field definitions, see the Transactions API Reference.
When to Use Tax-Inclusive Pricing
Tax-inclusive pricing is standard in markets where the law requires that advertised prices include tax - primarily the EU and most VAT jurisdictions. If the price you display to the customer is the final amount they pay, you are operating in tax-inclusive mode.
Tax-exclusive pricing is standard in the US, where sales tax is typically shown as a separate line at checkout.
The tax authority receives the same amount in both cases. The difference is purely in how you structure the price your customer sees.
How the Calculation Differs
Tax-exclusive: Abacus Tax Engine multiplies each item's total_price_after_discount by the applicable rate to produce the tax amount. The customer's total is item prices plus tax.
Tax-inclusive: Abacus Tax Engine works backwards from the submitted price to extract the tax component already embedded within it. The formula is tax = price × (rate ÷ (1 + rate)). The customer's total equals the submitted price - tax is already inside it.
The amounts.final_transaction_amount in the response reflects this:
- Tax-exclusive: equals the sum of item prices, with tax charged on top
- Tax-inclusive: equals the sum of submitted prices, which already include tax
Discounts and Tax-Inclusive Pricing
When discounts are used alongside tax-inclusive pricing, Abacus Tax Engine deducts all discounts first, then extracts the tax from the reduced amount. Tax is never extracted from the discounted portion of a price.
See the Discounts guide for how item-level and transaction-level discounts are applied.