Skip to main content

Payout providers

The provider field picks the payout rail. IntaSend then routes the payment to the best available processor for that provider, currency and country.

providerPays toCountriesCurrencyKey fields
MPESA-B2CM-Pesa phone numberKEKESaccount = phone. Minimum KES 10.
MPESA-B2BM-Pesa till or paybillKEKESaccount, account_type, plus account_reference for paybills
PESALINKBank account (instant)KEKESaccount, bank_code. Min KES 100, max KES 999,999.
RTGSBank account (high value)KEKESaccount, bank_code, name. Min KES 100.
EFTBank accountKEKESaccount, bank_code, name. Min KES 100.
INTASENDAnother IntaSend accountAnyAny wallet currencyaccount = recipient's IntaSend account
AIRTIMEAirtime top-upKEKESaccount = phone. Live only.
KPLCKenya Power prepaid tokenKEKESaccount = meter number, notify_phone
INTASEND-XBCross-border mobile money (bank in NG)UG, TZ, RW, GH, NG, CD, SN, CI, BF, CM, and moreLocal currencycountry, account in international format
INTASEND-XB-BANKBank account in UgandaUGUGXaccount, bank_code, name

For request examples per country, see Countries.

Phone number format​

  • Kenya (M-Pesa, airtime): 2547XXXXXXXX, 07XXXXXXXX and 7XXXXXXXX are all accepted.
  • Cross-border (INTASEND-XB): use the full international format without +, for example 256772123456 (UG), 255754123456 (TZ), 250788123456 (RW), 233241234567 (GH).

The account field accepts digits only.

M-Pesa B2B (till and paybill)​

{
"currency": "KES",
"provider": "MPESA-B2B",
"transactions": [
{"name": "KPLC", "account": "888880", "account_type": "PayBill", "account_reference": "12345678", "amount": "500", "narrative": "Bill"},
{"account": "174379", "account_type": "TillNumber", "amount": "200"}
]
}

B2B amounts are rounded to whole shillings.

Bank transfers (Kenya)​

Use PESALINK for instant transfers up to KES 999,999, and RTGS for higher values. Get the bank_code from GET /send-money/bank-codes/ke/.

{
"currency": "KES",
"provider": "PESALINK",
"transactions": [
{"name": "John Doe", "account": "0123456789012", "bank_code": "68", "amount": "1000", "narrative": "Invoice 22"}
]
}

PesaLink amounts are rounded to whole shillings, and narratives are shortened to 20 characters. Some bank routes need an OTP confirmation per transaction.

IntaSend wallet transfers​

INTASEND moves funds instantly to another IntaSend account's settlement wallet in the same currency. It works for every wallet currency, including USD, EUR and GBP.

KPLC tokens​

{
"currency": "KES",
"provider": "KPLC",
"transactions": [{"account": "37123456789", "amount": "500", "notify_phone": "254712345678"}]
}

IntaSend validates the meter before paying. The token is sent to notify_phone.

Limits​

All payouts are also subject to your account tier limits (per transaction and per day) and to your wallet balance, including charges. Requests that exceed them fail with a clear error message. See Errors.