Quem usa a distribuição de DF-e da SEFAZ esbarra em três siglas: NSU, ultNSU e maxNSU. Entender as três explica quase todo caso de "a nota existe na SEFAZ, mas não chegou aqui".
O que é o NSU
NSU é o Número Sequencial Único que o Ambiente Nacional atribui a cada documento ou evento distribuído para um CNPJ. É uma fila por interessado: a empresa A tem a fila dela, a empresa B tem outra. O número cresce conforme chegam notas, cancelamentos, cartas de correção e manifestações de interesse daquele CNPJ.
ultNSU e maxNSU
A consulta ao NFeDistribuicaoDFe funciona como ler uma fila:
- Você informa o último NSU que já processou (zero na primeira vez).
- A SEFAZ devolve um lote (até 50 itens) e dois números:
ultNSU, o último NSU daquele lote, emaxNSU, o maior NSU que existe hoje para o CNPJ. - Enquanto
ultNSUfor menor quemaxNSU, há mais para buscar: a próxima consulta parte doultNSUrecebido. - Quando os dois ficam iguais, a fila está em dia. Consultar de novo sem haver nada novo, repetidamente, gera o cStat 656, consumo indevido, e a SEFAZ bloqueia aquele CNPJ por uma hora.
O código de resposta normal é 138 (documento localizado) ou 137 (nenhum documento localizado). Os documentos vêm compactados (gzip em base64) dentro de docZip, cada um com o próprio NSU e o tipo de schema: resNFe (resumo), procNFe (nota completa), procEventoNFe (evento), e os equivalentes de CT-e.
Por que o XML "não chegou"
1. Chegou só o resumo
Para NF-e em que a empresa é destinatária, a SEFAZ distribui primeiro o resNFe. O XML completo só entra na fila depois que a empresa registra a ciência da operação (ou confirma, ou desconhece). Quem olha a fila vê a chave e o valor, mas não tem o arquivo. Ver manifestação do destinatário.
2. Passou dos 90 dias
A SEFAZ mantém os NSU disponíveis por cerca de três meses. Se a consulta de um CNPJ ficou parada (certificado vencido, ferramenta desligada, cliente novo com histórico), o que passou desse prazo não volta pela fila. A única saída é o download pela chave de acesso, nota por nota, e só para as que ainda admitem manifestação.
3. A fila foi lida com o NSU errado
Guardar o ultNSU de um CNPJ e usá-lo em outro, ou zerar o contador sem querer, faz a ferramenta pular ou repetir trechos. Repetir é só desperdício; pular é nota faltando. O controle de NSU precisa ser por CNPJ e persistente.
4. O interessado não é quem você pensa
A distribuição entrega para destinatário, transportador e terceiros autorizados no XML (autXML). A nota emitida pela empresa não entra na fila dela. Nota de saída vem do emissor ou de outro canal, como o SAE NFC-e em São Paulo.
Como auditar uma carteira inteira
- Por CNPJ: data da última consulta bem-sucedida,
ultNSUguardado emaxNSUda última resposta. Diferença grande entre os dois é fila atrasada. - Resumos sem nota completa com mais de alguns dias: ciência pendente.
- Certificado vencendo nos próximos 30 dias: a fila vai parar.
- Antes de fechar o mês, comparar o que chegou com o SPED do cliente: o que está no SPED e não na fila é o buraco a buscar pela chave.
No Fiskei
Isso é feito pela ferramenta, para todos os CNPJs da carteira, sem pedir nada ao cliente.
Captura de XML na SEFAZ