nigerian_banks_nuban 0.0.4 copy "nigerian_banks_nuban: ^0.0.4" to clipboard
nigerian_banks_nuban: ^0.0.4 copied to clipboard

A Flutter package to list Nigerian banks and detect probable banks from NUBAN account numbers. Includes offline assets.

Nigerian Banks NUBAN #

A Flutter package that lists all Nigerian banks, their logos, and slugs, and provides functionality to detect probable banks from a NUBAN account number.

Features #

  • Get All Banks: Retrieve a list of all commercial and microfinance banks in Nigeria.
  • Search by Slug/Code: Find specific banks using their unique slug or CBN code.
  • NUBAN Lookup: Detect probable banks for a given 10-digit account number using the NUBAN algorithm.
  • Fuzzy Matching: Find banks by name with variations (e.g., "MONIE POINT" → "Moniepoint MFB").
  • Search: Search banks by partial name, slug, or code.
  • BankLogo Widget: Ready-to-use widget with fallback handling for missing logos.
  • Offline Assets: All bank logos are bundled with the package.

Installation #

Add the dependency to your pubspec.yaml:

dependencies:
  nigerian_banks_nuban: ^0.0.3

Usage #

Import #

import 'package:nigerian_banks_nuban/nigerian_banks_nuban.dart';

Get All Banks #

final nigerianBanks = NigerianBanks();
final banks = nigerianBanks.getBanks();

for (final bank in banks) {
  print('${bank.name} - ${bank.code}');
}

Find Bank by Slug or Code #

final bank = nigerianBanks.getBankBySlug('access-bank');
// or
final bank = nigerianBanks.getBankByCode('044');

if (bank != null) {
  print(bank.name);
  print(bank.logo); // Returns path to asset
}

Detect Bank from Account Number (NUBAN) #

Suggest probable banks for a user's account number.

final accountNum = '1234567890';
final probableBanks = nigerianBanks.getBanksByAccountNumber(accountNum);

if (probableBanks.isEmpty) {
  print('Invalid Account Number or No Matching Bank');
} else {
  for (final bank in probableBanks) {
    print('Detected: ${bank.name}');
  }
}

Fuzzy Bank Matching #

Find banks by name, handling variations like "MONIE POINT" vs "Moniepoint MFB":

final bank = nigerianBanks.findBankByName('MONIEPOINT');
// Returns Moniepoint MFB bank

Search Banks #

Search across names, slugs, and codes:

final results = nigerianBanks.searchBanks('access');
// Returns all banks containing "access"

Normalized Name Comparison #

Compare bank names from different sources:

final normalized = NigerianBanks.normalizeName('Access Bank PLC');
// Returns: "access"

Use the BankLogo widget with built-in error handling:

BankLogo(
  bank: bank,
  size: 48,
  borderRadius: 8,
  fallback: Icon(Icons.account_balance), // Optional custom fallback
)

Note on OPay/PayCom #

  • PayCom (Code 100004) and OPay (Code 999992) both map to the slug paycom.
  • Lotus Bank: Many OPay accounts are technically domiciled at Lotus Bank (Code 303). If an "OPay" number is detected as Lotus Bank, this is correct behavior as per the NUBAN algorithm.

Credits #

Data and logos sourced from ichtrojan/nigerian-banks.

1
likes
160
points
181
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package to list Nigerian banks and detect probable banks from NUBAN account numbers. Includes offline assets.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on nigerian_banks_nuban