Skip to content

Canada API usage

  • Province route: GET /v1/tax/{prov} with prov ∈ ab, bc, mb, nb, nl, ns, nt, nu, on, pe, qc, sk, yt.
  • zip= accepts a Canadian postal code — A1A 1A1, A1A-1A1, or A1A1A1. The postal FSA deterministically identifies the province; if it contradicts the route province, the postal code wins and the response discloses the override.
  • address= free text: a postal code anywhere in the string is the strongest signal; otherwise a province name or two-letter code is used.
  • lat/lng is not available for Canada in v1.1 — use a postal code.

Same envelope as US states plus:

  • top-level country: "CA" (US responses carry country: "US");
  • rate_detail with federal_gst, provincial, provincial_label (HST/PST/RST/QST);
  • the uniform components object gains a qst bucket — populated for Québec, null everywhere else including all US states.
{
"state": "qc", "country": "CA",
"rows": [{
"combined_total_rate": 0.14975,
"rate_detail": {"federal_gst": 0.05, "provincial": 0.09975,
"provincial_label": "QST"},
"components": {"state": 0.05, "qst": 0.09975,
"combined": 0.14975, "components_complete": true}
}]
}