Manuais:UniNFe/Envio DFe
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:
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 com a extensão .ERR (Conforme no envio individual de notas), assim sendo, quando o ERP gerar, já deve ficar aguardando um retorno com extensão .ERR, se nada for retornado significa que deu tudo certo, se algo for encontrado, deve ajustar o XML e gerar ele novamente na pasta de envio em lote.
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.