Errors follow RFC 9457 (application/problem+json). The code field is stable (use it in your code); detail is a human message (in Portuguese).
{
"type": "https://developers.converzap.com/pt/erros#forbidden_scope",
"title": "Escopo insuficiente",
"status": 403,
"detail": "Esta chave não tem o escopo messages:send.",
"code": "forbidden_scope",
"request_id": "req_8f1c2a9b0d4e4c51a7b3"
}
Validation errors include errors: [{campo, mensagem}] (field, message). Every response carries an X-Request-Id header: share it with support.
| HTTP | code |
|---|---|
| 400 | invalid_request |
| 401 | unauthorized |
| 401 | key_expired |
| 401 | key_revoked |
| 403 | ip_not_allowed |
| 403 | forbidden_scope |
| 403 | forbidden_role |
| 403 | read_only |
| 403 | trial_read_only |
| 403 | plan_upgrade_required |
| 403 | module_not_in_plan |
| 402 | payment_required |
| 402 | limit_reached |
| 404 | not_found |
| 409 | conflict |
| 409 | idempotency_conflict |
| 429 | rate_limited |
| 502 | meta_error |
| 500 | internal_error |