Pular para conteúdo

Banco do Brasil (001)

Manuais oficiais de referência: Especificação de Boleto de Cobrança (BB, jan/2016) · CNAB 240 — Cobrança (BB, ago/2017) · Layout FEBRABAN 240 posições. Fontes e portal em fontes-oficiais.md — os PDFs não são redistribuídos, apenas citados.

Implementação: pycobranca/bancos/banco_do_brasil.py · Dígito do banco: 9 · PIX: ✅

Logo empacotado: disponível via logo_do_banco("001") — a marca é do banco (uso nominativo); ver render/logos/NOTICE.md.

Resumo

Convênios 4/6/7; no convênio 7 o nosso número tem 17 dígitos (convênio + sequencial, sem DV).

Campo livre (posições 20–44 do código de barras)

Convênio Layout do campo livre (25) Sequencial
7 dígitos (padrão atual) 000000 + convênio(7) + sequencial(10) + carteira(2) 10
6 dígitos convênio(6) + sequencial(5) + agência(4) + conta(8) + carteira(2) 5
4 dígitos convênio(4) + sequencial(7) + agência(4) + conta(8) + carteira(2) 7

No convênio de 7 dígitos o nosso número tem 17 posições (convênio + sequencial), sem DV no campo livre.

Dígitos verificadores

  • Nosso número: no convênio de 7 dígitos (17 posições) não há DV embutido no campo livre; nos convênios de 4/6 dígitos o sequencial também entra sem DV no campo livre.
  • O DV geral do código de barras (posição 5) é o módulo 11 padrão sobre as 43 posições — calculado igual para todos os bancos.

Carteiras suportadas

11, 12, 15, 16, 17, 18, 31, 51.

Validação de campos (geração do boleto)

Tamanhos em dígitos (mín.–máx.); a máscara é descartada e o valor é preenchido com zero à esquerda. Violações vêm em BoletoInvalido.erros (lista) — ver o contrato de erros e a matriz completa.

Campo Regra
Convênio 4, 6 ou 7 dígitos
Nosso número máximo conforme convênio: conv7→10, conv6→5, conv4→7
Agência até 4 dígitos (só convênios 4 e 6)
Conta até 8 dígitos (só convênios 4 e 6)
Carteira conjunto: 11, 12, 15, 16, 17, 18, 31, 51

Formatos de exibição

  • Nosso número (convênio 7): convênio + sequencial12345670000000123.

Exemplo validado (por vetores de referência ✓)

Entrada: convênio 1234567, nosso número 123, carteira 18, R$ 127,50, vencimento 15/08/2026.

Campo livre:      0000001234567000000012318
Código de barras: 00199153900000127500000001234567000000012318
Linha digitável:  00190.00009 01234.567004 00000.123182 9 15390000012750

Remessa CNAB 400 — implementada e validada byte a byte ✓

Implementação: pycobranca/cnab/cnab400/banco_brasil.py · fixture: tests/fixtures/remessa_banco_brasil_cnab400.rem

Estrutura do arquivo (registros de 400 posições, CRLF, maiúsculas sem acentos):

Registro Conteúdo principal
Header (01REMESSA01COBRANCA) info da conta (agência + DV agência + conta 8 + DV conta + 000000) · empresa(30) · 001 + BANCODOBRASIL · data (DDMMAA) · sequencial de remessa(7) + convênio líder(7)
Detalhe (tipo 7) tipo/CPF-CNPJ da empresa · agência + DV + conta 8 + DV · convênio(7) · uso da empresa(25) · convênio(7) + nosso número(10) · variação da carteira(3) · carteira(2) · ocorrência · nº documento(10) · vencimento (DDMMAA) · valor(13) · 001 · espécie · aceite · emissão · instruções(2+2) · mora/desconto/IOF/abatimento · sacado (doc/nome 37/endereço 40/bairro 12/CEP/cidade 15/UF) · dias de protesto
Trailer (tipo 9) 393 brancos + sequencial(6)

DVs (módulo 11): agência com mapa {10: "X"}; conta com mapa {10: "X"}.

Remessa CNAB 240 — implementada e validada byte a byte ✓

Implementação: pycobranca/cnab/cnab240/banco_brasil.py · fixture: tests/fixtures/remessa_banco_brasil_cnab240.rem

Estrutura em lotes (registros de 240 posições, CRLF, maiúsculas sem acentos). Versão do layout de arquivo 083, de lote 042. data_geracao_fixa/hora_geracao_fixa tornam a geração determinística.

Registro Conteúdo principal
Header de Arquivo (0) 001 · CPF/CNPJ · código do convênio (convênio 9 + 0014 + carteira 2 + variação 3) · info da conta (agência 5 + DV + conta 12 + DV) · empresa(30) · BANCO DO BRASIL S.A. · data + hora + sequencial(6) · versão 083
Header de Lote (1) tipo de operação R/serviço 01 · convênio do lote (igual ao do arquivo) · info da conta · empresa(30) · mensagens(40+40) · versão 042
Segmento P ocorrência · agência 5 + DV · conta 12 + DV · identificador do título (convênio + nosso número com DV) · carteira 7 · vencimento (DDMMAAAA) · valor(15) · espécie 02 · emissão · mora/desconto/IOF/abatimento · protesto
Segmento Q dados do sacado (tipo/doc 15/nome 40/endereço 40/bairro 15/CEP/cidade 15/UF) · avalista
Trailers de Lote (5) e de Arquivo (9) contadores de registros/lotes

Nosso número (módulo 11 BB por convênio): convênio de 7 dígitos → 10 posições sem DV; convênios de 4/6 dígitos → 7/5 posições + DV {10: "X"}. DV agência/conta módulo 11 {10: "X"}.