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 02 04 14 02 03 09 09 01 DV 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: - Passo 2 (somatório) Start C 105 x 1 = 105 52 52 x 1 = 52 06 6 x 2 = 12 04 4 x 3 = 12 33 33 x 4 = 132 00 0 x 5 = 0 99 99 x 6 = 594 11 11 x 7 = 77 00 0 x 8 = 0 25 25 x 9 = 225 06 6 x 10 = 60 55 55 x 11 = 605 01 1 x 12 = 12 20 20 x 13 = 260 00 0 x 14 = 0 00 0 x 15 = 0 07 7 x 16 = 112 80 80 x 17= 1360 02 2 x 18 = 36 67 67 x 19 = 1273 30 30 x 20 = 600 16 16 x 21 = 336 15 15 x 22 = 330 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 Caractere Valor ASCII Start C Í 205 52 T 84 06 & 38 04 $ 36 33 A 65 00 Â 194 99 Ç 199 11 + 43 00 Â 194 25 9 57 06 & 38 55 W 87 01! 33 20 4 52 00 Â 194 00 Â 194 07 39 80 p 112 02 34 67 c 99 30 > 62 16 0 48 15 / 47 Dígito verificador, valor 13-45 Stop Ó 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