Static codes: what they do and what they can't
Everything this tool makes is a static code. The link, text or Wi-Fi details you enter are stored in the pattern of squares itself. There is no account, no server in between and nothing that can run out.
- It never expires. The code works for as long as what it points to works. There is no subscription and no trial that ends.
- It cannot be changed. To edit the content you make a new code. A printed code stays as it was printed.
- It does not count scans. Nothing passes through us or anyone else when a phone reads it, so there are no statistics to look at.
A dynamic code works differently. It stores a short web address that belongs to a service, and the service sends phones on to your real page. That lets you change the destination later and count scans. The price is that the code only works while that service runs and your account stays active, and every scan passes through the service. We do not make dynamic codes.
If you want to change where a printed code points, you can still do it with a static code: encode a link on a domain you control, such as example.com/menu, and set that page to forward visitors wherever you like. Add campaign tags such as utm_source to the link if you want your own website analytics to show which codes bring visitors.
What each kind of code does when it is scanned
Phone cameras and scanner apps recognise the format of the text inside a code and offer the matching action. This is what each kind stores:
- Link: a web address. The phone offers to open it.
- Text: plain text, shown as it is.
- Wi-Fi: a line such as
WIFI:T:WPA;S:name;P:password;;. The phone offers to join the network. The password sits in the code as plain text, so anyone who has the code can read it. - Contact: a vCard 3.0 card with name, phone numbers, email, website and address. The phone offers to save it.
- Email: a
mailto:link that opens a new message with the address, subject and text filled in. - SMS: an
sms:link, or the olderSMSTO:form, that opens a new text message with the number and message filled in. - Phone: a
tel:link that offers to call the number. - Location: coordinates as a
geo:link, or a Google Maps link, that opens the place on a map. - Event: an iCalendar event with a title, time and place that the phone offers to add to your calendar.
What happens next depends on the phone and the scanning app. We make the codes to the published formats, but we have not tried every phone, so scan yours with the devices your audience uses before you print.
Colours, error correction and logos
A scanner turns the camera picture into light and dark and then reads the squares. Give it clear contrast: a dark code on a light background. A light code on a dark background is something many scanners cannot read, so the tool warns you if you swap them. It also warns when the two colours are close together, such as pale grey on white.
Error correction adds repair data to the code. There are four levels: L repairs about 7% of damage, M about 15%, Q about 25% and H about 30%. A higher level can survive scuffs or a logo, but it uses more squares for the same content, so the code gets denser and the squares smaller. M is a sound default for screens and clean print. Pick Q or H for stickers and packaging that will get scuffed.
A logo covers the middle of the code, so adding one switches to level H. The tool clears whole squares for it, keeps it away from the corner patterns that scanners lock onto, and warns when it covers a large part of the code. Keep the logo small and test the result.
Leave the blank border around the code. The standard sets it at four squares. Without it some scanners cannot tell where the code starts, especially on a busy background.
Printing a code that scans
Use the SVG or the PDF for print, not the PNG. They are vector files and stay sharp at any size. The PDF can be a page exactly the size of the code, for a designer to place, or the code centred on A4 or US Letter.
Size depends on how far away the scanner will be. A common rule of thumb is that a phone reads a code from about ten times its width away, so a 3 cm code scans from about 30 cm and a 1 m poster code from about 10 m. It is a rough guide, and dense codes need more room than simple ones.
The number of squares matters too. Divide the printed width by the number of squares plus the border to get the size of one square. A 25 by 25 code printed 3 cm wide has squares of about 0.9 mm. An 85 by 85 code at the same width has squares of about 0.3 mm, which many printers will blur. The print settings under the download buttons show the square size for your width.
Print dark ink on a light, matte surface where you can, because glare on glossy paper makes any code harder to read. Print one, scan it from the distance people will use, and only then print the rest.