Bonaventure OgetoBy Bonaventure Ogeto|

Pesalink Transfers Through Paystack

Pesalink transfers through Paystack let you send instant bank-to-bank payments in Kenya. The recipient sees the money in their bank account within seconds. Pesalink has per-transaction limits, so it is best for transfers below those thresholds. For larger amounts, standard interbank transfers are the alternative. Create recipients with the appropriate bank code and KES currency, then initiate the transfer as usual.

Pesalink Transaction Limits

Pesalink has per-transaction limits that are set by the network, not by Paystack. These limits can change as the KBA updates the Pesalink framework. Check the current limits with Paystack or the KBA before designing your payout logic around specific amounts.

For transfers that exceed Pesalink limits, the payment is routed through standard interbank clearing instead. This means it will still arrive, just not instantly. Your code does not need to handle this routing decision; Paystack and the banking infrastructure manage it.

// Helper to decide the best transfer method
function recommendTransferMethod(amountKES, recipientType) {
  // These are illustrative thresholds, not actual Pesalink limits
  // Check current Pesalink limits before using specific values
  var pesalinkIndicativeMax = 999999; // Example only

  if (recipientType === 'mpesa') {
    return {
      method: 'M-Pesa',
      speed: 'Instant (seconds)',
      note: 'Best for individuals and small amounts',
    };
  }

  if (amountKES <= pesalinkIndicativeMax) {
    return {
      method: 'Pesalink',
      speed: 'Instant (seconds)',
      note: 'Real-time bank-to-bank within Pesalink limits',
    };
  }

  return {
    method: 'Standard interbank',
    speed: 'Minutes to hours',
    note: 'Amount exceeds Pesalink limits, routed via standard clearing',
  };
}

In your admin dashboard or vendor portal, show the expected settlement speed based on the transfer method. Setting correct expectations prevents support tickets. "Your payout of 5,000 KES will arrive in seconds via Pesalink" is much better than a vague "payout processing."

Pesalink Failure Handling

Pesalink transfers can fail for the same reasons as standard bank transfers: invalid account, bank downtime, account restrictions. The difference is that failures are reported faster because Pesalink processes in real time.

A Pesalink failure arrives as a transfer.failed webhook within seconds of initiation, not hours later. This means your retry logic can also execute faster. If a Pesalink transfer fails due to a transient issue, a retry after 5-10 minutes (instead of the 15-60 minutes recommended for standard transfers) is reasonable because the feedback loop is much shorter.

One Pesalink-specific failure mode: the destination bank may be a Pesalink member but temporarily not processing Pesalink transactions (maintenance, connectivity issues with the Pesalink network). In this case, Paystack may route the transfer through standard interbank clearing instead, resulting in a slower settlement but not a failure. Your code handles this transparently because the webhook events are the same regardless of which rail Paystack used internally.

Build Real-Time Payment Products

Pesalink opens up instant payout experiences that were not possible with batch-based interbank transfers. If your product depends on fast settlement in Kenya, Pesalink is the rail to build on.

The McTaba bootcamp covers payment integration for the East African market, including M-Pesa, Pesalink, and bank transfers.

Create a free McTaba account

Key Takeaways

  • Pesalink provides real-time interbank transfers in Kenya. Money arrives in the recipient bank account within seconds.
  • Pesalink has per-transaction limits set by the network. It is best suited for transfers below those thresholds.
  • The recipient does not need to do anything special. As long as their bank is a Pesalink member, they receive the money instantly.
  • Pesalink transfers use the standard Paystack transfer flow: create recipient, initiate transfer, track via webhooks.
  • Choose Pesalink for speed-critical, moderate-amount payouts. Choose standard transfers for large amounts. Choose M-Pesa for recipients without bank accounts.

Frequently Asked Questions

Do I need a special Paystack account to use Pesalink?
No. Pesalink routing is handled by Paystack based on the destination bank and transfer characteristics. You use the standard transfer API. Paystack decides whether to route through Pesalink or standard interbank clearing.
Does Pesalink work 24/7?
Pesalink is designed for real-time processing, but availability can depend on the participating banks and the Pesalink network itself. Transfers initiated during banking hours are most reliably processed instantly. Off-hours transfers may experience slight delays depending on the receiving bank.
Are Pesalink transfer fees different from standard transfer fees?
Paystack may apply different fee structures for Pesalink vs standard transfers. Check your Paystack dashboard or pricing page for the current fee breakdown. Factor the appropriate fee into your balance calculations before initiating transfers.

Ready to build real-world apps?

Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.

Apply to the McTaba Marathon