DANFE e o Código de Barras Escrito por: Eng. Luciano T.Junior Danfe e o Código de Barras.......................................................................... 3 A Chave de Acesso....................................................................................... 4 Cálculo do Dígito Verificador da Chave de Acesso da NF-e........................... 5 Transformando a Chave de Acesso em Código de Barras ............................. 6 O que é uma Fonte de Código de Barras ...................................................... 7 Calculando o Dígito Verificador da Simbologia 128 C................................... 8 Mapeando a Fonte de Código de Barras ..................................................... 10 LinhaBase Developing Tools ...................................................................... 11 O Pacote de Fontes LinhaBase ................................................................... 12 Conclusões ................................................................................................ 13 2 Danfe e o Código de Barras O Danfe e sua representação em código de barras ainda geram muita confusão até mesmo aos profissionais de TI. Este problema está relacionado muitas vezes a dificuldade de leitura dos Manuais cedidos pelas diversas Secretarias Fazendárias e até mesmo pela falta de atenção e vontade de leitura de alguns. Bom, para começar o que é o DANFE? DANFE significa Documento Auxiliar para Nota Fiscal Eletrônica que é um documento impresso em papel onde nele estão contidos dados sobre os produtos fornecidos e em trânsito do fornecedor até um determinado destino e que representa a Nota Fiscal Eletrônica, e que deve acompanhar todas as remessas de mercadoria. No DANFE se encontra a Chave de Acesso que é um conjunto de 44 dígitos que são convertidos em código de barras para facilitação da leitura da Chave de Acesso junto aos sistemas relacionados. Muitos que procuram a LinhaBase querem transformar o DANFE em um documento eletrônico em formato PDF para serem encaminhados a seus clientes via e-mail. Porém a regra para o DANFE é clara e simples. O DANFE é um documento auxiliar a Nota Fiscal Eletrônica e é impresso em papel. 3 A Chave de Acesso A Chave de Acesso da Nota Fiscal Eletrônica é representada por uma sequência de 44 caracteres numéricos, representados da seguinte forma: Quantidade de caracteres Código da UF AAMM da emissão CNPJ do Emitente Modelo Série Número da NF-e Código Numérico DV 02 04 14 02 03 09 09 01 Onde temos: - Código da UF: Código da UF do emitente do Documento Fiscal. - AAMM da Emissão: Ano e Mês de emissão da NF-e. - CNPJ do Emitente: CNPJ do Emitente. - Modelo: Modelo do Documento Fiscal. - Série: Série do Documento Fiscal. - Número da NF-e: Número do Documento Fiscal. - Código Numérico: Código numérico que compõe a Chave de Acesso. - DV: Dígito Verificador da Chave de Acesso. O Dígito Verificador (DV) irá garantir a integridade da chave de acesso, protegendo-a principalmente contra digitações erradas. Não se deve confundir o dígito verificador da Chave de Acesso do DANFE com o dígito verificador do Código de Barras que são dois elementos diferentes. 4 Cálculo do Dígito Verificador da Chave de Acesso da NF-e O dígito verificador da chave de acesso da NF-e é baseado em um cálculo do módulo 11 Base 9. O módulo 11 com Base 9 de um número é calculado multiplicando-se cada algarismo pela sequência de multiplicadores 2,3,4,5,6,7,8,9,2,3, ... posicionados da direita para a esquerda. A somatória dos resultados das ponderações dos algarismos é dividida por 11 e o DV (dígito verificador) será a diferença entre o divisor (11) e o resto da divisão: DV = 11 - (resto da divisão) Quando o resto da divisão for 0 (zero) ou 1 (um), o DV deverá ser igual a 0 (zero). Exemplo: consideremos que a chave de acesso tem a seguinte sequência de caracteres: A 5 2 0 6 0 4 3 3 0 0 9 9 1 1 0 0 2 5 0 6 5 5 0 1 2 0 0 0 0 0 0 7 8 0 0 2 6 7 3 0 1 6 1 B 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 Onde A é a Chave de Acesso e B são os pesos da multiplicação ou Ponderação em Base 9. Multiplicando cada valor de A x B e somando seu resultado temos como resposta: 644 Dividindo a somatória das ponderações por 11 teremos, 644 /11 = 58 restando 6. Como o dígito verificador DV = 11 - (resto da divisão), portando 11 - 6 = 5 Neste caso o DV da Chave de Acesso da NF-e é igual a "5", valor este que deverá compor a chave de acesso totalizando a uma seqüência de 44 caracteres, ficando a chave de acesso com a seguinte numeração: 52060433009911002506550120000007800267301615 Onde cada valor da Chave de Acesso representa: - Código da UF: 52. - AAMM da Emissão: 0604. - CNPJ do Emitente: 33009911002506. - Modelo: 55. - Série: 012. - Número da NF-e: 000000780. - Código Numérico: 026730161. - DV: 5. 5 Transformando a Chave de Acesso em Código de Barras O principal método de criar código de barras em sistemas para emissão de NF-e e DANFE é a utilização de fontes de Código de Barras. A LinhaBase para este tipo de atendimento fornece o Pacote de Fontes de Código de Barras 128 (A, B e C), EAN 128 e para Nota Fiscal Eletrônica. Para Conhecer mais sobre este produto acesse: http://fontecodigodebarras.linhabase.com Neste momento esqueça completamente o que os Manuais fornecidos pelas Secretarias Fazendárias informam sobre a composição do código de barras e se baseie somente no que a LinhaBase informa. Pois as Secretarias Fazendárias são órgãos responsáveis pela Gestão da Nota Fiscal Eletrônica e pelo DANFE e a LinhaBase é a empresa especializada na produção de Código de Barras, logo ao utilizar o Pacote de Fontes de Código de Barras 128 da LinhaBase todas as regras estipuladas para a criação do Código de Barras estão sendo atendidas de forma natural e automática. Foi escolhido como simbologia do Código de Barras para a representação da Chave de Acesso a simbologia 128 C. A simbologia 128 C é uma simbologia de Código de Barras numérica, onde os dados a serem codificados devem ter uma quantidade par de dígitos e são acrescentados os Códigos de Start C, o Dígito Verificador da Simbologia de Código de Barras e o Código de Stop. Ficando a composição do Código de Barras com o seguinte layout: Start C + Chave de Acesse com 44 dígitos + Dígito Verificador do Código de Barras + Stop. 6 O que é uma Fonte de Código de Barras Uma fonte de código de barras é um repositório de símbolos gráficos alocados em determinadas posições geridas pela tabela ASCII. Com isso uma fonte somente apresenta o símbolo gráfico correspondente ao caractere chamado, ou seja, em uma fonte do tipo Arial quando se pressiona no teclado a letra A, isto é traduzido pelo sistema que pede a fonte para retornar o símbolo gráfico, correspondente ao valor ASCII 65, que neste caso é a própria letra A. Com Código de Barras isto também é feito pela fonte, contudo em cada posição é contido um conjunto de barras que representa um determinado valor, que vai variar conforme a regra de cada simbologia de código de barras. Porém cabe ao sistema desenvolvido pelo usuário em sua linguagem de programação preferida indicar a fonte de código de barras que caracteres devem ser pegos cada símbolo gráfico. Por exemplo, para a Chave de Acesso: 52060433009911002506550120000007800267301615 Temos a seguinte sequência de caracteres que deve ser encaminhada a fonte de código de barras: ÍT&$AÂÇ+Â9&W!4ÂÂ'p"c>0/-Ó Esta sequência de caracteres é chamada de Mapeamento da Fonte de Código de Barras e que irá criar um código de barras válido para leitura. Onde nesta sequência de Mapeamento já estão incluídos o layout da simbologia 128 C (Start C + Chave de Acesso com 44 dígitos + Dígito Verificador do Código de Barras + Stop). Isto fará a fonte de Código de Barras apresentar o seguinte código de barras: 7 Calculando o Dígito Verificador da Simbologia 128 C Cada simbologia de Código de Barras tem suas regras próprias de criação, e para a simbologia 128 existe a inserção do dígito verificador da simbologia, além dos caracteres de Start e Stop. Para se calcular o dígito verificador da simbologia 128 C e levando-se em conta que está sendo utilizado o Pacote de Fontes de Código de Barras 128 da LinhaBase faça o que se segue. A simbologia 128 C também apresenta um dígito verificador diferente do dígito verificador da Chave de Validação do DANFE. O dígito da simbologia valida a leitura do código de barras juntos aos leitores compatíveis com a simbologia 128 e é apresentado no Manual do Usuário que acompanha o produto da LinhaBase. - Passo 1 (tabela página 9 do Manual do Usuário do Pacote de Fontes de Código de Barras 128 / coluna Code C) Analisando a numeração acima de 2 em 2 e acrescentando a posição de Start C. Observando a coluna Code C temos: Start C 52 06 04 33 00 99 11 00 25 06 55 01 20 00 00 07 80 02 67 30 16 15 105 x 1 = 105 52 x 1 = 52 6 x 2 = 12 4 x 3 = 12 33 x 4 = 132 0x5=0 99 x 6 = 594 11 x 7 = 77 0x8=0 25 x 9 = 225 6 x 10 = 60 55 x 11 = 605 1 x 12 = 12 20 x 13 = 260 0 x 14 = 0 0 x 15 = 0 7 x 16 = 112 80 x 17= 1360 2 x 18 = 36 67 x 19 = 1273 30 x 20 = 600 16 x 21 = 336 15 x 22 = 330 - Passo 2 (somatório) Somar os resultados das multiplicações do Passo 1. 105 + 52 + 12 + 12 + 132 + 0 + 594 + 77 + 0 + 225 + 60 + 605 + 12 + 260 + 0 + 0 + 112 + 1360 + 36 + 1273 + 600 + 336 + 330 = 6193 8 - Passo 3 (calculo do módulo) Realizar o cálculo em módulo 103 do Passo 2. 6193 MOD 103 = 13 - Passo 4 (Dígito verificador) Na coluna valor da Tabela de Dígito Verificador procuramos pelo valor que na coluna Code C representa o valor 13. 13 -> Valor na coluna Code C: 13 Adiantando, o caractere de mapeamento do dígito verificador deverá representar o valor -. 9 Mapeando a Fonte de Código de Barras Verificar na tabela da página 11 do Manual do Usuário do Pacote de Fontes de Código de Barras 128 e analisando a coluna Código C, buscar o valor do caractere na coluna Caractere. Valor Start C 52 06 04 33 00 99 11 00 25 06 55 01 20 00 00 07 80 02 67 30 16 15 Dígito verificador, valor 13 Stop Caractere Í T & $ A Â Ç + Â 9 & W ! 4 Â Â ‘ p “ c > 0 / Ó Valor ASCII 205 84 38 36 65 194 199 43 194 57 38 87 33 52 194 194 39 112 34 99 62 48 47 45 211 Sequência de caracteres completa: ÍT&$AÂÇ+Â9&W!4ÂÂ'p"c>0/-Ó Esta sequência de caracteres é encaminhada a fonte de código de barras e é gerado um código de barras 128 C correto. Sendo este processo compatível com as principais linguagens de programação e permitindo ao usuário desenvolver suas próprias rotinas de desenvolvimento. 10 LinhaBase Developing Tools O LinhaBase Developing Tools é um conjunto de ferramentas compostas por arquivos DLLs que realizam para o programador toda a análise da Chave de Acesso, e como resposta retorna a sequência de Mapeamento completa. Ou seja o programador no ato do desenvolvimento de sua aplicação encaminha a numeração 52060433009911002506550120000007800267301615 e como resposta obtêm o Mapeamento da Fonte de Código de Barras ÍT&$AÂÇ+Â9&W!4ÂÂ'p"c>0/-Ó de forma totalmente automática, sem necessidade de verificação de tabelas de Mapeamento, cálculos e outros passos necessários como mostrado anteriormente. O LinhaBase Developing Tools é fornecido no Pacote de Fontes de Código de Barras 128 e é compatível com: - Visual Basic 6.0. - .Net (Windows Application). - Crystal Reports 10 ou superior. O LinhaBase Developing Tools é uma exclusividade LinhaBase. 11 O Pacote de Fontes LinhaBase O Pacote de Fontes de Código de Barras 128 da LinhaBase é composto por: - Fontes de Código de Barras: 5 arquivos da fonte de código de barras no padrão TTF (True Type). Incluí também fontes de código de barras otimizadas para uso em DANFE (exclusividade LinhaBase). - LinhaBase Developing Tools: Facilita a criação da formatação do dado a ser codificado de forma automática no Visual Basic 6.0, .Net (Windows Application) e Crystal Reports 10 ou superior. Sem que o usuário se preocupe com criação de rotinas complexas de cálculo de dígito verificador, verificação de paridades, regras da simbologia e mapeamento da fonte de código de barras. E é formado por: 1 arquivo DLL para Visual Basic 6.0, 1 arquivo DLL para Crystal Reports 10 ou superior, 1 arquivo DLL para .Net (Framework 1.1 ou superior, Windows Application) (exclusividade LinhaBase). - LinhaBase MSI: Auxilia a instalação das fontes de código de barras e DLL para Visual Basic e DLL para Crystal Reports em computadores clientes por meio do Windows Installer ou aplicativos de instalação (Setup) (exclusividade LinhaBase). Manual do Usuário: Apresenta informações sobre a simbologia, mapeamento da fonte de código de barras e exemplos de integração com o LinhaBase Developing Tools. * Para usuários de outras plataformas (ou para aqueles que optarem não usar o LinhaBase Developing Tools e MSI), estes devem trabalhar com as instruções da simbologia e mapeamento da fonte TTF como indicado no Manual do Usuário de modo a produzir suas rotinas de construção do código de barras. Para conhecer melhor os Pacotes de Fontes de Código de Barras LinhaBase acesse: http://fontecodigodebarras.linhabase.com 12 Conclusões Criar um DANFE é fácil quando se realmente sabe o que significa cada elemento que o compõe. E deve-se verificar principalmente os seguintes pontos: 1 – O DANFE é um documento impresso. 2 – O DANFE é formado pela Chave de Acesso que é composta por 43 dígitos + 1. Sendo o último dígito o Dígito Verificador. 3 – A simbologia de Código de Barras adotada é a 128 C, e para se criar um aplicativo para criação de DANFE o melhor é empregar fontes de Código de Barras e utilize exclusivamente as informações dadas pela LinhaBase para este propósito. 4 – O tamanho do Código de Barras 128 C para a impressão de um DANFE é de aproximadamente 1,7 x 6,0 cm (A x L) podendo em alguns casos ter 8,6 cm de largura (as fontes de Código de Barras LinhaBase estão totalmente compatíveis com esta determinação). 5 – O Pacote de Fontes de Código de Barras 128 LinhaBase é o único fornecido com fontes otimizadas para uso em DANFE e acompanhadas de Manual com Mapeamento Completo, e LinhaBase Developing Tools e LinhaBase MSI. 6 – Fontes são consideradas recursos de máquina, por isso devem ser instaladas nos computadores que irão realizar o processo de impressão. Sendo assim, não são indicadas para uso Web ou similares. 7 – Fontes de Código de Barras tendem a ter seu tamanho reduzido quando são interpoladas para uso em padrão PDF. 8 – A impressão de um DANFE deve ser realizado em impressoras laser de boa qualidade para se garantir uma impressão do código de barras em total acordo com as normas ISO/IEC. 9 – O leitor de código de barras deve ser compatível com a simbologia 128 C, e cada leitor têm sua “sensibilidade”. Com isso, um leitor pode ler perfeitamente um determinado código de barras e rejeitar outros, mesmo este estando devidamente criado. 13 Dande e o Código de Barras Escrito por: Eng. Luciano T.Junior Nov/09 – Versão: 1 LinhaBase Softwares Ltda – A Primeira em Código de Barras. www.linhabase.com.br