Skip to content
HNarzędzia
en
Categories

QR code generator - link, Wi-Fi, contact, SMS and more

Generate a QR code in seconds and download it as PNG or SVG. Codes are static, never expire and have no watermark. Everything is created in your browser.

  • Free
  • No sign-up
  • Private
  • Runs locally

Quiet zone in modules. Scanners recommend at least 2-4.

Enter data to generate a QR code.

How to make a QR code

  1. 1.

    Choose the type

    Link/text, Wi-Fi, contact, e-mail, SMS, phone, location or a Polish bank transfer.

  2. 2.

    Enter the data

    Fill in the fields - the code updates live and the exact payload is shown below it.

  3. 3.

    Adjust the look

    Set size, margin, error correction and colors. Keep the code darker than the background.

  4. 4.

    Download

    Save as PNG for screens or SVG for print, or copy the image to the clipboard.

What each QR code type does

TypeWhat happens after scanningEncoded as
Text / linkopens the website or shows the textplain text or URL
Wi-Fioffers to join the networkWIFI:T:WPA;S:name;P:password;;
Contactadds a contact to the address bookvCard 3.0
E-mailopens a new message with subject and bodymailto:
SMSprepares a text messageSMSTO:number:text
Phonedials the numbertel:
Locationopens the point in a maps appgeo:lat,lon
Transfer (PL)pre-fills a payment in Polish banking appsPolish Bank Association (ZBP) format

The bank transfer type only works with Polish account numbers (26 digits) and Polish banking apps; it is not an EPC/SEPA code.

Making a QR code that always scans

  • Contrast: use a dark code on a light background. Inverted codes (light on dark) are not read by every scanner, and the tool warns you when the contrast ratio drops below 3:1.
  • Quiet zone: keep a margin of at least 2-4 modules around the code. The margin slider goes from 0 to 10 modules (default 2).
  • Print size: at least 2 × 2 cm. A common rule of thumb is a code width of about one tenth of the scanning distance, so a poster read from 2 m needs a code of around 20 cm.
  • Less data: short URLs produce fewer, larger modules that scan faster.
  • SVG for print: vector output stays sharp at any size; PNG can be exported from 128 to 2048 px.

Error correction and capacity

Error correction lets a scanner rebuild the code when part of it is dirty, scratched or covered. The higher the level, the more space goes to redundancy and the less is left for your data. The largest QR code (version 40, 177×177 modules) holds:

LevelRecovers up toMax bytes (binary mode)
L~7%2953
M (default)~15%2331
Q~25%1663
H~30%1273

Use L or M for screens and clean prints, Q or H for codes on packaging or outdoor signs. In practice anything over a few hundred characters becomes hard to scan from paper.

Wi-Fi QR codes

A Wi-Fi code encodes WIFI:T:WPA;S:network;P:password;;. Special characters (\ ; , : ") in the name or password must be escaped with a backslash - the generator does it for you. Scanning the code with the camera app on iOS or Android offers to join the network without typing the password. Turn on “Hidden network” if your router does not broadcast its name.

Frequently asked questions

Is the QR code generator free?

+
Yes - no sign-up, no scan limits and no watermark. The data is stored in the image itself, so the code never expires.

Do these QR codes expire?

+
No. They are static codes: the link or text is encoded directly in the pattern, with no redirect service in between that could be switched off.

Can I use the codes commercially?

+
Yes, you can print them on flyers, packaging or business cards without a license fee. “QR Code” is a trademark of Denso Wave, but using the standard is free.

PNG or SVG?

+
PNG for web, e-mail and documents; SVG for print and large formats because it scales without losing sharpness.

Why does my code not scan?

+
Usually low contrast, inverted colors, no margin, a too small print or too much data. Increase size, use a dark code on a light background and shorten the content.

Can I change the link after printing?

+
No. A static code cannot be edited - if the destination may change, point the code at a page you control and update that page instead.

Updated: