搜尋套件、儲存庫與 APP 分類

套件詳情v1.2.0

boleto_utils

包含用於驗證由FEBRABAN定義的所有類型巴西支票的工具方法的套件

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
2720
喜歡數
28
Pub 分數
160

安裝套件

flutter pub add boleto_utils

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

BoletoUtils 是一個用於驗證巴西銀行帳單(boletos)所有類型的 Flutter/Dart 套件,其規範由 FEBRABAN 定義。它提供可靠的驗證方法,以確保帳單號碼的真實性和格式正確性,包括檢查碼驗證和格式化工具。該套件支援多種平台,非常適合需要在巴西準確處理帳單的應用程式。透過確保符合國家銀行標準,它簡化了與金融系統的整合。

適用情境

  • 在付款表單中驗證支票號碼
  • 自動格式化支票條目
  • 與巴西銀行系統整合
  • 確保金融應用中的資料完整性
  • 支援離線票證驗證

主要特色

  • 符合FEBRABAN的驗證
  • 跨平台支援
  • 校驗和驗證
  • 格式標準化
  • 用於處理帳單的簡單 API

適合對象

  • 巴西金融科技應用
  • 支付處理應用
  • 財務數據錄入工具
  • 針對巴西的行動與網頁應用程式
  • 需要可靠票據驗證的開發人員

使用建議

  • 需要了解巴西boleto結構
  • 僅限 FEBRABAN 定義的 Boleto 類型
  • 無即時銀行驗證
  • 取決於正確的輸入格式
  • 不適用於國際票據格式

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

📘 Sobre o pacote

boleto_utils é um pacote Dart que fornece utilitários para validação, leitura e interpretação de boletos bancários e de arrecadação. Ele facilita a manipulação de códigos de barras e linhas digitáveis, extraindo informações como banco emissor, valor, vencimento e estrutura interna. Ideal para aplicações financeiras, ERPs, gateways de pagamento ou sistemas de automação que precisem interpretar boletos de forma precisa e eficiente.


✅ Recursos

  • Validar boleto
  • Identificar banco emissor
  • Converter código de barras ⇄ linha digitável
  • Identificar tipo de boleto e tipo de código
  • Obter valor e vencimento (quando aplicável)
  • Cálculo dos dígitos verificadores (Mod10 e Mod11)
  • Compatível com fator de vencimento 2025+

🚀 Métodos disponíveis

Método Descrição
TipoCodigo identificarTipoCodigo(String codigo) Retorna TipoCodigo.codigoDeBarra, TipoCodigo.linhaDigitavel ou TipoCodigo.invalido.
TipoBoleto? identificarTipoBoleto(String codigo) Retorna se o boleto é bancário, convênio ou arrecadação.
DateTime identificarData(...) Retorna a data de vencimento do boleto (exceto arrecadação).
DateTime identificarDataComNovoFator2025(...) Mesmo que o anterior, com base na nova referência de fator (22/02/2025).
double identificarValor(String codigo) Retorna o valor do boleto (cobrança ou arrecadação com valor efetivo).
double identificarValorCodBarrasArrecadacao(...) Retorna o valor de boletos de arrecadação/convênio (água, luz, gás, IPTU, taxas).
String codBarrasParaLinhaDigitavel(...) Converte código de barras para linha digitável.
String linhaDigitavelParaCodBarras(String codigo) Converte linha digitável para código de barras.
String calculaDVCodBarras(...) Calcula dígito verificador do código de barras usando módulo 10 ou 11.
bool validarCodigoComDV(...) Retorna se o código informado é válido com base no DV.
String calculaMod10(String numero) Cálculo manual de módulo 10.
String calculaMod11(String numero) Cálculo manual de módulo 11.
BoletoValidado validarBoleto(...) Retorna objeto com todos os dados analisados do boleto.
BancoEmissor identificarBancoEmissor(String codigo) Retorna nome, número e ISPB do banco emissor.

🧠 Estrutura dos Boletos

🏦 Boleto Bancário
Código de Barras (44 dígitos)
Bloco Posições Definição
1 0 a 2 Código do Banco
2 3 a 3 Código da Moeda
3 4 a 4 Dígito verificador geral
4 5 a 8 Fator de vencimento
5 9 a 18 Valor (com 2 casas decimais)
6 19 a 43 Campo livre
Linha Digitável (47 dígitos)
Campo Posições Descrição
A 0 a 2 Código do banco
B 3 a 3 Moeda
C 4 a 8 Campo livre
X 9 a 9 DV bloco 1
D 10 a 19 Campo livre
Y 20 a 20 DV bloco 2
E 21 a 30 Campo livre
Z 31 a 31 DV bloco 3
K 32 a 32 DV geral (mesmo do código de barras)
U 33 a 36 Fator de vencimento
V 37 a 43 Valor

🧾 Boleto de Arrecadação / Convênio

Boletos iniciados com 8 (ex: conta de luz, telecom, água...)

Código de Barras (44 dígitos)
Bloco Posições Definição
1 0 a 0 "8" - Identificador de arrecadação
2 1 a 1 Segmento (veja abaixo)
3 2 a 2 Valor real ou referência
4 3 a 3 Dígito verificador geral
5 4 a 14 Valor (centavos)
6 15 a 43 Campo livre (instituição ou convênio)
Linha Digitável (48 dígitos)
Campo Posições Descrição
A 0 a 0 "8" Identificação
B 1 a 1 Segmento
C 2 a 2 Tipo de valor
D 3 a 3 DV geral
E 4 a 14 Valor (centavos)
F 15 a 18 Identificação do órgão
G 19 a 43 Campo livre
DV1 11 a 11 DV bloco 1
DV2 23 a 23 DV bloco 2
DV3 35 a 35 DV bloco 3
DV4 47 a 47 DV bloco 4

📚 Segmentos de arrecadação
Dígito Segmento
1 Arrecadação municipal
2 Saneamento
3 Energia elétrica e gás
4 Telecomunicações
5 Órgãos governamentais
6 / 9 Outros
7 Multas de trânsito

💡 Observações importantes
  • A data de vencimento só pode ser lida em boletos bancários (com fator de vencimento).
  • Boletos de arrecadação não contêm vencimento codificado — deve ser extraído manualmente ou de fontes externas.
  • O valor em boletos de arrecadação está sempre nas posições 5 a 15 do código de barras e representa centavos.
Exemplo:
Código de barras: 84660000001993000481000112208428092308214933
Valor extraído:   00000119300 → R$ 119,30

📦 Instalação

dependencies:
  boleto_utils:

▶️ Exemplo rápido

import 'package:boleto_utils/boleto_utils.dart';

void main() {
  final codigo = '34191790010104351004791020150008291070000005000';

  final boleto = BoletoUtils();
  final tipo = boleto.identificarTipoBoleto(codigo);
  final valor = boleto.identificarValor(codigo);
  final vencimento = boleto.identificarData(
    codigo: codigo,
    tipoCodigo: TipoCodigo.codigoDeBarras,
  );

  print('Tipo: $tipo');
  print('Valor: R\$ ${valor.toStringAsFixed(2)}');
  print('Vencimento: $vencimento');
}

👨‍💻 Contribuições

Contribuições são bem-vindas! Relate issues ou envie PRs com melhorias e testes.


🤝 Contribuindo

Este projeto é open source. Sinta-se à vontade para:

  • Reportar bugs
  • Sugerir funcionalidades
  • Enviar pull requests com correções ou melhorias
  • Criar issues com dúvidas ou ideias

📄 Licença

Distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais informações.

所屬分類

原始碼儲存庫

使用此套件的專案

暫無相關資料。