Frequently Asked Questions

Everything you need to know about creating QR codes

Basics & cost

Static QR codes are 100% free, forever, with no sign-up — including custom colors and PNG/JPG download. Paid plans add hosted extras: editable dynamic codes, scan analytics, vector files (SVG/PDF), logo image upload and bulk generation — see our pricing page for current plan details.

No. The generator works instantly without registration. You only need a free account for things that live on our servers — dynamic codes, short links and hosted pages.

Yes. Codes you generate are yours, free for personal and commercial use with no attribution required. (QR Code is a registered trademark of DENSO WAVE, but using QR codes is free for everyone.)

No — static codes are unlimited on every plan, including free. Server-hosted items (dynamic codes, pages, short links) have per-plan caps shown on the pricing page.

For static codes: nothing you'd pay for — design control and print files are all here. Paid tiers exist for the same reason theirs do: hosted redirects, analytics and team features cost money to run.

No. Downloaded QR codes are clean, watermark-free, on every plan. Free hosted bio pages show a small "Powered by QR Code Harbor" badge; the QR image itself never carries branding.

36+ types: URL, Wi-Fi, vCard/business card, text, email, phone, SMS, WhatsApp, all major social profiles, PDF and files, events and calendars, locations and maps, payments (PayPal, UPI, crypto), app stores, Google reviews, menus and more.

Expiry, reliability & "will it keep working?"

Static codes never expire — the data is baked into the pattern itself, so they work as long as whatever they point to exists. Dynamic codes work as long as the redirect service behind them is active.

Almost certainly it was a dynamic code on a free trial: the vendor's redirect link was disabled when the trial ended. The pattern still scans — the short URL inside it is dead. Recreate it as a static code, or use a dynamic code from a service you trust to keep the redirect alive.

Static codes: no — they never touch our servers and will scan forever. Dynamic codes and short links depend on our redirect staying online, which is exactly why we publish this distinction honestly.

Unlimited. A QR code is just a printed pattern — there's no per-scan cost or wear-out. (Scan analytics on hosted dynamic codes may have plan-based limits; scanning itself is never blocked on printed static codes.)

Only if it's dynamic (it encodes a redirect you can repoint anytime). A static code can't be edited — its content is physically part of the pattern. If you expect the destination to change, choose dynamic before you print.

Your account drops to the free tier and free-tier limits apply going forward — check our pricing page for the current free allowance for dynamic codes. Codes beyond the free cap pause rather than get deleted, and resume redirecting if you re-upgrade.

Scanning & troubleshooting

Open the Camera app and point it at the code — a yellow link banner appears; tap it. Works on iOS 11+. You can also scan from a screenshot: open the photo and long-press the code, or use the Code Scanner in Control Center.

Point the Camera at it (Android 9+) or use the Google Lens icon in the camera/search bar. On older phones, install Google Lens or any free scanner app.

You can't point your camera at your own screen — instead screenshot it, then open Google Lens (Android) or long-press the image in Photos (iPhone) and it will read the code from the picture.

The top causes, in order: too little contrast between code and background, a logo covering too much, the code printed too small, inverted colors (light code on dark), a busy background, or glare/low light. Fix contrast first, set error correction to High if you use a logo, and always test before printing.

Rule of thumb: scan distance ÷ 10. For arm's-length scanning (flyers, cards) that's about 2×2 cm (0.8 in) minimum; posters read from 2 m need ~20 cm. When in doubt, print bigger and test with several phones.

Yes, if it's big enough — apply the distance ÷ 10 rule. A billboard code meant for 10 m needs to be about 1 m wide. Higher error correction and simple, high-contrast design help at distance.

Yes, with rules: the code must be darker than its background (scanners expect dark-on-light), keep strong contrast (roughly 40%+ difference), and avoid red-on-green style combinations. Pure inverted codes fail on many readers.

On virtually every phone from 2018 onward, yes — the built-in camera does it. No third-party app is needed on iOS 11+ or Android 9+.

Design, logos & printing

Yes — QR error correction is designed to survive it. Keep the logo under ~20% of the code's area and set error correction to High (30%). Text logos are available on the free plan; image logo upload is a Pro feature.

It's built-in redundancy that lets a damaged or partially covered code still scan. Levels: L 7%, M 15%, Q 25%, H 30%. Use M normally; use H whenever you add a logo or print on textured material.

Screens and web: PNG. Simple print jobs: high-res PNG works to ~10 cm. Professional printing, signage, or anything you might rescale: SVG or PDF (vector — infinitely sharp). Vector formats are available on paid plans — see pricing for details.

Aim for 300 DPI at final size: a 3 cm code needs ~360 px, a 10 cm code ~1200 px. Or sidestep the math entirely with SVG/PDF, which have no resolution.

Yes — transparent PNG download (a paid-plan feature) lets you place codes over designs. Make sure whatever sits behind still gives the dark modules strong contrast.

Yes — rounded, dot and "classy" module styles all scan fine because readers key on the three corner finder squares and overall contrast. Extreme artistic distortion of the finder patterns is what breaks codes.

Finder patterns — they tell the scanner where the code is and which way is up. Never cover or heavily restyle them; that's the fastest way to make a code unscannable.

Yes — a short call-to-action ("Scan for the menu") measurably increases scans and sets expectations. Leave a quiet zone (empty margin of at least 4 modules) between code and text.

