Skip to content

GS1 barcode builder and validator: application identifiers

Build a GS1 element string from application identifiers, check the formats and check digits, and generate a GS1-128 or GS1 DataMatrix. You can also paste a finished string to see what each field means.

Qreska does not issue EAN numbers

GTIN/EAN numbers are issued by GS1 (in Poland: GS1 Polska). Qreska only draws the code from a number you already have.

Already have a string?

The bracket form, e.g. (01)05901234123457(17)261231(10)ABC123. It is split into fields so it can be corrected.

Fields

Field 1

Exactly 14 digits. The last digit is a check digit.

Field 2

A date as YYMMDD, e.g. 261231. A day of 00 means only the month is known.

Field 3

Up to 20 characters. Letters, digits and !"%&'*+,-./:;<=>?_ are allowed.

The string to encode

(01)05901234123457(17)261231(10)ABC123

Data characters: 32 of 48.

The encoder puts the separators in

The FNC1 characters that separate variable-length fields are not typed in. The encoder puts them where they belong, and the brackets in the notation are for people only: they are not in the code itself.

GS1-128 is the barcode on a logistics label. GS1 DataMatrix is square, holds more, and is used on small packages, medicines among them.

Preview

Preparing the preview…

Download the code

Downloads are available once the code preview is ready.

Open in the generator to change the size and colours

What GS1 application identifiers are

An application identifier (AI) is a two-, three- or four-digit prefix that says what the value after it means. (01) is the trade item number (GTIN), (17) the expiry date, (10) the batch, (21) the serial number. They let one code carry several pieces of information at once, and a warehouse system knows which is which without an agreement with the supplier.

Every identifier has a fixed shape: how many characters, whether they are digits or text, and whether a check digit closes them. That is why a GS1 string can be checked before it reaches a label, and that is what this page does: it works out check digits, watches the lengths and checks that a date exists. Variable-length fields are separated by an FNC1 character put in by the encoder; the brackets you see are for the reader.

Frequently asked questions

How does GS1-128 differ from plain Code 128?

Not in its bars. GS1-128 is Code 128 with an FNC1 character at the front, which tells the scanner the content is a GS1 string with identifiers. The scanner then returns fields rather than one run of text. The same bars therefore read differently depending on whether that FNC1 is there.

Why will my string not fit?

GS1-128 carries at most 48 data characters, identifiers included but brackets not. For anything longer there is GS1 DataMatrix, which holds far more, or splitting the information across two labels. The counter under the string shows how much room is left.

Do I have to type the FNC1 characters or the brackets?

No. The brackets are a notation for people and are not in the code. The separators between variable-length fields are put in by the encoder, where the standard requires them. Typing them by hand would break the code.

Where does the GTIN for the (01) field come from?

GTINs are issued by GS1, in Poland by GS1 Polska. Qreska draws a code from a number you already have and checks its check digit, but issues no numbers. A made-up number can be arithmetically correct and still point at somebody else's product.

Does the string go anywhere?

No. The checking and the drawing happen in your browser; the content is never sent or stored.

Other tools