Resumo
Introdução
Transmitir NF-e para a SEFAZ é o processo final da emissão de uma nota fiscal eletrônica. Após autorizada, a NF-e tem validade jurídica e pode ser utilizada em operações comerciais e fiscais.
Neste guia, vamos detalhar cada etapa do processo de transmissão, desde os pré-requisitos até o tratamento de erros.
Pré-requisitos
1. Certificado Digital Válido
- Tipo: e-CNPJ ou e-CPF ICP-Brasil
- Validade: Não pode estar vencido
- Extensões: Deve ter extensão de assinatura digital
- Cadastro: Cadastrado na SEFAZ (se aplicável)
2. Inscrição Estadual Ativa
- Status: IE ativa na SEFAZ do estado
- Cadastro: Atualizado nos sistemas da SEFAZ
- Regime: CRT compatível com a operação
3. Ambiente Configurado
- Homologação: Para testes
- Produção: Para emissão oficial
- Webservices: URLs corretas para cada ambiente
4. XML Autorizado
- Schema: Conforme XSD oficial
- Assinatura: Válida com certificado ICP-Brasil
- Regras: Conforme legislação estadual
Processo de Transmissão
Passo 1: Preparar o Lote
Para envio em lote (múltiplas NF-e):
- Agrupe as NF-e autorizadas
- Valide cada XML individualmente
- Gere o XML do lote (envLote)
- Assine o lote com o certificado
<envNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00"> <idLote>1</idLote> <indSinc>0</indSinc> <NFe>...</NFe> <NFe>...</NFe> </envNFe>
Passo 2: Enviar para SEFAZ
- Conecte ao webservice NfeAutorizacao
- Envie o XML do lote
- Aguarde a resposta síncrona ou assíncrona
Requisição:
<soap:Body> <nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeAutorizacao"> <!-- XML do lote --> </nfeDadosMsg> </soap:Body>
Passo 3: Processar Resposta
Resposta Síncrona (indSinc=1):
- Retorna imediatamente o resultado
- Processamento rápido para poucas NF-e
Resposta Assíncrona (indSinc=0):
- Retorna número do recibo
- Consulta posterior via NfeRetAutorizacao
Passo 4: Consultar Resultado
Para resposta assíncrona:
- Aguarde o processamento (tempo variável)
- Consulte via NfeRetAutorizacao
- Processe o resultado
<consReciNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00"> <tpAmb>1</tpAmb> <xServ>CONSULTAR</xServ> <nRec>351000000000001</nRec> </consReciNFe>
Códigos de Retorno
Sucesso
- 100: Autorizado o uso da NF-e
- 101: Cancelamento homologado
- 102: Inutilização homologada
Erros Comuns
- 225: Falha no schema
- 239: CNPJ do destinatário inválido
- 244: Assinatura digital inválida
- 252: ALiq do ICMS difere da legislação
Erros de Negócio
- 574: Código de benefício fiscal inválido
- 575: Dados do ICMS incorretos
- 576: CFOP inválido para a operação
Tratamento de Erros
Estratégia de Retry
async function enviarLote(xmlLote) { const maxRetries = 3; let tentativa = 0; while (tentativa < maxRetries) { try { const resposta = await enviarParaSefaz(xmlLote); if (resposta.cStat === 103) { return await consultarResultado(resposta.nRec); } } catch (error) { tentativa++; if (tentativa === maxRetries) { throw error; } await sleep(1000 * tentativa); // Backoff exponencial } } }
Retry em Caso de Indisponibilidade
- Verifique o status do serviço
- Aguarde tempo adequado
- Tente novamente
- Registre o erro para análise
Monitoramento e Logs
O que Registrar
- Data/hora de cada envio
- Chave de acesso da NF-e
- Protocolo de autorização
- Código de retorno
- Mensagem de retorno
Exemplo de Log
{ "data": "2024-02-25T10:30:00", "chaveAcesso": "352404123456780001955500100000012312345678901234", "protocolo": "135240000000001", "cStat": 100, "xMotivo": "Autorizado o uso da NF-e" }
Boas Práticas
- Valide antes de enviar: Sempre valide o XML contra o schema
- Use homologação: Teste em ambiente de homologação primeiro
- Monitore erros: Acompanhe códigos de retorno
- Implemente retry: Trate erros de indisponibilidade
- Armazene protocolos: Guarde para consultas futuras
- Mantenha logs: Para auditoria e debugging
Automação
Integração com Sistemas ERP
- Extraia dados do ERP
- Gere XML da NF-e
- Assine com certificado
- Envie para SEFAZ
- Processe resposta
- Atualize ERP com protocolo
APIs Recomendadas
- NFe API: API REST completa
- Focus NFe: Serviço de gestão
- Tiny ERP: Integração com Tiny
- Bling: Integração com Bling
Conclusão
Transmitir NF-e para a SEFAZ é um processo que requer atenção aos detalhes. Comprérequisitos adequados, processo bem estruturado e tratamento de erros, você pode garantir a autorização de suas notas fiscais.
Use nossas ferramentas para validar, assinar e gerenciar XMLs antes da transmissão, minimizando erros e retrabalho.
Pronto para colocar em prática?
Use nossas ferramentas gratuitas para validar XMLs, gerenciar certificados e muito mais. Tudo processado localmente no seu navegador.
Explorar ferramentas