Skip to main content
USSD lets a customer authorise a payment by dialling a short code on their phone, without a card or a bank app. It is offered as a payment option on Pay an order.
Confirm availability before building against this. USSD is listed as a supported method, but the provider has not published a pay-order payload for it, and GET /charge/banks?paymentmethod=ussd currently returns an empty bank list on sandbox. Check with Reeple whether USSD is enabled for your account and which banks it covers.

Endpoint

Authenticate with your public key. See Authentication.

Checking whether it is offered

USSD only appears for orders whose currency supports it and on accounts where it is enabled. The authoritative source is the create-order response:
If USSD is absent, don’t offer it.

Payload (before encryption)

The common fields are the same as every other method:
The USSD-specific object — most likely a bank selection, mirroring bank transfer’s BankTransfer.bankcode — is not documented by the provider. Confirm the exact shape with Reeple before implementing.

Listing USSD banks

Banks that support USSD carry a ussdBankCode — that, rather than bankCode, is the value a USSD flow needs. See List banks.
An empty data array means no banks are currently enabled for USSD on your account. Treat that as “don’t offer USSD” rather than an error.

What to expect

Once submitted, the response follows the same shape as every other method — a pending status you poll to completion.
1

Display the dial string

The customer dials it on the phone number registered with their bank.
2

They authorise on their handset

Their bank prompts them to confirm and enter a PIN.
3

Poll for status

Get order status until isFinalStatus is true. USSD typically settles in minutes.

Alternatives

Bank transfer

Also needs no card, and is fully documented today.

Card

The most widely available method across currencies.