Tax / VAT Configuration
Configure tax calculation on plan purchases — system-wide default rate, customisable label (VAT / GST / Sales Tax), and per-plan overrides with inclusive or exclusive pricing.
System-wide defaults
Set in Admin → Settings → Tax / VAT:
- Enable Tax / VAT — master toggle. When off, no tax is calculated or shown anywhere.
- Default Tax Rate (%) — used for any plan that has its
tax_rateset to 0 (the default). E.g.19for 19% VAT,20for 20% UK VAT,10for 10% Australian GST. - Tax Label — printed on invoices and shown at checkout. Common values:
VAT(EU),GST(AU/IN/NZ/CA),Sales Tax(US),Tax(generic).
Per-plan overrides
Set on each plan in Admin → Plans → Edit:
- Tax Rate (%) — per-plan rate that overrides the system default.
0means “use system default”. - Tax Inclusive toggle — flip on if the listed plan price ALREADY INCLUDES tax (typical for EU consumer pricing). Off means the listed price is net and tax adds on top.
How the math works
Tax-exclusive (US-style)
Plan price = $100, tax rate = 10%, tax_inclusive = false.
- Subtotal: $100.00
- Tax (10%): $10.00
- Total charged: $110.00
The customer sees the tax line added on top at checkout. The displayed plan price is the pre-tax price.
Tax-inclusive (EU-style)
Plan price = €100, tax rate = 19%, tax_inclusive = true.
- Total charged: €100.00 (matches the listed price)
- Subtotal (back-calculated): €84.03
- Tax (19% of subtotal): €15.97
The customer pays exactly the listed price. The invoice shows the tax breakdown for compliance, but the total matches the price they saw.
What customers see at checkout
When Tax / VAT is enabled, the checkout summary shows a clean three-line breakdown:
- Subtotal: $100.00
- {tax_label} ({rate}%): $19.00
- Total: $119.00
If a coupon is applied, the discount row appears between subtotal and tax.
Tax snapshot on every Payment
The tax breakdown is frozen onto the payments table row at checkout time:
subtotal_amount— before tax, before discounttax_rate— the actual rate that was applied (%)tax_amount— the absolute amount of taxamount— the final grand total charged
This means historical invoices stay accurate even if you later change the tax rate. An invoice from when VAT was 19% always shows 19%, even after you bump it to 20%.
How tax appears on invoices
The invoice PDF and themed HTML preview both show the tax line in the totals box, using your configured label and rate:
Subtotal $100.00 VAT (19%) $19.00 ───────────────────────────── Total $119.00
If tax rate is 0% on a particular plan AND the system default is 0%, the tax line is omitted from the invoice entirely.
Common setups
EU SaaS selling to EU consumers (B2C, inclusive pricing)
- Tax / VAT: Enabled
- Default rate: 19 (or your home country's rate)
- Tax label: VAT
- Per-plan tax_inclusive: On
- Result: Customers see “€100” on the pricing page, pay €100, invoice shows the back-calculated VAT for compliance.
US SaaS (no tax, or sales tax handled by Stripe Tax)
- Tax / VAT: Disabled
- Let Stripe Tax handle calculations at the gateway level.
UK SaaS (B2B, exclusive pricing)
- Tax / VAT: Enabled
- Default rate: 20
- Tax label: VAT
- Per-plan tax_inclusive: Off
- Result: Listed plan price = net. Tax adds at checkout. Customers see "£100 + £20 VAT = £120 total".