Payments

M-Pesa Payment Links: Get Paid on WhatsApp and Instagram Without a Website

A payment link lets a customer pay you by M-Pesa from a chat, a bio or an invoice. They tap it, type their number, enter their PIN, and the money lands in your own Paybill or Till. Here is how it works, how it compares with “pay to Till 123456”, and how to make one.

Plenty of Kenyan businesses sell without a website. Orders come in on WhatsApp, Instagram DMs, phone calls and SMS. Payment usually means sending the customer your Till or Paybill number and waiting for the M-Pesa message.

That works. But it puts the typing on the customer, and the checking on you. A payment link moves both jobs to software. This guide explains what a link is, when it is worth it (and when it is not), and how to set one up with KenZobe Checkout, our own M-Pesa checkout.

What is an M-Pesa payment link?

A payment link is a short web address with a fixed amount behind it. With KenZobe Checkout it looks like this:

https://pay.kenzobe.com/<code>

When your customer taps it:

  1. A checkout page opens in their phone's browser showing your business name, what they are paying for and the amount.
  2. They type their M-Pesa number and tap to pay.
  3. An M-Pesa prompt (an “STK push”) appears on their phone.
  4. They enter their M-Pesa PIN.
  5. Once Safaricom confirms the payment, the page shows it as paid.

You do not need a website, a developer or any code. If you want to know what happens behind the prompt, our STK Push tutorial covers it.

One thing to know up front: a link has one fixed amount. The customer cannot change it, which is the point. If you sell something at a different price, make another link. You might keep one link per product or per package.

Payment link vs “pay to Till 123456”

Sending your Till or Paybill number by hand is the way most small sellers start, and for good reason. It costs nothing in software, every customer knows how to do it, and the money goes straight to you. If you get a few orders a day and you know your customers, it may be all you need.

Where it starts to hurt is volume and strangers. Here is the honest comparison:

  • Typing. By hand, the customer types your number, the amount and sometimes an account number. With a link, they type only their own phone number. The amount is already set.
  • Wrong amounts. By hand, someone can send 150 instead of 1,500, or pay the wrong Till. With a link, the amount and the destination are fixed.
  • Knowing who paid. By hand, you match M-Pesa messages to chats yourself. With a link, every payment is confirmed with Safaricom and listed in your dashboard with its M-Pesa receipt.
  • Trust. By hand, the customer sees a number. With a link, they see your business name and the exact amount before they pay.
  • Cost. By hand, there is no software to pay for. Live links need a monthly KenZobe Checkout plan (details below). Safaricom's own M-Pesa charges apply either way.
  • Setup. By hand, there is none. For live links you need your own Safaricom Daraja app, which takes some paperwork the first time.

A link is not magic. It is a tidier way to ask for an exact amount and get a clear record that it was paid.

How to create an M-Pesa payment link in KenZobe Checkout

You can make a test link in a few minutes and see the whole flow before you spend anything. Live links take longer because Safaricom has to approve your Daraja app first.

  1. Sign up free. Create an account at app.kenzobe.com. New accounts start in test mode (sandbox): payments go through Safaricom's sandbox and no real money moves. You can try a test payment straight away, before adding any keys of your own.
  2. Make a test link. In the dashboard, create a payment link with a title (what the customer is paying for, such as “Ankara dress, size 12”) and an amount in whole shillings. Optionally add a return address: a web page the customer is sent to after a confirmed payment.
  3. Open it and pay. Tap the link on your phone and walk through it as your customer would. Test links go through Safaricom's sandbox, so no real money moves.
  4. Get your Daraja keys. For real payments you need your own Paybill or Till and a Safaricom Daraja app that has gone live. Our guide to getting your M-Pesa Daraja API keys walks through it, including the Org Portal administrator step that trips most people up.
  5. Add your live keys. Turn on two-step sign-in (an authenticator app) first; it is required before live keys can be saved. Then enter your paybill number, or your store number and till number, plus the consumer key, consumer secret and passkey. Keys are encrypted and never shown again after saving.
  6. Choose a plan. Live payments open with a monthly plan, paid by M-Pesa.
  7. Make your live link and share it. Same as the test link: title, amount, optional return address. Copy the address and send it.

See it from your customer's side first

The demo checkout behaves like a real payment link but sends no real prompt and stores nothing. Signing up is free and starts in sandbox, where no real money moves.

What it costs

KenZobe Checkout plans are prepaid monthly by M-Pesa, with no VAT added and no percentage taken from each payment:

  • Sandbox: free, unlimited test payments
  • Basic: KES 2,400 a month, up to 300 successful live payments
  • Growth: KES 6,000 a month, up to 1,500
  • Business: KES 14,000 a month, up to 6,000
  • Custom: quoted, above 6,000

If you go over your plan's volume, your customers can still pay you. A customer's payment is never blocked because of your plan.

Safaricom's normal charges still apply, exactly as they would if the customer paid you by hand. At the time of writing (October 2026), according to Safaricom's tariff page, customers pay nothing to pay a Till, and the business pays nothing up to KES 500, 0.55% from KES 501 to KES 36,363, and a flat KES 200 above that. Paybill charges depend on the tariff you agreed with Safaricom; see Safaricom's Paybill page or ask your account manager. Tariffs change, so check before you set prices.

