Erros
Envelope
Seção intitulada “Envelope”Toda resposta de erro segue:
{ "data": null, "meta": null, "errors": [ { "code": "FORBIDDEN", "message": "Sem permissão para update em orders", "details": null } ]}details pode carregar campos de validação:
{ "code": "VALIDATION_ERROR", "message": "Payload inválido", "details": { "email": ["obrigatório"], "limit": ["deve ser <= 250"] }}Códigos
Seção intitulada “Códigos”Inventário completo: códigos de erro.
Validação de write
Seção intitulada “Validação de write”Campos fora do schema da collection:
{ "code": "VALIDATION_ERROR", "message": "Campos desconhecidos no payload", "details": { "unknown_fields": ["legacy_field", "delivery_problem"] }}Violação de foreign key (ex.: professional_id apontando para UUID inexistente):
{ "code": "VALIDATION_ERROR", "message": "Referência inválida: valor não existe na tabela relacionada", "details": { "constraint": "fk_services_professional_id", "table": "services", "detail": "..." }}Boas práticas
Seção intitulada “Boas práticas”- Não vazar stack traces em produção
- Logar
request_id/ correlation id - Mensagens em português para o produto BR (ou i18n depois)
- Mesmo envelope em sucesso e erro (
errors: nullno sucesso)
