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: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’sservice_code:
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: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 uniquereference and the biller’s service_code.
reference— Your unique identifier for this purchase. A reference can only be used onceservice_code— The biller, from List Billers or Network Lookupphone_number— 11 digit Nigerian mobile number starting with0(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)
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 returns200 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: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 return422 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 indata.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 neverpending. See Testing for the test billers, products and failing customer numbers.
Best Practices
- Validate first — Always run Meter or Smartcard Enquiry and confirm the name with your customer before buying electricity or cable
- Price from the catalog — Show data and cable prices from the bundle and bouquet lists, since that’s what Glyde charges
- Use unique references — Generate references you can trace back to the order (e.g.,
bill_{order_id}) - Treat
pendingas in progress — Don’t retry a pending purchase with a new reference; wait for the webhook or fetch the transaction - Deliver tokens reliably — Store
bill.tokenfor prepaid electricity so you can resend it if your customer loses it