How to Create GS1-Compliant QR Codes for Products

Step-by-step guide to creating GS1-compliant QR codes for product packaging. Covers GTIN registration, Digital Link structure, print specifications, and validation.

Sprouter GS1 QR code generator interface showing a compliant product QR code

Creating a QR code that meets GS1 standards requires more than generating a code and sticking it on a box. The code must contain a properly structured GS1 Digital Link URL, pass print quality requirements, and scan reliably at both POS terminals and smartphone cameras.

This guide walks through each step, from GTIN registration to final print validation.

Prerequisites

Before generating any QR codes, you need:

  1. A GS1 Company Prefix — Obtained through your local GS1 Member Organization (e.g., GS1 US, GS1 UK)
  2. Valid GTINs — Global Trade Item Numbers assigned to each product, registered in the GS1 Registry Platform
  3. A GS1-conformant resolver — The server that hosts your Digital Link endpoints (Sprouter provides this)

If you don’t have a GS1 Company Prefix, start at gs1.org to find your local member organization. This is a prerequisite — you cannot create GS1-compliant codes with made-up numbers.

Step 1: Validate Your GTIN

Your GTIN must be:

  • Registered with GS1 (not just a number you assigned internally)
  • Active in the GS1 Registry Platform
  • Check-digit valid — The last digit is a calculated check digit, not arbitrary
  • Properly formatted — GTIN-8, GTIN-12, GTIN-13, or GTIN-14

Common mistake: Using internal SKU numbers or RCNs (Restricted Circulation Numbers) instead of registered GTINs. RCNs starting with prefix 02 or 2x are for internal use only and will not work at other retailers’ POS systems.

Use Sprouter’s compliance checker to validate your GTINs before proceeding.

The URL follows this structure:

https://{resolver}/{ai}/{value}

For a product with GTIN 09506000134376:

https://sprouter.gs/01/09506000134376

Optional data elements you can add:

Application IdentifierMeaningURL Segment
01GTIN/01/09506000134376
10Batch/Lot/10/ABC123
21Serial Number/21/12345
17Expiry Date/17/271231

A fully loaded URL:

https://sprouter.gs/01/09506000134376/10/LOT2026Q2/21/SN00001

Important: More data means a denser QR code, which requires a larger print size. Only include data elements that your use case requires.

Step 3: Configure Your Resolver

The resolver is the server that responds when someone scans your code. It needs to return appropriate content based on who’s scanning:

  • POS terminal request → Return product identification data
  • Consumer smartphone → Redirect to product page, nutrition info, or promotional content
  • Regulatory query → Return safety data sheet or compliance documentation

At minimum, configure these link types:

  • Product information page (gs1:pip) — The default consumer-facing landing page
  • Product data (gs1:epil) — Machine-readable product data for POS/supply chain

Sprouter’s resolver supports all 55 GS1 link types and handles device detection automatically.

Step 4: Generate the QR Code

With your validated GTIN and configured resolver, generate the QR code. Critical specifications:

Error Correction Level

Use Level M (15% recovery) as the baseline. Use Level Q (25%) or Level H (30%) if the code will be printed on packaging with potential damage, folding, or partial obstruction.

Higher error correction = larger code. Level M is the best balance for most product packaging.

Quiet Zone

Maintain a minimum quiet zone of 4 modules (4x the width of one dark/light unit) on all four sides. This is the blank space around the QR code — it’s required for reliable scanning.

Color

Black modules on white background. This isn’t a style recommendation — it’s a scanning reliability requirement. The minimum contrast ratio is 40%. Avoid:

  • Colored modules
  • Gradient backgrounds
  • Transparent or semi-transparent overlays
  • Inverting colors (white on black)

Output Format

FormatUse CaseSuitable for Print
SVGDigital use, scalable printYes
EPSProfessional print workflowsYes
PDFPrint-ready artworkYes
PNGScreen display, digital channelsScreen only (300+ DPI for print)
JPEGNever use for QR codesNo — compression artifacts break scanning

JPEG compression introduces artifacts at the sharp edges between dark and light modules. These artifacts degrade scan reliability, especially at small print sizes. Always use a lossless format.

Sprouter’s QR generator outputs all four print-ready formats and blocks JPEG generation.

Step 5: Print Specifications

Minimum Size

The absolute minimum for reliable scanning is 15mm × 15mm (approximately 0.6” × 0.6”). For consumer-facing products where you want easy smartphone scanning, target 20mm × 20mm or larger.

Resolution

  • Screen: 72-150 DPI is fine
  • Print: Minimum 300 DPI, 600+ DPI recommended for small sizes
  • Vector formats (SVG, EPS, PDF) are resolution-independent — preferred for print

Substrate Considerations

Different packaging materials affect print quality:

MaterialRiskMitigation
Corrugated cardboardInk absorption, rough surfaceIncrease code size 20%, use Level Q correction
Glossy filmGlare interferenceMatte finish in code area, test scanning angles
Metal/foilReflectionMatte overprint, larger quiet zone
Clear/transparentInsufficient contrastOpaque white backing behind code area
Curved surfaceDistortionIncrease size, test on actual packaging shape

Step 6: Validate Before Printing

Before finalizing artwork, validate:

Scan Test

Scan the code with at least three different smartphones at varying distances and angles. It should resolve instantly (under 1 second) in normal lighting.

GTIN Verification

Confirm the scanned URL contains the correct GTIN by checking the URL path.

Resolver Test

Access the URL in a browser and verify:

  • Product information page loads correctly
  • Content matches the correct product
  • Mobile display is formatted properly

POS Simulation

If possible, test with a POS scanner (or POS scanner app) to verify GTIN extraction works correctly.

On your first print run, scan codes from actual printed packaging — not the digital file. Print variables (ink spread, dot gain, substrate) can affect scannability.

Checklist Before You Print

  • GTIN is registered and valid (check digit passes)
  • Digital Link URL follows GS1 structure
  • Resolver is configured and responding
  • Error correction level is appropriate for packaging type
  • Quiet zone meets 4-module minimum
  • Output format is SVG, EPS, or PDF (not JPEG)
  • Print size meets 15mm minimum (20mm+ recommended)
  • Black-on-white with 40%+ contrast ratio
  • Code scans successfully on 3+ test devices
  • Resolver returns correct product information

Generate Your First Code

Sprouter’s GS1 QR code generator handles GTIN validation, Digital Link URL formatting, resolver configuration, and print-ready output in a single workflow. Enter your GTIN, configure your link types, and download codes ready for your packaging designer.

For a broader view of GS1 readiness, start with our compliance checklist.