vCard QR Code: Create a Digital Business Card That Works Offline
A vCard QR code lets someone scan it with their phone and instantly save your name, phone number, email, and other contact details -- no typing, no app required. Unlike a URL-based QR code, a vCard works completely offline because all the contact data is encoded directly in the code itself.
What is a vCard?
vCard (also called VCF) is a standard file format for electronic business cards. Every phone on the planet understands it. When a phone encounters vCard data, it opens the native contacts app and offers to save the information. No third-party app, no internet connection, no account needed.
The format has been around since 1995 and is defined by RFC 6350. The version that works most reliably across devices is vCard 3.0 -- it is supported by iOS, Android, and every desktop email client.
The vCard Format
A vCard is plain text with a specific structure. Here is a minimal example:
BEGIN:VCARD
VERSION:3.0
N:Doe;Jane;;;
FN:Jane Doe
TEL;TYPE=CELL:+1-555-123-4567
EMAIL:[email protected]
END:VCARD
That is all you need. When encoded into a QR code, scanning it will prompt the user to add "Jane Doe" with her phone number and email to their contacts.
A More Complete Example
Here is a vCard with all the fields most people want on a business card:
BEGIN:VCARD
VERSION:3.0
N:Doe;Jane;;;
FN:Jane Doe
ORG:Acme Corp
TITLE:Product Manager
TEL;TYPE=WORK:+1-555-123-4567
TEL;TYPE=CELL:+1-555-987-6543
EMAIL;TYPE=WORK:[email protected]
URL:https://janedoe.com
ADR;TYPE=WORK:;;123 Main St;San Francisco;CA;94102;US
END:VCARD
A few things to note about the format:
- N is the structured name: Last;First;Middle;Prefix;Suffix. Semicolons are required even if fields are empty.
- FN is the display name -- what shows up in the contact list.
- TEL;TYPE= can be WORK, CELL, HOME, or FAX. You can have multiple phone numbers.
- ADR fields are separated by semicolons: PO Box;Extended;Street;City;State;Zip;Country.
- Every line must end with a line break. No trailing spaces.
How to Generate It
Go to qrmake.dev, paste your vCard text into the input field, and the QR code generates instantly. That is it. No account, no "vCard mode" to find -- the tool encodes whatever text you give it.
A few settings to pay attention to:
- Error correction: Q or H. Business cards get scratched and bent. Higher error correction makes the code more resilient. Use Q (25%) at minimum, H (30%) if you plan to overlay a logo.
- Format: SVG for print, PNG for digital. If this is going on a physical card, always export SVG. It scales to any size without pixelation. For email signatures or websites, PNG works fine.
- Size: at least 20mm for print. On a standard business card (89 x 51 mm), a 20-25mm QR code fits comfortably. See our size guide for specific pixel dimensions.
vCard vs URL: Which Should You Encode?
This is the most common question, and the answer depends on your priorities:
| Factor | vCard (direct encode) | URL (link to website) |
|---|---|---|
| Works offline | Yes | No |
| Updatable | No (data is baked in) | Yes (change the webpage) |
| QR code density | High (more data = more modules) | Low (short URL = few modules) |
| Saves to contacts | Automatic prompt | Only if page has a .vcf download |
| Privacy | No server involved | Depends on the website |
Use vCard when the recipient needs to add your contact info quickly and you want it to work without internet. Conferences, trade shows, and networking events are the classic use case.
Use a URL when you want a simpler QR code (fewer modules, easier to scan) and the ability to update what the code points to after printing. If your details change often, a URL to your personal site or LinkedIn is more practical.
Keep It Short
Every character in a vCard adds modules to the QR code. More modules means smaller dots at any given print size, which means harder scanning. Keep your vCard lean:
- Skip the photo. Embedding a photo in a vCard makes it enormous. Link to your website instead.
- Use one phone number if possible. Each TEL line adds bytes.
- Skip the address if it is not essential. That is often the longest field.
- Avoid NOTE fields with long text.
A typical minimal vCard (name + phone + email + title + company) is about 150-200 bytes. That produces a comfortable QR code even at higher error correction levels. A vCard with address, multiple phone numbers, and a URL might hit 350-400 bytes, which is still within limits but noticeably denser. Check our capacity reference to see exactly how much data each QR version can hold.
Common Mistakes
- Missing VERSION:3.0 line. Some phones will not parse the vCard without it. Always include it.
- Using VERSION:4.0. While technically newer, vCard 4.0 has inconsistent support on older Android devices. Stick with 3.0 for maximum compatibility.
- Windows-style line endings. Use plain newlines (\n), not \r\n. Most tools handle this fine, but some QR decoders choke on carriage returns.
- Special characters in names. Commas, semicolons, and backslashes in field values need to be escaped with a backslash. "O'Brien" is fine, but "Smith, Jr." should be "Smith\, Jr." in the N field.
- Testing only on your own phone. Always test on both iOS and Android before printing. What works on your iPhone might not parse correctly on a Samsung. See our testing guide for a proper checklist.