Free M-PESA QR Code Generator
Create an M-PESA payment QR for your Paybill or Till Number — the standard Safaricom EMVCo MPM format, scanned directly by the M-PESA app.
0 outbound requests · 100% client-side · verify it yourself →- 88 QR Types
- Free Business Card Designer
- Printable WiFi Cards
- Batch CSV (500 codes)
- 50 Templates
- 26 Languages
Compatibility legend
This barcode format renders monochrome with foreground and background colours only. Templates, dot/eye shapes, gradients, frames, and centre logos apply to QR codes only and are hidden here.
Show 30 more templates
Save a style with the button above to keep your favourites here.
Or pick a built-in icon:
Show 108 more icons
Renders behind the QR at adjustable opacity. Auto-forces EC=H so the QR still scans through the photo.
Batch Generation
Upload a CSV to generate up to 500 QR codes in a single batch. Each row becomes its own QR — pick a template or override 21 properties on a per-row basis: colors, frames, dot/eye/eyeball styles, gradients, transparency, size, error correction, format, built-in logo, and more.
21 columns: type, data, filename, frametext, frame, template, fgcolor, bgcolor, size, ec, dotstyle, eyestyle, format, logo, gradient, g2, gtype, gangle, transparent, eyeball, eyecolor. Only type and data are required. Use | to separate fields inside data (e.g. ssid|password|WPA).
All 88 QR types supported, including URL, WiFi, vCard, TOTP, Swiss QR-bill, PIX, PromptPay, ZATCA, PayNow, Bitcoin + Lightning, and more. Download the sample CSV to see every column, all 50 templates, 11 frame styles, and 156 built-in logo icons in action.
1. Download the sample CSV · 2. Edit it in Google Sheets, Excel, Numbers, or any text editor · 3. Upload it here
Save the entire QR — type, all field values, style, frame, logo, business card design — as a single .qr.json file. Load it later to recreate everything in one click.
Enter content to generate your QR code
E-signatures that hold up in court
Abundera Sign goes beyond basic e-signatures. Every document gets cryptographic proof, independent verification, and a tamper-evident evidence package.
- Auto-generated court-ready evidence packages
- Personal Document Seal — detects tampering instantly
- Anchored to 5 independent systems — no single point of failure
M-PESA payments via QR
M-PESA is Safaricom's mobile money service and Kenya's dominant payment rail, with over 30 million active users. This generator builds an EMVCo Merchant-Presented Mode (MPM) QR that encodes your Paybill or Till Number so customers can pay by scanning with the M-PESA app — no manual number entry.
Paybill vs Till Number
A Paybill is for businesses collecting payments into a registered business account. You provide the Paybill number plus an Account Reference (e.g. an invoice or order number), which appears in the payer's confirmation SMS. A Till Number is for point-of-sale merchants (Buy Goods). It has no account reference — the customer just scans and pays to the till.
EMVCo MPM encoding
The QR payload follows the EMVCo Merchant-Presented Mode specification: AID ke.co.safaricom.mpesa in field 26, currency 404 (KES), country code KE, and optional amount field 54. A CRC-16/CCITT-FALSE checksum is appended to field 63. This is the same encoding produced by Safaricom's own QR generation portal.
Available in 26 Languages
Fully translated UI, native script rendering, and right-to-left support for Arabic and Urdu.
Frequently Asked Questions
Does the M-PESA app scan EMVCo QR codes?
Yes. The M-PESA app supports the EMVCo MPM format for merchant payments. Scan from the home screen under 'Pay Bill' or 'Buy Goods'.
What is a Paybill number?
A Paybill number is a 5–6 digit business number registered with Safaricom for collecting payments into a business M-PESA account. Customers enter an account reference alongside the number.
What is a Till Number?
A Till Number (Buy Goods) is used for point-of-sale retail payments. No account reference is needed — the customer pays directly to the merchant's registered till.
Should I set an amount in the QR?
Setting a fixed amount is useful for price stickers or invoices where the amount never changes. Leave it blank for open-amount QR codes where customers enter the payment amount.