Commerce glossary

Tax

Sales tax and VAT on orders: how the amount is calculated at checkout, how prices show it, where the store is registered to collect it, which buyers are exempt, and the invoices and returns that report it.

28 parts and 13 phrases. Apps in this area include Stripe Tax, Avalara, TaxJar, Quaderno, Shopify Tax.

Compliancetax.complianceShowWhere the store must collect tax, who is exempt, and how tax is reported.
Registrations and thresholdstax.compliance.registrationShowWhere the store must collect tax.

How to extend

  • ProviderOne per storetax providerRegistrations are kept in the tax engine that calculates and files the tax.
PartLitestore todayHow to extend
Registration listtax.compliance.registration.registration_listA registration list holds the states or countries where the store is registered to collect tax, with each registration number.
Plugin
Provider · one
Threshold trackingtax.compliance.registration.threshold_trackingThreshold tracking adds up sales per state or country and flags when they pass the amount that requires registering there.
Plugin
Provider · one
EU One-Stop Shoptax.compliance.registration.eu_ossThe EU One-Stop Shop is one registration in a home country that covers VAT on sales to consumers in every EU country.
Plugin
Provider · one
EU Import One-Stop Shoptax.compliance.registration.eu_iossThe EU Import One-Stop Shop collects VAT at checkout on low-value parcels shipped into the EU from outside it.
Plugin
Provider · one
Marketplace collectiontax.compliance.registration.marketplace_collectionMarketplace collection puts the duty to collect tax on a marketplace for sales its sellers make through it.
Plugin
Provider · one
Exemptionstax.compliance.exemptionShowBuyers and sales that are not taxed.

How to extend

  • ProviderOne per storetax providerExemptions are checked by the tax engine that calculates the tax.
  • SlotMany side by sidecheckout.slot.delivery.below_methodsAn exemption plugin renders a VAT number field at checkout.
PartLitestore todayHow to extend
VAT number checktax.compliance.exemption.vat_numberA VAT number check validates a business buyer's VAT number against the official register.
Plugin
Provider · oneSlot · many
Reverse chargetax.compliance.exemption.reverse_chargeReverse charge removes VAT from a cross-border business sale and notes on the invoice that the buyer accounts for it.
Plugin
Provider · oneSlot · many
Exemption certificatetax.compliance.exemption.certificateAn exemption certificate is a document a tax-exempt buyer provides, stored with its expiry date.
Plugin
Provider · oneSlot · many
Tax-exempt customertax.compliance.exemption.exempt_customerA tax-exempt customer is an account whose orders are charged no tax.
Plugin
Provider · oneSlot · many
Invoices and filingtax.compliance.reportingShowThe documents and returns that report tax.

How to extend

  • ProviderOne per storetax providerFiling is done by the tax engine or a filing service that holds the transactions.
PartLitestore todayHow to extend
Invoicetax.compliance.reporting.invoiceAn invoice is a printable document for an order that lists the lines, the tax and the seller's details.
Coreapp/print/orders/[id]/invoice/page.tsx
Provider · one
Seller tax IDtax.compliance.reporting.seller_tax_idA seller tax ID is the store's VAT or tax number, stored once and printed on invoices.
Coremodules/settings/schema.ts
Provider · one
Credit notetax.compliance.reporting.credit_noteA credit note is a document that reverses all or part of an invoice after a refund.
Plugin
Provider · one
Tax reporttax.compliance.reporting.tax_reportA tax report sums tax collected per jurisdiction and period for a return.
Plugin
Provider · one
Filing and remittancetax.compliance.reporting.filingFiling and remittance submits the tax return to each authority and pays the tax owed.
Plugin
Provider · one
Calculating taxtax.calculationShowHow the tax on an order is worked out at checkout.

How to extend

  • ProviderOne per storetax providerOne tax engine calculates tax for a store; Litestore ships a flat rate and Stripe Tax, and another engine plugs into the same seam.
PartLitestore todayHow to extend
Flat tax ratetax.calculation.flat_rateA flat tax rate applies one percentage to every order's taxable amount.
Coremodules/checkout/tax/provider.ts
Provider · one
Rate by addresstax.calculation.address_lookupRate by address sends the shipping address to a tax engine, which returns the combined rate for that location.
Coremodules/checkout/tax/provider.ts
Provider · one
Fallback ratetax.calculation.engine_fallbackA fallback rate charges the flat rate when the tax engine fails or the address is missing, so an order is never taxed at zero by mistake.
Coremodules/checkout/tax/provider.ts
Provider · one
Product tax codetax.calculation.product_tax_codeA product tax code marks a product's tax category, such as clothing or food, so each line gets the rate for its category.
Plugin
Provider · one
Shipping taxabilitytax.calculation.shipping_taxabilityShipping taxability sets whether the shipping charge is taxed, by the rule of the buyer's location.
Plugin
Provider · one
Tax shown before paymenttax.calculation.checkout_estimateA tax line in the checkout summary shows the tax before payment, calculated by the same engine as the charge.
Coremodules/checkout/checkout-estimates.ts
Provider · one
Tax in pricestax.pricingShowWhether shown prices contain tax, and how tax is rounded.

How to extend

  • Core onlyInclusive or exclusive pricing and rounding stay in core because every money path must use the same rule.
PartLitestore todayHow to extend
Tax-inclusive pricestax.pricing.inclusiveTax-inclusive prices already contain the tax, so the shelf price is the price paid.
Coremodules/markets/channel.ts
Core only
Tax-exclusive pricestax.pricing.exclusiveTax-exclusive prices leave the tax out, and the tax is added as a line at checkout.
Coremodules/markets/channel.ts
Core only
Tax roundingtax.pricing.roundingTax rounding is the one rule that turns a calculated tax into cents the same way on every path.
Coremodules/markets/channel.ts
Core only
Origin countrytax.pricing.origin_countryAn origin country records where the store ships from, which some tax rules use.
Coremodules/markets/channel.ts
Core only
Tax on orders and refundstax.recordShowHow the tax charged is stored and reversed.

How to extend

PartLitestore todayHow to extend
Tax on the ordertax.record.order_taxTax on the order stores the tax charged and whether it was inclusive or exclusive, as part of the order totals.
Coremodules/orders/payments/order-amounts.ts
Event · many
Tax on refundstax.record.refund_taxTax on refunds pays back each refunded item's share of the tax charged.
Coremodules/orders/refunds/calculate-item-refund.ts
Event · many
Transaction recordingtax.record.engine_commitTransaction recording sends each paid order to the tax engine so it counts toward the store's tax returns.
Plugin
Event · many
Refund recordingtax.record.engine_reversalRefund recording sends each refund to the tax engine so the reported tax goes down by the refunded amount.
Plugin
Event · many

What the phrases mean

The words apps use for a feature, and the plain parts the feature is made of, in the order they happen.

Phrases left out

These phrases mean different things at different apps, so the glossary doesn't map them.

  • tax complianceIt covers calculation, registration and filing alike, so it maps to no single part.
  • duties and import taxesIt means customs duty quotes at one vendor and VAT collected at import at another; duty belongs with cross-border shipping.

Sources

The app documentation these parts were checked against.