Número do protocolo da NF-e: onde encontrar nProt
<nProt>nfeProc › protNFe › infProt › nProtRevisão editorial em 26 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
nProt é o número do protocolo atribuído pelo autorizador. Para encontrá-lo no XML processado, procure nfeProc/protNFe/infProt/nProt. Ele precisa corresponder à nota, ao ambiente e ao resultado recebido da SEFAZ; não é um número que o emissor possa criar ou corrigir manualmente.
Nesta página:
- O que conferir junto ao protocolo
- Protocolo, chave e recibo são diferentes
- O número pode ter 15 ou 17 posições
- Exemplo para localizar o campo
- Se o XML recebido não tem nProt
- Como interpretar o resultado que acompanha nProt
- Como o comprimento é formado
O que conferir junto ao protocolo
No mesmo grupo infProt, confira:
chNFe: a chave de acesso da nota à qual o retorno se refere.tpAmb:1indica produção e2, homologação. Um protocolo de teste não comprova autorização em produção.cStatexMotivo: o resultado e sua descrição.dhRecbto: a data e hora do processamento.
A presença de nProt isoladamente não demonstra que a nota está autorizada e continua válida. O protocolo registra um resultado, enquanto eventos posteriores, como cancelamento, podem alterar a situação. Essa associação consta do MOC 7.0, Visão Geral, seções 4.3.5, 5.2.2 e 5.4.
Se o retorno do lote informa 104 — Lote processado, abra o resultado individual da nota: esse status do lote não significa, por si só, que cada documento foi autorizado.
Protocolo, chave e recibo são diferentes
A chave chNFe identifica a nota. O recibo nRec, quando existe no fluxo assíncrono, permite obter o resultado do lote. Já nProt identifica o protocolo retornado para o documento. Não copie o recibo para o campo de protocolo.
A mesma tag nProt também aparece em retornos de eventos e de outros serviços. Para esta página, o contexto é protNFe/infProt; confira o elemento pai antes de comparar números.
O número pode ter 15 ou 17 posições
A NT 2025.002-RTC v1.51, seções 5.1 a 5.3, páginas 11 a 13 prevê protocolos numéricos de 15 ou 17 posições, conforme o modelo de documento e a UF. Isso não significa que todo autorizador passe a devolver 17 posições ao mesmo tempo.
Preserve o valor recebido como texto. Não corte posições, não acrescente zeros para forçar outro tamanho e verifique se a integração aceita o retorno previsto pelo autorizador.
Exemplo para localizar o campo
Fragmento sintético e parcial, com número ilustrativo; não comprova uma nota real nem constitui um retorno completo válido:
<protNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
<infProt>
<tpAmb>2</tpAmb>
<nProt>152260000000001</nProt>
</infProt>
</protNFe>
O exemplo usa homologação (tpAmb=2) e omite a chave e o resultado. Esses dados seriam indispensáveis para interpretar um retorno real. O namespace é http://www.portalfiscal.inf.br/nfe.
Se o XML recebido não tem nProt
Confira se você abriu apenas o XML de envio (NFe) ou o arquivo processado (nfeProc). Solicite ao emitente o XML processado completo ou recupere o retorno pelo fluxo de consulta do emissor, com a chave e o ambiente corretos. A ausência pode estar ligada ao arquivo entregue ou ao resultado do processamento; não permite concluir sozinha que a nota foi rejeitada.
O grupo infProt ajuda a localizar os campos que acompanham o protocolo. Se a intenção é confirmar a situação atual, consulte o documento e seus eventos pela origem oficial, em vez de deduzi-la de um número isolado.
Como interpretar o resultado que acompanha nProt
Leia o cStat de infProt da nota, e não apenas o status externo do lote. 100 corresponde a autorização de uso; 150, a autorização fora de prazo. Ambos representam autorização naquele retorno, se a chave e o ambiente correspondem ao documento. A distinção de prazo não deve ser apagada ao importar a nota. Já 104 no retorno do lote somente informa que o processamento terminou: os resultados individuais ainda precisam ser lidos. MOC, seção 5.2; NT 2025.001 v1.01, seção 02.4.
Por exemplo, um arquivo com tpAmb=2, cStat=100 e protocolo da chave esperada registra autorização de teste, sem comprovar autorização em produção. Um XML antigo com autorização em produção também não demonstra, sozinho, que a nota permaneceu ativa: é necessário conferir a situação atual e os eventos, inclusive eventual cancelamento. A consulta deve usar a chave, o ambiente e a origem correspondentes.
No retorno, digVal é o valor de resumo da NF-e processada, utilizado na conferência da integridade do documento original. É outra informação: não substitui nProt nem pode ser obtido copiando o número do protocolo. A ligação entre chave, documento e resultado deve ser preservada ao montar ou armazenar nfeProc. NT 2026.002 v1.10a, PR07–PR12, pp. 5–6.
Como o comprimento é formado
A NT 2025.002-RTC descreve uma posição para o tipo do autorizador, duas para UF, duas para ano e dez para o sequencial do modelo de documento: 1 + 2 + 2 + 10 = 15. Nas UFs que adotarem a ampliação por aproximação do esgotamento, o sequencial terá 12 posições: 1 + 2 + 2 + 12 = 17. A versão 1.51 registra, em sua própria nota contextual, a adoção de 17 para NFC-e por São Paulo. Isso é contexto da versão, não uma lista permanentemente atual de todos os autorizadores. NT 2025.002-RTC v1.51, seção 5.1, p.11.
Uma integração que recebe 17 posições e mantém coluna ou validação restrita a 15 pode recusar ou truncar um retorno legítimo. Preserve exatamente a string recebida e adapte o armazenamento e o parser ao leiaute; não mude o protocolo oficial. Se o valor parece conter uma quantidade inesperada de caracteres, confira a resposta bruta e a transformação realizada pelo emissor antes de atribuir o problema à SEFAZ.
Referência técnica para integração
- XPath completo
/nfeProc/protNFe/infProt/nProt- Namespace
http://www.portalfiscal.inf.br/nfe- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 0–1 no contexto do elemento pai
- Tipo
- TProt · string
- Preenchimento no catálogo
- Opcional
A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.
- maxLength
17- pattern
[0-9]{15}|[0-9]{17}- whiteSpace
preserve