McTaba Labs logo
Software EngineeringThe WhiteboardProjectsEventsMasterclassesWebinarsLearn
Book Call

500+ developers already in the community

Get answers, find accountability partners, and stay ahead

Join Discord →
McTaba Labs logo

Educating 1 million students in tech by 2030.

Programs

  • HighSchool Graduates Launchpad
  • AI & Business Automation
  • Corporate Training
  • McTaba Story & Mission
  • Full-Stack Curriculum
  • Course Pricing & Plans
  • Frequently Asked Questions

Resources

  • Join Discord Community
  • Tech Events in Nairobi
  • Masterclasses
  • Free Resources
  • Learn
  • Campus
  • Africa Tech Talent Report
  • Partner With Us
  • Start a Project
  • Our Work

Contact Us

  • 124 Manyani East Road, Lavington, Nairobi
  • +254727795603
  • Book a Discovery Call

Office Hours:

Mon-Fri: 9am - 2pm EAT

Sat: 10am - 12pm EAT

© 2027 McTaba Labs - A product of Edtech Industries. All rights reserved.

Privacy PolicyTerms of ServiceRefund Policy
  1. Learn
  2. Paystack for African Developers
  3. Pesalink Transfers Through Paystack
Bonaventure OgetoBy Bonaventure Ogeto|Updated July 20, 2026

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.

In this article

  1. 1. What Is Pesalink
  2. 2. Setting Up Pesalink Recipients
  3. 3. Initiating Pesalink Transfers
  4. 4. Pesalink Transaction Limits
  5. 5. Pesalink vs M-Pesa vs Standard Transfers
  6. 6. Pesalink Failure Handling
  7. 7. Build Real-Time Payment Products

What Is Pesalink

Pesalink is a real-time payment platform operated by the Kenya Bankers Association (KBA). It connects member banks and enables instant interbank transfers. Unlike standard interbank clearing, which batches and processes transfers over hours, Pesalink settles each transaction individually and in real time.

For developers, Pesalink through Paystack means you can send money from your Paystack KES balance to a recipient's bank account and have it arrive in seconds. No waiting for batch clearing cycles. No next-business-day delays. The recipient sees the credit in their bank account almost immediately.

Most major Kenyan banks are Pesalink members, including Kenya Commercial Bank, Equity Bank, Co-operative Bank, Absa Kenya, Standard Chartered Kenya, and many others. The KBA continues to add member banks. If the recipient's bank is a Pesalink member, the transfer goes through the Pesalink rail. If not, it falls back to standard interbank clearing.

Setting Up Pesalink Recipients

Pesalink recipients are created the same way as standard Kenyan bank recipients. The routing to Pesalink happens based on the bank's Pesalink membership and the transfer amount being within Pesalink limits.

const createPesalinkRecipient = async (name, accountNumber, bankCode) => {
  var response = await fetch('https://api.paystack.co/transferrecipient', {
    method: 'POST',
    headers: {
      Authorization: 'Bearer ' + process.env.PAYSTACK_SECRET_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      type: 'nuban',
      name: name,
      account_number: accountNumber,
      bank_code: bankCode,
      currency: 'KES',
    }),
  });

  var data = await response.json();
  if (!data.status) {
    throw new Error('Recipient creation failed: ' + data.message);
  }

  return data.data;
};

You do not need to specify "Pesalink" anywhere in the recipient creation. Paystack determines the routing based on the destination bank and the transfer characteristics. Your job is to create the recipient with the correct bank code and account number, and Paystack handles the routing decision.

Get weekly developer tips

Join 25,000+ developers. Practical guides, job tips, and new content — straight to your inbox.

No spam. Unsubscribe anytime.

Initiating Pesalink Transfers

const sendViaPesalink = async (recipientCode, amountKES, reason, reference) => {
  var amountCents = Math.round(amountKES * 100);

  var response = await fetch('https://api.paystack.co/transfer', {
    method: 'POST',
    headers: {
      Authorization: 'Bearer ' + process.env.PAYSTACK_SECRET_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      source: 'balance',
      amount: amountCents,
      recipient: recipientCode,
      reason: reason,
      reference: reference,
    }),
  });

  var data = await response.json();
  if (!data.status) {
    throw new Error('Transfer failed: ' + data.message);
  }

  // Pesalink transfers resolve quickly
  // The transfer.success webhook should arrive within seconds
  return data.data;
};

