Pular para o conteúdo principal

Troubleshooting — NFS-e Inbound

Catálogo de códigos e sintomas operacionais do NFS-e Inbound, agrupados por família. Use a primeira coluna como pivô para diagnóstico rápido. Para visão sistêmica do fluxo, leia Arquitetura.

Sumário

  • Códigos HTTP aparecem na resposta de qualquer chamada à API REST (POST /v2/..., GET /v2/...).
  • cStat do SEFIN aparece no campo errorCode de uma manifestação com status: Rejected ou Failed — veja Receita — Manifestação.
  • deactivationReason aparece no campo da empresa quando isActive: false — também no payload do webhook inbound.company.deactivated.
  • status e webhookStatus aparecem em cada documento ao listar GET /v2/companies/{companyId}/inbound/nfse.
Códigos numéricos de evento têm dois contextos

Não confunda eventCode do XSD tpEvento (101101, 105102, 203202, 203206, 205204, 305101 — aparecem no webhook e em manifestações) com EventCode do CSV (310610 cancelamento, 310611 substituição — aparecem apenas no bulk export analítico). Veja Códigos de evento para a tabela canônica.

Para cada código, a coluna Ação recomendada traz o caminho concreto de remediação. Quando a ação envolve um endpoint, ele é referenciado em backticks.

Códigos HTTP da API

