General Transfer

Scope

This applies to scenarios where end users are making a transfer to:

  1. M-PESA Mobile Money

  2. AIRTEL Mobile Money

  3. Choice Bank Account

  4. Pesalink

circle-info

Pesalink Transfer has following limitations:

  1. Dometic banks only

  2. KES currency only

  3. Maximum KES 999,999 per transaction

  4. Some counter banks restrict Pesalink service to business hours

Recommendations for Alternative Use Cases

  1. Large/Urgent Transfers → Prioritize RTGS for immediate, high-value settlements.

  2. ​Cross-Border Payments → Utilize SWIFT or mobile money corridors (e.g., M-PESA Global).

  3. ​After-Hours Transactions → Leverage M-PESA for 24/7 liquidity.

  4. ​Bulk Corporate Payments → Integrate with bank APIs or dedicated bulk payment platforms.

Steps

1

Initiate Transfer Request

Call endpoint /trans/v2/applyForTransfer to initiate a transfer request

Status: 1-SUBMITTED

2

Confirm OTP

Call endpoint /common/sendOtp to request for OTP, filling the value of txId to businessId parameter. Call endpoint /common/confirmOperation to confirm the OTP code received.

Status: 2-PROCESSING

circle-info

The endpoint /common/sendOtp can also be used to resend OTP.

3

Transaction Processing

Status: 2-PROCESSING

4

Get Onboarding Result

  • Get it from 0002 - Transaction Result Notification

  • Query transaction status by calling the endpoint /query/getTransResult

Status

Transaction Types

Transaction Type (txType)
Description

TTID0001

Withdraw to M-PESA

TTID0002

Transfer Out

TTID0003

Transfer In

TTID0004

Interest Income

TTID0005

M-PESA Paybill / Till

TTID0006

Utility Payment

TTID0007

Refund

TTID0008

FCY Deposit

TTID0009

FCY Transfer Out

TTID0010

FCY Exchange

TTID0011

Reversal

TTID0023

Cash Deposit

TTID0024

Cash Withdrawal

Last updated