Pular para conteúdo

BRB — Banco de Brasília (070)

Manual oficial de referência: Layout de Remessa DCB — BRB / Banco de Brasília (obtido via canal de homologação do banco). Sem manual público localizado — layout portado por paridade byte a byte com os vetores de referência; ver fontes-oficiais.md.

Implementação: pycobranca/bancos/brb.py · Dígito do banco: 1 · PIX: —

Resumo

Campo livre no formato DCB com incremento (3) e dígito duplo.

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

Posições Tam. Conteúdo
1–3 3 Incremento
4–6 3 Agência
7–13 7 Conta
14 1 Carteira
15–20 6 Nosso número
21–23 3 070 (código do banco)
24–25 2 Dígito duplo (módulo 10 + módulo 11)

Dígitos verificadores

  • Dígito duplo do campo livre — calculado sobre as 23 posições anteriores: o 1º dígito por módulo 10; o por módulo 11 (fatores 2..7, 11 - (soma % 11), mapa {10: 0, 11: 0}). Quando o 2º resulta em 1, incrementa o 1º (9→0) e recalcula.

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
Incremento 1–3 dígitos
Agência 1–3 dígitos
Conta 1–7 dígitos
Nosso número 1–6 dígitos
Carteira conjunto: 1, 2

Formatos de exibição

  • Nosso número: carteira(1) + nosso número(6) + 070 + dígito duplo112345607075
  • Agência/conta: 000 - agência(3) - conta(7)000 - 123 - 1234567

Exemplo (saída da engine)

Entrada: incremento 123, agência 123, conta 1234567, carteira 1, nosso número 123456, R$ 127,50, vencimento 15/08/2026.

Campo livre:      1231231234567112345607075
Código de barras: 07097153900000127501231231234567112345607075
Linha digitável:  07091.23129 31234.567118 23456.070756 7 15390000012750

Remessa CNAB 400 (formato DCB) — implementada e validada byte a byte ✓

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

Quirk documentado: este layout não é o CNAB 400 FEBRABAN — é o formato DCB do BRB. O header tem 39 posições, o detalhe 402 e o trailer padrão 400. Mantida a paridade byte a byte com os vetores de referência; por isso tamanho_registro=None.

Estrutura do arquivo (CRLF, maiúsculas sem acentos):

Registro Tam. Conteúdo principal
Header 39 DCB001075 · agência(3) + conta(7) · data/hora de formação AAAAMMDDHHMMSS · quantidade de registros(6)
Detalhe (01) 402 agência(3) + conta(7) · sacado (doc 14/nome 35/endereço 35/cidade 15/UF/CEP) · nº documento(13) · carteira(1) · emissão (DDMMAAAA) · 21 · 02 · 070 + agência(4) · vencimento (DDMMAAAA) · valor(14) · nosso número · código/valor de juros(14) · abatimento(14) · código/data/valor de desconto(14) · empresa(40)
Trailer 400 393 brancos + sequencial(6)

Header determinístico: a data/hora de formação (AAAAMMDDHHMMSS) é injetável via o campo data_formacao — vazio usa o horário atual.

Nosso número (carteira ≠ 3): carteira(1) + nosso número(6) + 070, acrescido de módulo 10 e de módulo 11 (fatores 2..7, 11 - (soma % 11), mapa {10: 0, 11: 0}). Carteira 3 usa o nosso número com 12 posições, sem dígitos.

Códigos de juros/desconto: 50/52 quando há valor de mora/desconto, senão 00.