I need to generate a GS1-128 barcode using ZPL. It needs to include a check digit. I do not seem to get the check digit.
Here is my code:
^BCN,088,Y,Y,Y,D^FD(00)00123456000057763^FS
The first "Y" is saying to print the human readable along with the
barcode. The third "Y" is supposed to tell it to include a check digit.
I'm not seeing the check digit in the human readable, my scanner is not
displaying a check digit, so I'm assuming it is also not in the barcode?
Here is from the spec:
SSCC Barcode Structure (20 digits)
Application Identifier = (00)
Positions of SSCC barcode:
1 = Extension Digit (0-9 assigned by Vendor)
2 = 0 if mfg id # assigned by GS1 US;
1-9 if mfg id # assigned by another GS1 MO
3 thru 8 = 6-digit mfg id #
9 thru 17 = 9-digit serial id # -must be unique for one year
18 = Modulo 10 check character
TLDR;
^BCN,088,Y,Y,,D^FD(00)001234560000577630^FSThe third Y does include a Checkdigit, but not the one you want (ZPL Manual, p73):
When you use
D, it will automatically add a checkdigit(ZPL Manual, p80):But more importantly, it expects you to send 18 digits :
It'll strip out the 18th digit and replace it in both the barcode and the human readable part.
https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zpl-zbi2-pm-en.pdf