ASP.NET - Gerando boletos bancários
Há algum tempo atrás(2001) eu publiquei dois artigos nos quais tratei da geração de boletos bancários usando o Visual Basic 6 e o Crystal Reports. Se você ainda tem interesse nesse assunto pode acessar os artigos nos links:
Veja também o componente que gera o código de barras a partir da linha digitável usando o Visual Basic 6:
Se você não sabe o que é um boleto bancário (em que planeta você vive ?) veja abaixo a figura apresentando um boleto bancário e suas partes principais:
Apenas para manter o assunto atualizado eu estou publicando abaixo o trecho referente as especificações técnicas para bloqueto de cobrança bancária conforme normas do Banco Central do Brasil, publicadas em sua Carta-Circular Nº 2926, de 25/07/2000.
Nota: Este texto foi literalmente retirado da Wikipédia - Bloqueto de cobrança - Wikipédia.
Sugiro acessar o link para ver mais detalhes sobre o assunto.
Código de BarrasO código de barras deve ser do tipo "2 de 5" intercalado que significa que 5 barras definem 1 caractere, sendo que duas delas são barras largas; "intercalado" significa que os espaços entre barras também têm significado, de maneira análoga às barras; a distância mínima entre a margem inferior e o centro do código de barras deve ser de 12mm. DimensõesO código de barras deve ter altura de 13mm. De acordo com o padrão “2 de 5”, o código de barras deve apresentar a largura de 103mm, pois essa é a dimensão que os equipamentos dos bancos estão calibrados para efetuar a leitura. Zona de silêncioÉ o espaço entre a margem esquerda do bloqueto e o início da impressão do código de barras, que deve ser de 5mm. O código de barras é composto, no seu lado esquerdo, por “barras de start”, que indicam para o sistema que ali se inicia a leitura e, no seu final, por “barras de stop”, indicando o final da leitura. Composição
Campo LivreO campo livre irá conter as informações do cedente, para que a instituição financeira possa transferir de forma correta o valor que o sacado está pagando naquele determinado bloqueto para o cedente.
Cálculo do Dígito Verificador GeralPara o cálculo do dígito verificador (DV) do código de barras, deve-se utilizar o módulo 11, considerando os 43 dígitos que compõem o código de barras, pois, obviamente, deve-se excluir a 5ª posição do cálculo do DV, uma vez que ela pertence ao próprio DV. O módulo 11 deverá ser utilizado da seguinte maneira:
Observação: para o código de barras, sempre que o resto for 0, 1 ou 10, deverá ser utilizado o dígito 1. Exemplo: BANCO M DV FATOR VALOR CAMPO LIVRE +-----+---+---+--------+---------------+---------+---------------+----------------+ | 799 | 9 | | 1232 | 0000006600 | 78781 | 3087550304 | 2541200000 | Dados do código +-----+---+---+--------+---------------+---------+---------------+----------------+ 432 9 8765 4329876543 29876 5432987654 3298765432 Fatores de multiplicação Soma dos produtos: X = 720 Divisão: Y = 720/11 = 65,4545... = 65 + 5/11 Resto: R = 5 Dígito verificador: DV = 11 - R = 11 - 5 = 6 Em nosso exemplo acima, para o código de barras proposto, teríamos 6 como DV, a ser inserido na 5ª posição do código de barras. Nosso NúmeroComo forma de identificação do boleto perante a área de cobrança, foi criado o "Nosso Número" a ser montado conforme as regras estipuladas nos manuais de cada Banco. Este número está localizado no canto superior da Ficha de Compensação. Fator de VencimentoO Fator de Vencimento é um referencial numérico de 4 dígitos, situado nas quatro primeiras posições do campo “valor”, que representa a quantidade de dias decorridos da Data Base à data de vencimento do título. Cálculo do Fator de VencimentoFoi estipulada como o marco zero para o cálculo do Fator de Vencimento a Data Base de 07.10.1997. Para se obter o Fator de Vencimento temos que calcular o número de dias entre a data base e a data do vencimento (a data de vencimento menos a data base será igual ao fator). VENCIMENTO 11.07.2007 DATA BASE - 07.10.1997 FATOR DE VENCIMENTO 1000 A partir desta fórmula, podemos montar a seguinte tabela de correlação com alguns exemplos de datas de vencimento e seus respectivos fatores de vencimento: VENCIMENTO FATOR 03.07.2000 1000 05.07.2000 1002 01.12.2002 1881 29.03.2007 3460 11.11.2011 5148 21.02.2025 9999 Observações:
Linha DigitávelConceitoOs dados da linha digitável representam o conteúdo do código de barras, dispostos em outra ordem e acrescidos de dígitos verificadores nos 3 primeiros campos. Deve ser utilizada quando da impossibilidade da captura do código de barras e/ou para pagamentos em terminais de auto-atendimento, Internet, home/office bank, personal bank, etc. Composição
Exemplo de linha digitável: 99997.77213 30530.150082 18975.000003 1 10010000035000 -------------- ---------------- --------------- -- ------------------- 1º campo 2º campo 3º campo DV Fator de vencimento/Valor Observações:
Cálculo do Dígito Verificador para os três primeiros camposPara se calcular o Dígito Verificador de cada um dos três primeiros campos, deve-se utilizar o módulo 10, da seguinte maneira:
Observação: Utilizar o dígito "0" para o resto 0 (zero). Exemplo: 1º CAMPO +---+---+---+---+---+---+---+---+---+---+---+ | 9 | 9 | 9 | 9 | 7 | . | 7 | 7 | 2 | 1 | | Dados do código +---+---+---+---+---+---+---+---+---+---+---+ | | | | | | | | | x2 x1 x2 x1 x2 x1 x2 x1 x2 Fatores de multiplicação | | | | | | | | | =18 =9 =18 =9 =14 =7 =14 =2 =2 Soma dos produtos: X = (1+8) + 9 + (1+8) + 9 + (1+4) + 7 + (1+4) + 2 + 2 = 57 Divisão: Y = 57/10 = 5,7 = 50 + 7/10 Resto: R = 7 Dígito verificador: DV = 10 - R = 10 - 7 = 3 Logo, o dígito verificador para o primeiro campo do exemplo acima é 3. fonte: Wikipédia- Bloqueto de cobrança - Wikipédia. |
Após você compreender como montar o código de barras para boletos bancários se você pretende usá-los em seu negócio ou sua aplicação vai ter as seguintes opções:
E se minha aplicação for ASP.NET ?
Bem , nesse caso você ganhou o dia pois eu vou mostrar como criar boletos bancários para a plataforma .NET usando um Framework da Net.Raptors que é totalmente gratuito e que você pode pegar no link: http://www.dotnetraptors.com.br/start/ seção Downloads.
Então acompanhe a continuação deste artigo, no link abaixo, onde eu vou criar aplicações exemplos na plataforma .NET que geram boletos bancários usando este Framework.
Continua em : ASP.NET - Gerando boletos bancários II
Até lá...
Referências:
José Carlos Macoratti