## TL;DR

Stripe's tax_behavior on a price or line item decides whether the amount includes tax (inclusive) or tax is added on top (exclusive). Inclusive matches EU-style VAT-included pricing; exclusive matches US-style sales tax added at checkout. Set it on the price so every invoice using that price is consistent; mixing behaviors across line items confuses customers and breaks total reconciliation. Preview the invoice to confirm the tax lines match your pricing page.

## The query

```text
Stripe "tax_behavior" inclusive vs exclusive on invoice line items
```

## Use this when

- EU customers expecting VAT-included prices on invoices
- US invoices needing sales tax added on top of the subtotal
- Invoice totals not matching the pricing page

## Not for

- Customer tax exemption status (use customer_tax_exempt)
- Choosing tax rates (use tax rate objects or Stripe Tax)

## Steps

1. Decide the display convention per market: inclusive for VAT-included regions, exclusive for added-on-top regions.
   Expected output: Each market has one consistent behavior.
2. Set tax_behavior on the price objects, not per invoice line by hand.
   Expected output: Every invoice inherits the right behavior automatically.
3. Attach the correct tax rates to the subscription or invoice.
   Expected output: Tax computes against the intended base.
4. Preview a draft invoice and check the subtotal, tax, and total lines.
   Expected output: The math matches your pricing page exactly.
5. Lock the convention in your price catalog docs so new prices follow it.
   Expected output: Future prices do not introduce a mixed-behavior mess.

## Variant phrasings

### Stripe tax_behavior inclusive vs exclusive

### Stripe VAT included in price invoice

### tax added on top Stripe invoice line item

## Root cause

tax_behavior is a property of the price because the same numeric amount means different money depending on convention: 100 inclusive means ~83 base + tax, 100 exclusive means 100 base + tax. Getting it wrong silently shifts your effective price.

## Edge cases

- Changing tax_behavior on an existing price is not allowed; create a new price
- Inclusive tax with multiple rates splits the included amount proportionally; verify the split

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_f-JKdmCqN5EPRu0tlHgfOw
