Paper business cards have a well documented fate: most are thrown away within a week. A QR code that drops your details straight into someone’s phone skips the pocket, the desk drawer and the bin entirely.
The format that does this is called vCard, and it has been a published standard since 1996. It is not an app, a service or a subscription. It is a block of plain text with a specific shape, and once you understand the shape you can write one in a text editor.
What a vCard actually looks like
BEGIN:VCARD
VERSION:3.0
N:Okafor;Amara;;;
FN:Amara Okafor
ORG:Meridian Design
TITLE:Studio Director
TEL;TYPE=CELL:+442071234567
EMAIL:amara@example.com
URL:https://example.com
END:VCARD
Encode that entire block, line breaks included, as a QR code. A phone camera recognises the opening line and offers to create a contact rather than opening a browser.
Two lines confuse everyone at first. N: is the structured name, in the fixed order surname, given name, middle, prefix, suffix, separated by semicolons. FN: is the formatted name, the version a human reads. You need both. Some Android builds display the structured field and ignore the formatted one; iOS tends to do the reverse. Omit one and your card looks broken on a good share of the phones that scan it.
Use version 3.0 rather than 4.0. It is older, but it is the version phones parse most reliably, and a contact card is not the place to be adventurous.
The density problem nobody warns you about
QR codes grow as you add data, and not gently. A code has 40 possible sizes, called versions, from 21×21 modules up to 177×177. Each step adds four modules per side, and every added module makes the printed squares smaller at a fixed physical size.
The card above is around 200 characters. Add a postal address, a second phone number, a fax line nobody has used since 2009 and a note field, and you can push past 400 characters and climb several versions. On a business card printed at 2cm square, those modules become finer than many office printers can hold cleanly, and the code stops scanning reliably in poor light.
The discipline is simple: include what someone needs in order to contact you, and nothing else. Name, one number, one email, one URL. Everything else belongs on the site the URL points at.
MECARD, the compact alternative
MECARD:N:Okafor,Amara;TEL:+442071234567;EMAIL:amara@example.com;;
MECARD encodes roughly the same information in about half the characters, which can drop you several versions and noticeably coarsen the modules. It was designed for Japanese feature phones and is still widely supported.
The trade-off is that it carries fewer fields, and support is good rather than universal. If the code has to work on absolutely anything, use vCard and keep it short. If you are fighting for physical space on a small print, MECARD is worth testing.
The link-instead approach
There is a third option: encode a plain web address pointing at a page on your own site, which hosts a downloadable contact file.
The code stays small and coarse, so it scans from further away and survives worse printing. You can change your details without reprinting anything. You can also see how many people scanned it, because it is an ordinary page view.
The cost is a dependency. The code now works only while that page exists. Host it on a domain you own and you control that risk; host it on a free service and you have rented your business card to a company that may not outlast it. Our URL QR code generator produces this variety, and because it runs in your browser the address is never sent anywhere.
For a conference badge, the direct vCard wins, because it works with no signal in a basement exhibition hall. For a printed card you will hand out for two years, the hosted link wins, because you will change jobs.
Formatting details that matter
- Phone numbers in full international form, with the plus and country code. A card saved by someone abroad is useless with a local number.
- Escape commas and semicolons inside values with a backslash. An unescaped semicolon in a company name silently splits the field.
- Keep to plain ASCII where you can. Accented characters work, but need the right encoding, and a mis-declared character set turns a name into unreadable symbols on the recipient’s phone.
- Use CRLF line endings. The specification requires them. Most readers tolerate plain newlines, but the strict ones do not.
- Keep the terminator on its own line. Some parsers will not accept the file without it.
Test it before you print a thousand
Scan with both an iPhone and an Android phone. Save the contact. Then open it and read every field, because a malformed vCard usually produces a contact that saves quite happily with your surname sitting in the company box.
Print one at final size on the final stock and scan that, in ordinary indoor light, at arm’s length. A code that works on a bright monitor at 300% zoom tells you very little about a matte card in a dim bar, which is where business cards are actually exchanged.
And put a line of text beside it. “Scan to save my details” markedly increases the number of people who try, because a bare square on a card reads as decoration.
Join the discussion