Tratamento de Erros e Retransmissão
Distinção entre falhas HTTP e rejeições SEFAZ cStat; quando corrigir e quando inutilizar.
Para construir uma integração robusta e livre de travamentos no PDV ou faturamento, é indispensável separar com clareza as falhas de requisição HTTP das rejeições fiscais da SEFAZ. Cada tipo de erro exige um tratamento diferente no seu sistema.
1. Erros HTTP (Camada de Transporte e Schema)
Ocorrem de forma síncrona na hora em que seu cliente faz o disparo para a API do NFER:
| Código HTTP | Origem | Ação Recomendada |
|---|---|---|
400 Bad Request | Payload JSON inválido, tipos incompatíveis ou campos obrigatórios ausentes. | Inspecione o array de validação retornado e corrija os tipos no seu JSON antes de tentar novamente. |
401 Unauthorized | Cabeçalho X-API-Key ausente, expirado ou revogado. | Verifique se a chave de API da empresa está configurada corretamente no seu arquivo .env. |
403 Forbidden | Empresa suspensa, sem certificado A1 configurado ou restrição de tenant. | Valide o status da empresa emissora e certifique-se de que o certificado digital está carregado. |
429 Too Many Requests | Limite de requisições por minuto excedido. | Aguarde os segundos indicados no cabeçalho Retry-After e implemente backoff exponencial. |
500 / 502 / 503 | Instabilidade momentânea de infraestrutura. | Repita a requisição após alguns segundos utilizando o mesmo identificador previamente salvo. |
2. Rejeições Fiscais da SEFAZ (cStat)
Ocorrem durante o processamento assíncrono. Seu payload é sintaticamente válido, mas a Secretaria da Fazenda rejeita as regras de tributação ou cadastro da nota:
- A nota muda para o status
errono banco de dados. - O NFER preenche os campos
erroCstat(código numérico) eerroMotivo(motivo textual do fisco). - O webhook com evento
nfe.erroé enviado ao seu servidor com os detalhes.
Fluxo de Decisão: Corrigir vs Inutilizar
Quando Corrigir e Reenviar (PUT + Send)
A imensa maioria das rejeições é de dados corrigíveis (ex.: CPF inválido, NCM descontinuado na tabela TIPI, CST incompatível com Simples Nacional).
- Edite os campos rejeitados via
PUT /v1/nfe/:id. - Reenvie a mesma nota via
POST /v1/nfe/:id/send. - A numeração fiscal original é preservada sem gerar furos na série.
Quando Inutilizar a Numeração
Se uma numeração foi pulada por erro de sistema, ou se o pedido foi cancelado e a nota rejeitada não puder mais ser reaproveitada:
- Exclua o rascunho com falha via
DELETE /v1/nfe/:id. - Chame
POST /v1/nfe/inutilizationinformando série, número e justificativa mínima de 15 caracteres. - A SEFAZ formaliza que aquele número foi descartado perante a contabilidade.
Consulte o Catálogo Completo de cStat