Every error has the same shape:
{ "error": { "code": "not_found", "message": "Not found.", "requestId": "4f1c..." } }
Include the requestId when you contact support.
| Status | Common codes | Meaning |
|---|---|---|
| 400 | validation_failed, bad_request |
The request does not match the schema |
| 401 | unauthorized, invalid_token, session_expired |
Missing, invalid, expired or revoked credentials |
| 403 | forbidden, feature_disabled, act_as_read_only |
You can see the resource but may not do this |
| 404 | not_found |
It does not exist, or it is outside your scope |
| 409 | conflict, slug_taken |
The record changed or already exists |
| 429 | rate_limited |
Too many attempts; wait and retry |
| 502 | engine_unavailable |
The payroll engine is unavailable or rejected the request |