Status 400 no retorno

Estamos enviando em produção nossas NfCom mas notamos que quando volta com o status 400(e é um erro de validação do webservice), podem ser varias coisas como esse exemplo abaixo de CEP ou que o ambiente esta diferente do configurado.
Não tem como ter erros diferentes para cada situação?
Ou teremos que tratar pelo texto que retorna?
OBS: Na Nota Tecnica 2025.001 v1.10 01.10.25 define o cStat 400 para “Rejeição: Somas dos valores de IBS e CBS em compras governamentais divergente”, então precisa ser feito algum ajuste sobre isso

Ex:
{
“error”: {
“code”: “ValidationFailed”,
“message”: “Validation failed: O campo ‘infNFCom.dest.enderDest.CEP’ não corresponde ao formato esperado ^([0-9]{8})$”,
“errors”: [
{
“code”: “InvalidFormat”,
“message”: “O campo ‘infNFCom.dest.enderDest.CEP’ não corresponde ao formato esperado ^([0-9]{8})$”
}
]
}
}

Boa noite, @MarcioOliveira.

O status HTTP 400 que você está recebendo não tem relação com o cStat 400 da SEFAZ.

Esse 400 do HTTP indica apenas que a requisição enviada à Nuvem Fiscal não passou pelas validações iniciais. Isso acontece antes da nota ser transmitida ao webservice da SEFAZ. Nesses casos, normalmente há algum problema no JSON: campo obrigatório faltando, formato inválido, CEP fora do padrão e assim por diante. Como a validação falha logo na entrada, a API bloqueia o envio e retorna o erro correspondente.

Já o cStat 400 mencionado na NT 2025.001 é um código de retorno da própria SEFAZ, e só aparece quando o documento chega a ser transmitido e processado por ela. São coisas completamente distintas.

essa mensagem( o texto) vcs tem uma tabela com as possiveis? dai tratamos aqui como texto e geramos um codigo interno nosso ficando mais facil do cliente filtrar por codigo ao inves de olhar uma por uma

@arimateia, @wlandgraf não conseguem nos arrumar esses textos para transformar numa tabela interna nossa?

A nossa API responde erros com uma mensagem JSON contendo código de erro e mensagem. As mensagens são sujeitas a modificação, portanto não adequadas a parsing.

O objetivo do código de erro é justamente esse, padronizar as mensagens por tipo. No caso, o código da mensagem é ValidationFailed e esse é o que deve ser usado como padronização.

Este tópico foi fechado automaticamente 24 horas depois da última resposta. Novas respostas não são mais permitidas.