Orange NFC Retail template

This feature is restricted and experimental. It shall not be used for anything else than internal tests.


Use this template to read an identifier from the Orange NFC Retail application running on a smartphone.

Orange NFC APIs for Retail is a framework for NFC services, offered by Mobile Network Operator Orange. It targets loyalty, couponing and alike applications.

The services rely on a general-purpose cardlet, loaded into a NFC-enabled smartphone's SIM card. Merchants and service providers are identified by a unique RetailerId (on 4 bytes). Every user “belonging” to this merchant or service provider is identified by either a unique HolderId (on 20 bytes), assigned by Orange to this very user, a CustomerId, defined freely by the merchant or service provider in association with a customer account, a LoyaltyId, defined freely by the merchant or service provider in association with a loyalty card or coupons.


Register t0: select the Orange NFC APIs (retail) template

Register 03t0 (1 byte) selects the template. Use C0 for Orange NFC APIs (retail).

Register t1: output format

Register 03t1 defines the output format. Refer to Template engine : Output Format register.

Register t2: output prefix

Register 03t2 defines the output prefix. Refer to Template engine : Output Prefix.

Register t3: Location of data

Register 03t3 defines the InstallationId on 5 to 7 Bytes.

Bytes Content Notes / Valid range
Bytes 0 to 4 (Mandatory)
0-3 RetailerId MSB first (Byte 0) and LSB last (Byte 3)
4 Options & field select See below
Optional bytes
5 Offset within the field 0 to field's size
6 Shift bits to the left 0 to 7

Detail of 'Options & field select' byte

Bits Value Notes / Valid range
7-4 Value that the reader will “push” to the mobile phone after processing.
Allowed values are 0, 1 and F
3 0 Don't suppress trailing zeros
1 Suppress trailing zeros (valid for field select = 2 or 4 only
Field select
2-0 1 Read the MeHolderId field
2 Read the CustomerId field
4 Read the LoyaltyCardId field
Other values are RFU and shall not be used

Register t4: miscellaneous options

If register 03t4 is set, the reader adds a token to its output to tell the receiver what kind of object has been read.

Bytes Bits Meaning
0 7-4 RFU
3-2 Position of the “card type” token in the output
00: Before the PFX constant
01: After the PFX constant, but before the actual data
10: After the actual data
11: RFU
0-1 Add a “card type” token to the output
00: Do not add the “card type” token
01: Add a C0 as “card type” token
10: Add a O as “card type” token
11: Add 00