# KE-QR Code

> Source: https://docs.barcoder.ai/docs/standards/ke-qr-code
> research date 2026-05-29 · extracted at 2026-10-06
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [Kenya Quick Response Code Standard v1.0 — CBK (May 2023)](https://www.centralbank.go.ke/QR/KenyaQuickResponseCodeStandard.pdf)
- [Launch of KE-QR Standard — CBK press release (3 May 2023)](https://www.centralbank.go.ke/2023/05/03/launch-of-the-kenya-quick-response-code-standard/)

## Overview

The **Kenya Quick Response Code Standard (KE-QR)** is Kenya's universal interoperable QR payment standard, launched by the **Central Bank of Kenya (CBK) on 3 May 2023** <sup>[1][1], [2][2], [Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>. The standard mandates that QR codes from any Kenyan payment institution — banks, mobile money operators ([M-Pesa KE](https://docs.barcoder.ai/docs/standards/m-pesa-ke), Airtel Money, T-kash), card networks — must be readable by any compliant payer app <sup>[2][2], [3][3]</sup>. The specification is based on the **EMVCo Merchant-Presented QR Specification v1.1** (November 2020) <sup>[1][1]</sup>. Launch partners included **KCB Group, Equity Bank Kenya, Co-operative Bank of Kenya, and Safaricom (M-Pesa)** <sup>[2][2]</sup>.

This is Kenya's structural answer to interoperability in a payment landscape dominated by [M-Pesa KE](https://docs.barcoder.ai/docs/standards/m-pesa-ke) (51 M+ customers) — the regulator imposed a universal QR standard so that no single mobile money network could lock merchants or consumers into one ecosystem <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>.

## History

**Pre-2023 — Fragmented Kenyan QR landscape**: Different mobile money networks (M-Pesa, Airtel Money, T-kash) and banks had their own per-network QR codes; merchants had to choose which networks to accept or display multiple stickers. **M-Pesa's dominance** (51M+ customers, 604K+ agents) meant Safaricom effectively controlled the merchant QR space <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>.

**3 May 2023 — KE-QR Standard launched** <sup>[1][1], [2][2], [3][3]</sup>:
- Published as **CBK Kenya Quick Response Code Standard v1.0**
- Developed through collaboration between CBK and payments industry players — payment service providers, banks, card schemes, mobile money operators
- Based on EMVCo Merchant-Presented Mode v1.1 (Nov 2020)
- Launch partners: **KCB Group, Equity Bank Kenya, Co-operative Bank of Kenya, Safaricom**

**Two-phase rollout** per the official spec <sup>[1][1]</sup>:
- **Phase 1** — QR Code Standardization: PSPs and banks align operations to the spec, customer awareness increases.
- **Phase 2** — Interoperable and Ubiquitous QR payments: full cross-network interoperability deployed nationally.

**Concurrent / subsequent CBK initiatives** <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>:
- **PesaLink** (IPSL, since 2017) — interbank A2A real-time transfers across 80+ Kenyan financial institutions; works alongside KE-QR as the underlying bank-to-bank rail
- **Fast Payment System** (FPS, announced 2024) — CBK-led digital public infrastructure for full interoperability; in development <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>

## Technical specification

The KE-QR spec is **EMVCo Merchant-Presented Mode v1.1 (November 2020)** with Kenya-specific templates and required fields <sup>[1][1]</sup>.

**EMVCo MPM foundation** <sup>[5][5]</sup>:
- Payload format: **TLV (Tag-Length-Value)** plain-text string
- Integrity: CRC-16/CCITT-FALSE appended as field `63`
- Static and dynamic QR variants supported
- Underlying symbology: [QR Code](https://docs.barcoder.ai/docs/standards/qr-code) (ISO/IEC 18004)
- Currency code: 404 (KES)

**KE-QR data fields** (per the official CBK spec document) <sup>[1][1]</sup>:

| Tag | Description |
|---|---|
| `00` | Payload Format Indicator |
| `01` | Point of Initiation Method (static/dynamic) |
| `02`–`51` | **Merchant Account Information templates** — one per participating Kenyan payment scheme |
| `52` | Merchant Category Code (MCC) |
| `53` | Currency Code (`404` = KES) |
| `54` | Transaction Amount |
| `55` | Tip / convenience fee indicator |
| `56` | Convenience fee (fixed) |
| `57` | Convenience fee (percentage) |
| `58` | Country Code (`KE`) |
| `59` | Merchant Name |
| `60` | Merchant City |
| `61` | Postal Code |
| `62` | **Data Enrichment Template** — additional reference / order data |
| `63` | CRC checksum |
| `64` | Additional Language for Merchant Name/City |
| `80` | **Merchant Premises Location** (Kenya-specific) |
| `82` | **QR Timestamp Information** (Kenya-specific) |
| `83` | Reserved Template |
| `81`, `84`–`99` | Locally Reserved Templates |

**Kenya-specific templates**:
- **`80`** (Merchant Premises Location) and **`82`** (QR Timestamp Information) are KE-QR-specific extensions to the EMVCo MPM standard <sup>[1][1]</sup>.

**Modes** <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE), [1][1]</sup>:
- **Static QR Code** — printed sticker per merchant; consumer enters amount
- **Dynamic QR Code** — POS-generated per transaction with amount embedded

**Merchant Common Data Harmonisation** — the KE-QR spec defines mandatory and optional fields for tags 52, 58, 59, 60, 61 to ensure consistent merchant identification across all participating schemes <sup>[1][1]</sup>.

## Use cases

KE-QR is **the universal merchant-side QR for Kenyan retail payments**, enabling any payer app (M-Pesa, Equity App, KCB App, Airtel Money, T-kash) to pay any merchant displaying KE-QR <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE), [1][1]</sup>:

- **Retail point of sale** — small merchants (dukas / shops), kiosks, supermarkets, restaurants. Single printed sticker accepts any compliant app.
- **Lipa Na M-Pesa Merchant Portal** — Safaricom's merchant onboarding system auto-generates KE-QR for each registered merchant <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>.
- **Cross-network payments** — M-Pesa customers paying at merchants whose primary acquirer is Equity or KCB (and vice versa); CBK's interoperability mandate ensures this works regardless of network.
- **Bus / Matatu fares** — increasing adoption for transport fare payment via QR.
- **Bill payments** — utilities, school fees, government services where KE-QR-compliant payment is supported.
- **E-commerce checkout** — dynamic KE-QR generated per cart for online payment.
- **Person-to-business** — small farmers, market vendors, informal sector merchants accept KE-QR with smartphone-displayed dynamic QR if no fixed POS.

The structural use case is **breaking single-network lock-in**: pre-KE-QR, merchants had to choose between Lipa na M-Pesa (Safaricom) and bank-network alternatives; KE-QR forces interoperability <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>.

**Participating networks at launch** <sup>[2][2]</sup>:
- **M-Pesa** (Safaricom mobile money — dominant)
- **KCB Group** (KCB App)
- **Equity Bank** (Equity App)
- **Co-operative Bank of Kenya** (MCo-op Cash)
- Other PSPs joining in phases

## Implementations

KE-QR's open-source library ecosystem is **thin** — partly because the standard is recent (2023) and the dominant acquirer is Safaricom's Lipa na M-Pesa Merchant Portal (which abstracts the QR generation) <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>.

**General EMVCo MPM libraries** can read KE-QR payloads (KE-QR is EMVCo MPM with Kenya-specific tags 80 and 82):
- **Java** — [mvallim/emv-qrcode][6] — general EMVCo MPM v1.1, compatible with KE-QR base tags <sup>[6][6]</sup>.
- **Various** — most EMVCo MPM libraries used for [SGQR](https://docs.barcoder.ai/docs/standards/sgqr) / [DuitNow QR](https://docs.barcoder.ai/docs/standards/duitnow-qr) / [PromptPay QR](https://docs.barcoder.ai/docs/standards/promptpay-qr) / [QRIS](https://docs.barcoder.ai/docs/standards/qris) also parse KE-QR's base structure; Kenya-specific tags (`80`, `82`) require custom handling.

**Production app integrations** <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>:
- **M-PESA app** (Safaricom) — primary consumer interface; KE-QR scanning available
- **Equity App** (Equity Bank) — KE-QR enabled
- **KCB App** (KCB Group) — KE-QR enabled
- **Airtel Money app** — interoperable participant
- **T-kash app** (Telkom) — interoperable participant
- Other Kenyan bank apps progressively adding KE-QR support

**Acquirer / merchant onboarding**:
- **Lipa na M-Pesa Merchant Portal** — Safaricom-operated; auto-generates KE-QR per merchant Till Number <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>
- Bank-specific merchant acquirer flows for KCB, Equity, Co-op, etc.

## Comparison

**vs. [M-Pesa KE](https://docs.barcoder.ai/docs/standards/m-pesa-ke) (Kenya mobile money flagship)** — Complementary. M-Pesa is the *account* / *transfer mechanism*; KE-QR is the *unified merchant-presentation layer* that M-Pesa (and competing mobile money networks and banks) all use. CBK's KE-QR mandate explicitly addresses M-Pesa's dominance: by forcing universal QR interoperability, regulators prevent Safaricom from leveraging M-Pesa's 51M+ customer base into permanent merchant-acceptance lock-in <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>.

**vs. [SGQR](https://docs.barcoder.ai/docs/standards/sgqr) (Singapore), [DuitNow QR](https://docs.barcoder.ai/docs/standards/duitnow-qr) (Malaysia), [QRIS](https://docs.barcoder.ai/docs/standards/qris) (Indonesia), [PromptPay QR](https://docs.barcoder.ai/docs/standards/promptpay-qr) (Thailand)** — Same EMVCo MPM family; same regulator-mandated interoperability pattern. KE-QR's distinctive design choice is the **mobile-money-and-bank** dual participation from launch — Kenya's payment landscape requires both, whereas SGQR / DuitNow / QRIS / PromptPay are primarily bank-centric (e-wallets joined later in some cases) <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE), [Singapore report](https://docs.barcoder.ai/docs/payments/SG)</sup>.

**vs. [Bharat QR](https://docs.barcoder.ai/docs/standards/bharat-qr) (India)** — Both are central-bank-mandated interoperable QRs across competing payment networks. Bharat QR's networks are card schemes (Visa/MC/RuPay/Amex/UPI); KE-QR's networks are mobile money (M-Pesa/Airtel/T-kash) and banks. The structural-function is analogous: regulator-imposed merchant-side standard that prevents network capture <sup>[India report](https://docs.barcoder.ai/docs/payments/IN), [Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>.

**vs. [UPI QR](https://docs.barcoder.ai/docs/standards/upi-qr) (India)** — Different wire format (UPI's `upi://pay?...` deep link vs KE-QR's EMVCo TLV). Both achieve interoperable merchant acceptance; KE-QR via standard, UPI via federated NPCI PSP participation <sup>[India report](https://docs.barcoder.ai/docs/payments/IN)</sup>.

## Fun facts

The **CBK's May 2023 KE-QR launch is explicitly an antitrust / market-structure move** <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE), [3][3]</sup>. By 2022, M-Pesa's near-monopoly position in Kenyan mobile money (51M+ customers, 604K+ agents, ~70 % of Kenyan adult population on the platform) had become a regulatory concern: if Safaricom controlled both the dominant wallet and the merchant-side acquiring/QR generation, Kenya's payment ecosystem would be locked into a single private platform. KE-QR is the regulator's structural response — making *the QR itself* a public standard that any wallet must work with.

**Kenya was the global leader in mobile money adoption** (via M-Pesa, launched 2007) but **a late adopter of QR-payment standardization** <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE), [3][3]</sup>. The reason is structurally similar to Japan's: pre-existing mobile-money infrastructure was good enough that QR standardisation didn't have the cash-displacement urgency it had elsewhere. KE-QR is the catch-up move; m-money + QR are now both mature in Kenya.

**The KE-QR spec includes Kenya-specific TLV tags 80 (Merchant Premises Location) and 82 (QR Timestamp Information)** <sup>[1][1]</sup> — extensions to EMVCo MPM v1.1 to support Kenyan-specific use cases. Tag 82's timestamp helps detect stale or replayed QRs; tag 80's premises location helps mobile money operators with risk-based authentication ("is this user paying somewhere they normally pay?").

**KE-QR sits atop one of Africa's most-developed financial infrastructures** — PesaLink (80+ institutions, real-time A2A since 2017), M-Pesa (51M+ customers across the continent), and now KE-QR for universal merchant interop <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>. Kenya's payment-system maturity is markedly ahead of the broader African continent and rivals many higher-income countries on metrics like adult-population mobile-money adoption.

## Status

**Active, in phased rollout.** Most recent figures <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE), [1][1], [2][2]</sup>:

- **KE-QR Standard v1.0** (May 2023) is current spec
- **Launch institutions live**: KCB, Equity, Co-operative Bank, Safaricom M-Pesa
- **EMVCo Merchant-Presented QR v1.1** (Nov 2020) is the technical foundation
- **Phased rollout**: Phase 1 (standardisation) → Phase 2 (interoperable / ubiquitous)
- **Fast Payment System** (CBK-announced 2024) — complementary digital public infrastructure in development <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>

**Strategic trajectory** <sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>:
- Continued PSP onboarding as Phase 2 of the rollout
- Integration with the forthcoming Fast Payment System
- Cross-border QR potential — CBK has shown interest in connecting KE-QR with the East African Community and pan-African payment networks (PAPSS)
- ISO 20022 messaging adoption underway across the broader payment ecosystem

No deprecation planned; KE-QR is Kenya's strategic payment-interoperability layer for the foreseeable future. The standard's success will be measured over the next several years by **how universally non-Safaricom apps consume Safaricom-onboarded merchant QRs (and vice versa)** — the structural test of the interoperability mandate.

## Sources

[1]: https://www.centralbank.go.ke/QR/KenyaQuickResponseCodeStandard.pdf
[2]: https://www.centralbank.go.ke/2023/05/03/launch-of-the-kenya-quick-response-code-standard/
[3]: https://www.fsdkenya.org/blogs-publications/kenya-launches-qr-code-standard-to-improve-digital-payments/
[4]: https://techweez.com/2023/05/03/cbk-qr-code-payment-standard/
[5]: https://www.emvco.com/emv-technologies/qr-codes/
[6]: https://github.com/mvallim/emv-qrcode
[7]: https://techcabal.com/2023/05/03/kenya-launches-qr-code-standard-for-payments/
[8]: https://www.nfcw.com/2023/05/05/383635/central-bank-of-kenya-launches-national-qr-payments-standard/
[9]: https://thepaypers.com/payments/news/cbk-launches-qr-code-standard-to-boost-digital-payment-usage
[10]: https://tech-ish.com/2023/05/03/ke-qr-code-launched-kenya/
[ke-cro]: https://docs.barcoder.ai/docs/payments/KE
[sg-cro]: https://docs.barcoder.ai/docs/payments/SG
[in-cro]: https://docs.barcoder.ai/docs/payments/IN

1. [Kenya Quick Response Code Standard v1.0 — CBK (May 2023)][1]
2. [Launch of KE-QR Standard — CBK press release][2]
3. [Kenya launches QR code standard — FSD Kenya][3]
4. [CBK QR Code Payment Standard — TechWeez][4]
5. [EMV QR Code Specifications — EMVCo][5]
6. [mvallim/emv-qrcode — GitHub (general EMV-MPM library)][6]
7. [Kenya boosts interoperability with state-backed QR — TechCabal][7]
8. [CBK launches national QR payments standard — NFCW][8]
9. [CBK launches QR Code Standard — The Paypers][9]
10. [KE-QR Code launched — Techish Kenya][10]
11. [KE-kenya.md]<sup>[Kenya report](https://docs.barcoder.ai/docs/payments/KE)</sup>

## Deployments

Found in the following country reports (grep across `reports/countries/`):

- **KE** — [KE-kenya.md](https://docs.barcoder.ai/docs/payments/KE)
