Create Your Own QR Codes in 2026: Wi-Fi, vCard, SEPA Payment & More, Done Right
A QR code is more than a link hidden in pixelated black and white – it can carry Wi-Fi credentials, contact details, an entire SEPA bank transfer or a calendar entry, all fully offline inside the image. The catch: format the content wrong, print it too small or pick the wrong error-correction level, and you get a code no phone reads reliably. This practical guide shows you, as of July 2026, which content types work, how to build them correctly and what really matters when printing.
What a QR code actually carries
A QR code (Quick Response) is a two-dimensional barcode that stores text – nothing more, nothing less. Everything you embed ends up as a character string. A smartphone reads that string and decides what to do based on its structure: if it starts with https://, the camera offers to open a website; if it starts with WIFI:, it suggests joining a network.
This recognition follows fixed conventions. There is no central authority that unlocks »new QR types« – Apple's and Google's operating systems simply interpret certain prefixes. That is exactly why you can create a working QR code for many everyday purposes yourself, without registration and without any data leaving your device. The only requirement is that you build the string exactly according to the right scheme.
The most important content types at a glance
In practice, a handful of formats cover almost every case. The simplest is the URL: the full address including https://. Similarly simple are plain text (a serial number, say) and the phone number with the prefix tel:, as in tel:+491701234567 – a scan offers to place the call directly.
For messages there is email as mailto:[email protected]?subject=Inquiry and SMS as sms:+491701234567. A geo location uses geo:52.5200,13.4050 and opens the maps app at that point. For a calendar entry you embed an iCalendar block (VEVENT) with start, end and title – the scan creates the event. More demanding are Wi-Fi access, contact card and SEPA transfer, which have their own clearly defined formats.
Sharing Wi-Fi access without dictating the password
The Wi-Fi QR code is one of the most useful codes in daily life – in a café, a holiday rental or for guests at home. Instead of reading out a long password, you hold your phone to the code and the connection is up. The format is a single line: WIFI:S:MyNetwork;T:WPA;P:SecretPassword;H:false;;
The fields mean: S is the network name (SSID), T the encryption type, P the password and H whether the network is hidden. For the type, as of 2026 it is almost always WPA – this value covers WPA, WPA2 and WPA3, and the device detects the variant itself. You only need WEP for routers from before roughly 2004, and for open networks you use nopass. If your password contains special characters such as ;, ,, : or a backslash, you must escape them with a leading backslash, or the format breaks. And keep in mind: anyone who photographs the printed code has lasting access – ideal for a guest network, risky in a public shop window.
vCard: the digital business card
A contact QR code saves typing out name, number and email. The usual format is the vCard, a standardized text block that starts with BEGIN:VCARD and ends with END:VCARD. Between them sit lines like FN:Anna Example for the name, TEL:+491701234567, EMAIL:[email protected] and ORG:Sample Company. A scan drops the contact straight into the address book.
The advantage over a link to a contact page: the vCard works offline and without a server. The downside: the more fields you add, the longer the string and the denser the code. For a business card it pays to stick to the essentials – name, one number, one email, maybe the company. Alternatively, a URL points to an online profile that stays updatable – more on that under static versus dynamic.
SEPA transfer as an EPC QR code
In Germany, Austria and several other SEPA countries you can provide a bank transfer as a QR code – known as the EPC QR code (in Germany also »Girocode«). Scanned with a banking app, it pre-fills the transfer form with payee, IBAN and amount, and you only confirm. That sharply reduces transposed digits, which is why many clubs, invoices and donation appeals use it.
Technically the code follows the EPC069-12 guideline of the European Payments Council (current edition version 3.0, 2022). The content is a text block with fields separated by line breaks: an identifier (BCD), version, character set, the function code SCT, optionally the BIC, the payee name, the IBAN, the amount in the format EUR12.34 and optionally a remittance reference. Two limits matter: the whole data set must not exceed 331 bytes in UTF-8, and the amount must use a dot and the EUR prefix – so EUR49.90, not 49.90 euros. Before generating, check the IBAN: a typo there makes the code worthless or misroutes money. Verifying the check digit up front takes seconds.
Static or dynamic? The decisive difference
For every type mentioned so far the code is static: the content sits directly in the pattern. Once printed it is unchangeable – if the URL or the Wi-Fi password changes, you need a new code. The upside: no service provider involved, permanent and free, and nobody tracks who scans it when.
A dynamic QR code instead holds only a short redirect URL to a provider's server, where the actual target is stored. That allows two things: you can change the target later without swapping the printed code, and the provider can count scans. The price: dependency on that service. If it shuts down, the code leads nowhere – and every scan runs through a third-party server. Rule of thumb: for lasting content like Wi-Fi, vCard or an EPC code, static is the more robust and privacy-friendly choice. Dynamic pays off when you change the target often or want to measure scans, such as on a campaign poster. For private use, static is almost always enough.
Error-correction levels L, M, Q, H – and when to use which
Every QR code contains redundancy so it stays readable even when part of it is damaged, dirty or covered. This error correction comes in four levels: L restores up to 7 percent of the data, M up to 15 percent, Q up to 25 percent and H up to 30 percent. The higher the level, the more damage the code tolerates – but the more space the redundancy costs, which makes the code denser for the same amount of data.
The choice depends on where it is used. For a clean screen or a high-quality document, M is a good standard – also the most common default. Q or H make sense when the code faces stress: on packaging, outdoors, on a scratch-prone label, or when you want to embed a logo. L saves the most space and is only advisable when a lot of data must fit a small code and the environment is clean. One misconception: a higher level does not make the code tamper-proof, only more robust against physical damage.
Data volume, module count and readability
The small squares in the code are called modules. Their count sets the »version«: version 1 measures 21 by 21 modules, each further version adds four modules per side, up to version 40 at 177 by 177 modules. The more data you embed, the higher the required version and the finer the grid. A short URL stays coarse and easy to read; a long vCard full of fields quickly becomes a dense pattern.
This is not academic nitpicking but the most common reason for unreadable codes. A dense pattern needs a good camera at close range or a larger print area so the modules stay cleanly separated. The consequence: keep the content as short as possible. Shorten long URLs, drop dispensable vCard fields. With URLs, clean encoding also helps: spaces, accented characters or special symbols must be percent-encoded (a space as %20), or the scan truncates the address or misreads it.
Printing tips: minimum size, quiet zone, contrast
A technically correct code can still fail at printing. Three rules of thumb decide it. First, the minimum size: the edge length should be about one tenth of the typical scan distance. Scanned from 30 centimeters, around 3 centimeters makes sense; for a poster read from two meters, correspondingly more. Below about 2 centimeters it becomes unreliable even up close, especially for dense codes.
Second, the quiet zone: a free, light margin of at least four module widths must remain around the code, or the camera cannot find its borders. Cramming the code edge-to-edge into a layout is a common mistake. Third, contrast: dark modules on a light background, ideally black on white. One detail often overlooked: do not invert the code. A light code on a dark background is not recognized by some apps at all – if the design demands a dark background, place the code inside a light field. Glossy foils can also let reflections wash out individual modules.
Embedding a logo and testing before printing
A logo in the center is popular and possible thanks to error correction: because the code carries redundancy, a small part can be covered. The rule: the logo should cover at most about 20 to 30 percent of the area, and you pick a higher level (Q or H) to make up for the covered modules. What matters is that the three large position markers in the corners stay clear – without them no scanner finds the code.
The most important step comes last and is skipped most often: test before printing. Scan the finished code with several devices – at least one iPhone and one Android phone – in poor light and from various distances. Check that the right URL, IBAN or Wi-Fi password actually arrives. A mistake that is still fixable on screen gets expensive across 500 printed flyers. For an EPC code, also start a test transfer and cancel it to confirm that payee and IBAN pre-fill correctly.
How tools on CalcSI help
You build the actual code fastest with the QR Code Generator: it turns your input – URL, Wi-Fi data, vCard or free text – straight into a code you can download and print, entirely client-side in the browser, with no content sent to a server. With Wi-Fi passwords and contact data, that is exactly the point.
If you want to embed a URL with parameters, spaces or accented characters, clean it up first with the URL Encoder/Decoder – so no broken address ends up in the code and gets truncated on scan. For an EPC code, a quick check of the payee IBAN pays off: the IBAN Calculator & Validator verifies the check digit before the amount goes into the code.
And if you want to store a payment amount for an invoice or membership fee including VAT in the EPC code, work out the correct gross or net figure beforehand with the VAT Calculator. All four tools run in the browser without sign-up – fitting the idea that a self-made QR code keeps its data where it originates.
Comments
Comments are powered by Disqus. Before they load, we need your consent — Disqus is a third-party service and sets its own cookies.