Supported jurisdictions
Supported jurisdictions
The default geo profiles and regime registry model 52 countries. A usable assessment also requires the relevant register data and enough information about the seller, customer and supply. A rate existing in the register does not by itself add a country to the engine's regime registry.
Modelled regimes
| Countries | Engine module | Calculation path |
|---|---|---|
| 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 |
EU place of supply, B2B reverse charge and the scoped micro-business threshold |
| GB CH NO AU NZ MX SG TW AE SA BH OM TR CL ID VN PH JP KR TH UA | National VAT/GST modules | NationalTaxRegime, including its cross-border B2B treatment |
| IN | in-gst |
India GST with IGST or CGST/SGST component labels |
| MY | my-sst |
Malaysia service tax without the generic VAT reverse-charge treatment |
| US | us-sales-tax |
Registration, marketplace, taxability, sourcing and local-authority gates |
| CA | ca-gst |
Federal GST plus the province's PST/QST or a harmonised HST; PST needs the province's own permit |
Outside the United States, collection is gated on the seller's registrations: a
supply into a country where the seller is neither established nor registered comes
back NotRegistered rather than charged. See
seller registrations.
See Regimes for the rules each implementation models and Unsupported jurisdictions for the remaining boundary.
Rates and confidence
Every default rate comes from RegisterRateSource. Run tax:data:sync before
pricing. The register supplies dated standard, reduced and zero rates; there is no
bundled national snapshot or illustrative province-rate fallback.
A commodity code can refine a category lookup. If several applicable rates remain
ambiguous, the source uses the standard rate with RateLimit::HeadingAmbiguous.
Conditions that narrow an inherited category answer are reported with
RateLimit::ConditionsUnevaluated, and a category where the law names a rate the
register declined to file — Burkina Faso's 10% for approved hotels — with
RateLimit::RateDeclined. A place whose marketplace mandate reaches only some
facilitated sales leaves the seller charging, with
RateLimit::MarketplaceLiabilityUnread. Read confidence, limitedBy and provenance
on the returned rate rather than treating an entire country's coverage as one
confidence grade. See Rate sources.
Rates are resolved against the supply date where the register carries that window. A missing historical rate does not become today's rate. Source monitoring and data publication belong to the register; the package updates its local copy through sync.
US address precision
The available paths are described in register coverage: ZIP+4,
optional street indexes, polygons and county names. Postal and polygon artifacts
are included in sync by default; street indexes are selected with --streets=KS,WA.
Enable tax.geocodio.rooftop to have the shipped geocoder attach ZIP+4 or point
localities. County resolution works without that option.
Where the applicable local authorities cannot be resolved, a state share can be
returned as Derived with NoLocalResolution. It must not be treated as a complete
address-level rate. SaaS taxability and
nexus thresholds describe two separate inputs to the US
regime.
Tax-ID validation
VIES, HMRC and optional ABN Lookup validators are separate from the register. An unavailable validation service returns an inconclusive result. Store the actual validation result when relying on it for the customer treatment.