Where to share your payment link

A link works anywhere you can paste text:

  • WhatsApp chats: send it right after you confirm an order, instead of your Till number.
  • WhatsApp catalogue: add a product's link to its catalogue item so customers can pay from there.
  • WhatsApp status: post a product photo with its link for a quick sale.
  • Instagram bio: put your most popular product's link in your bio, or a link for a deposit or booking fee.
  • SMS: it is a normal web address, so it works in a text message too.
  • Email invoices: add a “Pay with M-Pesa” link under the total.
  • QR code: paste the link into any QR generator and print the code on your counter, packaging, flyers or a delivery note. Customers scan it with their phone camera.

What your customer sees

The best way to understand it is to try it. Open the demo checkout on your phone. It is plainly marked as a demo, checks only that the phone number is in the right format, sends no real prompt and stores nothing.

On a real link, your customer:

  1. Taps the link in WhatsApp, Instagram, an SMS or an email, or scans your QR code.
  2. Sees your business name first, then what they are paying for and the amount.
  3. Types their M-Pesa number and taps to pay.
  4. Gets the M-Pesa prompt on their phone and enters their PIN.
  5. Waits a moment while the payment is confirmed with Safaricom, then sees that it has gone through. If you set a return address, they are sent there.

Where the money goes

Straight into your own Paybill or Till. KenZobe Checkout is software: it sends the prompt, confirms the payment with Safaricom and keeps the record. It never receives, holds or settles your customers' money, so there is no payout to wait for and no balance held somewhere else.

That is also why you need your own Daraja app for live payments. The payment is between your customer and your shortcode; we provide the cashier machine.

A customer says they paid. How do you check?

Do not go by a screenshot or a forwarded M-Pesa message. Both can be faked, and both are easy to mix up between customers.

Open your KenZobe Checkout dashboard and find the payment in the list. A payment is marked paid only after Safaricom confirms it with a status check, never on what a browser or a message says. A paid payment shows its M-Pesa receipt, which you can also match against your own M-Pesa statement. If it is not there as paid, it has not been confirmed, whatever the screenshot shows.

The same goes for a return address. A customer landing on your thank-you page is a pointer, not proof: anyone can type that address. If a developer builds something that delivers automatically after payment, their server must check the payment through the KenZobe API with your secret key before handing anything over. Our pay button guide shows how.

The limits, plainly

  • KenZobe Checkout does M-Pesa only. No cards, Airtel Money or bank transfers.
  • Each link has one fixed amount. For a different amount, make another link.
  • Live links need your own Paybill or Till and your own Daraja app. Sandbox does not.
  • Live links need a paid monthly plan. Sending your Till number by hand does not.

If you would rather someone else set up your Daraja app, links or website for you, our team does that. Get in touch.

Frequently asked questions

Do my customers need to install an app?+

No. Your customer opens the link in the browser they already have, types their M-Pesa number and approves the payment with their M-Pesa PIN on the prompt that appears on their phone. There is nothing to download and no account to create.

Can I use a Till number instead of a Paybill?+

Yes. Safaricom's Daraja API supports STK Push payments to a Till. When you add your live keys to KenZobe Checkout you enter your store number and till number (for a Paybill, your paybill number), plus the consumer key, consumer secret and passkey from your Daraja app.

What if the M-Pesa prompt does not arrive?+

Ask the customer to check that their phone is on and has signal, that the number they typed is the line with M-Pesa on it (dual-SIM phones catch people out), and that they enter their PIN quickly: the prompt times out after roughly one to three minutes, depending on the phone. If it timed out or was cancelled, nothing is marked paid. They can open the link again and try once more.

How much does it cost?+

Testing in sandbox is free. Live payment links come with a monthly KenZobe Checkout plan, from KES 2,400 a month for up to 300 successful payments, and KenZobe takes no percentage of each payment. Safaricom's normal M-Pesa charges still apply. At the time of writing (October 2026), Safaricom's tariff page shows that a customer pays nothing to pay a Till, and the business pays nothing on Till payments up to KES 500. See is the M-Pesa API free? for the full breakdown.

Can I use it on my website too?+

Yes. The same account gives you a Pay with M-Pesa button you can paste into any website: plain HTML, WordPress, Wix custom code or a site built with an AI tool. It opens the same checkout page your links use. Here is how to add an M-Pesa pay button to your website.

Does KenZobe hold my money?+

No. The payment goes from your customer's M-Pesa straight into your own Paybill or Till, the same as if they had paid you by hand. KenZobe Checkout is software that sends the prompt and confirms the payment; it never receives, holds or settles your customers' money.

Try it

Make a test link, send it to yourself on WhatsApp and pay it. It takes a few minutes and costs nothing. When you are happy, add your Daraja keys and a plan, and swap “pay to Till 123456” for a link.

See it from your customer's side first

The demo checkout behaves like a real payment link but sends no real prompt and stores nothing. Signing up is free and starts in sandbox, where no real money moves.