vcard qr code
How I set up a vCard QR code
A practical vCard QR code workflow: choose the contact fields, keep the payload small, test it on phones, and use a link when the contact will change.
Updated 2026-06-29
A vCard QR code puts contact details into a QR code so a phone can offer to save the contact. I use it for business cards, staff cards, conference badges, sales sheets, and service handouts.
The useful part is not cramming every possible field into the code. The useful part is giving the scanner enough contact data to save the person correctly.
Start with the fields people actually need
More fields make a denser code
vCard is defined by RFC 6350. The format supports names, organizations, phone numbers, email addresses, URLs, postal addresses, titles, notes, and more. That does not mean I should put all of them into a printed QR code.
My default set is name, organization, role, phone, email, and website. For a service business, I may add the branch address. For a conference badge, I usually skip addresses and notes because the scan needs to be fast.
The QR code gets denser as the text payload grows. DENSO WAVE's QR documentation explains the capacity limits and error correction levels. In practice, I remove low-value fields before I shrink the printed code.
Use the right version of vCard
Consistency beats clever formatting
I use vCard 3.0 or 4.0 depending on what the generator and target devices handle well. RFC 6350 defines vCard 4.0, and the IANA vCard registry documents registered properties and parameters.
For normal business cards, the exact version matters less than the test scan. If iPhone Contacts and Android Contacts both parse the fields the way I expect, the printed asset is ready. If one phone puts the company into notes or drops a phone label, I simplify the fields.
I do not rely on one camera app. Contact import behavior changes across phones and apps. A QR scanner can read the code correctly while the contact app still decides to show fields differently.
Static contact card or link
Use static only when the contact is stable
A static vCard QR code stores the contact text directly in the QR code. It works without a hosted page, and the scan can go straight to the contact save prompt. That is good for simple cards with stable details.
The weakness is obvious after print: if the phone number, email, title, or company changes, the QR code has to be reprinted. For staff with changing roles or agencies managing many clients, I usually prefer a dynamic QR code that points to a contact page or hosted vCard file.
A link-based contact QR code gives me room to update the contact later, add analytics, and show a branded page before download. The tradeoff is that the scan now depends on a URL and a hosted page.
Print size and quiet space
Business cards do not give much room
Business cards are the hardest common use case because the code competes with a logo, name, title, phone, email, and address. If the vCard payload is long, the QR modules get small quickly.
I leave clear quiet space around the code and avoid placing it near trim edges, folds, heavy texture, or low-contrast backgrounds. If the designer wants a tiny code in the corner, I ask for a printed proof before approving it.
I also keep the surrounding copy plain. Scan to save my contact is enough. The user should know whether the scan saves a contact, opens a profile, or downloads a file before they point the camera.
Test on real phones
A successful scan is not the whole test
For a vCard QR code, I test three things: the camera recognizes the code, the phone offers a sensible contact action, and the saved contact fields end up in the right places.
I check at least one iPhone and one Android phone. Then I save the contact and inspect the result. Phone labels, company fields, websites, and addresses are where small formatting problems usually show up.
If the saved contact looks messy, I do not add more explanation next to the QR code. I go back to the vCard data and simplify it.
What I keep after export
The source data matters more than the PNG
I save the source contact data, generated QR image, print artwork, and test notes together. If the card gets reprinted later, I want to know which contact details were encoded and which phones were tested.
For teams, I keep one row per person in a spreadsheet and generate cards from that source. That avoids the usual problem where one person's title is updated in the artwork but not in the QR code.
A vCard QR code should make saving a contact faster. If it creates a messy contact, points to old details, or only works on the designer's phone, it is not ready for print.