I still have a shoebox of business cards from conferences I went to years ago. I kept almost none of the contacts, because typing a card into my phone was a chore I always meant to do later and rarely did. The people I did save were the ones who showed me a QR code on their phone or their badge: I scanned it, tapped save, and they were in my address book before the handshake was over. When I built the vCard QR code generator for Toolz, that was the experience I was chasing, and this guide is what I learned making a contact code that saves cleanly on the first scan.
TL;DR: A vCard QR code encodes your contact details, name, phone, email, company, address, in the vCard format that phones read natively. A scan offers to save you straight into someone's address book, fully filled out. This tool builds the vCard 3.0 record, escapes the special characters correctly, and encodes it in your browser, so nothing is uploaded. Download SVG for print or PNG for an email signature, and it never expires.
I build products on Laravel and React, and I like tools that replace an annoying manual step with something instant and correct. A vCard QR code does that for the oldest networking ritual there is. Once you see how the format works, you will understand why some codes save perfectly and others drop half your details, and you will know how to make yours land every time.
What is a vCard QR code?
A vCard QR code is a QR code whose content is a vCard, the standard file format for an electronic business card, specified as RFC 6350. Instead of pointing at a website, the code carries a small block of text describing a person: their name, phone numbers, email, organisation, job title, website, and address. When a phone camera reads it, the operating system recognises the vCard format and offers to create a new contact with all of those fields already filled in.
The format itself is old and extremely well supported. vCard has been a standard since the mid-1990s and is what Apple Contacts, Google Contacts, and Microsoft Outlook all import when you open a .vcf file. Encoding a vCard into a QR code just puts that same record into a form a camera can pick up off a printed card, a badge, a shop window, or a slide. Because the support is built into the phone, the person scanning does not need any special app.
The value is the same as a WiFi code but for people instead of networks: it removes the typing. A business card exchange normally ends with one person squinting at the other's card and copying fields into their phone, dropping a digit or misspelling a surname along the way. A scan transfers every field exactly, so the contact that lands in the address book is the contact you meant to share. If you have ever generated a clean URL slug with a slug generator and appreciated not having to sanitise it by hand, this is the same relief applied to contact details.
How does the vCard format actually work?
Inside the code is a plain text record that looks like this:
BEGIN:VCARD
VERSION:3.0
N:Rivera;Jordan;;;
FN:Jordan Rivera
ORG:Toolz.dev
TITLE:Product Engineer
TEL;TYPE=CELL:+1 555 0142
EMAIL;TYPE=INTERNET:[email protected]
URL:https://toolz.dev
END:VCARD
Every record starts with BEGIN:VCARD and a VERSION line, and ends with END:VCARD. Each line in between is a property: N and FN for the name, TEL for a phone number, EMAIL, ORG, TITLE, URL, and ADR for an address. The tool emits vCard 3.0 specifically, because it is the version with the widest, most reliable support across phones. Newer 4.0 exists, but 3.0 is the safe choice when you cannot control which phone will scan the code.
Two properties deserve a closer look because they trip people up. The N property is structured: its components are family name, given name, additional names, prefix, and suffix, separated by semicolons, so N:Rivera;Jordan;;; means the surname is Rivera and the first name is Jordan. The FN property is the "formatted name", the single display string the phone shows, which the tool builds as "Jordan Rivera". Getting the N order wrong is a classic bug that makes contacts save with the first and last name swapped, so the vCard QR code generator always writes them in the correct family-then-given order.
The other subtlety is escaping. In vCard 3.0, the characters backslash, comma, semicolon, and newline are special inside a text value, so a company name like "Rivera; Chen & Co" has to have its semicolon escaped or it will be misread as a field boundary. The tool escapes these characters for you, which means you can type a name or address exactly as it should appear and trust the encoded record to preserve it. This is the kind of format-level correctness that the broader QR code generator applies to its vCard preset, pulled out here into a focused card-building tool.
What happens after the record is built?
Once the vCard text exists, it is encoded as a QR matrix following ISO/IEC 18004, the QR Code standard. The record is converted to UTF-8 bytes, wrapped in Reed-Solomon error correction so it survives a scuff or a fold, laid out into modules, and masked for reliable scanning. A vCard is longer than a URL, often a few hundred bytes once you include an address, so the resulting code climbs to a higher QR version with more modules than a simple link would need.
That density is the main thing to keep an eye on. Every field you add makes the code larger and finer, and a very dense code is harder to scan from a distance or at a small print size. The practical advice, which I come back to below, is to include the fields that matter and leave the rest blank rather than filling in every box for the sake of it. A lean vCard with a name, a phone, an email, and a company scans faster and prints smaller than one padded with every optional field.
Because the details live inside the image, the code is static and private. There is no landing page in between, no account, and no scan tracking. Some commercial "digital business card" services route the scan through their servers so they can count views or let you edit details later, which is a real feature but also means the code stops working if you stop paying. This tool makes the plain, permanent kind: your details are in the image and nowhere else, which is the privacy posture I argued for in the data privacy guide.
How do I create a vCard QR code?
The tool keeps it to four steps.
Step 1: Fill in your contact details
Enter your name, phone, email, company, job title, website, and address. You do not need every field. A name plus one way to reach you, a phone or an email, is enough to produce a valid, useful vCard. Fill in what you want to share and leave the rest empty.
Step 2: Watch the code and keep it lean
The QR code redraws instantly as you type, and the preview shows the byte count so you can see how much you are packing in. If the code is getting dense, ask whether every field earns its place. A conference badge might only need name, company, and email; a full business card might add phone and website. Trimming optional fields keeps the code easy to scan.
Step 3: Set error correction and colours
Raise error correction to Q or H if the card will be printed small or you want to place a logo in the centre, and choose foreground and background colours that fit your brand while keeping strong contrast. High contrast, dark modules on a light background, is what makes a code reliably scannable.
Step 4: Download and share
Export a vector SVG for anything printed, business cards, badges, signage, because vectors stay sharp at any size, or a PNG for an email signature or a slide. Scan the result with a couple of different phones before you commit to a print run.
Which fields should I include?
Start with the fields that make the contact findable and reachable: a name and at least one of phone or email. Add company and job title if the context is professional, since those help the person remember who you are when they scroll their contacts weeks later. Add a website if it is genuinely useful, and an address only if people actually need to visit you, which is more relevant for a shop or an office than for an individual.
The reason to be selective is density, which I mentioned above. A vCard grows with every field, and past a certain size the code becomes fiddly to scan. There is also a human factor: a contact card crammed with every possible field is noisier to read than one with three or four clear pieces of information. I tend to include name, company, mobile, and email as the core, and add the rest only when the situation calls for it. Think of it the way you would think about a real card, where you print what matters and leave the clutter off.
What is the difference between a vCard and a business card QR code?
In practice, usually nothing. "Business card QR code" and "digital business card" are marketing names for the same underlying thing: a QR code that encodes contact details. When the details are encoded directly, as they are here, the QR code is a vCard QR code. The label people use depends on the audience, but the mechanism is the vCard format doing the work.
The distinction that does matter is direct versus dynamic. A direct vCard code, the kind this tool makes, contains the details themselves, saves instantly on scan, works offline, and never expires. A dynamic "digital business card" code contains a link to a hosted profile page, which lets the provider track scans and let you edit your details after printing, at the cost of depending on their service staying online and, often, a subscription. Both have their place. If you want something free, permanent, and private that saves straight to the phone, the direct vCard is the one you want.
Is it safe to make a vCard QR code with my details?
With a client-side tool, yes. The vCard is assembled and encoded in your browser using JavaScript, so your phone number, email, and address are turned into a QR matrix on your own device and never transmitted. You can verify this in your browser network tab, where generating the code produces no request, and the tool continues to work offline once loaded.
The sensible caution is the same as any business card: whatever you put on it can be read by anyone who scans it. That is the intent for a card you hand out, but it is a reason to think about which details you include on a code that will be displayed in public. For a storefront or a booth, a work phone, a work email, and a company name are usually all you want; your home address probably is not. Sharing the right amount is a judgement call, and keeping that judgement with you rather than a third-party service is part of the appeal, a theme that runs through the developer productivity guide too.
Why does a vCard QR code sometimes fail to scan or save?
When a contact code misbehaves, the causes cluster into a few groups. The code is too dense because too many fields were packed into it, so a phone struggles to resolve all the modules, especially at small sizes. The print contrast is poor, or the quiet zone around the code is missing, so the camera cannot find the pattern. A logo placed over the centre covers too many modules and breaks the data. Or, more rarely, a field contained an unescaped special character that corrupted the record, which the tool's escaping is designed to prevent.
Work through them in order. Trim optional fields to shrink the code. Keep the dark modules genuinely dark on a light background and leave at least a four-module margin. If you are using a logo, generate at error correction level H and keep the logo under about a quarter of the code area, centred. And always test the printed size with more than one phone, because a code that scans on your screen at full brightness can behave differently on a matte business card under office lighting. If you also share network access at your location, the companion WiFi QR code generator applies the same client-side approach to that.
Frequently asked questions
What is a vCard QR code?
A vCard QR code is a QR code that stores contact details in the vCard format. When a phone scans it, the device offers to save that person as a new contact, filling in the name, phone, email, and other fields automatically instead of making someone type them.
How do I make a QR code for my contact details?
Enter your name, phone, email, and any other details you want to share. The tool builds a vCard 3.0 record and encodes it as a scannable QR code you can download as SVG or PNG and add to a business card, badge, or email signature.
How does someone save my contact by scanning the code?
They open the camera app and point it at the code. A prompt appears offering to add the contact; tapping it opens a pre-filled new-contact screen they can save. Most modern iPhones and Android phones do this with the built-in camera, with no extra app needed.
What is the difference between a vCard and a business card QR code?
They are usually the same thing. "Business card QR code" is the marketing name; the underlying data is a vCard record. This tool encodes the contact directly, so there is no landing page in between and the details save straight to the phone.
Which fields should I include in a vCard QR code?
Include a name and at least one contact method, phone or email. Add company, title, website, and address if they are relevant. Every extra field makes the code denser, so leave out anything that does not need to be there to keep the code easy to scan.
Does the vCard QR code expire or track scans?
No. It is a static QR code: your details are encoded into the image itself, so there is no short link to expire and nothing counting scans. Generators that require a signup often produce dynamic codes routed through their servers, but this one does not.
Can I put my logo on a vCard QR code?
Yes, if you generate at error correction level H and keep the logo under about a quarter of the code area, centred. Export the SVG, place the logo on top in a design tool, then test the result with a few phones before printing.
Why does my vCard QR code fail to scan or save?
Common causes are too much data in one code, low print contrast, or an oversized logo covering key modules. Trim optional fields, keep dark modules genuinely dark with a clear quiet zone, and test the printed size before producing copies.



