A vCard QR code carries your contact details inside the code itself, rather than a link to them. That single design choice explains what it is good at and the two ways it goes wrong.
A vCard is the standard file format for a contact record — the .vcf file your phone produces when you share someone from your address book. Version 4.0 is defined in RFC 6350, which replaced the earlier vCard 3.0 specification in RFC 2426. Both versions are still in circulation, which is why every card carries a VERSION line saying which one it follows.
A vCard QR code is that file encoded directly into the squares. Nothing is fetched and no server is involved: the whole contact record is physically present in the printed code. Scan it offline, in a basement, in a country with no signal, and the details are still there.
The specification asks for remarkably little. RFC 6350 requires only BEGIN:VCARD, a VERSION property immediately after it, an FN property holding the formatted name, and END:VCARD. Your phone number, email, employer and website are all optional additions — and each one makes the payload longer.
BEGIN:VCARD. It declares which specification the card follows — 3.0 for RFC 2426, 4.0 for RFC 6350.| What you change | What happens inside the code | What you notice |
|---|---|---|
| You add more properties | More characters to encode, so the code has to move up a version to fit them | The grid becomes finer at the same printed width |
| The version goes up | Version 1 is 21×21 modules and every higher version adds 4 more modules per side, up to 177×177 at version 40 | Each square shrinks unless you print the code larger |
| You raise the error correction level | Reed-Solomon recovery data is added on top of your payload, so there is more to store — level M restores about 15% of the code, level Q about 25% | The same trade again: more modules, or a bigger print |
| Your phone number changes | Nothing at all. The old details are already encoded in every code you printed | Every card you have handed out is now quietly wrong |
Sources, verified August 2026: vCard requirements from RFC 6350 and RFC 2426; QR version, module and error-correction behaviour from Denso Wave, the originator of the QR code.
The first three rows of that table are a printing problem, and printing problems have printing solutions: shorten the record, print it bigger, test before you order. The fourth row does not.
A static vCard QR code is a photograph of your details on the day you made it. Change your number, your email, your company or your role, and every code already in the world keeps handing out the old ones. The code still scans perfectly. It is simply wrong, and there is no way to tell from looking at it — not for you, and not for the person who scanned it last month and saved a number that no longer rings.
If your details are genuinely fixed, none of this matters and a static vCard QR code is a clean, offline-proof way to hand them over. If they are not fixed — and for most self-employed people and small businesses they are not — the fix is to encode a short link to a card you control, so the code stays the same and the details behind it move.
That is what a CompanyCard QR code does. The code and link are permanent, the details behind them are editable, and what the person scanning gets is a card with a save button rather than a raw contact file. The free plan covers this: one digital business card, a QR code and sharing link, your profile, links and socials, an Apple and Google Wallet pass, and unlimited edits — free forever, no credit card. Free cards carry a small CompanyCard credit; removing it is part of Pro.
It is a QR code with a contact record encoded directly inside it, in the vCard format — the same .vcf format your phone uses when you share a contact. Because the details are in the code itself rather than behind a link, it works with no internet connection.
At minimum, the four things the specification requires: BEGIN:VCARD, a VERSION line, an FN property with your formatted name, and END:VCARD. Everything else — telephone, email, organisation, job title, website — is optional, and each addition makes the encoded payload longer.
vCard 4.0 is the current specification, defined in RFC 6350, which replaced the 3.0 specification in RFC 2426. Both are still in use, and the VERSION property in every card declares which one it follows, so check what your generator writes if compatibility with an older system matters to you.
Usually because there is too much in it for the size you printed. More encoded characters push the code up to a higher version, and a version 40 code packs 177 modules across the same width where a version 1 code packs 21. Remove optional fields, or print the code larger, then test it at the distance people will actually scan from.
No. In a static vCard QR code the details are encoded in the pattern itself, so changing them means generating a new code and reprinting everything that carried the old one. To keep one code and edit the details behind it, encode a link to a card you control instead.
Yes. The CompanyCard free plan includes one digital business card, a QR code and sharing link, your profile, links and socials, an Apple and Google Wallet pass, and unlimited edits — free forever, no credit card. Free cards carry a small CompanyCard credit; removing it is part of Pro.
Free forever, no credit card, and the link behind your QR never changes.