QR Code Print Checklist for App Campaigns: 29 Checks Before You Sign the Proof
A printed QR code can’t be patched. The checks to run before packaging, posters or a TV spot go to print: the link inside the code, logo and error correction, prepress, materials, placement and who signs off on what. With the numbers from Denso Wave and GS1, and the half of the list Appy handles for you.
Why a print run needs its own checklist
A web page with a typo gets fixed in a minute. A QR code on 200,000 boxes stays exactly as it was printed until the last box is recycled. The design can be beautiful and the code can still fail on a glossy laminate, at a checkout scanner or on the phone of someone standing two metres away.
And the code is only half of it. On August 25, 2025, Firebase Dynamic Links shut down and every page.link address started returning 404, custom domains included. Any packaging that encoded one of those links has pointed nowhere since. Before the artwork, check what the code points to and who controls it.
This list is for the marketer who sends the file to the printer. It goes past the basics in our sizing guide and assigns every check to someone.
Four numbers to keep on the brief
- empty margin on every side, per Denso Wave and GS1
- 4 modules
- minimum symbol contrast in GS1’s guide; around 50% recommended
- 30%
- smallest module a common laser printer can print, per Denso
- 0.17 mm
- damage the highest error correction level (H) can recover
- 30%
empty margin on every side, per Denso Wave and GS1
minimum symbol contrast in GS1’s guide; around 50% recommended
smallest module a common laser printer can print, per Denso
damage the highest error correction level (H) can recover
What Appy takes off your list
A good part of this checklist isn’t about design. It depends on the tool that makes the code. With Appy, these checks are done before your designer opens the file.
Every phone to its own store
One code sends iPhones to the App Store, Android phones to Google Play, Huawei phones to AppGallery and computers to your website. On every plan, Free included.
A short link, so a lighter code
Every Appy code holds a short appy.to link instead of a long URL with UTM tags, so the grid stays small and easy to scan from a shelf or a couch.
Change it after printing
Swap the store links or the destination in the dashboard and every printed copy follows. No reprint, no sticker over the old code.
Never switched off
Appy doesn’t deactivate codes when a subscription ends, and every plan has unlimited scans with no ads in between.
Files your printer wants
Download SVG for print, or PNG and WEBP, with your logo and brand colours. On every plan.
Proof it works in the first 48 hours
Scans are counted from the first day. Pro shows them by device and country, so you see at once whether every platform is landing.
Your own domain on the box
On Business, codes can carry your own link domain, so the address inside the code is yours.
1. The link inside the code
Check these before anyone opens the design file. They decide whether the code still works in two years.
Know whose domain is encoded
Scan a test print and read the address. If it is a vendor’s domain, you depend on that vendor for the life of the print run. A domain you own can be repointed if you ever switch tools.
Ask what happens if you stop paying
Some QR vendors deactivate dynamic codes when a plan lapses; qr-code-generator.com says so on its own blog. On Trustpilot it had a TrustScore of 1.3 from 9,325 reviews when we checked on October 9, 2026, and reviewers describe codes that stopped working. Get the answer in writing.
Use a short link, not the long URL
A long URL with UTM tags makes a denser code. Encode a short link and keep the parameters on the link side, where you can change them later.
Route by device
One code for everyone: iPhone to the App Store, Android to Google Play, Huawei to AppGallery, computers to the website. Two codes side by side split attention and half the scans go to the wrong store.
Tag the placement
One link per placement (box, shelf talker, poster, TV) so you can tell later which one earned the installs.
Load-test the destination before mass reach
Coinbase reported more than 20 million landing page hits in one minute after its 2022 Super Bowl QR ad, and some users saw delays. If the code goes on TV, make sure the redirect and the page can take the spike.
How link length changes the code you print
A QR code grows in versions. Version 1 is a 21 × 21 grid and each version adds four modules per side. Denso Wave’s capacity table shows what that means for URLs: at error correction level M, a 20-character short link fits in version 2, a 25 × 25 grid. A 100-character URL with UTM parameters needs version 6, 41 × 41.
Print both at the same 2 cm width, quiet zone included, and the modules shrink from about 0.61 mm to 0.41 mm. Add a logo and switch to level H and the long URL jumps to version 10, with modules around 0.31 mm. The same artwork, a lot harder to scan from a shelf or a couch. That is the practical reason to put a short link in the code.
2. Logo and error correction: GS1’s test
A logo sits on top of data. The code only reads because error correction rebuilds what the logo covers. GS1 tested the same 16 mm logo at each level with an ISO verifier.
3. Design
Keep a four-module quiet zone, then a little more
Denso and GS1 both specify four modules of empty margin on every side, in the same colour as the code’s background. GS1 suggests a bit extra for production tolerances. Text and graphics creeping into the margin are a known cause of failed reads.
Logo only at level H, and never on the corners
If there is a logo, generate the code at H and accept the larger size. Error correction can’t repair the three corner squares or the timing patterns.
Dark code on a light background
Black on white is safest. GS1 asks for at least 30% contrast and recommends around 50%; a yellow code on white is its example of what fails.
No red if the pack also goes through a till
Phones read a red code, but checkout scanners light it with red light and can’t see it. GS1 recommends black, dark blue, dark green or dark brown for the code.
Don’t invert unless you have tested it
Light modules on a dark background are allowed by the standard, but support varies by phone and scanner. If the brand insists, test on several devices first.
One code per piece of artwork
With two codes in view, a phone camera jumps between them. The out-of-home association OAAA recommends a single code per creative.
4. Prepress
These are where a correct design becomes a bad print. Hand them to the designer and the printer together.
Send vector
SVG, EPS or PDF keeps module edges sharp at any size. If it has to be raster, export it at the final printed size at 300 dpi or more. Never enlarge a small PNG; Denso warns that resizing distorts the modules.
Print the code in 100% black
A four-colour black can misregister by a hair and blur every module edge. Trade printers ask for C0 M0 Y0 K100 on fine detail.
Watch the RGB-to-CMYK conversion
Adobe documents that RGB black can turn into four-colour black when a file is converted to CMYK. Check the separations, not just the screen.
Check overprint on tinted backgrounds
InDesign overprints 100% black by default, so the light modules show the background tint. Measure that the contrast still holds.
Size up on uncoated stock
On kraft, newsprint and uncoated paper, ink spreads and dark modules eat into the light ones. Research on printed QR codes shows dot gain hits small codes hardest. Go bigger and proof it.
Respect the module floor
Denso puts the smallest printable module on a laser printer at about 0.17 mm. For packaging that may also be scanned at a till, GS1’s retail range is 0.396 to 0.990 mm per module.
5. Material and placement
Avoid gloss where you can
GS1 warns that glossy and high-sheen surfaces reflect light over the code. Matte lamination scans better under a ceiling light. Scan after lamination, not before.
Metal and clear film need an opaque base
On cans and metallised film GS1 recommends a matte black code on a white area. On transparent film, print an opaque white box under the code.
Put it on the flattest panel
On bottles and cans, curvature distorts the grid. There is no published safe limit, so test the printed sample at the real diameter.
Mind the height on screens and posters
In the OAAA’s tests on screens mounted 53 inches up, codes in the top third scanned poorly from any distance. Put the code where a phone naturally points.
On TV and digital screens, keep it up the whole time
The IAB’s CTV guidelines say to keep the code visible for the full ad and large enough to scan from the couch, with a short line on what happens after the scan.
Say what the scan gives
Tell people what they get: “Scan to get the app”, not “Scan me”. Good data on how much a call to action lifts scans is thin, so test two versions with two links instead of trusting a percentage.
6. Testing and sign-off
Every check needs a name next to it. A code that scans on a monitor tells you little about the printed, laminated box on a shelf.
Designer: test the export
Scan the final file on screen with an iPhone and an Android phone before it leaves the studio.
Link owner: test the routing
Scan with an iPhone, an Android phone and, if relevant, a Huawei phone without Google services. Each should land in its own store. Open the code on a laptop to check the web fallback.
Printer: proof on the real material
A proof on the final stock, with the final lamination, at the final size. GS1 recommends an ISO verifier for packaging with branded codes.
QA: scan the proof like a customer would
At the real distance and angle, in dim light, with an older phone. iPhones scan with the Camera app since iOS 11; Google says Android 9 or later reads QR codes with the built-in camera.
Link owner: check the numbers after launch
Look at scans by device in the first 48 hours. If one platform is missing, something in the routing or the print is wrong, and it is still cheap to fix.
Read next
- App Store QR code generatorOne code for the App Store, Google Play and AppGallery, editable after printing.
- QR code size for posters and packagingThe distance rule and a size table by placement.
- How to track QR code app installsFrom scan to store visit to install.
- Firebase Dynamic Links, one year laterWhat happened to the links when Google switched them off.
Print checklist questions
How big should the quiet zone around a QR code be?
Four modules on every side, in the same colour as the code’s background. Denso Wave, which invented the QR code, and GS1 both specify it, and GS1 suggests a little more for production tolerances.
Which error correction level should I use with a logo?
H. In GS1’s test the same 16 mm logo failed at L and M, marginally failed at Q and passed only at H, which made the code grow from about 26 mm to 37 mm.
Can a QR code be red?
Phones can read a red code, but checkout scanners use red light and can’t. If the pack goes through a till, use black, dark blue, dark green or dark brown.
Should I send the printer a PNG or an SVG?
An SVG, EPS or PDF. If you must use a raster file, export it at the final size at 300 dpi or more, and don’t enlarge it later.
Should the code be static or dynamic?
For print, a dynamic code lets you change the destination and count scans without reprinting. Check first that the codes keep working if you stop paying the vendor.
Why make the QR code with Appy?
Because the link-side checks are done for you: one code routes every phone to its own store, AppGallery included, it can be changed after printing, it is never switched off when a plan ends and it counts every scan. You get SVG, PNG and WEBP files with your logo on every plan.
Do Appy QR codes stop working if I cancel?
No. Appy doesn’t switch off links or QR codes when a subscription ends, and every plan has unlimited scans.
Continue exploring
Best QR Code Size for Posters, Packaging, and App Campaigns
Choose the right QR code size for posters, packaging, flyers, and retail placements so scans convert into app installs.
Bitly Alternative for App Links: Store Routing and Deep Links Without the $199 Plan
Bitly’s free links show an ad page, store routing sits on unnamed paid plans, Huawei isn’t supported and deep links start at $199 a month. How Appy compares, checked against Bitly’s own pages.
Custom Domain Short Links for Apps: A Practical Guide
Why a link on your own domain is worth it, how to choose the hostname, the setup in three steps, and what happens to the links and QR codes you have already shared.
Looking for something else? Browse all topics on the blog.
Print it once. Keep it working.
Make the code with Appy before the artwork: every phone to its own store, editable after printing, never switched off when a plan ends. Free to start.