VTU API
    • Overview
    • Commission
    • Airtime
      • Providers
        GET
      • Payment
        POST
    • Data Bundle
      • Get Providers
        GET
      • Get Data Bundles
        POST
      • Payment
        POST
    • Cable TV
      • Get Providers
        GET
      • Get Bouquet
        POST
      • Validate Account
        POST
      • Payment
        POST
    • Electricity
      • Get Providers
        GET
      • Validate Account
        POST
      • Payment
        POST
    • Showmax
      • Get Bouquets
        GET
      • Payment
        POST
    • Gaming
      • Get Providers
        GET
      • Validate Account
        POST
      • Payment
        POST
    • Wallet
      • Balance
        GET
    • Education
      • Get Providers
        GET
      • Get Exam Types
        POST
    • Schedule Payments
      • Setup
        • Options
        • Bundles
      • Create
        • Create - Airtime (one time)
        • Create - Data (monthly)
        • Create - Cable TV (monthly)
        • Create - Electricity (weekly)
      • Manage
        • List schedules
        • Get schedule
        • Update schedule
        • Pay now
        • Retry failed run
        • Pause
        • Resume
        • Cancel (archive)
        • Re-enable
        • Delete
    • Buy Bulk Airtime
      • Bulk airtime
      • List bulk requests
      • Get bulk request
      • Download report (CSV)
      • Cancel
      • Query one number
    • Webhook (reference)

    Paybeta VTU & Bill Payment API Documentation

    Paybeta VTU and bill payment API for Nigeria

    Overview#

    The Paybeta API is a REST API for VTU and bill payments in Nigeria. With one integration and one wallet, your app can sell airtime, data bundles, electricity tokens, cable TV subscriptions and exam PINs.
    Every request and response is JSON, and transaction results are also sent to your webhook. Paybeta manages the provider relationships, so you integrate once instead of with each telco, DisCo and TV provider. You can test everything in the sandbox before going live.
    ProtocolREST over HTTPS
    Data formatJSON requests and responses
    AuthenticationAPI key in the P-API-KEY header
    EnvironmentsSandbox and Production
    CommissionSee the Commission Rate Schedule

    Supported Services and Providers#

    ServiceProvidersWhat you can do
    Airtime (VTU)MTN, Airtel, Glo, 9mobileInstant top-up to any Nigerian number, plus bulk airtime to many numbers in one request
    Data bundlesMTN, Airtel, Glo, 9mobileList available bundles and purchase by bundle code
    ElectricityEKEDC, IKEDC, AEDC, IBEDC, EEDC, PHED, JED, KEDCO, KAEDCOValidate a prepaid or postpaid meter, then pay and receive the token or units
    Cable TV and streamingDSTV, GOTV, StarTimes, ShowmaxList bouquets, validate the smartcard number and renew the subscription
    EducationJAMB, WAECList exam types and purchase PINs. See Education
    Scheduled paymentsAirtime, data, cable TV, electricityCreate one-time or recurring purchases. See Schedule Payments

    Electricity coverage#

    Paybeta supports all of Nigeria's 11 electricity distribution companies (DisCos):
    DisCoCode
    Eko ElectricityEKEDC
    Ikeja ElectricIKEDC
    Abuja ElectricityAEDC
    Ibadan ElectricityIBEDC
    Enugu ElectricityEEDC
    Port Harcourt ElectricityPHED
    Jos ElectricityJED
    Kano ElectricityKEDCO
    Kaduna ElectricKAEDCO
    Aba ElectricABA
    Yola ElectricityYEDC
    Benin ElectricityBEDC
    How a Paybeta bill payment transaction flows

    Getting Started#

    1.
    Create a sandbox account. Register for a Sandbox Account to build and test your integration safely.
    2.
    Request API access. Email support@paybeta.ng to request API activation. For real-time technical help, join the Paybeta Slack Community.
    3.
    Complete verification. Your Account Manager will guide you through the compliance checklist for KYC (Know Your Customer) and KYB (Know Your Business) documents.
    4.
    Go live. Register for a Production Account and switch to the production base URL and your live API key.
    ⚠️ Important: Your account must be approved and enabled for Live Mode by the Paybeta compliance team before calls to production endpoints will succeed.

    Base URLs#

    EnvironmentBase URL
    Sandbox (Testing)https://api.sandbox.paybeta.ng
    Production (Live)https://api.paybeta.ng

    Authentication#

    All API requests must be made over HTTPS. Authenticate by sending your API key in the P-API-KEY request header. You can find your API keys in the Paybeta Console Settings.
    Keep your API key secret. Call the API from your server only, and never expose the key in a mobile app or in browser code.

    Required request headers#

    HeaderValueDescription
    Acceptapplication/jsonSets the response format.
    Content-Typeapplication/jsonSets the request payload format.
    P-API-KEYYour secret API keyAuthorizes your API requests.

    Example#

    Response Format#

    Every response from the Paybeta API uses the same JSON structure, so you can handle success and errors the same way across all services.
    FieldTypeDescription
    statusstringThe state of the transaction: successful, failed or pending.
    messagestringA human-readable explanation of the result.
    dataobjectTransaction details. For example, the token and units for electricity, or the generated PINs for ePIN requests.

    Example response#

    {
        "status": "successful",
        "message": "Transaction successful",
        "data": {
            "reference": "1714742875",
            "amount": 2000,
            "chargedAmount": 1950,
            "commission": 50,
            "biller": "MTN AIRTIME",
            "customerId": "08068539221",
            "transactionDate": "2024-05-03 14:27:57",
            "transactionId": "1714742877672593466202420"
        }
    }
    A pending status means the provider has not yet confirmed the transaction. Do not retry the purchase; wait for the final result on your webhook.
    Modified at 2026-10-07 05:34:29
    Next
    Commission
    Built with