8 questions
QR basics
What actually is a QR code?
A two-dimensional barcode that encodes text. The black and white squares are the text, written in a machine-readable layout with error-correction data mixed in. Everything a QR code can do comes from that text following a format a phone recognises — a URL, a Wi-Fi block, a contact card.
What is the difference between a static and a dynamic QR code?
A static code encodes the destination directly, so changing where it goes means printing a new code. A dynamic code encodes a short link that QrZeo controls and redirects, so the printed pattern stays fixed while the destination changes as often as you like.
Do dynamic codes look different from static ones?
Only in density. Both are ordinary QR codes that any phone camera reads. Because a short link is fewer characters than most real URLs, dynamic codes are often the smaller, less dense pattern of the two.
Why do some codes look denser than others?
More data means more modules — the little squares. Version 1 is 21×21 modules; version 40 is 177×177. A long URL with campaign parameters can push a code several versions higher than a short link carrying the same meaning.
What is error correction?
Redundant data mixed into the pattern so a scanner can reconstruct the payload when part of it is damaged or covered. Level L recovers about 7%, M about 15%, Q about 25% and H about 30%. Higher levels mean a denser code.
How small can I print a QR code?
A common rule of thumb is at least a tenth of the intended scanning distance — roughly 2 cm for arm's length, much larger for a shop window. Shorter payloads produce fewer modules and survive smaller printing.
Do QR codes expire?
Static codes never expire; they are self-contained. Dynamic codes resolve through our domain, so they keep working as long as the account is active and the code is not paused or deleted.
Can a QR code contain a virus?
No. A QR code only carries text. The risk is the same as any link — it can send a phone somewhere untrustworthy. Modern phone cameras show the destination before opening it, which is why readable short links are worth more than random ones.
8 questions
Creating codes
How many content types are there?
24: website, text, Wi-Fi, vCard, vCard Plus, PDF, video, images, social, business, menu, email, SMS, phone, app, event, location, coupon, MP3, playlist, rating, feedback, payment and link lists.
Which types cannot be dynamic?
Wi-Fi and vCard. A phone acts on those payloads directly — joining a network or saving a contact — so there is no URL to redirect. The generator marks them static-only rather than offering an option that could not work.
Can I choose my own short link?
Yes. Every dynamic code gets a generated slug you can replace with something readable, like qrz.eo/spring-menu. Letters, numbers, hyphens and underscores, up to 24 characters.
What happens if I try to reuse a slug?
Slugs are unique within the short-link domain, so a taken one is rejected. Pick another, or let the generator produce a random one — its alphabet excludes 0/o and 1/l/i so it survives being read off a printed page.
Can I create codes in bulk?
Yes. Bulk mode takes a pasted list or a CSV of up to 10,000 rows and produces one code per row, sharing a batch design. The first column is used as the destination and a header row is detected automatically.
Can I create codes through an API?
Yes. POST /v1/qr creates static or dynamic codes and returns ready-to-use SVG and PNG URLs. PATCH re-points an existing code, and GET /v1/qr/:id/scans reads its scan events.
What formats can I download?
PNG and SVG. Use SVG for anything going to print — it is a vector and scales to any size with no loss. PNG is simpler for screens, email and slide decks.
Can I upload a file for the code to point at?
Yes. PDF, video, image and audio files can be uploaded to workspace storage, and any number of codes can point at the same file. Replacing the file updates every code that references it.
7 questions
Design & branding
Can I change the colours?
Yes — any foreground and background colour, with presets for common brand palettes. The one thing the generator will not do is invert the contrast, because many phone cameras refuse to read light-on-dark codes.
What module shapes are available?
Square, rounded and dots. Square maximises contrast area and is marginally the most reliable; the other two are comfortably within scanner tolerance at normal print sizes.
Can I put a logo in the middle?
Yes — a monogram badge or an uploaded image. The badge covers roughly 6% of the symbol, which error correction can reconstruct, and the generator raises the level to H automatically whenever a logo is present.
Why did my error correction lock to H?
Because a logo is in place. The pattern has to survive being partly covered, and H is the level that guarantees it. Remove the logo and the other levels unlock.
What is the "Scan me" frame?
An optional caption band printed under the code in your foreground colour. It measurably helps in contexts where people are not expecting a code — table edges, packaging, event signage.
Will a coloured code still scan?
Yes, provided the foreground stays clearly darker than the background. The generator shows a low-contrast warning when a colour pair drops below the threshold where scanners start to struggle.
Can I match my brand exactly?
Set the foreground to your brand colour by hex and the background to white or a very light tint. Very light brand colours will trip the contrast warning — in that case use the brand colour on the frame instead of the modules.
7 questions
Analytics & tracking
What gets recorded when someone scans a code?
A timestamp, a coarse device class (iOS, Android, desktop, other), and a country or city derived from the request. That is what any web server sees when a browser makes a request — no identity, and no profile built across codes.
Can I track a static code?
No, and neither can anyone else. A static code sends the phone straight to the destination with no intermediate step, so there is nothing in the middle to count. Tracking is the practical reason to choose dynamic.
Is scan volume metered?
No. Scans are unlimited on every plan. A code that unexpectedly goes viral will not generate a surprise bill or stop resolving.
How do I tell which poster worked?
Give each placement its own code, all pointing at the same destination, then compare per-code counts. One code across three placements can only ever produce one number.
Can I see scans over time rather than a lifetime total?
Yes — a daily series over 7, 30 or 90 days, per code and across the workspace, with a comparison against the previous period of the same length.
What is A/B testing on a code?
Splitting scans between two destinations behind one printed code, at a ratio you choose. It answers "which page converts better" without reprinting anything.
Is the data GDPR-friendly?
Scan records hold no personal identifiers and locations are coarse. That said, we are not lawyers and your obligations depend on your jurisdiction and what your destination page does — worth a conversation with yours.
7 questions
Plans & billing
What does the free plan include?
Unlimited static codes, all 24 content types, full design controls, PNG and SVG export, and three dynamic codes so you can see re-pointing work before paying for it. No credit card.
Why are dynamic codes the thing you charge for?
A static code is a one-off computation — once you have the image we are out of the loop. A dynamic code is a redirect we have to keep running reliably for as long as the printed code exists, which is an ongoing cost.
What happens to my dynamic codes if I cancel?
They stop redirecting, so anything already printed stops working. Static codes are unaffected. We tell you how many printed codes are at stake before the change takes effect.
Can I change plans mid-month?
Yes. Upgrades apply immediately with a prorated charge; downgrades apply at the end of the current period, so you keep what you paid for.
Do you charge per team member?
No. Pro includes five members in the price and Scale removes the limit. A viewer who only reads analytics costs the same as nobody.
How is the API allowance counted?
Per request to the REST API — creating, reading or updating codes. Scans are not API requests. Sustained overage is billed per thousand rather than blocked mid-campaign.
How is payment handled?
Securely by Stripe. QrZeo never sees or stores your full card number — we hold a token and the last four digits so the billing page has something recognisable to show you.
6 questions
Teams & workspaces
What is a workspace?
An isolated container for codes, folders, storage, members and API keys. Client work, internal codes and a personal project belong in separate workspaces so nothing leaks between them.
What can each role do?
Owners have everything including billing. Admins have everything except billing. Editors create and re-point codes. Viewers read analytics and nothing else.
Are permissions enforced properly?
Yes — on the server, for every request. A missing permission returns 403 from the API rather than merely hiding a button in the interface.
How do I invite someone?
By email from the Members screen. They get a link, accept it, and land in that workspace with the role you assigned.
Can I give a client read-only access?
Yes. Assign Viewer and they can see codes and scan numbers without being able to create, re-point, pause or delete anything.
What happens to codes when someone leaves?
Nothing. Codes belong to the workspace, not the person who made them. Revoking access removes the member and leaves every code resolving as before.
5 questions
Organising codes
How do folders and tags differ?
A code lives in one folder and carries any number of tags. Folders are for the primary structure — campaign, client, venue. Tags are for the things that cut sideways, like "print" or "2026".
Does deleting a folder delete its codes?
No. The codes become unfiled and keep resolving. Tidying up should never take a printed code offline.
What happens when I rename a tag?
It is rewritten on every code that carries it. Tags are labels rather than ids, so the rename propagates everywhere at once.
Can I filter by more than one thing at a time?
Yes — type, folder, tag, static/dynamic and active/paused combine, alongside a name and short-link search.
Is there a way to pause a code temporarily?
Yes, and it is almost always better than deleting. A paused code stops redirecting, keeps its scan history, and comes back with one click.
5 questions
Security & data
Is two-factor authentication available?
Yes — TOTP with backup codes, on every account including free.
How should I handle API keys?
Like passwords: server-side only, never committed, never in a client bundle. Use a Test key anywhere a value could leak into logs or a shared notebook. Revoking takes effect immediately, so issue a replacement first.
What can a live API key do?
Create, re-point and delete every code in the workspace it is scoped to. That is why the scope is per workspace, and why keys inherit the permissions of the role that created them.
Can I use my own domain for short links?
On the Scale plan, yes. Set it up before your first print run — changing the domain afterwards breaks every code already printed, because the domain is part of what the pattern encodes.
What happens to my codes if I delete my account?
Dynamic codes stop resolving and their scan history is removed. We show you exactly how many codes and how many of them are dynamic before you confirm, because that number is the count of printed things that will stop working.
Still have a question?
The fastest answers usually come from just trying it — the guest editor is open to everyone. For anything else, we reply within one business day.
