Envelope único de erro, devolvido em qualquer endpoint e qualquer status de falha.Trate error.code desconhecido pelo grupo do status HTTP: um código novo em um 409 deve cair no seu tratamento genérico de conflito, não quebrar o parser. Só error.code e o status são estáveis por contrato — error.message é humana e pode mudar.
{
"error": {
"code": "OFFER_EXPIRED",
"message": "A oferta selecionada expirou. Refaça a cotação.",
"correlation_id": "req_7f3a9c21b8e04d5f",
"api_external_id": "PEDIDO-2026-0001"
}
}