> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monei.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Pay bills seamlessly with Monei's bill payment infrastructure

## Overview

Monei's bill payment service allows you to pay utility bills, airtime, data, cable TV, electricity, and more directly from your wallet. Pay bills across multiple countries with ease.

**What you'll learn:**

* Supported bill categories
* Available billers
* Payment process
* Countries supported
* Fees and limits

***

## What is Bill Payment?

Pay for essential services directly through Monei:

<CardGroup cols={3}>
  <Card title="Airtime & Data" icon="mobile">
    Top up mobile airtime and data bundles
  </Card>

  <Card title="Cable TV" icon="tv">
    Pay for DStv, GOtv, StarTimes subscriptions
  </Card>

  <Card title="Electricity" icon="bolt">
    Purchase prepaid and postpaid electricity
  </Card>
</CardGroup>

***

## How It Works

```mermaid theme={null}
graph LR
    A[Discover Billers] --> B[Select Category]
    B --> C[Choose Biller]
    C --> D[Validate Customer]
    D --> E[Make Payment]
    E --> F[Receive Confirmation]
```

<Steps>
  <Step title="Discover Billers">
    Browse available billers by category
  </Step>

  <Step title="Select Service">
    Choose the specific service (e.g., MTN Airtime)
  </Step>

  <Step title="Validate Customer">
    Verify customer details and get service info
  </Step>

  <Step title="Make Payment">
    Pay the bill amount from your wallet
  </Step>

  <Step title="Get Confirmation">
    Receive payment confirmation and receipt
  </Step>
</Steps>

***

## Bill Categories

<Tabs>
  <Tab title="Airtime">
    **Mobile Airtime Top-up**

    **Supported Networks:**

    * MTN
    * Airtel
    * Glo
    * 9mobile

    **Amount Range:** ₦50 - ₦50,000

    **Use Case:** Top up your phone or gift airtime
  </Tab>

  <Tab title="Data">
    **Mobile Data Bundles**

    **Supported Networks:**

    * MTN Data
    * Airtel Data
    * Glo Data
    * 9mobile Data

    **Bundles:** Daily, Weekly, Monthly plans

    **Use Case:** Subscribe to data packages
  </Tab>

  <Tab title="Cable TV">
    **TV Subscriptions**

    **Providers:**

    * DStv
    * GOtv
    * StarTimes
    * Showmax

    **Plans:** Multiple packages available

    **Use Case:** Renew TV subscriptions
  </Tab>

  <Tab title="Electricity">
    **Power Bills**

    **Distribution Companies:**

    * IKEDC (Ikeja Electric)
    * EKEDC (Eko Electric)
    * AEDC (Abuja Electric)
    * PHED (Port Harcourt Electric)
    * IBEDC (Ibadan Electric)
    * KEDCO (Kano Electric)
    * JEDC (Jos Electric)

    **Types:** Prepaid & Postpaid

    **Use Case:** Buy electricity tokens
  </Tab>
</Tabs>

***

## Supported Countries

| Country     | Code | Supported Categories |
| ----------- | ---- | -------------------- |
| **Nigeria** | NG   | All categories       |

<Note>
  Nigeria has the most comprehensive biller support. More countries coming soon.
</Note>

***

## Payment Process

### Quick Example

<CodeGroup>
  ```javascript Node.js theme={null}
  import MoneiSDK from 'monei-sdk';

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

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

  console.log('Available Airtime Billers:');
  billers.forEach(b => console.log(`- ${b.name}`));

  // 2. Select MTN
  const mtn = billers.find(b => b.name.includes('MTN'));

  // 3. Validate customer
  const validation = await monei.billsValidation.validate({
    billerId: mtn.billerId,
    customerId: '08012345678',
    type: mtn.type
  });

  console.log('Customer:', validation.customerName);

  // 4. Make payment
  const payment = await monei.billsPay.buyAirtime({
    billerId: mtn.billerId,
    customerId: '08012345678',
    amount: 1000,
    type: mtn.type
  });

  console.log('Payment Successful!');
  console.log('Reference:', payment.reference);
  console.log('Status:', payment.status);
  ```

  ```python Python theme={null}
  from monei import MoneiClient

  monei = MoneiClient(
      api_key=os.getenv('MONEI_API_KEY')
  )

  # 1. Get billers
  billers = monei.bills_discovery.get_billers(category='airtime')

  print('Available Billers:')
  for b in billers:
      print(f'- {b.name}')

  # 2. Select MTN
  mtn = next(b for b in billers if 'MTN' in b.name)

  # 3. Validate
  validation = monei.bills_validation.validate(
      biller_id=mtn.biller_id,
      customer_id='08012345678',
      type=mtn.type
  )

  print(f'Customer: {validation.customer_name}')

  # 4. Pay
  payment = monei.bills_pay.buy_airtime(
      biller_id=mtn.biller_id,
      customer_id='08012345678',
      amount=1000,
      type=mtn.type
  )

  print(f'Reference: {payment.reference}')
  print(f'Status: {payment.status}')
  ```
</CodeGroup>

***

## Limits

### Transaction Limits

| KYC Tier   | Single Payment | Daily Limit | Monthly Limit |
| ---------- | -------------- | ----------- | ------------- |
| **Tier 1** | ₦50,000        | ₦200,000    | ₦2,000,000    |
| **Tier 2** | ₦200,000       | ₦500,000    | ₦5,000,000    |
| **Tier 3** | ₦1,000,000     | ₦2,000,000  | ₦20,000,000   |

