Skip to main content
Pay bills on behalf of your customers straight from your Glyde wallet. Four bill categories are supported: Every purchase debits your NGN wallet for the bill amount plus the bill payment fee.

How Bill Payments Work

1

Find the Biller

List the billers in a category to get the biller’s service_code. For airtime, Network Lookup resolves it from the phone number.
2

Pick a Product or Validate the Customer

For data and cable, list the bundles or bouquets to get a product ID and its price. For electricity and cable, validate the meter or smartcard to get the customer’s name.
3

Make the Purchase

Call the purchase endpoint with your unique reference. The response tells you whether the bill is successful, failed or pending.
4

Handle the Webhook

Pending purchases settle later. Glyde sends a bill.successful or bill.failed webhook when they do.

Prerequisites

Before paying bills:
  • Fund your NGN wallet — It must cover the bill amount and the fee. Bill payments are only paid from a naira wallet
  • Configure webhooks — Bill purchases require a webhook URL to be set in your dashboard for the environment you’re calling
  • Whitelist your servers — In production, purchase endpoints are protected by IP whitelisting when it’s enabled on your business

Step 1: Find the Biller

List the billers in a category:
For airtime, you can skip the list and resolve the network from the customer’s phone number:
Biller lists, data bundles and cable bouquets change rarely. Cache them on your side rather than fetching them on every purchase.

Step 2: Pick a Product or Validate the Customer

Data bundles and cable bouquets

Data and cable are sold as fixed-price products. List them for the biller’s service_code:
You don’t send an amount when buying data or cable. Glyde charges the product’s current catalog price, so the price your customer sees should come from these lists.

Meter and smartcard enquiry

Before buying electricity or cable, validate the customer’s meter or smartcard. This confirms it exists and returns the name on the account:
Display customer_name to your user for confirmation, then send it as customer_name on the purchase. If Meter Enquiry returns an access_token, send that on the electricity purchase too.

Step 3: Make the Purchase

Each category has its own purchase endpoint. All of them take your unique reference and the biller’s service_code.
Key fields:
  • reference — Your unique identifier for this purchase. A reference can only be used once
  • service_code — The biller, from List Billers or Network Lookup
  • phone_number — 11 digit Nigerian mobile number starting with 0 (airtime and data)
  • amount — Amount in naira, with at most 2 decimal places (airtime and electricity only)
  • bundle_id / bouquet_id — The product to buy (data and cable only)
  • customer_name — The name returned by Meter or Smartcard Enquiry (electricity and cable)
The response is the bill payment transaction:
For prepaid electricity, give the customer the meter token from bill.token. For data and cable, bill.product_code and bill.product_name hold the bundle or bouquet that was bought.

Bill Payment Lifecycle

A purchase request returns 200 whenever the bill was submitted to the biller. Always check data.status: Most purchases settle immediately. A purchase stays pending when the biller is slow to respond; Glyde rechecks pending purchases every minute until they’re final. You can also check one at any time with Fetch Transaction using Glyde’s reference — bill payment transactions include the same bill object.

Webhook Notification

When a pending purchase settles, or as soon as a purchase completes, you’ll receive a webhook:
A failed bill sends bill.failed with "status": "failed". By the time you receive it, the amount and fee have been refunded to your NGN wallet.

Common Errors

Purchase errors return 422 and no funds are debited. Lookups (Network Lookup, Meter Enquiry and Smartcard Enquiry) return 422 with the biller’s message when the number can’t be validated. If bill payments are switched off for your business, or the biller can’t be reached, endpoints return 503. Retry shortly.

Fees

Each purchase incurs a bill payment fee, charged in naira and taken from your NGN wallet together with the bill amount. The fee is shown in data.fee on the purchase response and webhook. data.amount is the bill amount alone.

Testing in Sandbox

Sandbox bill payments never reach a real biller, and purchases settle immediately — they’re never pending. See Testing for the test billers, products and failing customer numbers.

Best Practices

  1. Validate first — Always run Meter or Smartcard Enquiry and confirm the name with your customer before buying electricity or cable
  2. Price from the catalog — Show data and cable prices from the bundle and bouquet lists, since that’s what Glyde charges
  3. Use unique references — Generate references you can trace back to the order (e.g., bill_{order_id})
  4. Treat pending as in progress — Don’t retry a pending purchase with a new reference; wait for the webhook or fetch the transaction
  5. Deliver tokens reliably — Store bill.token for prepaid electricity so you can resend it if your customer loses it