Manuais:UniNFe/Envio DFe

De unimake
Revisão de 14h50min de 5 de abril de 2022 por Wandrey (discussão | contribs) (Enviando DFe em Lote (Somente NFe e CTe))
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Envio do XML do DFe no processo assíncrono

Enviando o arquivo no formato XML

Para enviar o XML da NF-e, NFC-e, CT-e e MDF-e, basta gerar o arquivo na pasta de envio com o nome e formato a seguir:

CHAVEDFE-dfe.xml

CHAVEDFE Chave do documento fiscal eletrônico
-dfe.xml Este conteúdo varia de acordo com o documento que está sendo enviado, conforme abaixo:
  • Para NF-e, utilize o conteúdo fixo "-nfe.xml".
  • Para NFC-e, utilize o conteúdo fixo "-nfe.xml".
  • Para CT-e, utilize o conteúdo fixo "-cte.xml".
  • Para MDF-e, utilize o conteúdo fixo "-mdfe.xml".

IMPORTANTE: Repare que, para NF-e e NFC-e, o conteúdo fixo é o mesmo ("-nfe.xml").

Exemplos:

  • NF-e ou NFC-e: 13140312345678901234650030000004591064552496-nfe.xml
  • CT-e: 13140312345678901234650030000004591064552496-cte.xml
  • MDF-e: 13140312345678901234650030000004591064552496-mdfe.xml

Tratando os arquivos gravados na pasta de retorno

Número do lote

Logo após o ERP ter gravado o XML do DF-e na pasta de envio, o UniNFe vai gerar um arquivo na pasta de retorno com o número do lote gerado.

Se o UniNFe conseguir assinar e validar o XML, o nome do arquivo de retorno será o mesmo do envio, mudando somente a extensão (final), conforme abaixo:

13140312345678901234650030000004591064552496-num-lot.xml

Caso contrário, o nome do arquivo retornado será:

13140312345678901234650030000004591064552496-nfe.err

No conteúdo do arquivo de retorno (-num-lot.xml) existe uma tag com o número do lote gerado pelo UniNFe, que deve ser gravado na base de dados do sistema ERP para que este consiga localizar o arquivo de retorno com o número do recibo retornado pelo WebService.

Número do recibo

Gravando o número do lote, o sistema ERP deve continuar aguardando o segundo arquivo de retorno, que é a resposta do Webservice com relação ao envio do DF-e. O arquivo retornado será gravado no padrão abaixo:

NUMEROLOTE-rec.xml

NUMEROLOTE Número do lote sequencial gerado pelo UniNFe com 15 dígitos. Este número não se repete (Chave Única).
-rec.xml Conteúdo fixo. Sempre será "-rec.xml"

Exemplo:

000000000000016-rec.xml (se tudo ocorreu bem)

ou

000000000000016-rec.err (se houve algum erro)

No conteúdo do arquivo -rec.xml encontra-se o número de um recibo que deve ser gravado na base do ERP para ser utilizado na hora de pegar o retorno da autorização, ou não, dos DF-e´s enviados.

Pode ocorrer de não retornar o número do recibo, pois em uma primeira análise efetuada pela SEFAZ, a mesma pode rejeitar o lote por ter encontrado irregularidades, neste caso, é de fundamental importância o ERP analisar o conteúdo da tag de status (cStat) do lote para saber se o mesmo foi enviado com sucesso ou rejeitado. Se rejeitado, o ERP deve efetuar as correções e enviá-lo novamente, reiniciando o processo.

Número do protocolo de autorização, denegação ou código de rejeição

Neste ponto o ERP ainda deve continuar aguardando mais um retorno do UniNFe para finalizar o processo de envio, que é o XML com o protocolo de autorização/denegação ou status de rejeição. Veja abaixo a estrutura do nome do arquivo que será gerado na pasta de retorno:

RECIBO-pro-rec.xml

RECIBO Número do recibo obtido no envio do DF-e.
-pro-rec.xml Conteúdo fixo. Sempre será "-pro-rec.xml"

Exemplo:

510000000121311-pro-rec.xml (se tudo correu bem)

ou

510000000121311-pro-rec.err (se houve algum erro)

Dentro do XML retornado, no caso de nenhum erro ou rejeição, é disponibilizado uma tag com número do protocolo de autorização. Este número deve ser gravado na base do ERP, pois será utilizado em outras situações.

Se a nota fiscal foi autorizada ou denegada, o UniNFe efetuará a cópia do XML para a pasta de XML Enviados Autorizados ou Denegados e de Backup, além de criar o XML de distribuição do DF-e com o protocolo anexado, tendo o mesmo nome do XML enviado, mudando somente a extensão (final), conforme abaixo:

  • NF-e ou NFC-e: 13140312345678901234650030000004591064552496-procNFe.xml
  • CT-e: 13140312345678901234650030000004591064552496-procCTe.xml
  • MDF-e: 13140312345678901234650030000004591064552496-procMDe.xml

Agora basta disparar a impressão do DANFe a partir do XML de distribuição gravado na pasta autorizados. Para isso, utilize o aplicativo UniDANFe.

