Taxes
Turn on tax for each market you sell in, and use the setup guide to check that every market charges through a real tax engine.
Litestore works out the tax on each order and charges it as a separate line. Tax is set up per market, and the setup guide catches a market that is quietly charging nothing.
Tax calculation
Tax is a number on the store's own order. You don't have to reconcile it later against a figure in someone else's dashboard.
Stripe's own automatic tax is switched off. Even when you use Stripe Tax, Litestore reads the amount back and charges it as a Litestore line item.
Stripe Tax asked for the destination's real tax
↓
amount read back into Litestore
↓
charged as a Litestore line item on the orderLitestore does this to make every order handle tax the same way. A tax-free store, a Stripe Tax store and a payment flow without Stripe all produce orders that record tax in the same place. Refunds, reports and the order record then behave the same, however the figure was worked out.
Tax engines
The flat engine applies the market's own rate. Litestore uses the number you set.
Market tax settings
You set three things on each market, under Markets.
| Field | What it does |
|---|---|
| Rate | Sets the flat tax rate for the market. |
| Behavior | Sets whether tax is included in the displayed price or added on top. |
| Engine | Chooses the flat engine or Stripe Tax. |
Tax depends on where you sell, and you set it on the market that describes that place.
This has a direct consequence: an order with no market attached collects no tax. Litestore has nowhere to read a rate from.
ENABLE_TAXES
The ENABLE_TAXES environment variable turns tax calculation on or off. It defaults to false, so a new store collects no tax until whoever runs the server sets it to true.
While it is off, orders collect zero tax, even in markets that have rates configured.
A market can have the right rate, the right country and Stripe Tax connected, and it still charges nothing while ENABLE_TAXES is off. The rates aren't wrong. Litestore just isn't using them.
Setup guide check
The admin home's setup guide has a Set up taxes step that links to Markets. It counts as done when ENABLE_TAXES is off (the store deliberately charges no tax), or when every active market charges through a real engine: Stripe Tax, or the flat engine with a rate above 0%.
That last condition catches the quiet failure. A market that was created and never finished has a 0% rate. That is a valid setup, and it looks exactly like a market you meant to keep tax-free, so the step stays open until you give it a rate or switch it to Stripe Tax.
Checkout still completes when Stripe Tax is unreachable
Litestore falls back to the market's flat rate if the destination country is missing, the taxable amount isn't positive, Stripe returns any error, or the market names an engine that isn't wired. The order still gets a complete, charged tax amount. The fallback is logged on the server, so ask whoever runs the store to check the logs if Stripe Tax numbers look off.
Unsupported features
Litestore doesn't report tax back to Stripe for filing, and it doesn't reverse tax at Stripe when you refund an order.
On a refund, Litestore works out its share of the recorded tax itself. The refunded order is correct. Only Stripe's own tax records fall out of step.
Setup
Tax activation
Set ENABLE_TAXES to true first. Nothing else matters while it is off.
Market review
Tax is set per market, and a store that sells into three countries has three separate answers.
Stripe Tax and flat rates
Use Stripe Tax where you have real tax obligations in a jurisdiction. Litestore charges the flat rate when it can't reach Stripe, as the callout above explains. A 0% flat rate behind an active Stripe Tax market is a silent zero waiting to happen.
Check the setup guide each time you change a market, not after a customer complains. When this goes wrong, the admin shows no error, only an order that charged no tax and looked fine.
Related
Payments
Stripe takes the payments, a ledger records every money movement on an order, and Litestore tracks disputes.
Checkout
A shopper's cart goes through several steps before it becomes a paid order, and a few checks find the cause when checkout fails.
Markets
Each market has its own currency, language, tax rules and product visibility, so one catalog sells in several places.