API DOCUMENTATION

Quickstart

From a workspace to a signed calculation in five calls.

  • Create a developer workspace at app.taxpio.com/app/developers, add an application, and mint a sandbox key (tp_test_…). The key is shown once.
  • Prove the host and the key.
  • Run a calculation.
  • Watch it in the request trace.
  • Request production review when the integration is ready; live keys (tp_live_…) follow approval.
Who am I
curl https://api.taxpio.com/v1/me \
  -H "Authorization: Bearer tp_test_…"
Answer
{
  "object": "principal",
  "workspace": { "id": "…", "name": "Acme Books", "production_review": "NONE" },
  "application": { "id": "…", "name": "Backend" },
  "environment": "sandbox",
  "scopes": ["calculations:read", "calculations:write"],
  "rate_limit_per_minute": 120
}
A calculation
curl https://api.taxpio.com/v1/tax/calculations \
  -H "Authorization: Bearer tp_test_…" \
  -H "Idempotency-Key: calc_2026_0001" \
  -H "Content-Type: application/json" \
  -d '{"jurisdiction":"CA","program":"T1","tax_year":2026,"inputs":{"facts":{"province":"ON","maritalStatus":"SINGLE","dateOfBirth":"1990-05-01"},"slips":[{"kind":"T4","employmentIncome":"85000.00","cppContributions":"4230.45","cpp2Contributions":"416.00","eiPremiums":"1123.07","rppContributions":"0.00","incomeTaxDeducted":"14000.00","unionDues":"600.00","charitableDonations":"0.00","pensionAdjustment":"0.00"}],"claims":{}}}'

Every response carries an x-request-id header; every error body carries the same id, a code to branch on and a docs_url. Quote the id to support.

The base URL is https://api.taxpio.com. The product hosts never serve the API and the API host serves nothing else. The contract is at https://api.taxpio.com/openapi.json (version 2026-09-06).