SOLUÇÃO OOBJ-NFE PADRÃO DE INTEGRAÇÃO TXT Versão 3 - Novembro/2009 E-Sales Soluções de integração Avenida França, 1162 Porto Alegre, RS Fone: (51) 3325-8100 (62) 3211-1279 http://www.esales.com.br
SUMÁRIO 1 INTRODUÇÃO... 3 1.1 OBJETIVOS... 3 1.2 RESPONSABILIDADES... 3 1.3 REFERÊNCIAS... 4 2 ARQUITETURA... 4 3 INTEGRAÇÃO COM SISTEMA DE FATURAMENTO... 6 3.1 COMUNICAÇÃO... 6 3.2 NOMENCLATURA ARQUIVOS DE ENVIO DE LOTE... 6 3.3 INFORMAÇÕES DE ENVIO DA NF-E PARA A SEFAZ... 7 3.4 INFORMAÇÕES DE RETORNO DA NF-E ENVIADA... 8 3.5 INFORMAÇÕES DE STATUS DA NF-E... 9 4 FORMATO DAS MENSAGENS... 9 4.1 LOTE PROCESSADO PELA SEFAZ... 10 4.2 DANFES EMITIDOS EM FORMULÁRIO DE SEGURANÇA... 10 4.3 NOTAS EMITIDAS AO SCAN COM MUDANÇA DE SÉRIE... 11 4.4 LOTE COM ESTRUTURA INVÁLIDA... 11 4.5 LOTE COM CONTEÚDO INVÁLIDO... 12 4.6 LOTE NÃO PÔDE SER ENVIADO... 13 5 PADRÃO DE INTEGRAÇÃO PARA SERVIÇO DE CANCELAMENTO E INUTILIZAÇÃO DE NF-E... 14 5.1 - ARQUIVOS DE ENVIO E RESPOSTA DE CANCELAMENTO... 14 5.1.1 Conteúdo arquivo de cancelamento... 14 5.1.2 Conteúdo arquivo de resposta de cancelamento... 15 5.2 ARQUIVOS DE ENVIO E RESPOSTA DE INUTILIZAÇÃO... 16 5.2.1 Conteúdo arquivo inutilização... 16 5.2.2 Conteúdo arquivo de resposta de inutilização... 17 6 ANEXO I - CÓDIGOS DE ERRO DO OOBJ-NFE... 19 7 ANEXO II - LAYOUT DAS MENSAGENS... 21 1
8 ANEXO III - LAYOUT DAS MENSAGENS DE RETORNO... 25 8.1 LOTE PROCESSADO PELA SEFAZ... 25 8.2 DANFES EMITIDOS EM FORMULÁRIO DE SEGURANÇA... 25 8.3 NOTAS EMITIDAS AO SCAN COM MUDANÇA DE SÉRIE... 25 8.4 LOTE COM ESTRUTURA INVÁLIDA... 25 8.5 LOTE COM CONTEÚDO INVÁLIDO... 25 8.6 LOTE NÃO PÔDE SER ENVIADO... 25 9 ANEXO IV - LAYOUT DA MENSAGEM DE ENVIO NF-E TXT... 26 2
1 INTRODUÇÃO 1.1 Objetivos O Documento de Integração tem por objetivo estabelecer um padrão técnico de comunicação entre o software de faturamento previamente existente no cliente e o Oobj-NFE, sistema emissor de Nota Fiscal Eletrônica. São também objetivos da estratégia de integração definida neste documento: Remover o máximo possível da complexidade tecnológica utilizada no processamento de NFE para o sistema de faturamento; Abstrair aspectos negociais do ciclo de vida da NFE, de modo a simplificar a operação do sistema de faturamento; Minimizar a freqüência e o impacto de eventuais falhas de comunicação ao sistema de faturamento; Proteger o sistema de faturamento das freqüentes alterações na estrutura da NFE. 1.2 Responsabilidades Ao produtor do software de faturamento cabe, à custa do cliente, realizar as modificações necessárias para interagir com o Oobj-NFE da maneira especificada neste documento. À Oobj, por sua vez, cabe oferecer ao software de faturamento as interfaces de comunicação conforme estabelecido neste documento. 3
1.3 Referências Tabela 1 Documentos Referenciados Documento Data Criação Origem Template de MAPEAMENTO_XML_TXT_Envio.xls 11/08/2008 Documentação E-Sales 2 ARQUITETURA A solução Oobj-NFE se divide em três módulos: o Módulo Central, o Módulo Periférico e o Painel Gerencial. O Módulo Central fica fisicamente alocado em uma máquina servidora única que processa as operações de todos os estabelecimentos, e é responsável por toda a comunicação com a Secretaria de Fazenda. Ele executa as operações de envio, cancelamento, inutilização e consultas de NFE. O Módulo Periférico fica instalado em cada estação em que roda o sistema de faturamento, e se presta a servir de ponte entre o sistema de faturamento e o Módulo Central. Deste modo, toda a interação do sistema de faturamento é feita diretamente com o Módulo Periférico. Outra incumbência do Módulo Periférico é o controle das impressões do DANFE e do DANFE-FS (DANFE em formulário de segurança). O Painel Gerencial oferece funções administrativas como configuração do funcionamento do sistema, backups, listagem das NFE emitidas e operações posteriores sobre elas, como cancelamento, reimpressão de DANFE, etc. Ele é acessado de qualquer estação de trabalho através de um browser e pode ser instalado no servidor onde está o Módulo Central. O Painel Gerencial não depende de integração com o sistema de faturamento e, portanto, não é objeto de discussão deste documento. A Figura 1 ilustra a distribuição dos componentes e a comunicação entre eles: 4
Figure 1 - Arquitetura Oobj NF-e 5
3 INTEGRAÇÃO COM SISTEMA DE FATURAMENTO 3.1 Comunicação A comunicação entre o sistema de faturamento e o módulo periférico se dará através de troca de arquivos no disco rígido que compartilham. Dessa forma, serão definidas duas pastas, uma chamada Pasta de Envio e outra chamada Pasta de Respostas. O sistema de faturamento gravará suas mensagens na Pasta de Envio, que serão então consumidas pelo Módulo Periférico. Este, por sua vez, gravará as respostas na Pasta de Respostas. A Figura 2 é um quadro-resumo destes papéis: Pasta de Envio Pasta de Respostas Sistema de Faturamento grava lê Módulo Periférico lê grava Figure 2 - Pasta de Envio Tanto o sistema de faturamento como o Módulo Periférico devem disponibilizar os arquivos nas respectivas pastas somente quando estes estiverem prontos para leitura pela outra parte. Para garantir isso, recomenda-se que o arquivo seja formado em uma pasta temporária, e em seguida movido para a pasta de destino. 3.2 Nomenclatura Arquivos de Envio de Lote Os arquivos de envio de lote e as respectivas respostas obedecerão à seguinte nomenclatura: Padrão de Nomenclatura Exemplo Entrada lote-<id-lote>.txt lote-12345.txt Saída resplote-<id-lote>.txt resplote-12345.txt Figure 3 - Nomenclatura dos Arquivos de Envio de Lote 6
O Id do lote, informado nos arquivos de entrada e saída, é um número inteiro gerado pelo sistema de faturamento com o único propósito de identificar um lote por ele enviado. O nome do arquivo de respostas, além de conter o Id do lote, contém o código do resultado do processamento daquele lote (o código 104 significa Lote processado, o que indica que foi enviado com sucesso à SEFAZ e suas notas foram processadas). O código de processamento pode ter sido gerado pela SEFAZ ou pelo SCAN, em cujos casos correspondem a um código da Tabela de códigos de erros e descrições de mensagens de erros presente no Manual do Contribuinte. Pode ter sido, também, gerado pelo Oobj-NFE, e neste caso corresponde a um dos códigos presentes no ANEXO I deste documento. 3.3 Informações de Envio da NF-e para a SEFAZ O Sistema de Faturamento do cliente deve dispoinibilizar as informações para a emissão da NF-e de acordo com o layout definido no ANEXO I do Manual de Integração Contribuinte, disponibilizado pela SEFAZ, e no ANEXOIII deste documento. O mapeamento das informações necessárias para a emissão da NF-e estão descritas no template MAPEAMENTO_XML_Envio.xls da metodologia de implantação Oobj NF-e da E-Sales. 7
3.4 Informações de Retorno da NF-e Enviada Após o envio e processamento da NF-e pela SEFAZ, a base de dados do Sistema de Faturamento do cliente deve estar preparado para receber as informações de retorno descritas na tabela abaixo. Tabela 2 - Informações de Retorno da NF-e Enviada TAG Tamanho Observações chnfe origemresp 1 digito serie 44 dígitos - Chave de Acesso da NF-e composta por Código da UF + AAMM da emissão + CNPJ do Emitente + Modelo, Série e Número da NFe + Código Numérico + DV. 2 dígitos (pode ser que a série atribuída no ERP, pode ser alterada p/ emissão pelo SCAN - 900 á 999), por isso são importantes gravar essa informação. Chave de acesso contendo 44 dígitos, que é a identificação da NF-e na SEFAZ. Originador da resposta (S: SEFAZ; O: Oobj-NFE). Série da NF-e nnf 8 digitos Numero da NF-e dhrecbto Formato data (AAAA-MM-DD) Data da autorização da NF-e no formato ano(4)-mês(2)- dia(2) (ex : 2008-08-10) cstat 3 digitos Código do status da NF-e, são códigos que estão definidos no manual de integração da SEFAZ. xmotivo 255 digitos Descrição do motivo do status da NF-e 8
3.5 Informações de Status da NF-e A base de dados do Sistema de Faturamento do cliente deve ter um campo de status da NF-e com a seguinte especificação: Tabela 3 - Campo Status da NF-e no Sistema de Faturamento Campo Tamanho Dom Status_NFe Inteiro 1 dígito 2 Disponível para Exportação, modo normal. 3 Enviado, em processamento. 4 - Processado. 5 - Disponível para Exportação, em modo contingência. 4 FORMATO DAS MENSAGENS Todas as mensagens trocadas estarão no formato texto (arquivo.txt). A cada uma das mensagens está definida uma estrutura hierárquica de grupos, que são determinados por letras (conforme o Manual de Integração do Contribuinte) e a delimitação dos campos de cada grupo pelo caractere, denominado coloquialmente como pipe. O layout da mensagem, bem como a estrutura hierárquica de grupos e a delimitação dos campos esta presente no Anexo II. A codificação utilizada tanto nos arquivos enviados pelo sistema de faturamento quanto nos de retorno do Oobj-NFE é UTF-8. Numa situação normal, as notas enviadas pelo sistema de faturamento são enviadas à SEFAZ e têm seu uso autorizado. Existem, contudo, múltiplos pontos de falha, que incluem: Indisponibilidade de conexão com a Internet em algum ponto da rede; Falta de energia na unidade do módulo central; Indisponibilidade do sistema receptor da SEFAZ; Erro na estrutura ou conteúdo da mensagem enviada pelo sistema de faturamento; As respostas do Oobj-NFE prevêem estas possibilidades de falha, sendo influenciadas pelo fato de que tanto o módulo central como o módulo periférico podem ser configurados para entrar em contingência automática ou manualmente. 9
Em seguida serão apresentadas as diferentes mensagens devolvidas pelo Oobj-NFE nestes diferentes cenários: 4.1 Lote processado pela SEFAZ Trata-se do cenário principal, em que o Oobj-NFE conseguiu executar todas as operações normalmente, e o lote é corretamente transmitido à SEFAZ receptora e por ela processado. O resultado do processamento é auferido pela SEFAZ e é individual para cada nota do lote, e pode ser autorização, rejeição ou denegação. Os códigos e mensagens dos resultados dados pela SEFAZ são repassados ao sistema de faturamento. Abaixo está um exemplo de uma mensagem de resposta de autorização: A 12345 S 104 Lote processado 52 B 52071212345678000100550120000000014848581045 12 1 2007-12- 25T12:00:00 100 Autorizado o uso da NF-e 152090040537968 QmSRIyWBZznTLsgGRnV0stnflYI= O segundo campo do grupo A (origem da resposta) informa o valor S, o que significa que a origem da resposta é a SEFAZ. O layout da mensagem, bem como a estrutura hierárquica de grupos e a delimitação dos campos esta presente no Anexo II. 4.2 DANFEs emitidos em formulário de segurança Quando ocorrer uma falha que impeça a autorização do lote de NFE, pode ser feita a emissão do DANFE em formulário de segurança. O Oobj-NFE pode ser configurado para acionar este modo de contingência automaticamente, ou sob comando manual. Seja acionado automática ou manualmente, quando houver emissão de DANFE em formulário de segurança, o sistema retornará uma mensagem semelhante ao exemplo a seguir: A 12345 O 5001 Notas emitidas em contingência DANFE-FS. Importante observar que o segundo campo do grupo A (origem da resposta) apresenta o valor O, o que significa que a resposta foi gerada pelo Oobj-NFE. Por este motivo, o terceiro campo apresenta o valor 5001, que está compreendido na faixa de números de resultado reservada às mensagens do Oobj-NFE, a saber, 5000 a 5999. Sempre que o Oobj-NFE der origem à resposta, serão utilizados códigos da faixa 5000-5999. A tabela completa com as mensagens retornadas pelo Oobj-NFE pode ser encontrada no 0, ao final deste documento. 10
O layout da mensagem, bem como a estrutura hierárquica de grupos e a delimitação dos campos esta presente no Anexo II. 4.3 Notas emitidas ao SCAN com mudança de série O módulo central também pode ser configurado para entrar automaticamente em contingência, que consiste em enviar ao SCAN (Sistema de Contingência do Ambiente Nacional). Para emitir ao SCAN, é exigido que seja utilizada série compreendida entre 900 e 999, inclusive. Seja acionado automática ou manualmente, sempre que uma NFE for emitida ao SCAN, o Oobj-NFE, para atender a esta exigência, atribuirá uma nova série à NFE, cujo número será a série original atribuída pelo sistema de faturamento, somada de 900. Por exemplo, se a série original era 2, e fez-se necessário emitir ao SCAN, o Oobj-NFE atribuirá a série 902 à NFE antes de enviar. O Oobj-NFE optou por não alterar a numeração originalmente estabelecida, preservando a natureza seqüencial das séries de contingência através de inutilização. O Oobj-NFE, nesta situação, retornará uma mensagem conforme o exemplo a seguir: A 12345 C 104 Lote processado 52 B 52071212345678000100550120000000014848581045 12 1 2007-12- 25T12:00:00 100 Autorizado o uso da NF-e 912 1 Percebe-se que, nesta mensagem, o segundo campo do grupo B1 (série) não informa o número da série efetivo, e sim, o valor original (12). A série de fato informada na nota enviada ao SCAN é aquela informada no penúltimo campo do grupo B1 (serie SCAN). O mesmo vale para o terceiro campo do grupo B1 (nnf) e o último campo do grupo B1 (nnfscan). Nota-se, também, que o segundo campo do grupo A (origem da resposta) agora assume o valor C, indicando que a mensagem teve sua origem no SCAN. Recomenda-se ao sistema de faturamento que atualize sua base de dados com a nova série e número atribuídos pelo Oobj-NFE, de modo que procedimentos posteriores de escrituração tenham informações corretas. O layout da mensagem, bem como a estrutura hierárquica de grupos e a delimitação dos campos esta presente no Anexo II. 4.4 Lote com estrutura inválida O Oobj-NFE aplica uma série de validações prévias ao lote enviado pelo sistema de faturamento. Primeiramente são feitas as seguintes validações estruturais: O tamanho do arquivo deve ser menor que 400 Kbytes; 11
O conteúdo do arquivo texto deve estar formado de acordo com o layout da mensagem, presente neste documento; O layout da mensagem foi modelado com o objetivo de maximizar a flexibilidade, e ser bem menos restritivos que o layout oficial da NFE. Como exemplo, cabe citar que num campo com 4 casas decimais, o layout oficial exige que sejam informadas as 4 casas, mesmo que sejam zeros (Ex: 1.2500 é um valor válido, enquanto 1.25 é inválido), enquanto o layout utilizado pela Oobj permite que se omitam as casas decimais desnecessárias. Estas e outras diferenças diminuem bastante a ocorrência de falhas na validação de schema. Se uma destas validações falharem, o Oobj-NFE rejeitará o lote e seu conteúdo não será avaliado. A mensagem, neste caso, é semelhante à apresentada a seguir: A 12345 O 5214 Rejeição: tamanho do arquivo excede o limite de 400k. 52 O layout da mensagem, bem como a estrutura hierárquica de grupos e a delimitação dos campos esta presente no Anexo II. 4.5 Lote com conteúdo inválido Caso o lote passe com sucesso pelas validações estruturais, são feitas outras validações de natureza semântica, semelhantes às validações feitas pela SEFAZ. Por exemplo, verifica-se se o CNPJ do emitente e do destinatário são CNPJ s válidos, e outras validações diversas. Essa pré-validação tem por objetivo antecipar a rejeição, poupando tempo de transmissão e processamento, e economizando recursos computacionais e de rede. Se um erro de conteúdo for encontrado em alguma nota, o lote inteiro é rejeitado. Um erro específico que se enquadra neste cenário ocorre quando o sistema de faturamento envia uma nota com numeração e série anteriormente enviada à SEFAZ, acarretando em duplicidade. A mensagem de retorno do Oobj-NFE, em caso de falha na validação do conteúdo do lote, é semelhante ao exemplo apresentado a seguir: A 12345 O 5002 Falha na validação de uma ou mais NFE 52 B 52071212345678000100550120000000014848581045 12 1 2007-12-25T12:00:00 5208 CNPJ do destinatário inválido Diferentemente da rejeição por erro estrutural, a rejeição por erro de conteúdo informa o problema com cada nota individualmente. O código e a descrição do erro específico é dada dentro do grupo B (infprot) da respectiva nota, no penúltimo e último campos(código do estado e motivo). 12
Quando ocorrer este erro, espera-se que o usuário corrija a informação causadora do problema e remeta o lote novamente ao Oobj-NFE. 4.6 Lote não pôde ser enviado Num cenário em que os métodos de contingência estão programados para não serem acionados automaticamente, a ocorrência de falha impede que as notas sejam emitidas. Neste caso, o Oobj-NFE informa a razão que impediu a emissão das notas. A mensagem, nesse cenário, é semelhante ao exemplo a seguir: A 12345 O 5003 Falha de comunicação com o módulo central. 52 Neste cenário, espera-se que o usuário decida entre aguardar que o problema se normalize, ou acionar manualmente o mecanismo de contingência adequado, remetendo novamente o lote. Existe uma situação rara, mas possível, em que a comunicação com a SEFAZ é interrompida após o envio de um lote, mas antes da obtenção do resultado do processamento. Neste caso específico, é impossível determinar se as notas foram autorizadas, e não pode haver saída das mercadorias referentes às notas em questão. Uma conseqüência é a perda da numeração das notas, fazendo-se necessário re-emitir as notas com nova numeração, utilizando o mecanismo de contingência adequado. A ação esperada é que o sistema de faturamento remeta novamente o lote, alterando a numeração de suas notas para uma nova numeração. 13
5 PADRÃO DE INTEGRAÇÃO PARA SERVIÇO DE CANCELAMENTO E INUTILIZAÇÃO DE NF-E 5.1 - Arquivos de envio e resposta de cancelamento Os arquivos de cancelamento de NF-e e as respectivas respostas obedecerão à seguinte nomenclatura: Padrão de Nomenclatura Entrada Saída canc-<chave-acesso-nfe>.txt Exemplo : canc-35090268733603000178550010000000350833154065.txt respcanc-< chave-acesso-nfe>.xml Exemplo : respcanc-35090268733603000178550010000000350833154065.txt 5.1.1 Conteúdo arquivo de cancelamento CANC tpamb chnfe xjust Descrição dos campos a serem informados no TXT : TAG Tamanho Observações CANC - Constante tpamb 1 digito Tipo de Ambiente (1 Produção, 2 Homologação), opcional chnfe 44 dígitos - Chave de Acesso da NF-e composta por Código da UF + AAMM da emissão + CNPJ do Emitente + Modelo, Série e Número da NFe + Código Numérico + DV. Chave de acesso contendo 44 dígitos, que é a identificação da NF-e na SEFAZ. xjust Informar o motivo do cancelamento da NF- No Schema da Sefaz, se for 14
e. Mais de 15 caracteres no mínimo. emitido um cancelamento que a descrição for menor que o tamanho de 15 caracteres, será rejeitado o cancelamento com o motivo Falha de Schema. Exemplo: CANC 31090879655916000806550020000362545863277776 SOLICITACAO DE CANCELAMENTO DO CLIENTE 5.1.2 Conteúdo arquivo de resposta de cancelamento RETCANC tpamb veraplic cstat xmotivo cuf chnfe dhrecbto nprot Descrição dos campos retornados no TXT : TAG Tamanho Observações RETCANC - Constante tpamb 1 digito Tipo de Ambiente (1 Produção, 2 Homologação), opcional veraplic 1 20 caracteres Versão do aplicativo que processou o pedido de cancelamento cstat 3 caracteres Código do status da mensagem enviada xmotivo 1 255 caracteres Descrição literal do status do serviço solicitado cuf 2 caracteres Código da UF de atendimento chnfe 44 dígitos - Chave de Acesso da NF-e composta por Código da UF + AAMM da Chave de acesso da NF-e 15
emissão + CNPJ do Emitente + Modelo, Série e Número da NFe + Código Numérico + DV. dhrecbto Formato: AAAA-MM-DDTHH:MM:SS Data e hora do recebimento nprot 15 caracteres Número do Protocolo de Status da NF-e 5.2 Arquivos de envio e resposta de inutilização Os arquivos de inutilização de NF-e e as respectivas respostas obedecerão à seguinte nomenclatura: Padrão de Nomenclatura Entrada Saída inut-<código-numerico-qualquer>.txt Exemplo : inut-0001.txt respinut-< código-numerico-qualquer >.txt Exemplo : respinut-0001.txt 5.2.1 Conteúdo arquivo inutilização A tpamb cuf ano CNPJ serie nnfini nnfin xjust Descrição dos campos a serem informados no TXT : TAG Tamanho Observações A - Constante tpamb 1 digito Tipo de Ambiente (1 Produção, 2 Homologação), opcional cuf 2 caracteres Código da UF de atendimento 16
ano 02 dígitos Ano da faixa de NF-e a ser inutilizada Ano da faixa de NF-e a ser inutilizada. CNPJ CNPJ do emitente que será feito a inutilização da NF-e. CNPJ completo contendo 14 digitos sem formatação. serie Série da NF-e a ser inutlizada. Série da NF-e a ser inutlizada. nnfini Número da Nf-e inicial Número da Nf-e inicial nnffin xjust Número da Nf-e Final Esta tag é opcional Informar o motivo da inutilização da faixa de NF-e. Mais de 15 caracteres no mínimo. Número da Nf-e Final No Schema da Sefaz, se for emitido uma inutilização que a descrição for menor que o tamanho de 15 caracteres, será rejeitado o com o motivo Falha de Schema. 5.2.2 Conteúdo arquivo de resposta de inutilização A tpamb cstat xmotivo cuf ano CNPJ serie nnfini nnffin dhrecbto npro t Descrição dos campos retornados no TXT : TAG Tamanho Observações A - Constante tpamb 1 digito Tipo de Ambiente (1 Produção, 2 Homologação), opcional cstat 3 caracteres Código do status da mensagem enviada 17
xmotivo 1 255 caracteres Descrição literal do status do serviço solicitado cuf 2 caracteres Código da UF de atendimento ano 02 dígitos Ano da faixa de NF-e a ser inutilizada Ano da faixa de NF-e a ser inutilizada. CNPJ CNPJ do emitente que será feito a inutilização da NF-e. CNPJ completo contendo 14 dígitos sem formatação. serie Série da NF-e a ser inutilizada. Série da NF-e a ser inutilizada. nnfini Número da Nf-e inicial Número da Nf-e inicial nnffin Número da Nf-e Final Esta tag é opcional dhrecbto Formato: AAAA-MM-DDTHH:MM:SS Número da Nf-e Final Data e hora do recebimento nprot 15 caracteres Número do Protocolo de Status da NF-e 18
6 ANEXO I - CÓDIGOS DE ERRO DO OOBJ-NFE Os erros decorrentes de validações estabelecidas no Manual do Contribuinte têm seu código idêntico a partir da centena ao seu código correspondente no referido manual. Abaixo está a lista de códigos de erros gerados pelo Oobj-NFE e suas respectivas descrições: Código Descrição 5001 DANFE emitido em formulário de segurança. 5002 Falha na validação de uma ou mais NFE. 5003 Falha de comunicação com módulo central. 5004 Falha de comunicação com SEFAZ devido a problemas na rede do módulo central. 5005 Falha de comunicação com SEFAZ devido a problemas na SEFAZ. 5006 Numeração de NFE já enviada anteriormente para SEFAZ. 5007 Interrupção na comunicação com conseqüente perda de numeração. 5008 A SEFAZ retornou resposta fora dos padrões estabelecidos. 5009 O id do lote informado já foi enviado anteriormente. 5010 O tempo limite para resposta da SEFAZ foi excedido. 5011 O lote foi rejeitado pela SEFAZ. 5012 O id do lote do XML não corresponde ao informado. 5013 Requisição inválida ou corrompida na transmissão ao Módulo Central. 5014 Rejeição: Falha na validação do conteúdo do lote TXT 5204 Rejeição: Numeração de NFE já enviada anteriormente para SEFAZ. 5207 Rejeição: CNPJ do emitente inválido 5208 Rejeição: CNPJ do destinatário inválido 5209 Rejeição: IE do emitente inválida 5210 Rejeição: IE do destinatário inválida 5211 Rejeição: IE do substituto inválida 5212 Rejeição: Data de emissão NF-e posterior à data de recebimento 5214 Rejeição: Tamanho da mensagem excedeu o limite estabelecido 5215 Rejeição: Falha no schema XML 19
5228 Rejeição: Data de Emissão muito atrasada 5229 Rejeição: IE do emitente não informada 5232 Rejeição: IE do destinatário não informada 5235 Rejeição: Inscrição SUFRAMA inválida 5237 Rejeição: CPF do destinatário inválido 5243 Rejeição: XML Mal Formado 5251 Rejeição: UF/Município destinatário não pertence à SUFRAMA 5253 Rejeição: Digito Verificador da chave de acesso composta inválida 5254 Rejeição: NF-e referenciada não informada para NF-e complementar 5255 Rejeição: Informada mais de uma NF-e referenciada para NF-e complementar 5266 Rejeição: Série 900-999 reservada para uso do Oobj-NFE. 5269 Rejeição: CNPJ Emitente da NF Complementar difere do CNPJ da NF Referenciada 5270 Rejeição: Código Município do Fato Gerador: dígito inválido 5271 Rejeição: Código Município do Fato Gerador: difere da UF do emitente 5272 Rejeição: Código Município do Emitente: dígito inválido 5273 Rejeição: Código Município do Emitente: difere da UF do emitente 5274 Rejeição: Código Município do Destinatário: dígito inválido 5275 Rejeição: Código Município do Destinatário: difere da UF do Destinatário 5276 Rejeição: Código Município do Local de Retirada: dígito inválido 5277 Rejeição: Código Município do Local de Retirada: difere da UF do Local de Retirada 5278 Rejeição: Código Município do Local de Entrega: dígito inválido 5279 Rejeição: Código Município do Local de Entrega: difere da UF do Local de Entrega 5287 Rejeição: Código Município do FG - ISSQN: dígito inválido 5288 Rejeição: Código Município do FG - Transporte: dígito inválido 5402 Rejeição: XML da área de dados com codificação diferente de UTF-8 5405 Rejeição: Código do país do emitente: dígito inválido 5406 Rejeição: Código do país do destinatário: dígito inválido 5999 NF-e já emitida anteriormente, encontra-se já autorizada. 20
7 ANEXO II - LAYOUT DAS MENSAGENS Instruções gerais Como informado, o arquivo texto segue uma estrutura hierárquica de grupos, que são determinados por letras (conforme o Manual de Integração do Contribuinte) e a delimitação dos campos de cada grupo pelo caractere, denominado pipe. Informações sobre cada tipo de grupo Conforme layout abaixo, existem grupos de dados opcionais, que podem ser omitidos do registro da NFE, assim como grupos que podem ser repetidos diversas vezes (exemplo é o grupo de produto da NFE que, para cada produto, é um grupo adicional). Sobre os campos dos grupos, estes podem ter limitações de tamanho mínimo e máximo, além de validações de tipo (apenas caracteres, apenas dígitos, datas, etc.). Assim, é necessário realizar a confrontação do tipo, tamanho e demais validações para cada campo, conforme descrito no layout. Layout detalhado do arquivo Grupos: identificados por uma letra seguida de. Exemplo: A, B. Caso seja opcional, pode-se optar pelo não preenchimento. Exemplo: E XNome IE ISUF [seleção entre E02 ou E03]{ E02 CNPJ E03 CPF E05 XLgr Nro XCpl XBairro CMun XMun UF CEP CPais XPais F one F CNPJ XLgr Nro XCpl XBairro CMun XMun UF G CNPJ XLgr Nro XCpl XBairro CMun XMun UF 21
Caso não seja necessário o preenchimento do grupo F mas seja necessário o preenchimento do grupo G, temos: E XPTO Ltda... G 11222333000181... Nota-se que o grupo E e G são inseridos, mas o grupo F, omitido. Campos: identificados pelo código do campo e separados por. Exemplo: cuf, cnf Caso seja opcional ou não informado, deve-se substituir o conteúdo pelo preenchimento de apenas UM espaço em branco. Exemplo: No grupo E05, temos: E05 XLgr Nro XCpl XBairro CMun XMun UF CEP CPais XPais Fone Caso não seja necessário o preenchimento do complemento (xcpl),cep (CEP) e do Telefone (Fone), preenche-se estes campos com apenas UM espaço em branco: E05 Avenida Rangel Pestana 300 Se 3550308 São Paulo SP 1058 BRASIL Expressões: [ 0 a N ] {... : Expressão indicando que todo o conteúdo entre chaves ( { e ) pode ser inserido de 0 (ou seja, nenhuma vez) ou mais vezes. [ 0 a 1 ] {... : Expressão indicando que todo o conteúdo entre chaves ( { e ) pode ser inserido de 0 (ou seja, nenhuma vez) ou 1 vez. [ 1 a 990 ] {... : Expressão indicando que todo o conteúdo entre chaves ( { e ) pode ser adicionado até um limite de 990, mas deve ser inserido pelo menos 1 vez. [seleção entre X ou Y ] { X... Y... : Expressão indicando que deve-se realizar uma escolha entre o código X ou o código Y, lembrando que X e Y podem variar de acordo com os códigos do layout. Exemplo: [seleção entre C02 ou C02a]{ C02 NrDocumento 22
C02a NrDocumento Neste caso, deve-se realizar a escolha entre C02 ou C02a: caso insira C02 (C02 NrDocumento), não poderá ser inserido C02a (C02a NrDocumento) e viceversa. [0 a N] { [seleção entre X ou Y] { X Y : Expressão indicando que todo conteúdo entre chaves ( { e ) pode ser inserido de 0 (ou seja, nenhuma vez) ou mais vezes. Onde para esse conteúdo deve-se fazer uma escolha entre o código X ou o código Y. Os n s X devem ser seguidos e os n s Y também devem ser seguidos. Exemplo: B cuf NatOp... B13 refnfe B13 refnfe B13 refnfe B14 cuf AAMM(ano mês) CNPJ Mod serie nnf B14 cuf AAMM(ano mês) CNPJ Mod serie nnf C XNome XFant IE IEST IM CNAE Nesse exemplo B13 é o X e B14 é o Y. Observe que se pode ter n s B13 e B14, mas todos os B13 s estão juntos e todos os B14 s estão juntos. Cadeias hierárquicas de chaves { : Sempre deve-se seguir a precedência das chaves, de dentro para fora. Exemplo: O ClEnq CNPJProd CSelo QSelo CEnq [seleção entre O07 ou O08]{ O07 CST VIPI [seleção entre O010 ou O11]{ 23
O10 VBC PIPI O11 QUnid VUnid O08 CST Neste caso, caso seja inserido o grupo O (O ClEnq CNPJProd CSelo QSelo CEnq ), a próxima linha a ser inserida deve ser a escolha entre O07 (O07 CST VIPI ) ou O08 (O08 CST ). Caso seja escolhido O07, deve-se escolher ainda entre O010 (O10 VBC PIPI ) ou O011 (O11 QUnid VUnid ). Abaixo segue o layout do arquivo de forma hierárquica e com indentacão para facilita a leitura. Ao realizar a criação dos arquivos, os grupos e campos não devem apresentar { ou os comandos entre [ ]. 24
8 ANEXO III - LAYOUT DAS MENSAGENS DE RETORNO 8.1 Lote Processado pela Sefaz A idlote origemresp cstat xmotivo cuf B chnfe serie Nnf dhrecbto cstat xmotivo nprot digval 8.2 DANFEs emitidos em formulário de segurança A idlote origemresp cstat xmotivo 8.3 Notas emitidas ao SCAN com mudança de série A idlote origemresp cstat xmotivo cuf B chnfe serie Nnf dhrecbto cstat xmotivo seriescan nnfscan 8.4 Lote com estrutura inválida A idlote origemresp cstat xmotivo cuf 8.5 Lote com conteúdo inválido A idlote origemresp cstat xmotivo cuf B chnfe serie Nnf dhrecbto cstat xmotivo 8.6 Lote não pôde ser enviado A idlote origemresp cstat xmotivo cuf 25
9 ANEXO IV - LAYOUT DA MENSAGEM DE ENVIO NF-E TXT NOTA FISCAL qtd notas fiscais no arquivo A versão do schema id B cuf cnf NatOp indpag mod serie nnf demi dsaient tpnf cmunfg TpImp TpEmis CDV TpAmb FinNFe ProcEmi VerProc [0 a N] { [seleção entre B13 ou B14]{ B13 refnfe B14 cuf AAMM(ano mês) CNPJ Mod serie nnf [0 ou 1] { B15 listaemails enviardanfe tipo C XNome XFant IE IEST IM CNAE [seleção entre C02 ou C02a]{ C02 CNPJ C02a CPF 26
C05 XLgr Nro XCpl Bairro CMun XMun UF CEP CPais XPais Fone D CNPJ XOrgao Matr XAgente Fone UF NDAR DEmi VDAR RepEmi DPag E XNome IE ISUF [seleção entre E02 ou E03]{ E02 CNPJ E03 CPF E05 XLgr Nro XCpl XBairro CMun XMun UF CEP CPais XPais Fone F CNPJ XLgr Nro XCpl XBairro CMun XMun UF G CNPJ XLgr Nro XCpl XBairro CMun XMun UF [1 a 990]{ H NItem InfAdProd I CProd CEAN XProd NCM EXTIPI Genero CFOP UCom QCom VUnCom VProd CEANTrib UTrib QTrib VUnTrib VFrete VSeg VDesc [0 a N]{ I18 NDI DDI XLocDesemb UFDesemb DDesemb CExportador [1 a N]{ 27
I25 NAdicao NSeqAdic CFabricante VDescDI [0 ou 1 apenas se veículo]{ J TpOp Chassi CCor XCor Pot CM3 PesoL PesoB NSerie TpComb NMotor CMKG Dist RENAVAM AnoMod AnoFab TpPint TpVei c EspVeic VIN CondVeic CMod [0 a N apenas se medicamento]{ K NLote QLote DFab DVal VPMC [0 a N apenas se armamento]{ L TpArma NSerie NCano Descr [0 a N apenas se combustível]{ L1 CProdANP CODIF QTemp L105 QBCProd VAliqProd VCIDE L109 VBCICMS VICMS VBCICMSST VICMSST L114 VBCICMSSTDest VICMSSTDest L117 VBCICMSSTCons VICMSSTCons UFCons 28
M N [Seleção entre N02 ou N03 ou N04 ou N05 ou N06 ou N07 ou N08 ou N09 ou N10]{ N02 Orig CST ModBC VBC PICMS VICMS N03 Orig CST ModBC VBC PICMS VICMS ModBCST PMVAST PRedBCST VBCST PICMSST VICMSST N04 Orig CST ModBC PRedBC VBC PICMS VICMS N05 Orig CST ModBCST PMVAST PRedBCST VBCST PICMSST VICMSST N06 Orig CST N07 Orig CST ModBC PRedBC VBC PICMS VICMS N08 Orig CST VBCST VICMSST N09 Orig CST ModBC PRedBC VBC PICMS VICMS ModBCST PMVAST PRedBCST VBCST PICMSST VICMSST N10 Orig CST ModBC VBC PRedBC PICMS VICMS ModBCST PMVAST PRedBCST VBCST PICMSST VICMSST 29
O ClEnq CNPJProd CSelo QSelo CEnq [seleção entre O07 ou O08]{ O07 CST VIPI [seleção entre O10 ou O11]{ O10 VBC PIPI O11 QUnid VUnid O08 CST P VBC VDespAdu VII VIOF Q [Seleção entre Q02 ou Q03 ou Q04 ou Q05]{ Q02 CST VBC PPIS VPIS Q03 CST QBCProd VAliqProd VPIS Q04 CST 30
R Q05 CST VPIS [Seleção entre Q07 ou Q10]{ Q07 VBC PPIS Q10 QBCProd VAliqProd [Seleção entre R02, ou R04,]{ R02 VBC PPIS R04 QBCProd VAliqProd S [Seleção entre S02 ou S03 ou S04 ou S05]{ S02 CST VBC PCOFINS VCOFINS S03 CST QBCProd VAliqProd VCOFINS S04 CST S05 CST VCOFINS 31
[Seleção entre S07 ou S09]{ S07 VBC PCOFINS S09 QBCProd VAliqProd T VCOFINS [Seleção entre T02 ou T04]{ T02 VBC PCOFINS T04 QBCProd VAliqProd U VBC VAliq VISSQN CMunFG CListServ W W02 VBC VICMS VBCST VST VProd VFrete VSeg VDesc VII VIPI VPIS VCOFINS VOutro VNF W17 VServ VBC VISS VPIS VCOFINS 32
W23 VRetPIS VRetCOFINS VRetCSLL VBCIRRF VIRRF VBCRetPrev VRetPrev X ModFrete X03 XNome IE XEnder UF XMun [Seleção entre X04 ou X05]{ X04 CNPJ X05 CPF X11 VServ VBCRet PICMSRet VICMSRet CFOP CMunFG X18 Placa UF RNTC [0 a 2]{ X22 Placa UF RNTC [0 a N]{ 33
X26 QVol Esp Marca NVol PesoL PesoB [0 a N]{ X33 NLacre Y Y02 NFat VOrig VDesc VLiq [0 a N]{ Y07 NDup DVenc VDup Z InfAdFisco InfCpl [0 a 10]{ Z04 XCampo XTexto [0 a N]{ Z10 NProc IndProc 34
ZA UFEmbarq XLocEmbarq ZB XNEmp XPed XCont OOBJBOL [1 a 99]{ OOBJBOL01 codigobanco codigobarras codigobarrasformatado localpgto datavencimento cedente agenciacodigocedente numerodocumento especie aceite dataprocessamento nossonumero cip carteira moeda valorduplicata cndrepresentante cdcliente nnfe instrucao1 instrucao2 instrucao3 instrucao4 instrucao5 instrucao6 instrucao7 instrucao8 sacadoidentificacao sacadoendereco sacadotelefone descontoabatimento nomebanco 35
Visando proteger o sistema de faturamento das freqüentes alterações na estrutura da NFE, foi retirado alguns campos do bloco de identificação, que fazem somente parte do contexto NF-e não são necessárias ao ERP, e faz com que modificações na legislação não impacte em ter que modificar o sistema ERP. Todos os campos, incluindo os citados abaixo, estão descritos no documento Template de MAPEAMENTO_XML_TXT_Envio.xls. Os campos retirados estão descritos abaixo em vermelho e tachado, não sendo necessário informar os mesmos, sendo que caso não sejam informados eles devem vir em branco. Grupo Campo Descrição Tipo Ocorrência Tamanho Dec Observação Atributos da NF-e A Versao Versão do leiaute N Obrig 1 a 4 2 Versão do leiaute A Id Identificador da NF-e C Obrig Para a importação: informar apenas o literal NFe. Identificadores da NF-e B cuf Código da UF do emitente do Documento Fiscal B cnf Código Numérico que compõe a Chave de Acesso Para a exportação: será preenchido com a chave de acesso da NF-e precedida do literal NFe N brig 2 Código da UF do emitente do Documento Fiscal. Utilizar a Tabela do IBGE de código de unidades da federação. N cional 9 Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e para evitar acessos indevidos da NF-e. Não informar para a importação. Caso seja informado, será desconsiderado. 36
B natop Descrição da Natureza da Operação C brig 1 a 60 Informar a natureza da operação de que decorrer a saída ou a entrada, tais como: venda, compra, transferência, devolução, importação, consignação remessa (para fins de demonstração, de industrialização ou outra), conforme previsto na alínea 'i', inciso I, art. 19 do CONVÊNIO S/Nº, de 15 de dezembro de 1970. B indpag Indicador da forma de pagamento N brig 1 0 pagamento à vista; 1 pagamento à prazo; 2 - outros. B Mod Código do Modelo do Documento Fiscal C brig 2 Utilizar o código 55 para identificação da NF-e, emitida em substituição ao modelo 1 ou 1A. B Serie Série do Documento Fiscal N brig 1 a 3 Série do Documento Fiscal, informar 0 (zero) para série única. B nnf Número do Documento Fiscal N brig 1 a 9 Número do Documento Fiscal. B demi Data de emissão do Documento Fiscal brig Formato AAAA-MM-DD B dsaient Data de Saída ou da Entrada da Mercadoria/Produto D cional Formato AAAA-MM-DD B tpnf Tipo do Documento Fiscal N 1 0 a entrada / 1 a saída B cmunfg Código do Município de Ocorrência do Fato Gerador N 7 Informar o município de ocorrência do fato gerador do ICMS. Utilizar a Tabela do IBGE B tpimp Formato de Impressão do DANFE N Obrig 1 1 a Retrato/ 2-Paisagem B tpemis Forma de Emissão da NF-e N Obrig 1 1 a Normal/ 2-Contingência B cdv Dígito Verificador da Chave de Acesso da NF-e N Opcional 1 Informar o DV da Chave de Acesso da NF-e, o DV será calculado com a aplicação do algoritmo módulo 11 (base 2,9) da Chave de Acesso. (vide item 5 do Manual de Integração). Não informar para a importação. Caso seja informado, será desconsiderado. B tpamb Identificação do Ambiente N Obrig 1 1 - Produção/ 2 - Homologação B finnfe Finalidade de emissão da NF-e N Obrig 1 1 a NF-e normal/ 2-NF-e complementar / 3 NF-e de ajuste B procemi Processo de emissão da NF-e N Obrig 1 Identificador do processo de emissão da NF-e: 0 - emissão de NF-e com aplicativo do contribuinte; 1 - emissão de NF-e avulsa pelo Fisco; 2 - emissão de NF-e avulsa, pelo contribuinte com seu certificado digital, através do site do Fisco; 3- emissão NF-e pelo contribuinte com aplicativo fornecido pelo Fisco. 37
B verproc Versão do Processo de emissão da NF-e N Obrig 1 a 20 Identificador da versão do processo de emissão (informar a versão do aplicativo emissor de NF-e). Dados de Boletos OOBJBOL Grupo deinformações de boletos Opc. 0 a 1 OOBJBOL01 nomebanco Nome do banco C Obrig. 1 a 255 OOBJBOL01 codigobanco Código do banco C Obrig. 1 a 255 OOBJBOL01 codigobarras Código de barras numérico para leitura C Obrig. 1 a 255 OOBJBOL01 codigobarrasformatado Código de barras formatado para digitação C Obrig. 1 a 255 OOBJBOL01 localpgto Local de pagamento C Opc. 1 a 255 OOBJBOL01 datavencimento Data de vencimento do título C Obrig. 1 a 255 OOBJBOL01 cedente Cedente C Obrig. 1 a 255 OOBJBOL01 agenciacodigocedente Agência do Cedente C Obrig. 1 a 255 OOBJBOL01 numerodocumento Número do título C Obrig. 1 a 255 OOBJBOL01 especie Espécie C Opc. 1 a 255 OOBJBOL01 aceite Aceite C Opc. 1 a 255 OOBJBOL01 dataprocessamento Data de processamento C Opc. 1 a 255 OOBJBOL01 nossonumero Nosso número C Opc. 1 a 255 OOBJBOL01 cip CIP C Opc. 1 a 255 OOBJBOL01 carteira Carteira C Obrig. 1 a 255 OOBJBOL01 moeda Moeda C Opc. 1 a 255 OOBJBOL01 valorduplicata Valor da Duplicata C Obrig. 1 a 255 OOBJBOL01 cndrepresentante C Opc. 1 a 255 OOBJBOL01 cdcliente Código do cliente C Opc. 1 a 255 OOBJBOL01 nnfe Número da NFE C Opc. 1 a 255 OOBJBOL01 instrucao1 Linha de instruções 1 C Opc. 1 a 255 OOBJBOL01 instrucao2 Linha de instruções 2 C Opc. 1 a 255 OOBJBOL01 instrucao3 Linha de instruções 3 C Opc. 1 a 255 38
OOBJBOL01 instrucao4 Linha de instruções 4 C Opc. 1 a 255 OOBJBOL01 instrucao5 Linha de instruções 5 C Opc. 1 a 255 OOBJBOL01 instrucao6 Linha de instruções 6 C Opc. 1 a 255 OOBJBOL01 instrucao7 Linha de instruções 7 C Opc. 1 a 255 OOBJBOL01 instrucao8 Linha de instruções 8 C Opc. 1 a 255 OOBJBOL01 sacadoidentificacao Identificação do sacado C Obrig. 1 a 255 OOBJBOL01 sacadoendereco Endereço do sacado C Opc. 1 a 255 OOBJBOL01 sacadotelefone Telefone do sacado C Opc. 1 a 255 OOBJBOL01 descontoabatimento Desconto ou abatimento C Opc. 1 a 255 39