Enviando o arquivo no formato TXT (Somente para NFe e NFCe)

Aos que desejarem gerar a nota fiscal no formato TXT, basta gerar o arquivo na pasta de envio que o UniNFe fará a conversão para XML e executará o processo de envio conforme descrito no item “Enviando o arquivo no formato XML”.

O nome do arquivo TXT deve ter o seguinte formato:

NUMERODANF_CNPJ_SERIE_DIA_MES_ANO-nfe.txt

NUMERONF Número da nota fiscal com 9 dígitos e zeros a esquerda.
CNPJ CNPJ da empresa geradora da nota fiscal.
SERIE Série da NFe com 3 dígitos e zeros a esquerda.
DIA_MES_ANO Dia, mês e ano da emissão da nota fiscal.
-nfe.xml Conteúdo fixo. Sempre será "-nfe.xml"

Exemplo:

123456789_12345678901234_001_19_06_2015-nfe.txt

Depois de gerado o TXT na pasta de envio o ERP deve aguardar o UniNFe gerar um arquivo na pasta de retorno para pegar o número da chave da nota fiscal gerada e arquivar em seu banco de dados para dar sequência ao processo.

O nome do arquivo de retorno é exatamente o mesmo do envio, veja abaixo:

123456789_12345678901234_001_19_06_2015-nfe.txt (se tudo correu bem)

ou

123456789_12345678901234_001_19_06_2015-nfe.err (se houve algum erro)

Dentro destes arquivos você encontrará as seguintes informações:

Se tudo correu bem (sem erros): cStat=01 xMotivo=Convertido com sucesso ChaveNfe=51080662675686000166550010000001041671821888

Se houve algum erro: cStat=99 xMotivo=Falha na conversão MensagemErro=XXXXXX...

Os retornos da SEFAZ serão gravados em XML e TXT (se configurado para isso). Todo o restante do processo deve ser analisado no item “Enviando o arquivo no formato XML”.

Layout do arquivo TXT (Somente para NFe e NFCe)

O layout do arquivo TXT utilizado pelo UniNFe, para gerar a NF-e ou NFC-e, está disponível no botão Layout na tela principal do aplicativo.

Enviando DFe em Lote (Somente NFe e CTe)

No envio de NF-e/CT-e em lote, ou seja, mais de uma NF-e/CT-e no lote, o processo a ser seguido deve ser o mesmo do envio individual, mas a pasta de gravação do XML da NF-e/CT-e deve ser a específica de envio em lote (Veja a tela de configuração do UniNFe).

Para todos os XML gerados na pasta de envio em lote, o UniNFe vai assinar e validar, se tiver algum erro de esquema (schema) já retorna de imediato um arquivo com o mesmo nome do XML mas seguido do prefixo -ret.xml, assim sendo, quando o ERP gerar, já deve ficar aguardando um xml no retorno que terá a informação se o XML foi ou não validado com sucesso. Se foi rejeitado, deve-se ajustar o XML e gerar novamente na pasta de envio em lote. No arquivo retornado se o cStat for igual a 1, XML validado com sucesso; se diferente o mesmo foi rejeitado.

Depois de gerado as notas a serem enviadas em um único lote o ERP deverá gerar um arquivo XML na pasta de envio em lote contendo o nome de todos os arquivos XML a serem enviadas para que o UniNFe inicie o processo de montagem e envio do lote. Veja abaixo a estrutura deste arquivo:

Nome do arquivo: IdentificadorUnico-montar-lote.xml

IdentificadorUnico Conteúdo de caracteres que não se repita para não ter conflito entre solicitações de montagens de lotes de terminais diferentes.
-montar-lote.xml Conteúdo fixo. Sempre será “-montar-lote.xml”.

Estrutura do XML:

<MontarLoteNFe>
   <ArquivoNFe>31090811111111111111550010000170540985346155-nfe.xml</ArquivoNFe>
   <ArquivoNFe>31090811111111111111550010000170552254161715-nfe.xml</ArquivoNFe>
   <ArquivoNFe>31090811111111111111550010000170568316267550-nfe.xml</ArquivoNFe>
   <ArquivoNFe>31090811111111111111550010000170576598785458-nfe.xml</ArquivoNFe>
   <ArquivoNFe>31090811111111111111550010000170580868065922-nfe.xml</ArquivoNFe>
   <ArquivoNFe>31090811111111111111550010000170598782703460-nfe.xml</ArquivoNFe>
   <ArquivoNFe>31090811111111111111550010000170601627794965-nfe.xml</ArquivoNFe>
   <ArquivoNFe>31090811111111111111550010000170614771688745-nfe.xml</ArquivoNFe>
   <ArquivoNFe>31090811111111111111550010000170629738254209-nfe.xml</ArquivoNFe>
   <ArquivoNFe>31090811111111111111550010000170639360406717-nfe.xml</ArquivoNFe>
</MontarLoteNFe>

Observação: Deve conter o nome do arquivo completo, mas sem identificação de pasta, ou seja, somente o nome do arquivo conforme exemplo acima.