var result = await sendViaPesalink(
  'RCP_kes_vendor_01',
  5000, // 5,000 KES
  'Instant settlement - Order #8834',
  'instant_payout_8834'
);

The transfer initiation is identical to any other Paystack transfer. What is different is the speed. Standard interbank transfers settle over hours. Pesalink transfers settle in seconds. Your webhook handler receives the transfer.success event almost immediately after initiation.

This speed means your user experience can be different. If you are building a platform where sellers can request instant withdrawals, Pesalink lets you confirm the payout was delivered within moments of the request. The seller does not have to wait until tomorrow to know their money arrived.

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 vs M-Pesa vs Standard Transfers

Kenya gives you three payout rails. Each has trade-offs.

Pesalink: Instant, bank-to-bank, transaction limits apply. Best for moderate-amount payouts to recipients with bank accounts who need speed.

M-Pesa: Near-instant, mobile wallet, wallet limits apply. Best for individuals, small to moderate amounts, recipients who prefer or only have M-Pesa.

Standard interbank: Slower (minutes to hours), no transaction limit concerns for most amounts, works for any bank. Best for large corporate payouts where speed is less critical.

The optimal strategy for most Kenyan platforms:

  1. Offer M-Pesa as the default for individual recipients (drivers, freelancers)
  2. Use Pesalink for bank transfers within the limit threshold where speed matters
  3. Fall back to standard interbank for large amounts
  4. Let recipients choose their preferred method during onboarding

For M-Pesa details, see transfers to M-Pesa wallets, Paybills, and Tills. For standard bank transfers, see transfers to Kenyan bank accounts via Paystack.

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.

Learn Paystack Integration

KES 2,999

The definitive guide to building payment systems with Paystack — from your first transaction to production-grade payment infrastructure across Africa. 9 modules, 47 lessons. Free preview available.

Start Paystack Course

Not ready? Create Free Account

Keep reading

Paystack Transfers and Payouts: Complete Guide

Everything you need to send money out of your Paystack account: creating transfer recipients, initiating single and bulk transfers, handling OTP requirements, managing failures, and building automated payout systems for bank accounts, M-Pesa wallets, and mobile money across Africa.

Read more

Transfer OTP: Enabling, Disabling and Automating

Paystack requires OTP confirmation for transfers by default. This guide explains the OTP flow, how to disable it for automated payout systems, the security trade-offs of disabling OTP, and how to build your own application-level approval controls to replace OTP with something better suited to production automation.

Read more

Funding Your Paystack Balance Programmatically

Your Paystack balance needs funds before you can send transfers. This guide covers the different ways to fund your balance, setting up dedicated virtual accounts, monitoring balance levels, building automated funding alerts, and integrating balance management into your payout pipeline so you never run out mid-payout.

Read more

Building a Driver Payout System for a Ride Hailing App

Ride-hailing drivers need fast, reliable payouts. This guide covers building a driver payout system on Paystack: calculating trip-based earnings with commission deductions, daily settlement cycles, M-Pesa and bank payout options, handling cash-collected trips, real-time driver balance tracking, and instant withdrawal features.

Read more

Verifying Amount and Currency Server-Side Before Granting Value

Checking that a Paystack transaction succeeded is not enough. You must also verify that the customer paid the right amount in the right currency. This guide shows the full server-side pattern with Node.js code and explains the price tampering attacks it prevents.

Read more

Explore related topics

M-Pesa & African Stack

M-Pesa Daraja API tutorials, USSD development, and WhatsApp Business API guides. The African Stack that global bootcamps do not teach.

Learn to Code in Kenya

Everything a Kenyan needs to know before writing their first line of code. Career paths, real costs, hardware requirements, and honest answers about what it takes.

Learning to Code

Roadmaps, language guides, and practical advice for learning to code and launching a programming career.

Breaking Into Tech

Practical, no-nonsense guides for anyone looking to start or change their career in tech. From choosing your first language to acing interviews.

The African Stack: Skills for This Market

The skills that make Kenyan developers hard to replace: M-Pesa, USSD, WhatsApp, fintech, and building for the African market.

Bonaventure Ogeto

Bonaventure Ogeto

Founder, McTaba Labs

Bonaventure is the founder of McTaba Labs, a coding bootcamp in Nairobi, Kenya. He has spent years building products for the African market and mentoring the next generation of developers across the continent.