Especificação de Guias e Boletos

De BIS Wiki
Ir para navegação Ir para pesquisar

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.


Exemplo de Boleto


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

Exemplo de 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:
  • 1 - Prefeituras;
  • 2 - Saneamento;
  • 3 - Energia Elétrica e Gás;
  • 4 - Telecomunicações;
  • 5 - Órgãos Governamentais;
  • 6 - Carnes e Assemelhados ou demais Empresas / Órgãos que serão identificadas através do CNPJ.
  • 7 - Multas de trânsito
  • 9 - Uso exclusivo do banco
3 03–03 Identificação do valor real ou referência:
  • 6 - Valor a ser cobrado efetivamente em reais com dígito verificador calculado pelo módulo 10 na quarta posição do Código de Barras e valor com 11 posições (versão 2 e posteriores) sem qualquer alteração;
  • 7 - Quantidade de moeda Zeros – somente na impossibilidade de utilizar o valor; Valor a ser reajustado por um índice com dígito .verificador calculado pelo módulo 10 na quarta posição do Código de Barras e valor com 11 posições (versão 2 e posteriores).
  • 8 – Valor a ser cobrado efetivamente em reais com dígito verificador calculado pelo módulo 11 na quarta posição do Código de Barras e valor com 11 posições (versão 2 e posteriores) sem qualquer alteração.
  • 9 – Quantidade de moeda Zeros – somente na impossibilidade de utilizar o valor; Valor a ser reajustado por um índice com dígito .verificador calculado pelo módulo 11 na quarta posição do Código de Barras e valor com 11 posições (versão 2 e posteriores).
4 04–04 Dígito verificador geral (módulo 10 ou 11)
5 05–15 Valor Efetivo ou Valor Referência:
  • Se o campo “03 – Código de Moeda” indicar valor efetivo, este campo deverá conter o valor a ser cobrado.
  • Se o campo “03 - Código de Moeda” indicado valor de referência, neste campo poderá conter uma quantidade de moeda, zeros, ou um valor a ser reajustado por um índice, etc...
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

  1. 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)
  2. Padrão Febraban para Arrecadação/Recebimento - Layout Padrão de Arrecadação/Recebimento com Código de Barras v04. (Arquivo:FebrabanCodeBar4.pdf)
  3. Layout Banco do Brasil - Layout Padrão de Arrecadação do Banco do Brasil. (Arquivo:LayoutBB.pdf)
  4. Layout Itau - Layout Padrão de Arrecadação do Banco do Brasil. (Arquivo:LayoutItau.pdf)
  5. Layout Bradesco - Layout Padrão de Arrecadação do Banco do Brasil. (Arquivo:LayoutBradesco.pdf)