Especificação de Guias e Boletos
Este guia concentra as informações da numeração de boletos, guias, contas de concessionárias e afins para facilitar a identificação e consulta as informações para desenvolvimento e manutenção futura.
Código de Barras de Boleto
Este tipo de código de barras tem 44 dígitos. Sua representação numérica normalmente tem 47 dígitos, mas há algumas variações descritas mais abaixo. Além disso há uma diferença na ordenação dos campos entre o código de barras e sua representação numérica.

O código de barras tem o seguinte layout:
Campo | Posição (De - Até) | Descrição |
---|---|---|
1 | 01-03 | Código do Banco na Câmara de Compensação |
2 | 04-04 | Código da Moeda = 9 (Real) |
3 | 05-05 | Digito Verificador (DV) do código de Barras |
4 | 06-09 | Fator de Vencimento |
5 | 10-19 | Valor com 2 casas de centavos |
6 | 20-44 | Campo Livre (De uso da instituição bancária) |
Representação Númerica
A representação numérica do Boleto deve seguir o seguinte formato:
AAABC.CCCCX DDDDD.DDDDDY EEEEE.EEEEEZ K UUUUVVVVVVVVVV BLOCO 1 BLOCO 2 BLOCO 3 4 BLOCO 5
- A - Código do Banco na Compentação - Campo: 01-03 do código de barras
- B - Código da moeda - Campo: 04-04 do código de barras
- C - Campo Livre - Campo: 20-24 do código de barras
- X - DV do Bloco 1 - Módulo 10
- D - Campo Livre - Campo: 25-34 do código de barras
- Y - DV do Bloco 2 - Módulo 10
- E - Campo Livre - Campo: 25-44 do código de barras
- Z - DV do Bloco 3 - Módulo 10
- K - DV do código de barras - Campo: 05-05 do código de barras
- U - Fator de Vencimento - Campo: 06-09 do código de barras
- V - Valor - Campo: 10-19 do código de barras
Cálculo do Fator de Vencimento
O fator de vencimento (Campo "UUUU" da #Representação Númerica ou posições de 06-09 do código de barras) é a quantidade de dias passados desde a data base 07/10/1997. Assim, para calcular a data de vencimento que um determinado fator representa, devemos somar o fator de vencimento como se fossem dias à data base.
Por exemplo: o fator 1667. Se somado como 1667 dias à data base 07/10/1997 resultará na data: 01/05/2002. Que é o vencimento do boleto cujo fator seja 1667.
A título de curiosidade, o maior fator possível é 9999, já que só temos 4 dígitos para informar esse fator de vencimento. Esse fator somado a data base dá a data 21/2/2025, o que significa que próximo a essa data teremos de ter alguma novidade sobre as especificações deste campo, seja reiniciando sua contagem e estabelecendo uma nova contagem, seja alguma reformulação dos códigos de barras para incluir mais informações.
Layout Campo Livre Banco do Brasil
O layout do CampoLivre utilizado pelos boletos do Banco do Brasil apresentam os seguintes layouts:
Convênio de 4 Posições
Posição (De - Até) | Descrição |
---|---|
20-23 | Número do Convênio fornecido pelo Banco (CCCC) |
24-30 | Complemento do Nosso-Número, sem DV (NNNNNNN) |
31-34 | Número da Agência de Relacionamento, sem DV |
35-42 | Conta Corrente de Relacionamento, sem DV |
43-44 | Tipo de Carteira/Modalidade de Cobrança |
Convênio de 6 Posições
Posição (De - Até) | Descrição |
---|---|
20-25 | Número do Convênio fornecido pelo Banco (CCCCCC) |
26-30 | Complemento do Nosso-Número, sem DV (NNNNN) |
31-34 | Número da Agência de Relacionamento, sem DV |
35-42 | Conta Corrente de Relacionamento, sem DV |
43-44 | Tipo de Carteira/Modalidade de Cobrança |
Convênio de 7 Posições
Posição (De - Até) | Descrição |
---|---|
20-25 | Zeros |
26-32 | Número do Convênio fornecido pelo Banco (CCCCCCC) |
33-42 | Complemento do Nosso-Número, sem DV (NNNNNNNNNN) |
43-44 | Tipo de Carteira/Modalidade de Cobrança |
Convênio de 17 Posições Livres - Sem Registro
Posição (De - Até) | Descrição |
---|---|
20-25 | Número do Convênio de Seis Posições |
26-42 | Nosso-Número Livre do cliente. |
43-44 | “21” Tipo de Modalidade de Cobrança. |
Layout Campo Livre Itaú
O layout do CampoLivre utilizado pelos boletos do Itaú apresenta os seguintes layouts:
Convênio com Agência e Conta Corrente
Posição (De - Até) | Descrição |
---|---|
20-22 | Carteira |
23-30 | Nosso Número |
31-31 | DV [Agência/Conta/Carteira/Nosso Número] |
32-35 | Agência do Cedente |
36-40 | Conta Corrente do Cedente |
41-41 | DV [Agência/Conta Corrente] |
42-44 | Zeros |
Carteira 198 - Nosso número com 15 Posições
Posição (De - Até) | Descrição |
---|---|
20-22 | Carteira |
23-30 | Nosso Número |
31-37 | Seu Número (Número do Documento) |
38-42 | Código do Cliente (fornecido pelo Banco) |
43-43 | DV dos Campos (posições de 20 a 42) |
44-44 | Zero |
Layout Campo Livre Bradesco
O layout do CampoLivre utilizado pelos boletos do Bradesco apresenta os seguintes layouts:
Convênio com Agência e Conta Corrente
Posição (De - Até) | Descrição |
---|---|
20-23 | Agência sem DV |
24-25 | Carteira |
26-36 | Nosso Número sem DV |
37-43 | Conta do Cedente Sem DV |
44-44 | Zero |
Código de Barras de Arrecadação

O código de barras de arrecadação tem 44 dígitos. Sua representação numérica é dividida em 4 blocos de 11 dígitos e calculado um DV para cada um desses blocos, deixando com um total de 48 dígitos. Normalmente utilizado nas contas de Água, Luz, Gás, Telefone, Internet, Impostos como IPTU, IPVA, GRU/SIMPLES, etc.
Esse código de barras começa sempre com "8", se tem os seus campos identificados conforme tabela abaixo:
Campo | Posição (De - Até) | Descrição |
---|---|---|
1 | 01-01 | "8" Identificação da Arrecadação |
2 | 02–02 | Identificação do Segmento:
|
3 | 03–03 | Identificação do valor real ou referência:
|
4 | 04–04 | Dígito verificador geral (módulo 10 ou 11) |
5 | 05–15 | Valor Efetivo ou Valor Referência:
|
6 | 16–19 | Identificação da Empresa/Órgão
O campo identificação da Empresa/Órgão terá uma codificação especial para cada segmento. Será um código de quatro posições atribuído e controlado pela Febraban, ou as primeiras oito posições do cadastro geral de contribuintes do Ministério da Fazenda. É através desta informação que o banco identificará a quem repassar as informações e o crédito. Se for utilizado o CNPJ para identificar a Empresa/Órgão, haverá uma redução no seu campo livre que passará a conter 21 posições. No caso de utilização do Segmento 9, este campo deverá conter o código de compensação do mesmo, com quatro dígitos. Cada banco definirá a forma de identificação da empresa a partir da 20ª posição. |
7 | 20–44 | Campo livre de utilização da Empresa/Órgão:
Este campo é de uso exclusivo da Empresa/Órgão e será devolvido inalterado. Se existir data de vencimento no campo livre, ela deverá vir em primeiro lugar e em formato AAAAMMDD. |
Lista de Identificações Conhecidas
Aqui vamos compilando os Órgãos/Empresas conhecidas de cada seguimento para ajudar a compreender os boletos e facilitar a vida do usuário.
- Seguimento 1 - Prefeituras
- 0849 - Campinas
- Seguimento 2 - Saneamento
- 0105 - Sanasa
- Seguimento 3 - Energia Elétrica e Gás
- 0040 - CPFL
- 0057 - Comgás
- Seguimento 4 - Telecomunicações
- 0006 - Embratel
- 0080 - VIVO
- 0082 - GVT
- 0109 - TIM
- 0159 - Claro
- 0296 - NET
- 1029 - Telefônica
- Seguimento 5 - Órgãos Governamentais
- 0064 - DARF IRRF
- 0179 - FGTS
- 0239 - FGTS Rescisório
- 0328 - Simples Nacional
- Seguimento 6 - Carnes e Assemelhados ou demais Empresas / Órgãos que serão identificadas através do CNPJ
- Seguimento 7 - Multas de trânsito
- Seguimento 9 - Uso exclusivo do banco
Modelos Específicos
Código de Barras GRU Simples
O código de barras da GRU pode ter dois layouts distintos:
- O primeiro leiaute foi desenhado para agilizar o pagamento no banco, possuindo apenas as informações básicas: Unidade Gestora, gestão, código de recolhimento, CPF/CNPJ do contribuinte, valor principal e valor total, sendo que todas elas estão presentes no código de barras, dispensando entrada manual (digitação de valores). Este leiaute deve ser utilizado no Segmento 5 (Órgãos Governamentais).
- O segundo leiaute foi desenhado para permitir que possam ser utilizados todos os campos disponíveis na GRU Simples. No momento do pagamento no banco, os valores dos campos que não estão presentes no código de barras, mas que foram preenchidos na GRU ou foram marcados como obrigatórios no Aplicativo Local, serão digitados. Este leiaute deve ser utilizado no Segmento 9 (Uso Interno do Banco).
Layout GRU Utilizando o Segmento 5
Campo | Posição (De - Até) | Informação | Valores para a GRU Simples |
---|---|---|---|
1 | 01-01 | "8" | Identificação da Arrecadação |
2 | 02-02 | “5” | Segmento 5- Órgãos Governamentais |
3 | 03-03 | “8” ou “9” | Identificador do Valor: Reais/Referência |
4 | 04-04 | DV | Dígito verificador geral – módulo 11 |
5 | 05-15 | Valor | Valor do Documento GRU-Simples |
6 | 16-19 | Código STN | Código STN junto à FEBRABAN-0254 |
7 | 20-24 | Código Recolhimento | Código Recolhimento |
8 | 25-29 | UG/Gestão | Apelido da UG/Gestão responsável pela arrecadação |
9 | 30-30 | Tipo de contribuinte | 1- CPF / 2- CNPJ |
10 | 31-44 | Identificação do Contribuinte | CNPJ/CPF |
Layout GRU Utilizando o Segmento 9
Campo | Posição (De - Até) | Informação | Valores para a GRU Simples |
---|---|---|---|
1 | 01-01 | “8” | Identificação da Arrecadação |
2 | 02-02 | “9” | Segmento 9-Uso Interno |
3 | 03-03 | “8” ou ”9” | Identificador do Valor: Reais/Referência |
4 | 04-04 | DV | Dígito verificador geral – módulo 11 |
5 | 05-15 | Valor | Valor do Documento GR Simples |
6 | 16-19 | “0001” | Identificação BB |
7 | 20-27 | Num. Convênio | Num. Convênio BB-01095523 |
8 | 28-29 | Identificador dos campos obrigatórios para pagamento (FLAG) | Identifica a combinação dos campos que deverão ser preenchidos pelo agente arrecadador no momento do pagamento |
9 | 30-34 | Código de Recolhimento | Código de Recolhimento |
10 | 35-39 | UG/Gestão | Apelido da UG/Gestão responsável pela arrecadação |
11 | 40-40 | Tipo de contribuinte | 1- CPF / 2- CNPJ |
12 | 41-44 | Minutos e segundos do momento de impressão | Exemplo: 0825 (impresso aos oito minutos e vinte e cinco segundos de determinada hora) |
Algorítimo de Identificação do código de barras / representação numérica
Com base em toda a informação compilada nesta página, tentamos deixar um algorítimo capaz de identificar uma informação numérica recebida do usuário.
Para funcionamento do algorítimos devemos levar em consideração as seguintes observações:
- Embora não proíba, até o momento só temos o conhecimento de uma instituição financeira que comece com "8". Somente instituições financeiras cujo código comece com 8 poderiam atrapalhar a identificação do tipo de guia (arrecadação e boleto) pelo primeiro dígito. Não é muito confiável, mas é um bom parâmetro.
- O código de barras tem 44 dígitos tanto para guia de arrecadação quanto para boletos.
- A representação numérica de guia de arrecadação tem 48 dígitos.
- A representação numérica de boleto tem 47 dígitos (normalmente).
- Alguns boletos podem ter a representação numérica sem as informações de Fator de Validade e Valor do Título (Bloco 5). Alguns enviam o último bloco completamente zerado (14 zeros), deixando a representação numérica com os 47 dígitos. Já outros, como o caso da fatura de cartão de crédito, só envia "3 zeros" no último bloco. Deixando a representação numérica com um total de 36 dígitos. Caso nenhum zero seja enviado, teremos apenas os 33 primeiros.
//Primeiro verificamos o tamanho 44 que provavelmente é código de barras public String valida(valor) { if (tamanho == 44) { //Provavelmente é código de barras if (primeirodigito == 8) { //Provavelmente código de arrecadação if (é um código de barras válido para arrecadação) { return "Código de Barras Arrecadação"; } } //Se não começa com 8, ou se não era válido, tentamos como boleto if (é um código de barras válido para boleto) { return "Código de Barras Boleto"; } } //Se o tamanho não é 44, ou se falhou em validar como código de barras, vamos processar como representação numérica //A primeira é a representação de arrecadação, que é sempre fixa e é a maior if (tamanho == 48) { if (valida representação numérica de arrecadação) { return "Representação numérica de arrecadação"; } } else if (tamanho >= 33 && tamanho <= 47) { //Se o tamanho está entre os tamanhos que a representação numérica do boleto pode ter, validamos para verificar if (valida representação numérica de boleto) { return "Representação numérica de boleto"; } } throw "Valor não reconhecido!"; }
Bibliografia
- Código Barras GRU Simples - Informação de Como gerar a Guia de Recolhimento da União GRU, incluindo layout de uso interno do Banco do Brasil. (Arquivo:CodigoBarrasSiples.pdf)
- Padrão Febraban para Arrecadação/Recebimento - Layout Padrão de Arrecadação/Recebimento com Código de Barras v04. (Arquivo:FebrabanCodeBar4.pdf)
- Layout Banco do Brasil - Layout Padrão de Arrecadação do Banco do Brasil. (Arquivo:LayoutBB.pdf)
- Layout Itau - Layout Padrão de Arrecadação do Banco do Brasil. (Arquivo:LayoutItau.pdf)
- Layout Bradesco - Layout Padrão de Arrecadação do Banco do Brasil. (Arquivo:LayoutBradesco.pdf)