Free vCard QR Code Generator | Create a Trackable Digital Business Card
Paper business cards get lost, thrown away, or buried in a drawer within a week. A vCard QR code fixes that in one scan: anyone who points their phone camera at it gets your name, job title, company, phone number, email, and website saved directly into their native Contacts app — with zero manual typing and zero app downloads.
Most online generators get this wrong. They either output a standard URL code that forces the user through an external landing page, or they generate an unescaped static string that fails silently on modern phones. This guide breaks down how to build a properly formatted vCard QR code that works across iOS and Android, when to choose a dynamic routing link over a static file, and how to size it correctly for print.
Use the generator at [Toolkito's QR Code Generator](/image-tools/qr-code-generator) to build yours, then use this page as your technical reference.
What Is a vCard QR Code (And How Is It Different From a Link?)
A standard QR code opens a webpage in a browser. A vCard QR code encodes structured contact data directly into the matrix — or, for dynamic codes, behind a routing endpoint. When a phone camera scans it, the operating system recognizes the contact format and immediately opens a native "Add to Contacts" prompt instead of a browser tab.
Standard URL QR Code vs vCard QR Code:
Primary action: Standard opens a browser webpage; vCard prompts native "Save Contact" modal
Internet dependency: Standard requires connection to load page; Static vCard codes work fully offline
User friction: Standard requires scan, wait, and manual copy; vCard requires scan, tap Save Contact, done
Best use case: Standard for portfolios and menus; vCard for business cards, networking, and conferences
The vCard Standard: 3.0 vs 4.0, and Why the RFC Number Matters
Not all "contact QR codes" are built the same, and this is the part most tutorials get wrong: vCard 3.0 is defined by RFC 2426, not RFC 6350. RFC 6350 defines vCard 4.0, published later in 2011 to consolidate and modernize the format.
In practice, most QR code generators — and most legacy contact-reading apps — still default to vCard 3.0 (RFC 2426) because it has the widest backward compatibility across iOS, Android, and older feature-phone contact readers. vCard 4.0 adds newer fields (like KIND and GENDER) but isn't universally supported yet, so unless you specifically need a 4.0-only field, generating your code as 3.0 is the safer default.
What a Real vCard Payload Looks Like
Here is the actual raw text string a correctly formatted vCard QR code encodes:
- BEGIN:VCARD
- VERSION:3.0
- N:Doe;John;;;
- FN:John Doe
- ORG:Example Co
- TITLE:Marketing Manager
- TEL;TYPE=CELL,VOICE:+1234567890
- EMAIL;TYPE=WORK,INTERNET:john@example.com
- URL:https://example.com
- ADR;TYPE=WORK:;;123 Main St;Lahore;;;Pakistan
- END:VCARD
Every line in that block is a required or optional vCard field — N for structured name, FN for the display name, ORG and TITLE for company context, and so on. If your generator doesn't produce a clean, standards-compliant block like this, the code may still scan — but it can fail silently on certain phones.
Why Field Escaping Breaks Cheap Generators
If any of your details contain a comma or semicolon — a company name like "Acme, Inc." or a title with a comma in it — a plain text-to-QR tool will output a malformed string. When iOS or Android parsers hit an unescaped delimiter, they either truncate the entry or fail to show the "Save Contact" popup at all. A proper vCard generator automatically backslash-escapes these characters (Acme\, Inc.) so the data survives intact on every platform.
Static vs Dynamic vCard QR Codes: Which Should You Choose?
Data storage: Static encodes directly into QR matrix; Dynamic is hosted on a server with a short routing URL
Editable after printing: Static requires a new code; Dynamic updates anytime from a dashboard
Offline functionality: Static works 100% offline; Dynamic requires internet to resolve
Scan analytics: Static not possible; Dynamic tracks scan count, device type, and rough location
Best for: Static for personal cards you won't reissue; Dynamic for sales teams, company badges, trade shows
The rule of thumb: if the code is going on something that costs money to reprint — embossed business cards, acrylic signage, event lanyards — go dynamic. A title or phone number change becomes a dashboard edit instead of a reprint order.
Print Sizing and Visual Requirements
A vCard code carries more data than a simple URL, so it needs slightly more resolution to stay scannable at small sizes.
- Minimum size (static): 2.0 × 2.0 cm (0.8 × 0.8 in)
- Minimum size (dynamic): 1.5 × 1.5 cm — lower data density scans smaller
- Quiet zone margin: 4 modules of blank space on all sides (ISO/IEC 18004)
- Contrast ratio: At least 3:1 between code and background
- File format for print: Vector — SVG or EPS, never a scaled-up PNG
The quiet zone is the most commonly cropped element in tight designs — trimming that blank margin to fit a border prevents the scanner from locating the corner finder patterns at all, and the code stops working even though it looks fine to the eye.
Adding Your Logo Safely
A logo in the center makes the code feel like a branded asset instead of a generic square, but it also blocks real data underneath it. To do this without breaking the scan:
Set Error Correction Level H (High) — this adds up to 30% redundant recovery data, enough for the scanner to reconstruct the area your logo covers.
Never let the logo touch the three large corner squares — those finder patterns are what the scanner uses to detect and orient the whole code.
Keep the logo under ~20–25% of the total code area — beyond that, even Level H correction can't reliably compensate.
Troubleshooting Common vCard Scan Failures
Phone opens it as plain text instead of a contact: the generator likely omitted the BEGIN:VCARD / END:VCARD headers or the VERSION line. This is a generator problem, not a printing problem.
Camera won't focus or recognize the code at all: usually the print is under 2 × 2 cm, or the quiet zone margin got cropped out of the design.
Some fields are missing after saving on iPhone: check for unescaped commas or semicolons in the company name or address fields; this is the #1 cause of silently dropped data on iOS specifically.
How to Track Who's Scanning Your Digital Business Card
Static vCard codes can't be tracked — there's no server involved to log anything. If scan analytics matter to you (worth knowing at conferences or for sales team performance), you need a dynamic vCard QR code, which routes through a short link before delivering the contact card. That gives you scan counts, rough device and location data, and timestamps from your generator's dashboard.
Build your own free vCard QR code at [Toolkito's QR Code Generator](/image-tools/qr-code-generator) — export in PNG or SVG, choose static or dynamic, and add your logo without breaking the scan.