nRF5 SDK v15.3.0
NDEF message and record format

NDEF data is structured in messages. Each message consists of one or more records, which are made up of a header and the record payload. The Record header contains metadata about, amongst others, the payload type and length. The Record payload constitutes the actual content of the record.

ndef_msg.svg
Structure of an NDEF message and record

Record header

The NDEF record header consists of the following fields:

Field Length Required Description
Flags and TNF 1 byte yes See Flags and TNF.
Type Length 1 byte yes Specifies the length of the payload type field. Required, but may be zero.
Payload Length1 or 4 bytesyes Specifies the length of the payload. Either 1 byte or 4 byte long, depending on the SR flag. Required, but may be zero.
ID Length 1 byte no Required if the IL flag is set. Specifies the size of the Payload ID field.
Payload Type variable no Required if the Type Length is > 0. Specifies the type of the NDEF record payload.
Payload ID variable no Required if the IL flag is set and the ID Length is > 0. Specifies the ID of the NDEF record payload.

Flags and TNF

ndef_header_flags.svg
Flags and TNF byte

The Flags and TNF byte contains the following flags:

Record payload

The content of the payload is application-specific and related to the type of the record. For example, in Connection Handover LE and EP records, the payload is composed of data required by BLE for successful pairing. In URI records, the payload contains a web address of the page that the polling device should open. In launch app records, it contains the ID of the application that should be launched.

Note that the payload of an NDEF record can contain a nested NDEF message. This nested message must be a full NDEF message, consisting of one or multiple NDEF records with the appropriate setting of MB and ME flags.


Documentation feedback | Developer Zone | Subscribe | Updated