Back to changelog

Tax Registrations

Release
v2026.5.3
AprAprAprMayMayMay
5new
3improved

One place to tell us where you're registered

If you sell across borders, the question of which VAT to charge depends on where you're registered, not just where you and your customer are. Until now you had to pick the right rate on every line yourself. Now you tell Expensicat once per legal entity, and the invoice editor does the rest.

Open your legal entity, add a registration, pick one of three schemes:

  • Standard — a direct national VAT/GST registration in a country other than your home (the warehouse case)
  • Union OSS — the EU single registration that covers cross-border B2C sales to every other EU member
  • Import OSS — for low-value (under €150) B2C imports into the EU

You can have several. Each one has its own start date and an optional end date, so a registration you closed last year doesn't keep applying to invoices you issue today.

The rate picks itself

For every new invoice line, Expensicat looks at your home country, your active registrations, your buyer's country, and whether they gave you a valid EU VAT ID. From that it picks the right treatment:

  • Selling at home → your domestic rate
  • Selling to an EU business with a valid VAT ID → reverse charge with the right exemption code
  • Selling B2C to another EU country with Union OSS on → the buyer's country rate
  • Selling B2C to another EU country with no OSS → your domestic rate, with a hint to add Union OSS if you've crossed the €10k threshold
  • Holding a direct registration in the buyer's country → that country's rate, ahead of OSS
  • Selling outside the EU → export at 0%

Each line carries a short explanation of why it was taxed the way it was, so you can spot anything that looks off before you issue.

Per-line override is still one click

For the cases the engine can't know about — a goods seller who needs intra-Community supply (K) instead of the default reverse charge (AE), a B2C sale that's exempt for a specific reason — the tax picker on each line shows every available rate for the right country and date, with the EN 16931 exemption code attached automatically.

  • TaxAdd tax registrations to each legal entity for Union OSS, Import OSS, or a direct VAT/GST registration in another country.
  • TaxSell cross-border B2C in the EU and have Union OSS turned on, and Expensicat charges the buyer's country rate automatically.
  • TaxHold a direct registration in a buyer's country — for example because you ship from a warehouse there — and that country's rate is applied instead of OSS.
  • TaxA valid EU VAT ID on the buyer flips invoices to reverse charge automatically, with the right exemption code on the e-invoice.
  • TaxEach registration carries an effective-from and optional effective-to date, so old registrations stop applying to invoices once they end.
  • InvoicingThe tax picker on each invoice line now shows the available rates for the right jurisdiction and date, with one click to switch category.
  • InvoicingPlain-language explanation of why each line was taxed the way it was — "Union OSS — destination rate", "Reverse charge — EU B2B", "Export outside EU" — so you can sanity-check before issuing.
  • EntitiesTax registrations now live as separate records per legal entity, with proper uniqueness, history, and admin-only editing.