If your system asks "where?", TLL has an answer.
The same nine layers, asked by very different consumers. Tax engines ask for VAT zones, Netflix asks for rights regions, DHL asks for customs forms; TLL resolves all of them from one contract.
The right tax zone, even when the registry doesn't have one.
VAT membership doesn't follow ISO. Åland is in the EU customs union but outside its VAT zone. The Canary Islands are in Spain but outside the EU VAT area. Tax engines that pick a single registry get this wrong by default. TLL returns the rate, the reason, and the rule that produced it; every fact is tied back to its source.
- One call returns outbound rate, reason, customs treatment, and the rule_id behind the answer
- Field-level provenance: every fact carries a citation back to the directive or regulation that defines it
- Handles Åland, Canary Islands, Mount Athos, Heligoland, without per-territory carve-outs
// Cross-border seller: DE → AX { "from": "DE", "to": "AX", "goods_value_eur": "50" } → { "resolution": { "outbound_vat_rate": "0", "outbound_vat_reason": "Export to non-EU VAT territory", "rule_id": "eu-vat:export-third-country", "import_vat_due": true, "customs_declaration_required": true, "customs_type": "intra_EU_customs_territory" }, "sources": [{ "slug": "eu-vat", "facts_used": [/* AX, DE eu_vat_area */] }] }
Stop telling the buyer they live in the wrong country.
A Mariehamn customer types FI in the country dropdown and a 22100 postcode. Naive validators accept it as Finland. TLL sees the conflict, returns AX as the canonical territory, and composes the tax + logistics answer in one call, with a warning telling the carrier not to route domestic.
- Address conflict surfaced: country_input vs postal/city signals reconciled into a single tll_code
- Tax + logistics + customs forms returned in one composite response (idempotent by basket)
- Warnings carry the operational guidance, not just the field values
{
"seller": { "tll_code": "DE" },
"buyer": { "address": { "postal_code": "22100", "city": "Mariehamn", "country_input": "FI" } },
"cart": [{ "unit_price_eur": "50" }]
}
→
{
"checkout": {
"buyer_tll_code": "AX", // FI input, AX detected
"address_conflict": true,
"tax": { "outbound_vat_rate": "0", "outbound_vat_reason": "Export to non-EU VAT territory" },
"logistics": { "stops": ["DE", "AX"], "customs_forms": ["CN22"] },
"warnings": ["Do NOT route via Finnish domestic postal system; AX requires export declaration."]
}
} Pick the right routing class.
DIRECT or via the governing state. Customs declaration or not. Carriers don't want a country-list lookup; they want the routing decision. TLL returns the recommended route, the stops, the customs forms required, and the rule_id that explains the choice.
- recommended_route resolved per territory: DIRECT vs VIA_<governing_state>
- customs_forms (CN22 / CN23) emitted only when actually required
- rule_id traces back to a specific routing rule: every decision auditable
{
"from": "DE",
"to": "AX"
}
→
{
"routing": {
"recommended_route": "DIRECT",
"rule_id": "logistics:direct-customs-required",
"stops": ["DE", "AX"],
"customs_declaration_required": true,
"customs_forms": ["CN22"],
"estimated_transit_bucket": "3-5_business_days"
},
"sources": [{ "slug": "eu-customs", "facts_used": [/* AX eu_customs_union */] }]
} Catalogs don't follow ISO codes either.
Streaming and music platforms license content by rights region, not by ISO code. Åland maps to Finland for rights, but the catalog viewers commonly see is the Swedish one, via the Finnish feed. TLL returns the rights answer, the matched region, and the typical commercial catalog.
- rights_region.maps_to resolves territory → rights region (AX → FI) for licensing zone enforcement
- access_allowed plus matched_license_region, with the reason the rule fired
- content_profile.typical_catalog and via surfaced as commercial-practice hints
// Åland viewer, content licensed in FI { "user_location": "AX", "content_licensed_in": ["FI"] } → { "resolution": { "access_allowed": true, "matched_license_region": "FI", "reason": "AX maps to FI for rights region", "alternative_catalogs": ["SE"], "note": "Commercial practice: AX viewers commonly see SE catalog via FI." } }
Who's putting it to work.
The contract is the same. The consumers vary.
Tax engines
VAT zones, place-of-supply rules, customs treatment per territory.
E-commerce
Address resolution, basket-level tax + shipping decisions, conflict warnings.
Logistics & carriers
Routing class, customs forms, de-minimis thresholds per shipment.
Streaming & media
Rights regions, license enforcement, locale catalogs per viewer.
Marketplaces
Seller eligibility, payout currency, buyer locale per territory.
Payments
Cross-border settlement, currency defaults, address validation.
Telecom
E.164 prefix routing, emergency-number overlays per territory.
Govtech & registries
Reconciliation across UN, ISO 3166, WIPO ST.3, and UPU registries.
Global scope. EU special regions first.
Every ISO 3166-1 country plus every known special territory: dependencies, autonomous regions, outermost regions, OCTs, customs exceptions. The initial seed prioritizes the EU hybrid and external profiles where commerce stacks break most often, starting with Åland, the Canary Islands, Northern Ireland, and the DROM. Global coverage rolls out from there.
| Territory | Sovereign parent | VAT regime | Status | Why it breaks |
|---|---|---|---|---|
| Åland Islands FI-01 · in EU customs · outside EU VAT | Finland | 25.5% domestic · 0% cross-border | hybrid | EU customs union but outside EU VAT area; Swedish-speaking; demilitarised; autonomous within Finland. |
| Canary Islands ES-CN · in EU customs · IGIC not VAT | Spain | IGIC 7% · outside EU VAT | hybrid | Spain — but outside the EU VAT area, with its own indirect tax (IGIC). |
| Northern Ireland GB-NIR · Windsor framework | United Kingdom | UK VAT · EU goods rules | hybrid | Goods follow EU single-market rules; services follow UK rules. Windsor Framework lets UK VAT diverge for goods sold in NI not "at risk" of entering the EU. |
| Réunion FR-RE · OMR · special VAT | France | 8.5% · special rate | hybrid | EU outermost region — part of France's VAT territory, but with reduced French rates (8.5% standard, 2.1% reduced). Integrators default to mainland 20%. |
| Mount Athos GR-69 · in EU customs · outside EU VAT | Greece | no VAT | hybrid | Autonomous monastic state within Greece; outside EU VAT area; restricted access. |
| Heligoland DE-SH · outside EU VAT & customs | Germany | no VAT | hybrid | Part of Germany but outside the EU customs union and EU VAT area. |
| Faroe Islands DK-FO · outside EU | Denmark | MVG 25% · non-EU | external | Part of Denmark but outside EU and outside EU VAT entirely; own currency peg, own customs. |
| Greenland DK-GL · OCT · outside EU | Denmark | no VAT · import duty | external | Part of the Kingdom of Denmark but not an EU member; OCT status; outside EU VAT and customs. No VAT, but selective import duties on alcohol, tobacco, vehicles. |
| Gibraltar GB-GI · EU customs union (2026) | United Kingdom | no VAT · 15% transaction tax phasing in | external | British Overseas Territory historically outside UK VAT and EU customs. Feb 2026 UK–EU agreement establishes an EU–Gibraltar customs union; transaction tax (not VAT) replacing the no-tax regime. |
| Saint-Pierre & Miquelon FR-PM · OCT | France | no VAT · local tax | external | French OCT off Canada's east coast; outside EU customs and VAT; autonomous local tax/tariff regime distinct from mainland France. |
| San Marino EU customs union | sovereign | monofase 17% · non-EU | external | Sovereign micro-state inside the EU customs union but outside EU VAT; bilateral arrangements. |
| Isle of Man GB-IOM · UK customs union | United Kingdom | UK VAT · shared | consistent | Crown Dependency in customs union with the UK via the 1979 Common Purse Agreement (FERSA since Apr 2025). UK VAT applies at identical rates, but the Manx Treasury is the issuing authority. |
See how it fits your stack.
Talk to us about your territories and where TLL can plug in.