Error Codes & Limits
All errors return a JSON body: { "error": "..." }. A shared per-key rate limit applies; you receive 429 when exceeded. An IP allowlist can be set at key creation — requests from other IPs receive 403.
| Code | Meaning |
|---|---|
| 401 | Missing / invalid / revoked key |
| 402 | No active API package (write endpoints) |
| 403 | Outside IP allowlist or missing scope |
| 409 | Conflict (already cancelled / cancelling PAID) |
| 422 | VAT_NOT_REGISTERED — taxRate>0 on a non-VAT-registered company |
| 429 | Rate limit exceeded — back off and retry |