Quickstart
TLL answers decision questions about territorial rules. This page gets you from zero to one working POST /v1/checkout/resolve call.
1. Get an API key
Sign up with your email at app.territoriallogicallayer.com/app/signup. A test-mode key prefixed tll_test_ is generated on first login. Keys are visible exactly once, copy it immediately.
2. Set an environment variable
export TLL_KEY=tll_test_a1b2...xy9z
3. Resolve your first checkout
curl https://api.territoriallogicallayer.com/v1/checkout/resolve \
-H "Authorization: Bearer $TLL_KEY" \
-H "Content-Type: application/json" \
-d '{
"address": { "country": "FI", "postcode": "22100", "city": "Mariehamn" },
"basket": [{ "sku": "hoodie-01", "price": 4900, "currency": "EUR" }]
}'
Expected response:
{
"mode": "test",
"disclaimer": "Test-mode response. VAT rates are illustrative.",
"territory": { "iso_3166_1": "AX", "iso_3166_2": "FI-01", "status": "hybrid" },
"vat": { "rate": 0, "regime": "outside_eu_vat_area", "customs_doc": "required" },
"logistics": { "route": "intl", "carrier_hint": "posti_intl" },
"sources": ["iso_3166_1", "eu_vat_directive_2006_112", "upu_routing_matrix"]
}
4. What to read next
- API reference for the full schema of every endpoint.
- Handling hybrid territories for integration patterns.
- Rate limits and errors & retries before you ship.
Test mode vs live
Developer-tier keys are test-mode only. Responses are identical in shape to live mode so integration code needs no changes, but values carry [TEST MODE] markers and rates are rounded to obvious mock values. For live data, contact sales.