Static vs dynamic & tracking

Static encodes your content directly in the pattern: free, permanent, uneditable, untrackable. Dynamic encodes a short redirect URL: you can change the destination and see scan analytics, but it depends on the redirect service staying online.

Only with a dynamic code (or a static code pointing to a URL with UTM parameters that your own analytics reads). Plain static codes are untrackable by design — nothing passes through any server.

Dynamic code analytics show scans over time, country/city, device and OS. The depth of the breakdown depends on your plan — see pricing for what's included on free vs paid. No personal identity is ever collected — see our privacy FAQ below.

They're tags appended to a URL (?utm_source=poster&utm_campaign=spring) so Google Analytics attributes visits to the specific placement. Use them on any marketing QR code — they work even on free static codes.

Yes — smart routing on Business dynamic codes can redirect by country, language, device or time (e.g., App Store vs Play Store from one code).

Dynamic codes on paid plans can be paused, given expiry dates or scan limits, and password-protected. Static codes can't — they have no off switch, which is also their superpower.

Type-specific how-tos

Choose the Wi-Fi type, enter network name (SSID), password and security type (almost always WPA/WPA2), download and print. Guests scan and join without typing anything. The password is encoded in the pattern — anyone who scans can read it, so use it for guest networks.

Use the vCard type: fill in name, phone, email, company, website. Scanning opens "Add contact" pre-filled on both iPhone and Android. For an editable version with a photo page, use a digital business card page instead.

WhatsApp type + your number in international format (+39…), optional pre-filled message. Scanning opens a chat with you — no contact-saving needed. Great for shop counters and support.

Point it at a hosted menu page (not a raw PDF): faster to load, readable on phones, and updatable without reprinting when it's a dynamic code or a page you edit. Our menu templates + a table-tent QR do exactly this.

Use the Google Review type with your business's review link (from your Business Profile) — scanning lands customers directly on the 5-star dialog. Put it on receipts and counters; timing (right after a good experience) matters more than placement.

Yes — the email type pre-fills recipient/subject/body; the SMS type pre-fills number and message. The user still has to hit send, so it's spam-safe.

They encode a payment link or payment-network URI (PayPal.me, UPI address, crypto wallet address with amount). The scanner's payment app opens with details pre-filled. Always test with a tiny amount first — an address typo is unrecoverable in crypto.

Yes — the event type encodes iCal data (title, place, start/end). Scanning offers "Add to calendar" on both platforms. Perfect for invitations and posters.

Barcodes

A 1D barcode (like EAN/UPC) stores a short number read by laser scanners — retail checkout territory. A QR code is 2D: it stores ~100× more (URLs, text), survives damage via error correction, and any phone camera reads it.

EAN-13 in most of the world, UPC-A in the US/Canada. The number itself must be issued by GS1 (you buy a company prefix) — a generator makes the image for a number you legitimately own; it can't invent valid retail numbers.

Not for retail sale — stores will reject or mis-scan unregistered numbers, since GS1 numbers are globally unique. For purely internal inventory you can use any numbering with Code 128 instead.

Code 128 — compact, alphanumeric, universally supported by scanners. Code 39 if you need legacy-system compatibility. No registration needed for internal use.

Usual suspects: wrong check digit (let the generator compute it), printed too small or stretched non-proportionally, insufficient quiet zone on the sides, or low contrast/glossy lamination. Reprint at 100% scale on matte.

Yes — including EAN, UPC, Code 128 and Code 39, with no license fee and no watermark. (Several well-known barcode sites forbid commercial use on their free tier; we don't.)

Instagram/TikTok allow one bio link — a link-in-bio page turns it into a mini-site with all your links, menu, offer or contact card at qrcodeharbor.com/p/you. Ours is free, hosted, and pairs naturally with a QR code.

Short links are available on the free plan (they share your account's dynamic-code allowance) and keep redirecting for as long as your account exists — see our pricing page for current free-tier limits.

Custom redirect domains are a Business-plan feature. Everyone else shares qrcodeharbor.com, which has the advantage of an established reputation with link scanners.

Yes — the same engine as dynamic QR codes: clicks/views over time, and country/device breakdowns on paid plans. Bio pages also count views and captured leads.

Yes — add the form block (email signup, contact form, or wedding RSVP with attendance and guest count). Submissions appear in your builder; CSV export is a Business feature.

Privacy & safety

The code itself is inert — risk lives in where it points, exactly like any link. Modern phones preview the URL before opening. Be wary of stickers pasted over original codes on parking meters/menus, and of shortened URLs in unexpected places.

No — scanning only reads data; nothing executes. Danger requires you to then open a malicious site and act on it (enter credentials, install something). Preview the URL and you're fine.

For static codes: no, structurally — generation happens entirely in your browser and your content never reaches our servers. Wi-Fi passwords, contacts, everything stays on your device.

The scan event with coarse technical context (country/city from IP, device type, browser) for your analytics. We don't build identity profiles of scanners, and printed static codes involve no tracking at all — there's nothing to track through.

QR phishing: attackers replace or overlay legitimate codes to redirect victims to fake sites. Protect yours by printing codes where tampering is visible, using your recognizable domain, and periodically test-scanning deployed codes.

Still have questions?

We're here to help.

Contact Us