Pular para o conteúdo
Todos os conceitos

Boleto: linha digitável e dígitos verificadores

Os 47 números do boleto dizem banco, vencimento e valor, e trazem dígitos verificadores que pegam número trocado.

A linha digitável é a versão em números do código de barras, para quem paga digitando. Um exemplo, de um boleto de R$ 150,00 que vence em 10/12/2026:

99991.20307 04417.800002 00725.193007 9 16560000015000

São cinco campos:

Campo No exemplo O que é
1 99991.20307 banco 999 (fictício), moeda 9 (real), 5 dígitos do campo livre e o dígito verificador 7
2 04417.800002 mais 10 dígitos do campo livre e o dígito verificador 2
3 00725.193007 os últimos 10 dígitos do campo livre e o dígito verificador 7
4 9 o dígito verificador geral, do código de barras inteiro
5 16560000015000 fator de vencimento 1656 e valor 0000015000 (R$ 150,00, em centavos)

O campo livre (25 dígitos espalhados pelos campos 1 a 3) é do banco: cada banco põe ali, no formato dele, os dados da cobrança, como agência, conta de quem recebe e nosso número. O fator de vencimento conta dias: o 1000 caiu em 22/02/2025, e cada dia soma um.

a linha digitável, campo a campo DV: dígito verificador 99991.20307 04417.800002 00725.193007 9 16560000015000 cada um com o seu DV DV geral vencimento e valor o DV do campo 1, pelo módulo 10 dígitos pesos somados 9 9 9 9 1 2 0 3 0 2 1 2 1 2 1 2 1 2 9 9 9 9 2 2 0 3 0 18 vira 1 + 8 = 9 = 43 falta 7 para 50: o DV é 7
A linha digitável tem cinco campos: os três primeiros terminam num dígito verificador próprio, o quarto é o verificador geral, e o quinto traz vencimento e valor.

O dígito verificador dos campos 1 a 3 (módulo 10). Tire o ponto e separe o último dígito. Nos outros, da direita para a esquerda, multiplique por 2, 1, 2, 1... Se um produto passar de 9, some os algarismos dele. No campo 1 do exemplo, 999912030:

dígitos   9   9   9   9   1   2   0   3   0
pesos     2   1   2   1   2   1   2   1   2
produtos 18   9  18   9   2   2   0   3   0
somados   9   9   9   9   2   2   0   3   0   = 43

Falta 7 para chegar a 50, a próxima dezena: o dígito verificador é 7, e é ele que está no fim do campo. Se a soma já for uma dezena redonda, o dígito é 0.

O dígito verificador geral (módulo 11). Monte os 44 dígitos do código de barras (banco, moeda, verificador geral, fator, valor e campo livre, nessa ordem), deixe de fora o verificador e multiplique os outros 43, da direita para a esquerda, por 2, 3, 4, 5, 6, 7, 8, 9, 2, 3... Some, divida por 11 e subtraia o resto de 11. Se der 0, 10 ou 11, o dígito é 1.

Em Python, o módulo 10:

def mod10(d):
    soma, peso = 0, 2
    for c in reversed(d):
        p = int(c) * peso
        soma += p // 10 + p % 10
        peso = 3 - peso
    return (10 - soma % 10) % 10

O dígito verificador pega um número digitado errado ou trocado à mão sem refazer a conta, e por isso o aplicativo do banco recusa a linha. Ele não pega golpista caprichoso: quem gera um boleto no próprio banco tem todos os dígitos certos. Antes de pagar qualquer boleto, confira três coisas: os três primeiros dígitos são o código do banco que aparece no boleto; o valor no fim é o que você deve; e, na tela de confirmação do aplicativo, o nome e o documento do beneficiário são de quem você deve pagar.

Aparece nestes desafios