Overview
USSD payments let your customers pay by dialling a short code on their mobile phone — no internet or smartphone required. After you generate a USSD code for a transaction, you instruct the customer to dial it. The bank processes the payment and Hyparrow notifies you via webhook when it’s confirmed. Key characteristics:- Works on any mobile phone including feature phones
- No internet connection needed by the customer
- Payment confirmation is asynchronous — you receive a webhook, not an immediate success response
- Supported by all major Nigerian banks that offer USSD banking
How it works
- Your server calls
POST /api/v1/payments/ussd/generatewith the amount and the customer’s bank code. - Hyparrow returns a USSD string (e.g.
*966*000*123456#) and amerchantTransactionReference. - You display the USSD code to the customer and instruct them to dial it.
- The customer dials, authenticates on their phone, and the bank processes the debit.
- Hyparrow fires a webhook to your registered URL when the payment settles.
Because the customer completes payment on their phone independently, the
POST /generate response does not mean the payment is complete. Always wait for the webhook before crediting the customer.Step-by-step guide
List USSD issuers
Fetch the banks that support USSD payments along with their ResponsePresent these options to your customer so they can select their bank.
bankCode values.Generate a USSD code
Call the generate endpoint with the amount, the customer’s chosen bank code, and optionally your own transaction reference.ResponseDisplay
ussdCode to the customer with clear instructions: “Dial this code on your phone to complete payment.”Endpoints reference
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/payments/ussd/issuers | List banks that support USSD payments |
POST | /api/v1/payments/ussd/generate | Generate a USSD payment code |
Generate request body
Amount in kobo as a string (e.g.
"500000" for ₦5,000).The bank code of the customer’s chosen bank. Retrieve valid codes from
GET /api/v1/payments/ussd/issuers.Your own unique reference for this transaction. If omitted, Hyparrow generates one. Store this value — it appears in the webhook payload.
