vcard qr code format
The vCard QR code format I use
A practical vCard QR code format guide: the fields I include, the fields I skip, and the print checks I run before using it.
Updated 2026-06-24
A vCard QR code stores contact-card text in the QR payload. When a phone recognizes it, the user can save the contact instead of typing a name, number, email, and website.
I keep the vCard small. The more fields I add, the denser the QR code gets, and the more likely the printed result needs extra size and testing.
Start with the required fields
A contact card needs a clear name
RFC 6350 defines vCard 4.0 as a format for representing information about people and other entities. For a simple business-card QR code, I usually care about a small subset: formatted name, organization, title, phone, email, website, and sometimes address.
- BEGIN:VCARD
- VERSION:4.0
- FN:Jane Tan
- ORG:Example Dental
- TITLE:Practice Manager
- TEL;TYPE=work,voice:+1-555-0100
- EMAIL:jane@example.com
- URL:https://example.com
- END:VCARD
The exact values matter more than the number of fields. A clean phone number and useful website beat a bloated card full of stale social links.
Use fewer fields than you want
Every extra line becomes QR data
DENSO WAVE documents QR Code versions as increasing in size as data capacity increases. A short vCard can print smaller and scan more reliably than a long one with every possible detail.
I include the fields someone will use after saving the contact. For most business cards, that means name, company, role, phone, email, and website. If the business has a physical location that matters, I add the address. If it does not, I leave it out.
I do not add a portrait, logo, long note, or multiple alternate numbers unless there is a strong reason. Those can make the QR code dense without helping the person who scanned it.
Keep formatting predictable
Phones are the real parser
IANA maintains a vCard elements registry that points the common properties back to RFC 6350. That is useful when deciding whether a field belongs in the card, but the final test is still a phone camera and contacts app.
- Use one formatted name the customer will recognize.
- Use an international phone number when possible.
- Use a real email address, not a role inbox that nobody checks.
- Use the canonical website URL.
- Avoid internal labels or CRM-only notes.
If I need different contacts for sales, support, and billing, I make separate QR codes. One overloaded contact card is harder to save and harder to maintain.
Test before printing
Saving the contact is the workflow
A vCard QR code has to do more than scan. It has to open the contact preview with the right fields in the right places. I test on iPhone and Android when the print run matters.
I also scan from the actual business-card size. The QR code may need more space than a URL code because the payload is longer. The quiet zone still matters, so I keep the code away from card edges, rounded corners, and heavy artwork.
After that, I save the generated vCard text with the print file. When someone changes jobs, phone numbers, or domains, I can update the source instead of guessing what the old QR code contained.