boleto_utils 1.0.3 boleto_utils: ^1.0.3 copied to clipboard
Package com métodos para a validação de todos os tipos de boleto do Brasil definidos pela FEBRABAN
Package com métodos úteis para a validação de todos os tipos de boleto #
1. Recursos #
- ✅ Validar boleto
- ✅ Identificar banco emissor do boleto
- ✅ Código de barras para linha digitável
- ✅ Linha digitável para código de barras
- ✅ Identificar tipo de boleto
- ✅ Identificar tipo de código
- ✅ Identificar valor do boleto
- ✅ Identificar data de vencimento
- ✅ Cálculo digito verificador módulo 10
- ✅ Cálculo digito verificador módulo 11
2. Métodos #
Métodos | Definição |
---|---|
TipoCodigo identificarTipoCodigo(String codigo) |
Verifica a numeração e retorna o tipo do código inserido. TipoCodigo.codigoDeBarra, TipoCodigo.linhaDigitavel ou TipoCodigo.invalido. Requer numeração completa (com ou sem formatação). |
TipoBoleto? identificarTipoBoleto(String codigo) |
Verifica a numeração e retorna o tipo do boleto inserido. Se boleto bancário, convênio ou arrecadação. Requer numeração completa (com ou sem formatação). |
DateTime identificarData({required String codigo, required TipoCodigo tipoCodigo} |
Verifica a numeração, o tipo de código inserido e o tipo de boleto e retorna a data de vencimento. Requer numeração completa (com ou sem formatação) e tipo de código que está sendo inserido (TipoCodigo.codigoDeBarra ou TipoCodigo.linhaDigitavel). |
double identificarValor(String codigo) |
Verifica a numeração, o tipo de código inserido e o tipo de boleto e retorna o valor do título. Requer numeração completa (com ou sem formatação). |
String codBarrasParaLinhaDigitavel({required String barcode, bool formatada = false}) |
Transforma a numeração no formato de código de barras em linha digitável. Requer numeração completa (com ou sem formatação) e valor true ou false que representam a forma em que o código convertido será exibido. Com (true) ou sem (false) formatação. |
String linhaDigitavelParaCodBarras(String codigo) |
Transforma a numeração no formato linha digitável em código de barras. Requer numeração completa (com ou sem formatação). |
String calculaDVCodBarras({required String codigo,required int posicaoCodigo, required int mod}) |
Verifica a numeração do código de barras, extrai o DV (dígito verificador) presente na posição indicada, realiza o cálculo do dígito utilizando o módulo indicado e retorna o dígito verificador. Serve para validar o código de barras. Requer numeração completa (com ou sem formatação), caracteres numéricos que representam a posição do dígito verificador no código de barras e caracteres numéricos que representam o módulo a ser usado (valores aceitos: 10 ou 11). |
bool validarCodigoComDV({required String codigo, required TipoCodigo tipoCodigo}) |
Calcula o dígito verificador de toda a numeração do código de barras. Retorno true para numeração válida e false para inválida. |
String calculaMod10(String numero) |
Realiza o cálculo Módulo 10 do número inserido. |
String calculaMod11(String numero) |
Realiza o cálculo Módulo 11 do número inserido. |
BoletoValidado validarBoleto(String codigo, {bool formatada = false}) |
Verifica a numeração e utiliza várias das funções acima para retornar um BoletoValidado contendo informações sobre a numeração inserida: Tipo de código inserido , Tipo de boleto inserido , Código de barras , Linha digitável , Vencimento e Valor . |
BancoEmissor identificarBancoEmissor(String codigo) |
Verifica a numeração dos três primeiros digitos e retorna o BancoEmissor com número, nome do banco, ISPB, PDF com lista atualizada diariamente pelo Banco Central. |
3. Regras de numeração dos boletos #
4.1 BOLETO COBRANÇA
#
IMPORTANTE: As posições aqui mencionadas partem do número 0 e não do 1, a fim de facilitar o entendimento lógico
4.1.1 TIPO: CÓDIGO DE BARRAS (44 POSIÇÕES NUMÉRICAS)
EXEMPLO: 11123444455555555556666666666666666666666666
Bloco | Posições | Definição |
1 | 0 a 2 | Código do Banco na Câmara de Compensação |
2 | 3 a 3 | Código da Moeda = 9 (Real) |
3 | 4 a 4 | Digito Verificador (DV) do código de Barras |
4 | 5 a 8 | Fator de Vencimento |
5 | 9 a 18 | Valor com 2 casas de centavos |
6 | 19 a 43 | Campo Livre (De uso da instituição bancária) |
4.1.2 TIPO: LINHA DIGITÁVEL (47 POSIÇÕES NUMÉRICAS)
EXEMPLO: AAABC.CCCCX DDDDD.DDDDDY EEEEE.EEEEEZ K UUUUVVVVVVVVVV
EXEMPLO: 11123444455555555556666666666666666666666666
Campo | Posições linha dig | Definição |
A | 0 a 2 (0 a 2 do cód. barras) | Código do Banco na Câmara de compensação |
B | 3 a 3 (3 a 3 do cód. barras) | Código da moeda |
C | 4 a 8 (19 a 23 do cód. barras) | Campo Livre |
X | 9 a 9 | Dígito verificador do Bloco 1 (Módulo 10) |
D | 10 a 19 (24 a 33 do cód. barras) | Campo Livre |
Y | 20 a 20 | Dígito verificador do Bloco 2 (Módulo 10) |
E | 21 a 30 (24 a 43 do cód. barras) | Campo Livre |
Z | 31 a 31 | Dígito verificador do Bloco 3 (Módulo 10) |
K | 32 a 32 (4 a 4 do cód. barras) | Dígito verificador do código de barras |
U | 33 a 36 (5 a 8 do cód. barras) | Fator de Vencimento |
V | 37 a 43 (9 a 18 do cód. barras) | Valor |
4.2 CONTA CONVÊNIO / ARRECADAÇÃO
#
4.2.1 TIPO: CÓDIGO DE BARRAS (44 POSIÇÕES NUMÉRICAS)
EXEMPLO: 12345555555555566667777777777777777777777777
Bloco | Posições | Definição |
1 | 0 a 0 | "8" Identificação da Arrecadação/convênio |
2 | 1 a 1 | Identificação do segmento |
3 | 2 a 2 | Identificação do valor real ou referência |
4 | 3 a 3 | Dígito verificador geral (módulo 10 ou 11) |
5 | 4 a 14 | Valor efetivo ou valor referência |
6 | 15 a 18 | Identificação da empresa/órgão |
6 | 19 a 43 | CCampo livre de utilização da empresa/órgão |
4.2.2 TIPO: LINHA DIGITÁVEL (48 POSIÇÕES NUMÉRICAS)
EXEMPLO: ABCDEEEEEEE-W EEEEFFFFGGG-X GGGGGGGGGGG-Y GGGGGGGGGGG-Z
Campo | Posições | Definição |
A | 0 a 0 | "8" Identificação da Arrecadação/convênio |
B | 1 a 1 | Identificação do segmento |
C | 2 a 2 | Identificação do valor real ou referência |
D | 3 a 3 | Dígito verificador geral (módulo 10 ou 11) |
E | 1 A 14 | Valor efetivo ou valor referência |
W | 11 a 11 | Dígito verificador do Bloco 1 |
F | 15 a 18 | Identificação da empresa/órgão |
G | 19 a 43 | Campo livre de utilização da empresa/órgão |
X | 23 a 23 | Dígito verificador do Bloco 2 |
Y | 35 a 35 | Dígito verificador do Bloco 3 |
Z | 47 a 47 | Dígito verificador do Bloco 4 |