A GS1 Digital Link can carry far more than a product number. It can identify the product itself, the batch it came from, a specific unit, its expiry date, country of origin, weight, and other useful details.
GS1 organizes this information using Application Identifiers, or AIs. Each AI is a numeric code that tells scanners and software how to interpret the value that follows. For example, (01) represents a GTIN, (10) a batch or lot number, (21) a serial number, and (17) an expiration date.
This guide explains the most important GS1 Application Identifiers used for product identification, traceability, retail, and packaging.
Key Takeaways:
- GS1 AIs tell systems what each product data value represents.
- GTIN identifies the product; batch and serial add traceability.
- Use only the AIs your product and workflow actually need.
- Date, origin, and weight AIs add context without changing identity.
- Custom AI must use a valid GS1-defined code and format.
What are GS1 Application Identifiers?
A GS1 Application Identifier (AI) is a numeric code that tells a system what the following data represents.
Take this example:
(01)09524000059109(17)271231(10)ABC123
The numbers in brackets tell the system what each value means. (01) says that 09524000059109 is a GTIN. (17) identifies 271231 as an expiration date. (10) tells the system that ABC123 is a batch number.
Without those identifiers, scanners and other systems would not know how to interpret the values consistently.
GS1 defines many AIs, but only a smaller group is commonly needed for product-level GS1 Digital Links.
Important GS1 Application Identifiers for products
| Product information | Application Identifiers | What it tells |
|---|---|---|
| Global Trade Item Number (GTIN) | 01 | Identifies the trade item or product |
| Consumer Product Variant | 22 | Which variation of a retail consumer item it is |
| Batch/Lot Number | 10 | Which production batch it belongs to |
| Serial Number | 21 | Which individual unit it is |
| Expiration Date | 17 | When the product expires |
| Packaging Date | 13 | When the product was packed |
| Sell By Date | 16 | When the product should be sold by |
| Country of Origin | 422 | Which country the product originates from |
| Net Weight, kg | 310n | Net weight of a variable-measure item in kilograms |
These identifiers do different jobs. GTIN provides the main product identity. Consumer Product Variant, Batch/Lot Number, and Serial Number make that identity more specific. Dates, origin, and weight add product information.
For example:
https://example.com/01/09524000059109/10/ABC123?17=271231
Here, 01/09524000059109 identifies the product, 10/ABC123 identifies the batch, and 17=271231 adds the expiration date.
Let’s look at each Application Identifier in detail.
GTIN (01)
Meaning: Global Trade Item Number
Type: Primary identification key
A GTIN tells you exactly which trade item the product is.
Different trade items need different GTINs. A 500 ml bottle and a 1-liter bottle of the same product, for example, have different GTINs because the declared net content differs. Identical units of the same trade item normally share the same GTIN.
A product-level GS1 Digital Link usually starts with it:
https://example.com/01/09524000059109
Here, (01) tells the system that the value after it is a GTIN.
The GTIN alone does not tell you which batch the product came from or which individual unit it is. Those details can be added separately.
For example:
/01/09524000059109/10/ABC123
identifies a specific batch, while:
/01/09524000059109/21/000045
identifies a particular serialized unit.
Consumer Product Variant (22)
Meaning: Consumer Product Variant
Type: Key qualifier
A Consumer Product Variant distinguishes a variation of a retail consumer trade item when that variation does not require a new GTIN.
That last part matters. AI (22) should not replace a new GTIN when GS1’s GTIN allocation rules require one.
Instead, it is useful when a retail consumer product has a variation that needs to be distinguished while keeping the same GTIN.
For example:
https://example.com/01/09524000059109/22/HOLIDAY
The GTIN identifies the retail consumer trade item, while HOLIDAY identifies the specific variation.
It can also be combined with another qualifier:
https://example.com/01/09524000059109/22/HOLIDAY/10/ABC123
This identifies batch ABC123 of that product variation.
Batch/Lot Number (10)
Meaning: Batch or lot number
Type: Key qualifier
A batch or lot number tells you which production group a product belongs to.
Several units of the same product can share one batch number. The manufacturer decides what that batch represents. It may refer to a production run, shift, machine, time period, or another internal grouping.
For example:
https://example.com/01/09524000059109/10/ABC123
The GTIN identifies the product. ABC123 tells you which batch it came from.
This becomes especially useful for traceability. If a quality issue affects only one production batch, the company can isolate that lot instead of treating every item with the same GTIN as affected.
Serial Number (21)
Meaning: Serial number
Type: Key qualifier
A serial number identifies one individual physical unit.
Two products can have the same GTIN because they are the same trade item, yet each can carry a different serial number.
For example:
https://example.com/01/09524000059109/21/000045
The GTIN identifies the product, while 000045 identifies that particular unit.
Serial numbers are useful when products need to be tracked one by one. Common examples include electronics, medical products, high-value equipment, and products with unit-specific warranties.
| Identifier | What it answers |
|---|---|
| GTIN (01) | Which product is this? |
| Batch/Lot (10) | Which production batch is it from? |
| Serial Number (21) | Which individual unit is this? |
Expiration Date (17)
Meaning: Expiration or use-by date
Type: Data attribute
Format: YYMMDD
An expiration date tells you when the product reaches its expiry or use-by date.
For example:
17=271231
means December 31, 2027.
It can appear in a Digital Link like this:
https://example.com/01/09524000059109/10/ABC123?17=271231
The expiration date does not change the product’s identity. It simply adds information about the item that has already been identified.
This can support stock rotation, expiry monitoring, product recalls, food safety, and retail operations.
Packaging Date (13)
Meaning: Packaging date
Type: Data attribute
Format: YYMMDD
A packaging date tells you when the product was packed.
For example:
13=271001
means October 1, 2027.
In a Digital Link, it may appear as:
https://example.com/01/09524000059109?13=271001
Packaging dates can be useful for manufacturing records, traceability, inventory management, and product handling.
Sell By Date (16)
Meaning: Sell-by date
Type: Data attribute
Format: YYMMDD
A sell-by date tells a retailer when the product should be sold by.
For example:
16=271220
means December 20, 2027.
A sell-by date is not the same as an expiration date. Sell-by information mainly supports retail and inventory decisions, while an expiration or use-by date refers to a different stage in the product lifecycle.
Using different AIs for these dates allows systems to understand exactly what each one represents.
Country of Origin (422)
Meaning: Country of origin
Type: Data attribute
Country of Origin tells you which country the trade item originates from.
For example:
https://example.com/01/09524000059109?422=840
Here, (422) tells the system that the value represents the country of origin. The value itself uses a three-digit numeric country code. In this example, 840 represents the United States.
This information can support product transparency, sourcing, trade processes, and industry-specific requirements.
Net Weight, kg (310n)
Meaning: Net weight in kilograms for a variable-measure trade item
Type: Data attribute
The 310n family is used for variable-measure trade items, where the actual weight can differ from one unit to another.
Think of cheese, meat, fish, or other products sold in packs that do not all weigh exactly the same. In these cases, the actual weight becomes part of the data for that item.
The final digit in 310n tells the system how many decimal places to apply to the six-digit weight value. AI (3100) is the version with no decimal places.
For example:
3100=000005
means 5 kg.
If more precision is needed, GS1 provides 3101 through 3105. For instance:
3103=000500
means 0.500 kg, or 500 grams.
Use only one AI from the 3100 to 3105 range for an item’s net weight in kilograms. You should not encode both 3100 and 3103 for the same item.
In QRCodeChimp, the built-in Net Weight, kg field uses AI (3100). If your variable-measure product needs decimal precision, leave that field empty and add the appropriate AI from 3101 to 3105 through Custom AI instead.
The 310n family is not intended as a general way to repeat the declared weight of a fixed-weight product. For fixed-measure trade items, net content is normally maintained as part of the product’s master data.
How these identifiers work together
Not every product needs every AI. Start with the main product identity, then add more detail only where the use case requires it.
A basic Digital Link may contain only the GTIN:
https://example.com/01/09524000059109
If you need to identify a batch, add Application Identifier (10):
https://example.com/01/09524000059109/10/ABC123
If the product also needs unit-level identification, add the serial number:
https://example.com/01/09524000059109/10/ABC123/21/000045
You can then add attributes such as expiry and country of origin:
https://example.com/01/09524000059109/10/ABC123/21/000045?17=271231&422=840
A simple way to remember the structure is:
GTIN identifies the product. Qualifiers narrow it down to a variation, batch, or individual unit. Attributes provide more information about it.
Which identifiers should you use?
The right combination depends on the product and the process you need to support.
| If you need to… | Use |
|---|---|
| Identify the product | GTIN (01) |
| Distinguish an eligible retail product variation | Consumer Product Variant (22) |
| Track a production batch | Batch/Lot Number (10) |
| Identify an individual unit | Serial Number (21) |
| Record expiry | Expiration Date (17) |
| Record packing date | Packaging Date (13) |
| Record the selling deadline | Sell By Date (16) |
| Show product origin | Country of Origin (422) |
| Encode variable product weight | Net Weight (310n) |
A standard packaged product may need only a GTIN. A food product may also use a batch number and expiration date. A serialized electronic device may need a GTIN and serial number. Variable-measure products may also require a weight AI.
The aim is not to fill every available field. Use the identifiers that support the way the product needs to be identified, tracked, sold, or managed.
What if you need another GS1 identifier?
The identifiers above cover many common product use cases, but they are not the full GS1 AI list.
Your use case may call for another identifier, such as a production date, best-before date, measurement, logistics field, or industry-specific data point.
QRCodeChimp provides a Custom AI option for this. Enter the required GS1 AI code along with its value.
Custom AI does not mean creating a new identifier. The code should already be defined by GS1, and the value should follow the format specified for that AI.
Using these identifiers in QRCodeChimp
When creating a GS1 QR Code in QRCodeChimp, begin with the GTIN and add only the product information your use case needs. This may include Consumer Product Variant, Batch/Lot Number, Serial Number, Expiration Date, Packaging Date, Sell By Date, Country of Origin, or Net Weight.
If another GS1-defined identifier is needed, add it through Custom AI by entering its code and value.
For larger product catalogs, QRCodeChimp also supports bulk creation of GS1 QR Codes, making it easier to generate product-specific codes at scale.
Common mistakes to avoid
Most mistakes with Application Identifiers come from choosing the wrong AI, adding unnecessary information, or using a field in a way GS1 does not intend. A little care at setup can prevent confusing or invalid product data later.
Adding every available AI
More data does not automatically make a GS1 Digital Link more useful. Every field creates information that has to be generated, maintained, and kept accurate.
Add an AI when it supports a real requirement, such as identification, traceability, inventory, retail, or another operational process. If the data has no clear purpose, it usually does not need to be encoded. GS1’s own QR Code best practices make the same point.
Using Consumer Product Variant when a new GTIN is required
AI (22) is meant for a variation of a retail consumer trade item that does not require a new GTIN.
If a product change falls under GS1’s GTIN allocation rules and requires a new GTIN, AI (22) should not be used to avoid assigning one. For example, a change in declared net content requires assignment of a new GTIN.
Confusing batch and serial numbers
Batch and serial numbers answer different questions. A batch number identifies a group of products made under the same production reference, while a serial number points to one individual unit.
Before choosing one, decide whether you need to identify a group of items or a specific physical product.
Using the wrong date field
Packaging date, sell-by date, and expiration date can all appear on the same product, but they refer to different events.
Use Packaging Date (13) for when the product was packed, Sell By Date (16) for the retail selling deadline, and Expiration Date (17) for the expiry or use-by date. Choosing the right AI allows other systems to understand what that date actually means.
Using 310n incorrectly
The 310n family is intended for the net weight of a variable-measure trade item. Do not use it simply to repeat the declared weight of a standard fixed-weight product.
Also, use only one kilogram net-weight AI from 3100 to 3105 for an item. If the correct value requires 3103, do not also encode 3100.
Putting every value in the URL path
Not every AI belongs in the same part of a GS1 Digital Link.
GTIN and key qualifiers such as Consumer Product Variant, batch, and serial number form part of the identification path. Data attributes such as expiration date, country of origin, and weight belong in the query string.
Keeping those roles separate helps preserve the expected GS1 Digital Link structure.
Treating Custom AI as a free-form field
Custom AI is for additional GS1-defined identifiers. It is not a way to invent a new code for your own data.
Before adding one, confirm that the AI exists in the GS1 system and that the value follows the correct format.
Conclusion
GS1 Application Identifiers give product data a consistent structure. GTIN identifies the trade item, while product variants, batch numbers, and serial numbers can make that identity more specific. Dates, origin, and variable-measure data add useful context.
You do not need every identifier on every product. Start with the information your process depends on, then add more only where there is a clear reason.
With QRCodeChimp, you can create GS1 QR Codes using these commonly needed identifiers and add other GS1-defined fields through Custom AI when required.
Frequently asked questions
What are GS1 Application Identifiers?
GS1 Application Identifiers are numeric codes that tell scanners and software what the data that follows represents. For example, AI (01) identifies a GTIN, while AI (17) identifies an expiration date.
What is the difference between GTIN, batch number, and serial number?
2.
A GTIN identifies the trade item, a batch number identifies a group of items from the same production batch, and a serial number identifies one individual unit. They can be used together when more detailed traceability is needed.
Do I need to use every available GS1 Application Identifier?
No. Use only the AIs that support your product and business process. A simple product may need only a GTIN, while other products may also require batch, serial, expiry, origin, or variable-measure information.
Can Consumer Product Variant AI (22) be used instead of assigning a new GTIN?
No. AI (22) is meant for variations of a retail consumer trade item that do not require a new GTIN. If the change falls under GS1’s GTIN allocation rules and requires a new GTIN, AI (22) should not be used instead.
Can I create my own GS1 Application Identifier using Custom AI?
No. Custom AI lets you add another identifier already defined by GS1. You still need to use a valid GS1 AI code and enter the value in the format required for that identifier.
You may also like
Steps to Integrate Microsoft Entra ID (Azure AD) with QRCodeChimp
Learn how to connect Microsoft Entra ID with QRCodeChimp to automate digital business card creation, improve security, and simplify onboarding.
Bulk QR Codes for Business: Use Cases and Benefits
Discover how bulk QR codes for business can streamline product packaging, employee cards, events, multi-location campaigns, inventory, and more
How to Send QRCodeChimp Form Responses to HubSpot
Learn how to connect QRCodeChimp Forms with HubSpot, map form fields, send responses directly to your CRM, and verify successful data transfers.
How to Prepare Your GS1 QR Codes for Targeted Product Recalls
Learn how GS1 QR Codes can support batch-level and item-level product recalls, and use a 7-step mock recall to test whether your systems are ready.
Most Popular
Contact Sales