Supported jurisdictions
Supported jurisdictions
Each row is modelled by a regime and resolves a rate. Confidence reflects how well the rate/rules are grounded in primary sources. US rates come from the us-tax-data dataset by default; elsewhere the shipped default rates are illustrative starting points unless a live source is bound.
EU — VAT (eu-vat)
All 27 member states. Destination VAT for B2C digital (Art. 58); intra-EU B2B to a
VIES-validated customer reverse-charges (Art. 44). Rate sources: the EU
Commission's TEDB, called live via
TedbSoapRateSource
(tax.tedb.live, no API key — TEDB publishes no downloadable export, so the SOAP
service is how you consume it), or a real, public, MIT-licensed EU VAT dataset
(ibericode/vat-rates) via the IbericodeVatRateSource adapter.
Either composes ChainTaxRateSource(feed → static snapshot). Confidence: high
— the regime and threshold are grounded in EU primary law, and with the live TEDB
source bound the rates come from the Commission's own database rather than a
community compilation. Reduced bands are the caveat: TEDB resolves them for some
member states and splits them across sub-scopes for others, where the standard rate
applies instead. Re-verify against member-state guidance before filing.
€10,000 micro-business threshold (Art. 59c). The regime is threshold-aware: a
seller established in a single member state, below the €10,000 combined
cross-border B2C threshold (current or preceding year) and not opted into OSS,
charges its own (origin) VAT on cross-border B2C supplies; once it opts in or
crosses the threshold, the general destination rule applies. The seller
supplies these signals on SellerRegistrations::$oss (OssStatus) — the engine
never guesses turnover, and absent an asserted status it applies the destination
rule. B2B reverse-charge is unaffected.
| Countries | Regime | Rate source |
|---|---|---|
| AT BE BG HR CY CZ DK EE FI FR DE GR HU IE IT LV LT LU MT NL PL PT RO SK SI ES SE | eu-vat |
live EU TEDB (TedbSoapRateSource, optional) → static fallback |
Reduced / zero rates
The rate-source contract resolves rates by taxability category, so a supply
that legally carries a reduced or zero band (e-books, food, etc.) resolves one
when the bound source supplies it. The shipped static snapshot carries no
reduced-rate table — the package will not fabricate national reduced bands.
Enable the live TEDB source (tax.tedb.live) to resolve them from the Commission's
own database, or supply bands to StaticTaxRateSource yourself. TEDB bands are
deliberately conservative: where a member state carries a category at several rates
at once, the band is refused and the standard rate applies rather than guessing
which sub-scope a supply falls in (see
rate sources).
Tax-ID validation — live-response verification still needed
The VAT-ID validators (VIES, HMRC, ABN Lookup) are fail-safe by design: an unreachable service returns inconclusive, and the engine then charges tax rather than granting reverse-charge relief it cannot prove — this design is correct and unchanged. Note, however, that treating a validation as conclusive still depends on the authority's live response; a stubbed or cached validation must not be mistaken for a real-time VIES/HMRC confirmation before relying on reverse-charge.
National VAT/GST regimes (NationalTaxRegime)
Destination tax at the national rate; cross-border B2B to a registered customer reverse-charges.
| Country | Module | Std rate | Authoritative source | Confidence |
|---|---|---|---|---|
| United Kingdom | uk-vat |
20% | HMRC | high |
| Switzerland | ch-vat |
8.1% | ESTV/FTA | high |
| Norway | no-vat |
25% | Skatteetaten (VOEC) | high |
| Australia | au-gst |
10% | ATO | high |
| New Zealand | nz-gst |
15% | IRD | high |
| Mexico | mx-iva |
16% | SAT | high |
| Singapore | sg-gst |
9% | IRAS | high |
| Taiwan | tw-vat |
5% | MOF (Business Tax Act) | high |
| United Arab Emirates | ae-vat |
5% | FTA (federal, all emirates) | high |
| Saudi Arabia | sa-vat |
15% | ZATCA | high |
| Bahrain | bh-vat |
10% | NBR | high |
| Oman | om-vat |
5% | OTA | high |
| Türkiye | tr-vat |
20% | Gazette (Decree 7346, 2023) | high |
| Chile | cl-iva |
19% | SII | high |
| Indonesia | id-ppn |
11% | DGT (effective via 11/12 base; not the 12% headline) | high |
| Vietnam | vn-vat |
10% | GDT (temporary 8% cut through 2026-12-31 — bind a date-aware source) | high |
| Philippines | ph-vat |
12% | BIR (RA 12023) | high |
| Japan | jp-ct |
10% | NTA (consumption tax; ¥10M threshold) | high |
| South Korea | kr-vat |
10% | NTS | high |
| Thailand | th-vat |
7% | Revenue Department (VES regime) | high |
| Ukraine | ua-vat |
20% | STS | high |
Time-sensitive rate notes. Indonesia's headline PPN is 12% but the effective rate on non-luxury supplies is 11% (the 11/12 base mechanism) — the engine encodes 11%. Vietnam's statutory standard is 10%, currently reduced to 8% for most supplies through 31 Dec 2026; the shipped default is the durable 10% — bind a date-aware rate source to apply the temporary cut. Türkiye rose to 20% on 10 Jul 2023; Saudi Arabia to 15% (Jul 2020); Bahrain to 10% (Jan 2022).
India — dual GST (in-gst)
A dedicated regime. The customer-facing rate is uniform across the split, so the amount is a single rate; the regime labels the components: IGST for inter-state / imports / foreign (OIDAR) suppliers, CGST+SGST for intra-state. Foreign B2C digital (OIDAR) is charged at destination (18% IGST); B2B to a GST-registered recipient reverse-charges. Source: CBIC (OIDAR guidance, IGST Act). Standard rate 18% (post-22 Sep 2025 slab restructure). Confidence: high.
Malaysia — SST (my-sst)
A dedicated regime, not a destination VAT. A registered foreign digital-service provider charges Malaysian service tax on both B2C and B2B with no reverse charge — so this regime never reverse-charges, unlike the national VAT regimes. Service tax 8% (since 1 Mar 2024), RM 500,000 threshold. Source: RMCD. Confidence: high.
United States — sales tax (us-sales-tax) — dataset-backed, state-level precision
Rates, taxability, nexus and sourcing are supplied by the us-tax-data dataset, enabled by default across all 51 jurisdictions — it replaces the hardcoded US entries the static tables used to ship. The remaining limitation is precision, not coverage: jurisdictions resolve to the state, so a rate is the state share unless a rooftop locality is resolved (experimental, off by default). Taxability and nexus data remain a decision aid to verify with a tax advisor.
Sub-federal. Three gates before a rate applies: the state must be resolved
(via an AddressGeocoder), the seller must have nexus in it, and the product
must be taxable there — else NotRegistered / Exempt. What is modelled
versus what you must supply:
| Concern | Shipped | What is required for correctness |
|---|---|---|
| Sourcing / nexus / taxability logic | ✅ the regime | — |
| Per-state taxability (25 categories, incl. SaaS) | ✅ from the dataset; the curated, cited digital_service map for 44 jurisdictions is the fallback when the dataset is disabled — details |
verify with a tax advisor; a pair neither source determines throws UnresolvedProductTaxability until you configure it |
| State rates | ✅ dataset baseline for all 51 jurisdictions, at Confidence::Derived — honestly the state share |
— |
| Local (rooftop) rates | ✅ live for 26 states with us_tax_data.rooftop enabled: 24 Streamlined states resolve by ZIP+4 through the published boundary index, and California and New Mexico by point against their own polygon services — details |
a geocoder that returns a ZIP+4 and coordinates (the shipped Geocodio adapter does). The remaining states resolve to the state rate: Arizona, Colorado, Louisiana, Missouri, Illinois, Alabama and Alaska publish nothing usable, and Texas' address file sits behind an audited portal that forbids redistribution |
| Economic-nexus thresholds | ✅ from the dataset (cited static table as fallback); flags a likely registration obligation on NotRegistered — details |
nexus is still asserted by an explicit SellerRegistration; the thresholds advise, they do not auto-register or evaluate per invoice |
So a US assessment is grounded in primary-sourced data end to end, but is state-precision unless rooftop resolution is enabled — a local city/district component can therefore be missing. Confidence: high on logic; rates, taxability and nexus dataset-backed and cited (advisor-verify); rooftop precision partial and opt-in.
Canada — GST/HST (ca-gst)
Province-level (Canada has no local sales tax), so a province fully determines the combined rate — a cleaner structure than the US. Cross-border non-resident B2B to a registered customer self-assesses. The shipped province rates are illustrative defaults; an authoritative source (CRA open dataset + provincial ministries, QST via Revenu Québec) should still be bound. Confidence: high on logic; province rates are DATA to source.