A vCard is just a text format for a contact. Put that text in a QR code and the camera app offers to save it. No form, no “tap the phone number and hope it is a link”, no dependence on your website staying up. The card in their pocket still works if you redesign the site next March. That is the argument for encoding the contact itself instead of a URL, and it is a good argument on a business card specifically.
It is a weaker argument on a poster. Posters should open a page. Cards should leave a contact. Different jobs.
Fields worth the ink
Keep it to what you would want saved if you were the person receiving the card.
- Name. The formatted name, and the structured name if you are writing the file by hand. Phones file you under the right surname when
Nis present. - One mobile number you actually answer. A switchboard plus a direct line plus a fax is 2004.
- One email.
- Company and job title, if they help the other person remember who you were on Thursday.
- One URL, the shortest page that explains you. Optional. If the URL is long, it costs modules you may not have.
Leave out the photo, the street address of your house, your personal mobile if this is a work card, and the three social profiles. Anything in the code can be saved into a stranger’s address book and exported from there later. Print the office address in normal type if people need it. Do not encode it “because there was a field”.
A vCard 3.0 that phones accept
Version 3.0 is the one to use. Version 4 exists and support is patchier. A minimal card looks like this:
BEGIN:VCARD VERSION:3.0 N:Okoye;Amaka;;; FN:Amaka Okoye ORG:North Wind Studio TITLE:Producer TEL;TYPE=CELL:+447700900123 EMAIL:amaka@northwind.example URL:https://northwind.example END:VCARD
Use the full international number. A local 07700… saves badly into a phone that is roaming or set to another country. The N field is surname, then given name. FN is what gets shown. Get those the wrong way round and you become “Okoye” in their recent calls, which is fine, or “Amaka” filed as the surname, which is how you miss the email they swear they sent.
The generator’s vCard form on this site builds a compatible payload from the name, phone, email, company, and URL fields. You do not need to hand-write the record unless you want a title line or a second number. If you do hand-write it, keep the labels in capitals and do not let a design tool wrap the lines for you.
The line-ending gotcha
The spec wants CRLF between lines. A lot of phones are relaxed and accept LF. A few imports smash the whole card into the note field when the endings are weird, especially after the file has been through a CMS that “cleaned” the whitespace. If a test scan saves a contact named BEGIN:VCARD VERSION:3.0…, fix the line endings before you print 500 cards. Generating from the form avoids the issue.
Do not put a photo in the code
A photo in a vCard is base64 text. It dwarfs the rest of the contact and pushes the symbol up several versions. On an 85 × 55 mm card you do not have the room. The scan gets fiddly, people try twice, and they type the number instead, which was the failure you were trying to avoid.
Same objection, smaller: a logo in the middle of an already dense vCard. If you want a mark, print it beside the code. Error correction and logos are covered in the design notes. On a contact code, spend the correction budget on a scuffed card in a bag, not on branding the modules.
Name, role, and number should be readable without a phone. The code is the shortcut. It is not the only copy of your identity, and it should not be the front of the card at 40 mm with the type wrapped around it.
Layout and size
Back of the card, at least 20 mm including the quiet zone, more like 25 mm if the URL is long or you stepped error correction up to Q. Leave real margin. Do not bleed the code off the trim. A guillotine that clips a finder square ruins the stack.
Matte laminate scans more reliably than gloss under the lights at a conference. If you must gloss, add a millimetre or two and proof it under those lights, not under your desk lamp. The print size guide has the module-size check if the code looks nervously fine.
Caption it. “Save my contact” is enough. “Scan me” is what every other card says, and it does not tell anyone they are about to get a contact rather than a link to a portfolio.
Test the save, not just the scan
Scan with an iPhone and an Android. Save the contact. Open it. Check the surname, the +44 (or whichever country code you used), and that the email is a mailto rather than a line in the notes. Delete it and scan again after the card has been in a pocket. Then hand it to someone else and watch. If they hesitate, the caption or the size is wrong. If the contact comes in with your job title in the company field, the payload is wrong. Fix the file, not the paper stock.
One more limit, so you are not surprised later. A vCard code is static. New job, new number, old cards in circulation. They will keep saving the old details. That is what paper does. Collect the cards if you can, and do not encode a personal number you expect to abandon.
Questions before you go to print
Is a vCard QR code better than a link to my website?
On a business card, yes, if the goal is to be saved as a contact. The phone stores the details from the symbol, so it does not need your site to be up. Use a normal URL when you want them to see a portfolio, a deck, or a booking page.
Should I embed a photo in the vCard?
No. It inflates the code and makes a small card harder to scan. The contact can live without a headshot.
What size QR code fits on a business card?
20 mm minimum, quiet zone included, preferably nearer 25 mm. Keep the payload short. Print the name in type as well, in case the scan is awkward in a bad light.
Will both iPhone and Android offer to save the contact?
Current camera apps do, for a clean vCard 3.0. Proof both anyway. A broken N field or odd line endings is the usual reason one of them saves a mess.
Encode the contact, not the homepage.
Use the vCard fields, skip the portrait, and export an SVG that still has its margin when the printer places it.
Create a vCard QR code