### Category-Specific Limits

| Category        | Minimum           | Maximum  |
| --------------- | ----------------- | -------- |
| **Airtime**     | ₦50               | ₦50,000  |
| **Data**        | Varies by bundle  | ₦50,000  |
| **Cable TV**    | Varies by package | ₦100,000 |
| **Electricity** | ₦1,000            | ₦500,000 |

<Note>
  Increase your limits by upgrading your KYC tier. [Learn more →](/account-management/user-account#kyc-verification)
</Note>

***

## Processing Time

Bill payments are processed instantly:

| Category        | Processing Time         |
| --------------- | ----------------------- |
| **Airtime**     | Instant (\< 10 seconds) |
| **Data**        | Instant (\< 30 seconds) |
| **Cable TV**    | 1 - 5 minutes           |
| **Electricity** | 1 - 10 minutes          |

<Warning>
  During peak hours or system maintenance, processing may take longer.
</Warning>

***

## Payment Status

Understanding payment states:

| Status       | Description       | Action              |
| ------------ | ----------------- | ------------------- |
| `pending`    | Payment initiated | Wait for processing |
| `processing` | Being processed   | Wait for completion |
| `successful` | Payment completed | Service delivered   |
| `failed`     | Payment failed    | Refund initiated    |
| `reversed`   | Payment reversed  | Amount refunded     |

***

## Common Use Cases

<Tabs>
  <Tab title="Personal Use">
    **Daily Essentials**

    * Top up your phone
    * Buy data bundles
    * Pay electricity bills
    * Renew cable TV

    **Frequency:** Daily/Weekly
    **Average Amount:** ₦500 - ₦10,000
  </Tab>

  <Tab title="Family Support">
    **Help Family Members**

    * Send airtime to relatives
    * Pay parents' electricity
    * Renew family cable TV
    * Buy data for siblings

    **Frequency:** Weekly/Monthly
    **Average Amount:** ₦1,000 - ₦20,000
  </Tab>

  <Tab title="Business">
    **Business Operations**

    * Company airtime for staff
    * Office internet bills
    * Electricity for premises
    * Multiple bill payments

    **Frequency:** Daily/Monthly
    **Average Amount:** ₦10,000 - ₦500,000
  </Tab>

  <Tab title="Bulk Payments">
    **Resellers & Agents**

    * Bulk airtime purchase
    * Data bundle reselling
    * Multiple payments
    * Customer top-ups

    **Frequency:** Daily
    **Average Amount:** ₦50,000 - ₦1,000,000
  </Tab>
</Tabs>

***

## Benefits

<CardGroup cols={2}>
  <Card title="Instant Processing" icon="bolt">
    Most payments complete within seconds
  </Card>

  <Card title="No Hidden Fees" icon="hand-holding-dollar">
    Transparent pricing with low fees
  </Card>

  <Card title="Wide Coverage" icon="earth-africa">
    Support for all major billers
  </Card>

  <Card title="24/7 Availability" icon="clock">
    Pay bills anytime, anywhere
  </Card>

  <Card title="Auto-Validation" icon="check-double">
    Verify customer details before payment
  </Card>

  <Card title="Payment History" icon="list">
    Track all bill payments
  </Card>
</CardGroup>

***

## Best Practices

<AccordionGroup>
  <Accordion icon="check-double" title="Always Validate First">
    Always validate customer details before making payment. This ensures you're paying for the correct account and can see customer information.
  </Accordion>

  <Accordion icon="receipt" title="Save References">
    Keep transaction references for all payments. You'll need these for support inquiries or disputes.
  </Accordion>

  <Accordion icon="wallet" title="Check Balance">
    Ensure sufficient wallet balance before initiating payment. Include amount + fees.
  </Accordion>

  <Accordion icon="list" title="Review Payment Details">
    Double-check biller, customer ID, and amount before confirming payment.
  </Accordion>

  <Accordion icon="clock" title="Be Patient">
    Some services take a few minutes to process. Wait before retrying to avoid duplicate payments.
  </Accordion>

  <Accordion icon="bookmark" title="Use History">
    Review payment history to track spending and avoid duplicate payments.
  </Accordion>
</AccordionGroup>

***

## Security

<CardGroup cols={2}>
  <Card title="Encrypted Transactions" icon="lock">
    All payments are encrypted end-to-end
  </Card>

  <Card title="Customer Validation" icon="shield-check">
    Verify recipient before payment
  </Card>

  <Card title="Transaction PIN" icon="key">
    Secure payments with PIN (if enabled)
  </Card>

  <Card title="Auto-Refunds" icon="rotate-left">
    Failed payments automatically refunded
  </Card>
</CardGroup>

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Discovery" icon="magnifying-glass" href="/bill-payments/discovery">
    Browse available billers
  </Card>

  <Card title="Validation" icon="check" href="/bill-payments/validation">
    Validate customer details
  </Card>

  <Card title="Payments" icon="credit-card" href="/bill-payments/payments">
    Make bill payments
  </Card>

  <Card title="History" icon="clock-rotate-left" href="/bill-payments/history">
    View payment history
  </Card>
</CardGroup>
