What is a vCard QR code?
A QR code containing a complete contact record — name, phone, email, company, website — in the vCard format, the same format behind the .vcf files your phone and email client already exchange. Scanning it prompts the phone to save the contact directly.
Everything is inside the code. There is no service in the middle, no landing page, and no network required: it works in a basement, on a plane, and in ten years’ time. That is the appeal, and the density problem below is the price.
What the vCard payload looks like
It is plain text, with one field per line:
BEGIN:VCARD
VERSION:3.0
N:Urbonas;Kiril;;;
FN:Kiril Urbonas
ORG:QRify
TEL;TYPE=CELL:+1234567890
EMAIL:hello@example.com
URL:https://qrify.to
END:VCARDThat example is already around 160 characters, and it is minimal — no address, no job title, no second phone number. Add a postal address and a role and you are past 250 without trying.
Note VERSION:3.0 rather than 4.0. Version 3.0 remains the most widely supported across phones and contact apps, and compatibility matters more than modernity for something printed on a card you cannot update.
Why vCard codes get dense fast
A QR code’s grid grows with the amount of data in it, and at a fixed printed size a bigger grid means smaller modules. vCards are verbose, so vCard codes are dense — which is why a contact code often fails at a size where a URL code is perfectly happy.
| What you encode | Characters | Grid | Module size at 2.5 cm |
|---|---|---|---|
| A short URL | ~25 | 25 × 25 | 1.0 mm — comfortable |
| Minimal vCard | ~160 | 49 × 49 | 0.51 mm — workable |
| Full vCard with address | ~280 | 61 × 61 | 0.41 mm — marginal |
| vCard with a photo | 1,000+ | 97 × 97+ | Unprintable at this size |
The fix is to trim rather than enlarge. Include name, one phone number, one email, company and website — and leave out the fields nobody uses: fax, second address, formatted birthdays, notes. The sizing guide covers where the module-size thresholds actually sit.
vCard or MECARD?
MECARD is a compact alternative that encodes the same essentials in far fewer characters. The same contact as above fits in roughly half the space:
MECARD:N:Urbonas,Kiril;TEL:+1234567890;EMAIL:hello@example.com;URL:https://qrify.to;;Shorter payload, sparser grid, larger modules at the same printed size. The trade-off is fields and support: MECARD covers the basics only, and while most phone cameras handle it, vCard is the more universally understood of the two.
A reasonable rule: use vCard by default; switch to MECARD when the code has to be small and the extra fields are not earning their place.
Making it work on a business card
A business card is the hardest realistic case — a dense payload printed small. Five things decide it:
- Size it at 2.5–3 cm (1–1.2 in), not the 2 cm you could get away with for a short URL. The denser grid needs the extra width.
- Trim the record before you enlarge the code. Every field you drop makes every module bigger.
- Keep error correction at M. Raising it adds data and shrinks the modules further, and a business card in a wallet is not a high-damage environment. See the error correction guide.
- Protect the quiet zone. Four empty modules on every side — easily lost when a designer tucks the code into a corner.
- Use an uncoated or matte finish if you can. Gloss lamination throws glare straight back at the camera, which is a real problem at this size.
See also the print guide for the rest of what decides whether a card-sized code scans on the first try.