Payment methods
Last updated: 2026-08-11
Select a payment method from the account catalog before creating a payment. Availability depends on the direction, market, realm, and request context.
Request enum values
| Value | Pay-in | Payout | Notes |
|---|---|---|---|
PAYMENT_METHOD_BANK_ACCOUNT | Yes | Yes | Use bank discovery when the flow needs a bank code |
PAYMENT_METHOD_BANK_TRANSFER | Yes | No | Hosted or direct pay-in; optional public submethod moniepoint |
PAYMENT_METHOD_MOBILE_MONEY | Yes | Yes | Use operator discovery when merchant-side selection is required |
PAYMENT_METHOD_MOBILE_MONEY_TRANSFER | Yes | No | Customer-initiated transfer; discover the inbound rail with pay-in operator discovery |
PAYMENT_METHOD_CARD | No | No | The enum exists, but merchant create operations reject it |
Discover availability
GET /merchant/api/v1/catalog returns the markets enabled for your account.
Each market contains countryCode, currencyCode, methodsIn, and
methodsOut.
Catalog values such as mobile_money, mobile_money_transfer, bank_transfer,
and bank_account are discovery tokens. Payment requests use the corresponding
PAYMENT_METHOD_* enum value.
After choosing a market and method:
- use pay-in bank or operator discovery for a direct inbound flow;
- use payout bank or operator discovery for an outbound flow;
- reuse returned bank and operator codes exactly as returned.
Do not hard-code account availability from this page. Discover it at runtime and handle a method becoming unavailable before payment creation.
Keep request context aligned
Use the selected market country and currency when creating the payment. Send
the same paymentMethod, trafficVertical, and customerSegment context in
discovery and create requests.
An explicit supported trafficVertical takes precedence over the account
default for that request. If it is omitted or unspecified, the account
classification can be applied. See Conventions.
For standard mobile-money pay-ins and payouts, treat the returned public CAPS
operator as opaque and reuse it exactly. Hosted standard mobile money sends it
when the selected market requires an operator. Mobile money transfer always
discovers and sends a transfer rail code: use mobileMoneyOperator for hosted
initialization or mobileMoneyTransferDetails.operator for direct creation.
Voucher-based standard mobile-money pay-ins add a voucher PIN only when the
selected route requires one.