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 2º por módulo 11 (fatores
2..7,11 - (soma % 11), mapa{10: 0, 11: 0}). Quando o 2º resulta em1, 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 duplo→112345607075 - 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.