A tag <ArquivoNFe> deve se repetir até que o ERP tenha informado todas as notas que ele deseja enviar no lote.

Neste momento do UniNFe fará uma verificação de todos os arquivos XML informados no arquivo “-montar-lote.xml”, se tiver algum problema, o ERP pode aguardar um XML na pasta de retorno com o mesmo nome mas com extensão .ERR (Exemplo: IdentificadorUnico-montar-lote.err). Nele teremos um texto descrevendo todas as falhas encontradas no processo inicial da montagem do lote.

O UniNFe pode gerar um lote ou mais, pois a regra é que um lote tenha no máximo 50 notas ou o arquivo tenha no máximo 500 kbytes. Assim sendo o UniNFe a cada nota inserida no lote ele avalia, se ultrapassar algum dos limites ele encerra o lote e inicia outro.

Tratando os arquivos gravados na pasta de retorno

Número do lote

Para tanto na pasta de retorno o ERP vai encontrar um XML para cada NFe/CTe com o número do lote que ela(e) foi inserida(o). Veja o exemplo deste arquivo de retorno do número do lote abaixo:

Nome do arquivo: ChaveNFe-num-lot.xml

CHAVEDFE Chave do documento fiscal eletrônico
-num-lot.xml Conteúdo fixo. Sempre será “-num-lot.xml”.

Exemplo: 31090811111111111111550010000170639360406717-num-lot.xml

No conteúdo do arquivo de retorno do –num-lot.xml será encontrado o número do lote gerado pelo UniNFe, que deve ser gravado na base de dados do sistema ERP para que este consiga pegar o arquivo de retorno com o número do recibo fornecido pelo WebService.

Número do recibo

Gravado o número do lote, o sistema ERP deve continuar aguardando o segundo arquivo de retorno, que é a resposta do WebService com relação ao envio das NFe´s ou CTe´s. O arquivo retornado será gravado no padrão abaixo:

NUMEROLOTE-rec.xml

NUMEROLOTE Número do lote sequencial gerado pelo UniNFe com 15 dígitos. Este número não se repete (Chave Única).
-rec.xml Conteúdo fixo. Sempre será "-rec.xml"

Exemplo:

000000000000016-rec.xml (se tudo ocorreu bem)

ou

000000000000016-rec.err (se houve algum erro)

No conteúdo do arquivo -rec.xml encontra-se o número de um recibo que deve ser gravado na base do ERP para ser utilizado na hora de pegar o retorno da autorização, ou não, dos DF-e´s enviados.

Pode ocorrer de não retornar o número do recibo, pois em uma primeira análise efetuada pela SEFAZ, a mesma pode rejeitar o lote por ter encontrado irregularidades, neste caso, é de fundamental importância o ERP analisar o conteúdo da tag de status (cStat) do lote para saber se o mesmo foi enviado com sucesso ou rejeitado. Se rejeitado, o ERP deve efetuar as correções e enviá-lo novamente, reiniciando o processo.

Número do protocolo de autorização, denegação ou código de rejeição

Neste ponto o ERP ainda deve continuar aguardando mais um retorno do UniNFe para finalizar o processo de envio, que é o XML com o protocolo de autorização/denegação ou status de rejeição. Veja abaixo a estrutura do nome do arquivo que será gerado na pasta de retorno:

RECIBO-pro-rec.xml

RECIBO Número do recibo obtido no envio do DF-e.
-pro-rec.xml Conteúdo fixo. Sempre será "-pro-rec.xml"

Exemplo:

510000000121311-pro-rec.xml (se tudo correu bem)

ou

510000000121311-pro-rec.err (se houve algum erro)

Dentro do XML retornado, no caso de nenhum erro ou rejeição, é disponibilizado uma tag com número do protocolo de autorização para cada documento fiscal. Este número deve ser gravado na base do ERP em seus respectivos documentos fiscais, pois será utilizado em outras situações.

Se a nota fiscal foi autorizada ou denegada, o UniNFe efetuará a cópia do XML para a pasta de XML Enviados Autorizados ou Denegados e de Backup, além de criar o XML de distribuição do DF-e com o protocolo anexado, tendo o mesmo nome do XML enviado, mudando somente a extensão (final), conforme abaixo:

  • NF-e ou NFC-e: 13140312345678901234650030000004591064552496-procNFe.xml
  • CT-e: 13140312345678901234650030000004591064552496-procCTe.xml

Agora basta disparar a impressão do DANFe a partir dos XMLs de distribuição gravados na pasta autorizados. Para isso, utilize o aplicativo UniDANFe.

IMPORTANTE: O Uninfe não dispõe do envio de NFe em lote para o formato TXT.

Importante

  • O XML gerado deve conter somente a estrutura do DFe, ou seja, não insira as tags específicas da montagem do XML de lote, pois o UniNfe já se executa a tarefa.
  • Para um melhor entendimento dos arquivos enviados ou retornados dos webservices, é de fundamental importância a analise e estudo aprofundado do manual de integração do DF-e disponibilizado pela SEFAZ para que os tratamentos dos retornos sejam feitos com maior eficácia.

Veja também