Tratamento de Erros¶
Todos os erros das APIs Rock Conecta seguem o padrão RFC 9457 (Problem Details), com
Content-Type: application/problem+json (ou application/json em alguns casos de tenant).
Estrutura comum¶
| Campo | Tipo | Descrição |
|---|---|---|
type |
string | Slug identificador do tipo de erro |
title |
string | Título legível |
status |
integer | HTTP status code |
detail |
string | Descrição detalhada |
instance |
string | URI do endpoint que gerou o erro |
timestamp |
string (ISO 8601) | Data/hora do erro |
correlationId |
string | Do header X-Correlation-Id ou gerado |
sessionId |
string | SessionId do request (null se indisponível) |
traceId |
string | ID de rastreamento |
errors |
array | Lista de erros de validação (apenas em 400) |
errors[].type |
string | REQUIRED_FIELD, INVALID_FORMAT ou INVALID_DOCUMENT |
errors[].field |
string | Campo com erro |
errors[].message |
string | Mensagem descritiva |
Exemplos¶
{
"type": "validation-error",
"title": "Validation Error",
"status": 400,
"detail": "Request contains invalid fields",
"instance": "/api/v1/tenants/{tenantId}/customers/identify",
"timestamp": "2026-06-10T19:00:00.000Z",
"correlationId": "550e8400-e29b-41d4-a716-446655440000",
"sessionId": null,
"traceId": "abc123",
"errors": [
{ "type": "REQUIRED_FIELD", "field": "sessionId", "message": "Field sessionId is required." }
]
}
{
"type": "tenant-not-found",
"title": "Tenant Not Found",
"status": 404,
"detail": "Tenant not found",
"instance": "/api/v1/tenants/{tenantId}/discounts/authorizations",
"timestamp": "2026-06-10T19:00:00.000Z",
"correlationId": "550e8400-e29b-41d4-a716-446655440000",
"sessionId": null,
"traceId": "abc123"
}
Tenant inexistente x inativo
Por segurança, tenant inexistente e tenant inativo retornam a mesma
resposta 404 — não é possível descobrir se um tenant existe pela resposta de erro.
Status codes por operação¶
| HTTP | Ocorre em | Significado |
|---|---|---|
400 |
Todas | Erro de validação (campos, formato, documento inválido) |
401 |
Todas | Credenciais inválidas ou ausentes |
404 |
Todas | Tenant não encontrado/inativo; ou loja não encontrada (registrar venda) |
422 |
Registrar venda | Divergência entre total dos itens e valor da venda |
500 |
Identificar cliente | Erro interno inesperado |
503 |
Autorizar descontos / Registrar venda | Banco do tenant indisponível ou recurso desativado |
Recomendações de tratamento¶
Retry com backoff
- Faça retry com backoff exponencial apenas para erros
5xxe503. - Não faça retry automático de
400,401e404— são erros de request que não se resolvem sozinhos.
- Sempre envie o header
X-Correlation-Id(UUID) para correlacionar a chamada com os logs da Rock Conecta em caso de suporte. - Registre
correlationIdetraceIddo response de erro para facilitar a investigação.
Referências¶
- Identificar Cliente — Operação 1
- Autorizar Descontos — Operação 2
- Registrar Venda — Operação 3