Skip to main content
Every order and quote has a recipient object that says who gets paid and how. Which fields you need depends on the currency and on how the money is paid out (the method).

Methods per currency

MOBILE: KES, GHS, UGX

string
required
The recipient’s name as you know it. We put it on the payout record.
string
required
Local format, like 0712345678. International formats (+254712345678, 254712345678) work too.
string
required
The recipient’s mobile money network:

BUY_GOODS: KES tills

string
required
M-Pesa till number, 5–7 digits.

PAYBILL: KES paybills

string
required
Paybill business number, 5–7 digits.
string
required
The account number the paybill asks for, such as a meter number, invoice number, or phone number.

BANK_TRANSFER: KES banks

string
required
Bank account number.
string
required
Kenyan bank code.
string
Display name for the bank. Optional.

NGN bank transfer

NGN recipients have no method field. All NGN payouts are bank transfers.
string
required
The recipient bank’s institution code (bank_code is accepted as an alias). For example GTBINGLA for Guaranty Trust Bank, or OPAYNGPC for OPay.Get the full list of 171 codes from GET /api/offramp/institutions and use it to fill a bank picker. You can’t work a code out from the bank’s name, and a wrong one stops the order from being created.
string
required
The 10-digit Nigerian bank account number (NUBAN).

Validation

We check every recipient before creating an order. If the account isn’t valid, you get a 422 and nothing is created.
  • Bank accounts (KES and NGN) must exist and have a name registered to them, or the order is refused.
  • Phone numbers, tills, and paybills are looked up too. We give you the registered name when we can find it, but a missing name doesn’t stop the order.
  • KES M-Pesa phones and tills on automatic orders are checked to make sure they can receive the money. If one can’t, you get a 422. A number that works but has no name on record still goes through, using your account_name.
To show your user the registered name on a confirmation screen before they send, call POST /api/offramp/validate-account first.