Two objects, one workflow
Tax Rate The rate definition: itstax_rate_type (percentage or fixed), its value, and a unique code you reference everywhere else.
Tax Association
The link between a tax rate and an entity (tenant, customer, subscription, or invoice). The association controls whether the rate fires automatically on new invoices and at what priority when multiple rates apply.
Inheritance chain
flexprice resolves which tax rates apply to an invoice by walking this chain, from least specific to most specific:tax_rate_overrides on a subscription replaces, not adds to, the customer’s associations for that subscription’s invoices. Omit tax_rate_overrides entirely to inherit from the customer.
An invoice gets no tax if none of the three levels has an active association set to apply automatically. Verify your inheritance chain before going live.
Where tax fits in invoice calculation
Tax is always computed on the post-discount, post-credit balance:
Tax is never charged on a negative base. If coupons eliminate the subtotal, tax is zero.
Tax rate types
Multiple tax rates
You can attach multiple tax rate associations to the same entity. Each rate is applied independently to the same taxable base (they do not compound). Usepriority (lower number fires first) to control application order when ordering matters for reporting.
Quick start
- Create a tax rate with a unique
codeand apercentageorfixedvalue. - Create a tax association to link that rate to your tenant, a customer, or a subscription.
- Generate an invoice. flexprice resolves applicable rates via the inheritance chain and applies them to the taxable amount automatically.

