quote → cash
EN/FR Contact

Tax

From a transaction to a rate

Legal entities, tax policies, treatments, rates, engines

Salesforce docs documented by SalesforceField experience observed on a real orgRecommended pattern what we recommendTo verify unverified

Tax resolves through a chain: who is selling (the legal entity), who is billed (the billing profile), which rule applies (policy and treatment), and how much (engine and rate). Two findings decide most designs.

It is the country of the billing profile that commands the rate, not the address on the order. And no native mechanism varies the tax code by country — which closes off the two paths most people try first.

The objects

Select any object to open its detail — purpose, the fields that matter, what it relates to, and what to watch for.

The architecture

Tax architecture transaction → code → rate
WHO WHICH RULE HOW MUCH RESULT country selection looks up LegalEntity who is selling BillingAccount who is billed TaxPolicy how to choose TaxTreatment product × code TaxEngine the calculator TaxRate code × country × period InvoiceLineTax the only place the code lands

Scroll the diagram sideways

Two things decide everything here. First, it is the country of the billing profile that commands the rate, not the address on the order — verified in both directions on two orders with different addresses and the same profile. Second, no native mechanism varies the tax code by country: TaxTreatmentItem has no geographic field, and the standard decision table takes a code as input and returns a rate, so it can never produce one.

Open this architecture →

Solution patterns

Use cases

Field notes

Salesforce resources