Como ler a linha digitável do boleto
A linha digitável de 47 dígitos e o código de barras de 44 carregam as mesmas informações em ordens diferentes. Veja onde estão o banco, o valor e o vencimento, como os dígitos verificadores funcionam, o que mudou no fator de vencimento em 22/02/2025 e por que o boleto de 48 dígitos é outra coisa.
Duas representações do mesmo dado
Todo boleto bancário (o de cobrança) tem um código de barras de 44 posições, que é o que o leitor ótico lê, e uma linha digitável de 47 dígitos, que é a mesma informação reorganizada para ser digitada ou copiada. A Convenção da FEBRABAN deixa claro que os dados da linha digitável não aparecem na mesma sequência dos do código de barras. Quem desenvolve ou concilia pagamentos precisa saber converter entre os dois.
O código de barras de 44 posições
- Posições 1 a 3: código do banco destinatário.
- Posição 4: código da moeda. O 9 indica real.
- Posição 5: dígito verificador (DV) geral do código de barras, calculado em módulo 11.
- Posições 6 a 9: fator de vencimento (4 dígitos).
- Posições 10 a 19: valor, 10 dígitos, em centavos, sem vírgula.
- Posições 20 a 44: campo livre, 25 dígitos. Cada banco define o conteúdo (agência, conta, carteira, nosso número etc.).
A linha digitável de 47 dígitos
Ela é dividida em cinco campos. Os três primeiros terminam com um DV próprio em módulo 10; o quarto é só o DV geral; o quinto junta fator e valor.
- Campo 1: banco (3) + moeda (1) + posições 20 a 24 do código de barras + DV do campo.
- Campo 2: posições 25 a 34 + DV do campo.
- Campo 3: posições 35 a 44 + DV do campo.
- Campo 4: o DV geral (posição 5 do código de barras).
- Campo 5: fator de vencimento (4) + valor (10).
Exemplo real, dígito a dígito
Este é o exemplo clássico da documentação de cobrança, calculado com o código do Me Ajuda Flow. A linha digitável é:
00190.50095 40144.816069 06809.350314 3 37370000000100
- Campo 1, 00190.50095: banco
001(Banco do Brasil), moeda9, início do campo livre05009, DV5. - Campo 2, 40144.816069:
4014481606e DV9. - Campo 3, 06809.350314:
0680935031e DV4. - Campo 4:
3, o DV geral. - Campo 5, 37370000000100: fator
3737e valor0000000100, ou seja, R$ 1,00.
Montando o código de barras de 44 dígitos na ordem correta (banco, moeda, DV geral, fator, valor, campo livre), o resultado é:
00193373700000001000500940144816060680935031
O campo livre é a concatenação das posições 20 a 44: 0500940144816060680935031. O fator 3737 corresponde a 31/12/2007, e os três DVs de campo e o DV geral conferem.
Como os DVs funcionam
Os DVs de campo (módulo 10) servem para detectar erro de digitação dentro de cada bloco: você digita o campo 2 errado e o DV acusa. O DV geral (módulo 11) confere o código de barras inteiro. Por isso um erro de digitação é apontado pelo campo, e não só no final. No módulo 10 os dígitos são multiplicados alternadamente por 2 e 1, da direita para a esquerda, e os algarismos dos produtos são somados. Para 001905009 o DV é 5, e para 4014481606 é 9. Confirme os detalhes do cálculo na Convenção da FEBRABAN antes de implementar do zero.
Fator de vencimento e a reinicialização de 22/02/2025
O fator de vencimento é um contador de dias com 4 dígitos, que entrou no código de barras pela Carta-Circular 2926 do Banco Central, com validade a partir de 1º de setembro de 2000. A mesma norma diz que 0000 nesse campo indica que o código de barras não contém fator de vencimento.
A contagem parte de 07/10/1997. Ao chegar em 9999, em 21/02/2025, ela foi reiniciada em 1000 a partir de 22/02/2025, conforme comunicado da FEBRABAN divulgado pelo mercado. Com o código do Me Ajuda Flow:
- Fator 9999 = 21/02/2025.
- Fator 1000 = 22/02/2025 (e, no ciclo antigo, 03/07/2000).
- Fator 1001 = 23/02/2025.
- Fator 1002 = 24/02/2025.
Consequência prática: o mesmo número pode significar duas datas, uma de cada ciclo. O fator 3737 do exemplo acima é 31/12/2007 no ciclo antigo, e seria 21/08/2032 no novo. Um sistema que lê boletos precisa decidir qual ciclo usar, em geral o mais próximo da data de hoje, e mostrar a data para conferência humana. O ciclo novo vai de 1000 até 9999 de novo, o que dá 9.000 dias: o próximo limite é por volta de 13/10/2049.
Boleto de convênio e arrecadação: 48 dígitos
Contas de consumo (água, luz, telefone) e tributos usam outro padrão. A linha tem 48 dígitos, em quatro blocos de 11 dígitos, cada um seguido do seu próprio DV, e o código começa com 8. Esse formato não segue o leiaute banco, moeda e campo livre. Pelo que o decodificador do Me Ajuda Flow implementa, o início identifica o produto e o segmento (por exemplo, energia elétrica e gás), o valor e o tipo de DV, e o restante identifica a empresa ou órgão e o documento; confirme na convenção de arrecadação. Um código de barras de convênio também tem 44 dígitos, mas não é um boleto bancário, e tratá-lo como tal gera erro.
Exemplo gerado pelo código do Me Ajuda Flow, com dados fictícios: a linha 836900000016 234512345674 812345678906 000000000000 (48 dígitos, sem pontos) tem o código de barras de 44 dígitos 83690000001234512345678123456789000000000000 e valor de R$ 123,45 (segmento 3, energia elétrica e gás). O leiaute completo desse padrão pertence a outra convenção, que não abri aqui: use a documentação da FEBRABAN para o convênio quando precisar de todos os campos.
Checklist de validação
- Conte os dígitos: 47 (cobrança), 48 (convênio) ou 44 (código de barras).
- Se começa com 8 e tem 44 ou 48 dígitos, é convênio, não cobrança.
- Confira os três DVs de campo e o DV geral.
- Leia o valor dos 10 últimos dígitos e divida por 100. Valor zero merece atenção: confirme com o emissor se o valor é variável.
- Se o fator for 0000, não há vencimento no código. Se não, converta o fator e confira a data.
Para fazer essa decodificação sem escrever código, cole a linha na ferramenta de boleto do Me Ajuda Flow: ela separa os campos, confere os DVs e mostra o vencimento. Para o equivalente do Pix, veja o decodificador de Pix; para conferir datas, a calculadora de datas.