QR Code Free Forever QR Code Free Forever Create QR codes. 100% free. Forever. Make a QR code

Home · Guides

The vCard QR Code Format

A contact QR code is a whole vCard file compressed into a printed square. That is why it works offline, and also why it is the payload most likely to produce a code nobody can scan.

The template

This is a complete, working vCard 3.0. Everything a phone will reliably import is here; anything not on this list is a gamble.

BEGIN:VCARD
VERSION:3.0
N:Llovet;Manuel;;;
FN:Manuel Llovet
ORG:Northgate Design
TITLE:Studio Director
TEL;TYPE=CELL:+34600123456
TEL;TYPE=WORK,VOICE:+34910123456
EMAIL;TYPE=INTERNET:manuel@example.com
URL:https://example.com
ADR;TYPE=WORK:;;Carrer Gran 14;Barcelona;;08001;Spain
END:VCARD

Version 3.0, not 4.0. Version 4 is the newer standard and is worse supported by the contact importers built into phones; 3.0 is what every device has handled for over a decade. This is one of the rare cases where the older spec is the right answer.

Field by field

FieldRequiredFormatNotes
NYesSurname;Given;Middle;Prefix;SuffixFive parts, semicolon separated, trailing ones empty
FNYesFree textThe display name. Put it the way people read it
ORGNoCompany;DepartmentDepartment is optional
TITLENoFree textJob title
TELNoTYPE=CELL / WORK / HOMERepeatable. Always use +country format
EMAILNoTYPE=INTERNETRepeatable
URLNoFull URL with schemeRepeatable
ADRNo7 parts, see belowTwo leading empty parts are normal
NOTENoFree textCosts a lot of bytes

The ADR line catches everyone. It has seven semicolon-separated components in a fixed order:

ADR;TYPE=WORK:PO box;extended;street;city;region;postcode;country

The first two are almost always empty, which is why a correct address line starts with two semicolons. Leaving them out shifts every other component one place to the left, and the phone imports the street as a PO box.

Always write phone numbers in full international form — +34600123456, no spaces, no parentheses. A number saved without a country code will fail the moment the contact travels, and a QR code on a business card is precisely a contact that travels.

Escaping, and the line that breaks it

Three characters are structural inside a vCard value and must be escaped with a backslash when they appear in your data:

\   ,   ;

So a company called Smith, Jones & Co. is written ORG:Smith\, Jones & Co. A line break inside a NOTE is written as the two characters \n, not an actual newline.

The bigger structural rule: every property must be on its own line. The vCard specification wants CRLF line endings, and while nearly all phone importers accept a plain newline, none of them accept two properties run together on one line. If a contact code imports a name and nothing else, this is almost always why.

MECARD, the compact alternative

MECARD is a much terser format that predates the general use of vCard in QR codes:

MECARD:N:Llovet,Manuel;TEL:+34600123456;EMAIL:manuel@example.com;URL:https://example.com;;

Note the differences: the name is Surname,Given with a comma rather than a semicolon, fields are separated by semicolons, and the record ends with two semicolons, the same convention as the WiFi format.

vCard 3.0MECARD
Typical size250–400 bytes80–150 bytes
Resulting symbolVersion 10–14Version 6–8
iPhone supportReliableGenerally works, less predictable
Android supportReliableReliable
Fields availableFull contact recordName, phone, email, URL, address, birthday

MECARD produces a dramatically smaller and therefore more scannable code. The trade is that vCard is the one every importer has handled for years. For a business card that has to work for everyone, vCard 3.0 with only the fields you need is the safer choice; for an asset tag or a badge where size is critical and the audience is known, MECARD is worth considering.

The size problem, and what to do about it

The template above is about 300 bytes. At error-correction level M that needs a version 13 symbol — 69×69 modules. Printed at 20 mm on a business card, each module is 0.29 mm, which is below the 0.5 mm floor our resolution tests found for reliable phone scanning.

In other words: a full vCard on a standard business card is usually too dense to scan. This is the most common failure in the whole category, and it is invisible until the cards are printed.

Three ways out, in order of how well they work:

And one thing never to do: embed a photograph. A PHOTO property with base64 image data will push the symbol to version 30 or beyond, producing a dense grey square that no phone will ever read.

QR codes for business cards works through the layout side of this.

Written by Manuel Llovet, who builds and maintains QR Code Free Forever. Published 2026-08-31, last checked 2026-09-08. Figures and measurements on this page were produced for this site; the method is described in each caption.

Make this code now

Free, no sign-up, and it never expires. Everything runs in your browser.

Open the generator

Keep reading