Skip to content

Not yet supported

Not yet supported

The register covers more jurisdictions than the package's default regime registry. The engine currently models the 52 countries listed in Supported jurisdictions. Other geo profiles have no modelled tax module, so DefaultTaxCalculator raises UnsupportedJurisdiction before looking up a rate.

For example, the register carries South Africa, Israel, Gabon and Argentina, but the default engine does not assess supplies there. Syncing those regions alone does not enable their place-of-supply, registration or customer-treatment rules.

Adding a jurisdiction

Support requires a geo tax profile, a registered TaxRegime implementation and verified rate data for the supplies it will assess. The regime must model the relevant seller, customer, product and territorial rules. Countries with sub-national or product-dependent taxes may need more than the generic national regime.

Hosts can bind their own RegimeRegistry and jurisdiction repository; see Regimes. A country with no modelled regime refuses rather than returning zero. That refusal is not a statement that the country has no tax.

Product-category detail

The public API accepts the 56 TaxClass values. CategoryMap maps them into the register's larger vocabulary, and some detailed register categories have no public class. A commodity code refines the mapped category; TaxQuery and TaxRateSource do not yet accept raw register category keys.

Rule and history limits

  • Mixed intrastate US sourcing needs decisions per authority layer. An identified mixed case raises UnresolvedTaxRule rather than selecting one place for all layers.
  • US delivery requires an applicable transport/handling rule. A conditional exclusion also requires confirmed host facts. Independent taxation of delivery accompanying exempt goods and taxable allocation for partially exempt goods are not yet classified by the default regime; both refuse.
  • Published rounding policies support half-up/up, line/invoice/seller-election scopes and combined local shares. Separate per-authority rounding is not implemented by this policy path. A bracket table is applied exactly to a tax-exclusive sale; a tax-inclusive price, or a local share stacked on a state's table, falls back to the table's per-dollar rate, flagged.
  • The EU margin scheme for second-hand goods, art and antiques is not modelled: it needs the purchase price and the seller's election. A host that uses it computes it before the engine.
  • Who accounts for a domestic supply by a supplier not established in the member state (Art. 194) is only as settled as the facts the supply states. A rule that turns on whether the customer is registered there, or whether goods are a work delivery, is unsettled until told — reverse-charged as before and flagged AttributionUnsettled. Belgium's rule does not say which supplies it covers and is always flagged.
  • Local boundary artifacts are snapshots. Dated rate coverage does not establish historical boundary coverage.

See Rounding and delivery for the supported inputs and cadastre feedback for the remaining data and contract requests.

E-invoicing and clearance

The package calculates tax and aggregates assessments. Mandatory e-invoicing, clearance and submission to authorities belong to the invoicing or filing system. They are outside this package's calculation scope.