What M-Pesa Details Should Appear on a Kenyan Invoice
Four fields decide whether your invoice gets paid. Leave out one and the buyer messages you instead of sending money, so the sale sits there while you chase a payment that never left. Put the channel and number, the account number if you use a paybill, your registered business name and the amount in KES where the buyer can see them. Then record the M-Pesa confirmation code against the invoice.
The four M-Pesa fields, in order of importance
- Channel and number. Write "Buy Goods Till 123456" or "Paybill 247247" exactly as it appears in the M-Pesa menu. Ambiguity here is the single biggest cause of failed payments.
- Account number (paybill only). The buyer types this after the paybill number. A till has no account number, so do not invent one.
- Registered business name. The name the buyer sees on the confirmation screen must match the name on your invoice. When it does not, buyers pause and message you instead of paying.
- Amount in KES. State the full figure, including delivery if it is bundled, and write it in figures with "KES" in front.
Add the date, your invoice serial, a short description of goods, and the buyer's name. For the mechanics of collecting payments inside a shop link, see how LinkDuka handles M-Pesa checkout.
Paybill or till: which number do you print?
| Buy Goods (Till) | Paybill | |
|---|---|---|
| Customer enters | Till number, amount | Paybill number, account number, amount |
| Best for | Over-the-counter and delivery sales | Invoices, orders, repeat customers |
| Reconciliation | Harder with many similar orders | Easy if account number is the invoice serial |
| On an invoice | Show till number only | Show paybill number plus account number |
Pro tip: if you run both, print only the one you want the customer to use for that specific order. Two numbers on one invoice doubles the chance of a wrong payment.
Safaricom publishes the current menu steps and charges for both options on its M-Pesa consumer page. Charges change, so quote them from there rather than from memory.
Where the invoice number and the M-Pesa account number meet
The cleanest setup is to make your M-Pesa account number the same as your invoice serial. That way a payment confirmation and an invoice match on one line when you reconcile at the end of the day.
Many sellers instead ask customers to key in their phone number as the account number. It works, but two orders from the same buyer look identical in your statement, and you end up reading SMS messages to work out which order was paid. If you sell more than a handful of orders a week, switch to invoice serials.
If you are VAT registered, KRA expects a tax invoice that also shows your PIN, the buyer's PIN where applicable, the invoice serial, the date, a description of the supply, and the VAT charged. These invoices must be generated through eTIMS, so confirm the current rules on the Kenya Revenue Authority site before designing a template. If you sell as an individual, registering a business name first makes it easier to open a business till and keep records separate from personal money - the Business Registration Service handles that.
The trade-off: short invoice versus complete invoice
Every extra line on an invoice is another thing a buyer on a slow phone connection has to read.
- A short invoice gets paid faster. It shows the amount, the number, and the account number, and nothing else.
- A complete invoice survives a records check, supports warranty claims, and reduces arguments about what was ordered.
The practical middle ground is a one-page invoice with the payment block at the top, the item lines in the middle, and the compliance details in small text at the bottom. Buyers read the top. KRA reads the bottom. You need both, but you do not need them competing for attention.
How do I explain the payment step to a customer?
Say it in one message: "Pay KES 2,300 to Paybill 247247, account 1042. Send me the M-Pesa code and I will book your delivery for tomorrow." That gives the customer the amount, the number, the account number, the proof you need, and what happens next, in under 30 words.
Where should I share these details on WhatsApp and Instagram?
For WhatsApp, save the payment line as a quick reply and pin it in the chat description so you are not retyping it for every enquiry. For Instagram and Facebook, put the payment explanation behind a shop link rather than in the caption, and keep the caption focused on the product. Meta Business Suite lets you save replies across both apps.
The same discipline that makes a checkout feel friendly applies to payment instructions - see how social sellers build a user-friendly shopping experience without overloading the buyer.
Common mistake: pasting a personal M-Pesa number in a public comment thread. It invites wrong payments and exposes a number that should stay private.
What never belongs on an invoice
- Your M-Pesa PIN or any one-time password. No legitimate request needs these.
- A staff member's personal phone number as the payment line.
- Full customer phone numbers on documents you post publicly or hand to a third party.
Customer names, numbers, and order histories are personal data. The Office of the Data Protection Commissioner sets the expectations for storing and sharing them, and consent matters when you reuse a buyer's details for marketing.
Quick checklist before you send
- Payment channel named exactly as it appears in the M-Pesa menu
- Till number, or paybill number plus account number
- Amount in KES, with delivery included or listed separately
- Business name that matches what the buyer sees in M-Pesa
- Invoice serial and date
- Confirmation code added once payment arrives
- A saved copy filed for your records
Next steps
Test your own invoice by paying yourself a small amount from another line. Check whether the name, amount, and reference on the confirmation SMS are easy to match back to the invoice. If they are not, adjust the account number or the wording, not the customer's behaviour.
If you would rather not build that flow by hand, LinkDuka gives product sellers a catalogue, a shareable product link, and an M-Pesa checkout that keeps the order and payment reference together. You can read more practical selling guides on the LinkDuka blog before you set anything up.
Was this post helpful?
Discussion
Comments