For the complete documentation index, see llms.txt. This page is also available as Markdown.

NUMO QR Code Standards

NUMO national QR code standard for interoperable LYPay payments using Consumer-Presented Mode and Merchant-Presented Mode.

Libya's national QR standard for interoperable digital payments

The NUMO QR Code Standard is the national QR code standard for Libya, developed to enable interoperable and secure digital payments. It supports instant payments through LYPay using both Consumer-Presented Mode — CPM and Merchant-Presented Mode — MPM.

NUMO QR follows EMVCo standards and uses a structured Tag-Length-Value — TLV format to support compatibility across financial systems and payment platforms in Libya.

Use this page as an implementation overview. The official CPM and MPM documents remain the authoritative implementation references and are provided in the Resources section below.

QR code models

1. Consumer-Presented Mode — CPM

  • Who generates? Consumers generate the QR code using their bank or wallet application.

  • Who scans? Merchants or service providers scan the QR to receive payment.

  • Use case: Primarily P2P — Person-to-Person, and it can also support P2M — Person-to-Merchant payments where the merchant supports it.

  • Security: QR codes may be static — reusable, or dynamic — transaction-specific.

2. Merchant-Presented Mode — MPM

  • Who generates? Merchants generate the QR code using POS terminals or banking applications.

  • Who scans? Consumers scan the QR using their mobile banking or payment application.

  • Use case: P2M — Person-to-Merchant transactions, commonly used in retail and service environments.

  • Security: QR codes may be static or dynamic.

NUMO QR code structure

NUMO QR uses a structured TLV format for consistency across participating financial institutions.

Common data fields — CPM & MPM

Tag

Description

Required?

Example Value

00

Payload Format Indicator

Yes

01

01

Point of Initiation Method (11 for Static, 12 for Dynamic)

Yes

12

27

Account Name (Customer/Merchant)

Yes

John Doe

28

Account Schema (IBAN or Alias)

Yes

IBAN

29

Account Identification (IBAN/Alias)

Yes

LY5802500810085121000

30

Institution (Bank Code & Name)

Yes

001 - Jumhouria Bank

31

Transaction GUID (UUID v4)

Optional

123e4567-e89b-12d3-a456-426614174000

53

Currency (ISO 4217)

Yes

434 (LYD)

54

Transaction Amount

Optional — required for Dynamic QR

100.500

58

Country Code (ISO 3166-1 alpha-2)

Yes

LY

59

Beneficiary/Merchant Name

Yes

ABC Store

60

City

Yes

Tripoli

61

Postal Code

Optional

150013

62

Additional Data Field

Optional

See Additional Data section

63

CRC — Cyclic Redundancy Check

Yes

<CRC>

MPM additional fields

Tag

Description

Required?

Example Value

02

Merchant Account Number

Yes

100012443402017

52

Merchant Category Code — MCC

Yes

5411 (Supermarkets)

51

Internal Merchant Reference — unique per transaction

Optional

002445533221112345678

Additional data fields — Tag 62

Sub-Tag

Field Name

Example Value

62-01

Bill Number

INV12345678

62-02

Mobile Number

+218912345678

62-03

Store Label

Store123

62-04

Loyalty Number

LOYALTY1234

62-05

Reference Label

REF123456

62-06

Customer Label

Customer123

62-07

Terminal Label

TERM1234

62-08

Purpose of Transaction

Payment for goods

Example QR payloads

Static QR example — MPM

Dynamic QR example — CPM

QR payment processing flow

  1. Generate QR — CPM is generated by the consumer; MPM is generated by the merchant or supported acceptance interface.

  2. Scan and parse QR — extract account, institution, amount, and optional metadata according to NUMO rules.

  3. Initiate payment through LYPay — use the decoded QR information in the applicable LYPay funds-transfer flow.

  4. Confirm transaction — complete the LYPay confirmation step and process the returned status.

  5. Receive webhook when asynchronous — use the webhook notification to obtain the final status where applicable.

Integration steps

1. Implement QR generation

Banks should follow NUMO QR encoding rules when generating QR codes.

2. Implement scanning & parsing

Use EMVCo TLV Tag-Length-Value parsing to extract the required fields.

3. Process payments through LYPay

Use the LYPay Funds Transfer API to execute payments using decoded QR information.

4. Handle webhook events

Implement secure webhook processing for transaction-status updates.

5. Apply compliance & security controls

  • Validate QR contents before processing transactions.

  • Enforce AML/KYC policies on alias-based transactions.

QR ecosystem reference

QRPay

QRPay is included as an external QR-payment ecosystem reference for additional market and user-experience context in Libya.

Resources

Official NUMO standards

External ecosystem reference

Visit QRPay →

For integration support: devsupport@cbl.gov.ly

Last updated