Skip to main content

Overview

Browse available billers by category to find the service you need. Monei supports hundreds of billers across multiple categories and countries. What you’ll learn:
  • Get all billers
  • Filter by category
  • Search for specific billers
  • Understand biller details
  • Get service packages

Get All Billers

Retrieve all available billers.
import MoneiSDK from 'monei-sdk';

const monei = new MoneiSDK({
  apiKey: process.env.MONEI_API_KEY,
});

// Get all billers
const billers = await monei.billsDiscovery.getBillers();

console.log(`Total Billers: ${billers.length}\n`);

billers.forEach(biller => {
  console.log(`${biller.name}`);
  console.log(`  Category: ${biller.category}`);
  console.log(`  Type: ${biller.type}`);
  console.log(`  Country: ${biller.country}`);
  console.log(`  Biller Code: ${biller.billerId}`);
});
Response:
{
  "statusCode": 200,
  "message": "Billers retrieved successfully",
  "data": [
    {
      "billerId": "mtn-ng",
      "name": "MTN Nigeria",
      "shortName": "MTN",
      "category": "airtime",
      "country": "NG",
      "fee": 0,
      "minAmount": 50,
      "maxAmount": 50000
    }
  ]
}

Filter by Category

Get billers for a specific category.
// Get airtime billers
const airtimeBillers = await monei.billsDiscovery.getBillers({
  category: 'airtime'
});

console.log('Airtime Providers:\n');
airtimeBillers.forEach(b => {
  console.log(`${b.name} (${b.shortName})`);
  console.log(`  Fee: ₦${b.fee}`);
  console.log(`  Min: ₦${b.minAmount}, Max: ₦${b.maxAmount}`);
});

// Get cable TV billers
const cableBillers = await monei.billsDiscovery.getBillers({
  category: 'cable_tv'
});

console.log('\nCable TV Providers:\n');
cableBillers.forEach(b => {
  console.log(`${b.name}`);
});

// Get electricity billers
const electricityBillers = await monei.billsDiscovery.getElectricityBillers();

console.log('\nElectricity Providers:\n');
electricityBillers.forEach(b => {
  console.log(`${b.name} (${b.type})`);
});

Available Categories

CategoryDescriptionCommon Billers
airtimeMobile airtimeMTN, Airtel, Glo, 9mobile
dataMobile data bundlesMTN Data, Airtel Data, Glo Data
cable_tvTV subscriptionsDStv, GOtv, StarTimes
electricityPower billsIKEDC, EKEDC, AEDC, PHED

Biller Details

Each biller response includes:
FieldDescription
billerCodeUnique biller Codeentifier
nameFull biller name
shortNameShort/display name
categoryCategory (airtime, data, etc.)
typePREPAID or POSTPAID
countryCountry code (NG)
feeService fee (₦)
minAmountMinimum payment amount
maxAmountMaximum payment amount

Search for Billers

// Search by name
function searchBillers(billers, searchTerm) {
  return billers.filter(b => 
    b.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
    b.shortName.toLowerCase().includes(searchTerm.toLowerCase())
  );
}

// Get all billers
const allBillers = await monei.bills.getBillers();

// Search for MTN
const mtnBillers = searchBillers(allBillers, 'MTN');
console.log('MTN Services:');
mtnBillers.forEach(b => {
  console.log(`- ${b.name} (${b.category})`);
});

// Search for DStv
const dstvBillers = searchBillers(allBillers, 'DStv');
console.log('\nDStv Services:');
dstvBillers.forEach(b => {
  console.log(`- ${b.name} (${b.type})`);
});

Get Service Packages

Some billers offer multiple packages (cable TV, data bundles).
// Get DStv packages
const dstv = await monei.billsDiscovery.getBillers({
  category: 'cable_tv'
}).then(billers => billers.find(b => b.shortName === 'DStv'));

// Get packages for DStv
const packages = await monei.billsDiscovery.getPackages({
  billerId: dstv.billerId
});

console.log('DStv Packages:\n');
packages.forEach(pkg => {
  console.log(`${pkg.name}`);
  console.log(`  Code: ${pkg.code}`);
  console.log(`  Price: ₦${pkg.amount}`);
  console.log(`  Duration: ${pkg.validity || 'Monthly'}`);
  console.log('');
});
Response:
{
  "statusCode": 200,
  "message": "Packages retrieved successfully",
  "data": [
    {
      "code": "dstv-compact",
      "name": "DStv Compact",
      "amount": 10500,
      "validity": "Monthly"
    },
    {
      "code": "dstv-compact-plus",
      "name": "DStv Compact Plus",
      "amount": 16200,
      "validity": "Monthly"
    },
    {
      "code": "dstv-premium",
      "name": "DStv Premium",
      "amount": 24500,
      "validity": "Monthly"
    }
  ]
}

Mobile Networks
const airtime = await monei.billsDiscovery.getBillers({
  category: 'airtime'
});

// Popular: MTN, Airtel, Glo, 9mobile
NetworkBiller CodeMinMax
MTNmtn-ng₦50₦50,000
Airtelairtel-ng₦50₦50,000
Gloglo-ng₦50₦50,000
9mobile9mobile-ng₦50₦50,000

Best Practices

Cache Billers

Cache billers list to reduce API calls

Filter Early

Use category filter to reduce response size

Search Efficiently

Implement client-side search for better UX

Display Packages

Show package details for cable TV and data

Show Fees

Display service fees upfront

Validate Limits

Check min/max amounts before payment

Next Steps

Overview

Bill payments introduction

Validation

Validate customer details

Payments

Make bill payments

History

View payment history