zpl.tools
RFID

^RZ - Set RFID Tag Password

Sets the access or kill password stored on a tag.

^RZ sets a tag's password and, on Gen 2 tags, locks a named memory bank with it. Two of its parameter values are irreversible: O and P permanently unlock or permanently lock the bank, and no later command undoes either. The printer can also store a kill password, which permanently disables the tag, although the guide is explicit that the printer cannot itself kill one.

Syntax

^RZp,m,l

Support

Recognised, deliberately skippedparsed: none · state: none · rendered: none

Accepted and skipped, because it configures the printer rather than the label. It cannot change the rendered output, and Labelary skips it too.

Writes a password into the transponder. The password travels in parameter p, not in ^FD. The parser consumes any ^FD given to the command and draws nothing for it, so neither reaches the label. The renderer does not parse this command. It reports IGNORED_COMMAND at info severity, which does not reach X-Warnings. Labelary is also silent, so the rendered label is identical in both engines. On current printers ^RF with the S operation sets the access password. — not pinned by a test

Labelary renders this command.

Parameters

pPasswordoptional · hexadecimal

The password to set, in hexadecimal. Gen 2 tags take a 32-bit password and use the memory bank and lock style; other tag types take 8 bits and ignore both. ^RF reads passwords back.

Default
00
Invalid value
not documented, and we have not measured it. The renderer does not parse this command or validate its arguments. The guide does not state what a printer does with an out-of-range value.
Test coverage
mMemory bankoptional · one of a set

Which memory bank the lock style applies to. Gen 2 tags only.

Default
none, which leaves the memory bank unspecified
Invalid value
not documented, and we have not measured it. The renderer does not parse this command or validate its arguments. The guide does not state what a printer does with an out-of-range value.
Test coverage
No documented value is exercised by a test (K, A, E, T, U).
K
Kill password.
A
Access password.
E
EPC.
T
Tag identifier (TID).
U
User.
lLock styleoptional · one of a set

What to do to the named memory bank. Gen 2 tags only.

Default
none, which leaves the lock state unchanged
Invalid value
not documented, and we have not measured it. The renderer does not parse this command or validate its arguments. The guide does not state what a printer does with an out-of-range value.
Test coverage
No documented value is exercised by a test (U, L, O, P, W).
U
Unlocked.
L
Locked.
O
Permanently unlocked, or open.
P
Permanently locked, or protected.
W
Write the value. Only for the kill-password bank.

Behavior

The password travels in parameter p and not in ^FD. The memory bank and the lock style apply to Gen 2 tags only; other tag types take an 8-bit password and ignore both. ^RF with the P operation reads passwords back.

A password only matters once something needs it. The guide notes that a tag with no access or kill password ignores any read or write that uses those functions. Each bank takes its own command, so two locked banks need two ^RZ lines that carry the same password. That is the shape of the guide's third example, which locks the EPC bank and then the access password.

The password is a parameter and not field data, so the command alone has nothing to draw. We measured this on 2026-07-30: both ^RZ5A^FS and ^RZ1234ABCD,E,L^FS render an empty label. The renderer also consumes an ^FD supplied to ^RZ itself, and the ^RF write that normally accompanies it. Until 2026-07-30 both of those printed their payload.

Tested behavior

Differences from the specification

Example

The guide's example 2: encode an EPC, then write-protect it with password 1234ABCD.

^XA
^FO50,50^A0N,40,40^FDEPC locked^FS
^RFW,H^FD112233445566778899001122^FS
^RZ1234ABCD,E,L^FS
^XZ

Open in viewer