FiscalDev Tools
Voltar para o blog

Guia Completo: Como Transmitir NF-e para a SEFAZ

sefaz

Resumo

Categoria
SEFAZ

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):

  1. Agrupe as NF-e autorizadas
  2. Valide cada XML individualmente
  3. Gere o XML do lote (envLote)
  4. 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

  1. Conecte ao webservice NfeAutorizacao
  2. Envie o XML do lote
  3. 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:

  1. Aguarde o processamento (tempo variável)
  2. Consulte via NfeRetAutorizacao
  3. 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

  1. Verifique o status do serviço
  2. Aguarde tempo adequado
  3. Tente novamente
  4. 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

  1. Valide antes de enviar: Sempre valide o XML contra o schema
  2. Use homologação: Teste em ambiente de homologação primeiro
  3. Monitore erros: Acompanhe códigos de retorno
  4. Implemente retry: Trate erros de indisponibilidade
  5. Armazene protocolos: Guarde para consultas futuras
  6. Mantenha logs: Para auditoria e debugging

Automação

Integração com Sistemas ERP

  1. Extraia dados do ERP
  2. Gere XML da NF-e
  3. Assine com certificado
  4. Envie para SEFAZ
  5. Processe resposta
  6. 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.

FiscalDev Tools

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

Artigos Relacionados

Nós usamos cookies e outras tecnologias semelhantes para melhorar a sua experiência em nossos serviços, personalizar publicidade e recomendar conteúdo de seu interesse. Para mais detalhes, consulte nossa Política de Privacidade.