The developer door
Decide a shipment in one call.
Send an order, get back a verdict and a worked tax — with every rate version pinned and every rule cited. Authenticate with a pr_ key; keys are issued by name.
POST/v1/checksDecide a shipment — license, eligibility, tax
GET/v1/checks/{id}Replay a past decision with its pinned versions
GET/v1/ratesLook up a cited rate version by jurisdiction + date
# a decision, masked { "decision": "allow", "customer_ref": "cus_••••••", "gates": { "license": "allow", "eligibility": "allow", "tax": "allow" }, "tax": { "total": 94.55, "charged_rate": 0.07625 }, "pinned_versions": { "rules": ["rv_8c1f… · ca.sales.taxable_measure v1"], "rates": ["rv_3a90… · ca.sales.district.campbell v1 · eff 2026-04-01"] }, "cited": true, "replayable": true }
Every figure carries the version it came from. Re-request the same decision id and you get the same answer, citing the same versions. Reference docs are issued with your key.
Sandbox — test keys
Build against real published rules with a pr_test_ key. Test keys are issued by name, like live keys.
real published rulesthe same registry production decides on
segregated ledgeryour test decisions, isolated from live
resettable countersrun the same buyer through the annual cap again