CódigoMensagem típicaCausaAção recomendada
401UnauthorizedAPI Key ausente, inválida ou inativaVerifique header Authorization; gere nova chave no painel com descrição "Nota Fiscal (api.nfe.io)" e status Ativa.
403ForbiddenAPI Key sem o papel exigido (Nota Fiscal/NFSeDist ou role Management)Use uma chave com papel Nota Fiscal (api.nfe.io) ou NFSeDist (dfe.nfe.io). Endpoints /maintenance/* exigem role Management.
404CompanyNotFound, Documento não encontradoRecurso não existe, pertence a outra conta, ou accessKey/id erradoConfirme o companyId e revise o accessKey (50 dígitos) ou id (24 hex chars).
404CertificateUnavailableEmpresa sem certificado registradoCadastre o certificado A1 no painel antes de ativar o Inbound.
409ConflictRecurso duplicado: companyId já cadastrado, ou manifestação Pending em flight para (accessKey, eventCode)Consulte GET /companies/{companyId}/inbound/nfse/details ou GET /manifestations antes de re-enviar.
422Unprocessable EntityRegra de negócio violada: eventCode=203206 sem reasonCode, NSU regressivo, etc.Revise o body conforme Integração REST.
502CertificateRejectedCertificado da empresa rejeitado pelo SEFIN (CN não bate, vencido)Renove o certificado e reative com POST /maintenance/reactivate.
503AdnUnavailableSEFIN Nacional indisponível (inclui header Retry-After)Aguarde o intervalo do header e retente. Captura automática retoma sozinha.

Códigos cStat do SEFIN (manifestação)

Aparecem em errorCode quando uma manifestação termina em Rejected ou Failed. errorMessage traz o xMotivo literal da resposta SEFIN.

cStatSignificadoCausaAção recomendada
135Evento registrado e vinculado à NFS-eSucesso completoNenhuma — status virou Accepted.
136Evento registrado, não vinculadoChave de acesso provavelmente incorretaConfirme o accessKey (50 dígitos) antes de re-submeter. Não re-envie sem investigar.
217NFS-e não consta na base SEFINLatência ADN entre publicação e indexação para eventosAguarde 2-10 minutos e re-submeta.
573Duplicidade de eventoJá existe evento do mesmo tipo para (accessKey, eventCode)GET /by-access-key/{accessKey}/manifestations para confirmar; provavelmente já está OK.
999Erro interno SEFINIndisponibilidade temporária da SEFIN NacionalRetentar após 5-10 minutos. Se persistir, abra chamado no suporte.

Outros cStat documentados pelo SEFIN são propagados sem tradução — consulte o Manual de Orientação ao Contribuinte NFS-e Nacional.

Razões de desativação automática (deactivationReason)

Quando uma empresa é desativada pelo circuit breaker, o webhook inbound.company.deactivated é enviado e isActive vira false. Recuperação sempre via POST /v2/companies/{companyId}/inbound/nfse/maintenance/reactivate após sanar a causa.

deactivationReasonCausaAção recomendada
CertificateNotFoundCertificado removido após ativaçãoFaça upload do A1 no painel.
CertificateExpiredCertificado A1 fora da validadeRenove no painel e reative.
CertificateRejectedSEFIN rejeitou o certificadoConfirme se o certificado bate com o CNPJ da empresa; renove se necessário.
CompanyNotAuthorizedCNPJ não autorizado no padrão nacional NFS-eVerifique o cadastro da empresa no Ambiente Nacional.
Condições operacionais (não são valores de deactivationReason)

Os mecanismos abaixo regem o comportamento do polling e podem disparar a desativação, mas não aparecem no campo deactivationReason — o campo só assume um dos 4 valores acima.

  • Circuit breaker — após 10 falhas consecutivas de autenticação no poll do ADN o circuito abre; quando a causa é certificado, a desativação é registrada com o deactivationReason correspondente (ex.: CertificateRejected). Verifique o status do SEFIN em gov.br/nfse e os logs da empresa.
  • Rate limit — quando o ADN retorna 429, o campo rateLimitedUntil é preenchido e o poll é pausado até o cooldown; a captura retoma sozinha. Isto não desativa a empresa nem grava deactivationReason.
  • Desativação manualDELETE /companies/{companyId}/inbound/nfse/details (ou PUT /details com isActive: false) desativa a empresa por ação do operador, sem gravar deactivationReason. Reative com /maintenance/reactivate ou PUT /details com isActive: true.

Status de processamento e webhook

CampoValorSignificadoAção
statusReceivedAguardando processamentoAguarde; transita para Processed em segundos.
statusProcessedXML persistido e webhook entregueNenhuma — fluxo normal.
statusFailedFalha irrecuperável (XML corrompido)POST .../{id}/reprocess para tentar de novo. Se persistir, abra suporte.
statusPdfPendingXML OK, PDF em geraçãoAguardar; consulta GET .../{id}/pdf retorna 202 enquanto pendente.
statusPdfFailedGeração de PDF falhou (XML pode ser incompatível)POST .../{id}/reprocess.
webhookStatusDeliveredCliente respondeu 2xxNenhuma.
webhookStatusRetryingEm backoff (até 50x em 24h)Verifique seu endpoint; ajuste timeout se >30s.
webhookStatusDefinitivelyFailedEsgotou todas as tentativasPOST .../{id}/resend-webhook após corrigir o endpoint.

Sintomas operacionais comuns

  • Não recebo nenhum documento depois de ativar. Verifique se há prestadores emitindo NFS-e contra o seu CNPJ no padrão nacional, e confirme que a empresa está ativa (isActive: true) com certificado válido.
  • currentNsu não avança. Verifique lastExecutedAt em GET /maintenance/statistics. Se atrasado, provavelmente há rateLimitedUntil ativo ou deactivationReason preenchido — confira isActive.
  • Webhook chega múltiplas vezes para o mesmo documento. Comportamento esperado (entrega at-least-once). Implemente idempotência por (companyId, nsu) ou document.id — veja Catálogo do webhook.
  • PDF do documento retorna 404 ao baixar. Confirme hasPdf: true no detalhe do documento. Para type=Event/Dps/Cnc, o PDF nunca existe (pdfUrl: null é esperado).
  • URL assinada (xmlUrl/pdfUrl) retornou 400 "Link expired." O link HMAC expira em 30 minutos. Refaça o GET /{id}/xml ou /pdf para obter nova URL. Não cacheie links assinados.
  • Job de bulk export "Em processamento" há mais de 1 hora. Pode estar travado. Confirme via GET .../exports({jobId}) se progredindo; se não, contate o suporte com o jobId. Veja Receita — Bulk Export.

Veja também

NFE.io

A NFE.io é uma empresa de tecnologia que fornece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas. Com suas ferramentas, as empresas podem economizar tempo e reduzir erros, aumentando a eficiência e precisão do processo de emissão de notas fiscais.

Um dos principais cases de sucesso da NFE.io é a implementação da solução na empresa de transporte Rodonaves. Com a automatização da emissão e gestão de notas fiscais eletrônicas, a Rodonaves conseguiu reduzir em até 80% o tempo gasto nesse processo, o que se traduziu em uma significativa melhoria na eficiência operacional. Além disso, a empresa também conseguiu eliminar erros e atrasos na emissão de notas fiscais, o que melhorou a relação com seus clientes e aumentou a confiança dos órgãos fiscais.

Outro exemplo é a implementação da NFE.io na empresa de comércio eletrônico, a Loja Integrada. Com a automatização da emissão de notas fiscais, a Loja Integrada conseguiu aumentar a velocidade de emissão de notas em até 10 vezes, o que permitiu que a empresa atendesse a uma maior quantidade de clientes e, consequentemente, aumentar as suas vendas.

Além desses exemplos, a NFE.io também tem outros cases de sucesso com empresas de setores como indústria, construção, varejo e serviços, mostrando a versatilidade e eficácia da sua solução.

Em resumo, a NFE.io é uma empresa de tecnologia que oferece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas, ajudando as empresas a economizar tempo e reduzir erros, melhorando a eficiência e precisão do processo. Com cases de sucesso em diferentes setores, a NFE.io tem se destacado como uma empresa líder em automação fiscal.