will failGS-03gs1

GS1 expiry date rejected as invalid

AI (17) is not a valid GS1 date. Expected YYMMDD, where DD may be 00 to mean end of month.

Correct the date to YYMMDD.

A label that trips it
^XA^BY4^FO50,50^BCN,254,Y,N,N,D^FD(01)00012345678900(17)261332(10)ABC^FS^XZ
Rendered example
What the check looks for

AI (17) not matching \d{2}(0\d|1[0-2])([0-2]\d|3[01]) — with DD = 00 EXPLICITLY ALLOWED.

What Labelproof says about it5 findings · GS-03 highlighted
will failLY-02^XA · offset 0 · label 1

Neither ^PW nor ^LL is set. Both fall back to a value stored in the individual printer, not to a value in the spec — so the same ZPL prints differently on two printers of the same model.

Set ^PW and ^LL explicitly in every format.

will failBC-02^BC · offset 7 · label 1

The finished symbol is wider than the space available. The right-hand end is clipped and the symbol will not decode.

Reduce ^BY, shorten the data, or move the field left.

will failBC-03^BC · offset 7 · label 1

Quiet zone violated — the barcode has no clear margin at the label edge.

Move the field inward by at least 10 × the module width, or reduce ^BY.

GS1 requires a quiet zone of at least 10 × X-dimension on each side.

will failGS-01^FD · offset 7 · label 1

AI (01) GTIN must be exactly 14 digits with a valid check digit.

Pad the GTIN to 14 digits and recompute the mod-10 check digit.

the rule on this page
will failGS-03^FD · offset 7 · label 1

AI (17) is not a valid GS1 date. Expected YYMMDD, where DD may be 00 to mean end of month.

Correct the date to YYMMDD.

Check your own label

No signup, and we do not store your labels.

Open the linter