Swapt
Guides

Designing QR codes that get scanned

Pick the right kind of code, decide who prints it, and design stickers that scan on a real shelf, not just on your monitor.

A QR code only earns its place on your packaging if people can scan it. This guide covers the three calls you make before you order: which kind of code to use, who prints it, and how to design it so it reads in a customer's hand. For what each control does, see QR Codes.

1. Choose one-time or multi-use

Each row on the order page has a One-time / Multi-use switch. Both look and scan the same. The difference is what happens after the scan.

One-timeMulti-use
The codeEvery code is unique. 1,000 codes means 1,000 different patterns.One code and one link for the whole campaign.
SubmissionsEach code can be scanned again and again, but its form only accepts one submission.Anyone can scan and submit, as often as they like.
Best forRewards, discounts, warranties, giveaways, and anything where duplicate claims or data quality matter.Always-on touchpoints like product info or a signup page, where verification isn't critical.

One-time codes stop people sharing a code or claiming a reward twice. Because each code maps to one physical item, you also get item-level tracking and cleaner first-party data. If a reward is attached, one-time is usually the right call.

2. Decide who prints

  • Swapt prints: the default. Swapt prints your stickers and ships them to the address on the order. It's the simplest path, and your colours are already set up for print.
  • I'll print myself: turn it on in a row's Options. Nothing ships. Swapt emails you print-ready PDFs to take to any printer.

Printing yourself is fully supported, but you're taking on the quality control. Another printer may not keep your colours, contrast, or sizing exactly as designed. Small print differences can lower scan rates, and you'll be managing files and proofs with a separate vendor. If you go this route, ask for a physical proof and scan it before the full run.

3. Design for the scan

Contrast comes first

Phone cameras read a QR code as dark squares on a light background, so weak contrast means failed scans.

  • Use dark dots on a light background. Set these with Dots and Background in the designer.
  • Aim for a contrast ratio of 4.5:1 or higher between dots and background. The designer measures this as you work. It warns you when contrast is thin (under 4.5:1) and flags a scan risk under 3:1.
  • Avoid inverted codes (light dots on a dark background). Most phones cope, but older handheld scanners don't, and the designer will warn you.
  • Skip near-identical shades, like navy on black or pale yellow on white. A quick test: view the code in grayscale. If it starts to fade, so will your scans.
  • A transparent background takes the colour of whatever it's printed on, so check your dots against that surface.

Colours are set in CMYK, so what you pick is what gets printed. If you type a Hex or RGBA colour, Swapt converts it and warns you the printed result may differ.

Give it room

Cameras need blank space around the code to find its edges. Keep the Padding at its default or larger, and don't place the code right up against text, photos, or the edge of your packaging.

Go big

On packaging, bigger almost always scans better. Pick the largest Size your product allows (0.5" to 3"). If you can't go bigger, surround the sticker with plain space. A smaller code with lots of breathing room scans better than a slightly larger one squeezed into a busy panel.

If you place the code inside your own artwork, the designer checks how much of the sticker the code fills. Keep it at 40% or more. Below 25%, the dots get too fine to print and scan.

A logo in the middle looks great, but it covers part of the code. On small packaging stickers that can be enough to stop it scanning. We recommend leaving it off. If you do add one, keep Logo size small, and watch for the designer's warning that the logo covers more than the code can rebuild.

Use the frame text

With a Drawn frame, you can add wording on the Top and Bottom (and the sides). Use two slots:

  • One that asks for the scan, like the SCAN ME preset.
  • One that teases the reward, such as SCAN TO WIN or CLAIM YOUR OFFER, or type your own.

Keep each line to two to four words. Match the border colour, text colour, and font to your brand.

4. Test before you order

Watch the scan check in the designer. You want to see Scans cleanly before you click Apply design.

On Review and confirm order, download each campaign's Proof PDF.

Scan it with at least three phones: a new iPhone, an older Android, and one in between.

Dim your screen for one round. A bright monitor hides contrast problems that show up on real packaging.

Scan from the edges and at an angle, not just straight on. Then zoom out until the proof is close to its printed size and scan again.

Only tick I have scanned each CMYK proof to confirm each QR is camera-readable. once it passes all of these. The design locks when the order goes to print.

Quick checklist

  • One-time codes if there's a reward, multi-use for open touchpoints
  • Swapt prints, or you've planned a physical proof with your own printer
  • Dark dots, light background, 4.5:1 contrast or better
  • Default Padding or more, and nothing crowding the code
  • The largest size that fits, or plenty of white space around it
  • No logo, or a small one with no warning
  • Two short frame lines: one asks for the scan, one teases the reward
  • Proof scanned on three phones, dimmed, at an angle, and at print size

On this page