Skip to main content
Use payment options to render checkout copy. Pass one context query so the account number matches the collection you intend.

Fetch Instructions

Optional query (pick one):

Response Fields

  • virtualAccountNumber / virtualAccountName
  • mobileMoneyCustomerFacingCopy — manual M-Pesa (My OneApp, USSD, SIM Toolkit)
  • stkPushCustomerFacingCopy — STK Push only. Null when STK is off
  • pesalinkCustomerFacingCopy
  • rtgsCustomerFacingCopy / rtgsNarrationHint
  • options[] — structured fields per channel
Display the *CustomerFacingCopy strings as-is, or build your own UI from options.

Mobile Money (M-Pesa)

Manual Paybill

The payer enters three fields only: paybill, account number (the virtual account), amount.
options for MOBILE_MONEY include paybillNumber (559900) and paybillNumberName (UBA Kenya). There is no extra reference field on My OneApp/USSD/SIM Toolkit. Shop or invoice identity should use a Brand or Invoice virtual account so the number itself identifies the payment.

STK Push

The payer does not type paybill or account number. You send a prompt to their phone.
Poll:
status is PENDING_CUSTOMER, SUCCESS, FAILED, or CANCELLED. Settlement still appears as an inbound payment on the virtual account (see Payments). Payers send to the virtual account number at UBA Kenya.
options for PESALINK include bankName (UBA Kenya) and accountNumber (the virtual account).

RTGS

Payers send an RTGS credit to the collection account below. Field :70 must include the virtual account number (and your reference when you use one).
rtgsNarrationHint is the exact :70 string. options for RTGS include bank, branch, SWIFT, account name, and account number.