Errors
All error bodies follow RFC 7807 (application/problem+json).
{
"type": "https://adevapro.com.au/errors/invalid_principal",
"title": "invalid_principal",
"status": 400,
"detail": "originalPrincipal must be greater than zero."
}
HTTP status codes
| Status | Meaning |
|---|---|
| 200/201/204 | Success. |
| 400 | Validation problem with request body / params. |
| 401 | Missing or invalid API key (incl. wrong-mode keys). |
| 403 | Authenticated but missing scope, or read-only attempting a write. |
| 404 | Not found or belongs to another org (we don't leak existence). |
| 409 | Idempotency conflict. |
| 429 | Rate limit. Read Retry-After. |
| 5xx | Our problem. Retry with exponential backoff. |
Common error codes
unauthenticated·forbidden·read_only_keyinvalid_request·invalid_principal·invalid_color·invalid_urlmissing_debtor·missing_debtor_name·missing_debtor_contact·missing_external_account_iddebtor_not_found·not_foundidempotency_conflict·idempotency_in_progress·idempotency_key_too_longno_webhook_configured
Request IDs
Every response carries X-Request-Id. Quote it in any support ticket.