QR code generator · Contact vCard QR code generator: scan to save a contact
Nobody wants to type a phone number and email off a paper card, least of all at a trade show. Encode your details as a vCard QR code on the back of your card or on your badge and people save you to their contacts with one scan. Put a UTM-tagged link in the website field to see how many site visits your cards bring.
- vCard 3.0 and 4.0
- PNG and SVG
- Made in your browser
Make a vCard QR code
Fill in at least a name or a company. International phone format (starting with +) dials correctly from any country.
Content type
The page the code opens. https:// is added if you leave it out.
Where it is placed: flyer, poster, package, booth.
The kind of entry point. qr is a common choice for codes.
Campaign name with a date or edition, e.g. spring_sale_2026.
Tells placements or versions apart within one campaign: a store, a stand number.
Mostly for search ads; usually empty on a QR code.
Shown as-is when scanned. Any language, emoji and line breaks work.
Exactly as set on the router: case and spaces matter.
Used only in your browser. It is not uploaded and never goes into the share link.
If the router says WPA2 or WPA3, pick the first option.
3.0 is the widely supported one; 4.0 is the newer RFC 6350 version.
International format works everywhere, e.g. +1 415 555 0100.
Use a URL with UTM tags to see how many visits the card brings.
Sets the country code for the WhatsApp number.
Spaces, dashes and a leading 0 are fine; it is cleaned into international format.
Appears in the chat box after the scan; the customer can edit it before sending.
Preview
1024 × 1024 px · version 12, 65 × 65 modules · level M · about 8.7 cm at 300 dpi
BEGIN:VCARD
VERSION:3.0
N:Smith;Jane;;;
FN:Jane Smith
ORG:Example\, Inc.
TITLE:Head of Growth
TEL;TYPE=CELL:+1 415 555 0100
EMAIL;TYPE=INTERNET:jane@example.com
URL:https://www.example.com
ADR;TYPE=WORK:;;100 Market St;San Francisco;CA;94105;USA
END:VCARDWhich channel a scan lands in
Checks
- OKEncoded: version 12 (65 × 65 modules), level M, 265 bytes of content.
- CheckThis needs version 12 (65 × 65 modules), which is dense. Print it larger or shorten the content.
- OKContrast 21.0:1.
Style
The SVG is vector and has no fixed size.
Higher survives more damage and leaves room for a logo, but the code gets denser.
The standard asks for at least 4 modules.
PNG, JPG, WebP or SVG up to 2 MB, read on this device only. Adding a logo switches to level H.
Batch (optional)
One placement per line. You get a set of codes with the same URL and UTM tags, differing only in utm_content. Write a name to use the URL above, or "name, URL" to use that line's URL. Up to 200 lines; the ZIP holds a PNG and an SVG per code plus an index.csv.
One text code per line, up to 200 lines. The ZIP holds a PNG and an SVG per code plus an index.csv.
Share these inputs: the values go after the # in the link, so they never reach a server.
https://tapcub.com/tools/campaign-qr-code/vcard
Version v1.0Updated Update history
Preview, content, channel and checks
The four panels on the right answer the four questions to settle before printing: will it scan, what does it say, where will it show up in reports, and is anything risky.
Preview and version
A contact card holds a lot, typically version 8–15, far denser than a URL code. On a business card print it at least 2.5 cm wide, and drop rarely used fields such as notes or the full address if needed.
What the code contains
Text starting with BEGIN:VCARD and ending with END:VCARD, one field per line. Save it as a .vcf file and it imports straight into most address books.
Checks
Flags phones not in international format, suspicious email addresses, websites without a scheme, and how Chinese names are joined into a display name.
Style
Contact codes are dense; level M is usually right. A logo makes them denser still, so check the coverage estimate first.
Scanner apps treat vCards differently: some open an Add Contact screen, others only show the text. We have not found official documentation from WeChat or phone makers on vCard scanning, so test with the phones your contacts use.
A trackable campaign QR code in four steps
One code per placement is what lets you compare locations afterwards.
-
1
Pick URL and paste the page
Use the URL type with your landing page. Posters, flyers and table tents for one campaign can share a landing page; the UTM tags tell them apart.
-
2
Write the UTM tags
utm_sourcesays where (flyer, poster, booth),utm_mediumisqrfor all codes,utm_campaignnames the campaign,utm_contentnames the exact spot. Values are lowercased for you. -
3
Style it
Use SVG for print. Upload a logo if you want one; the tool moves to level H and estimates how large the logo can safely be. When changing colors, watch the contrast check and keep modules dark on a light background.
-
4
Download, test, then print
Download PNG or SVG, scan the proof with a phone, and confirm both the page and the parameters in the address bar. For many stores or spots, use Batch to export them all at once.
Writing vCard 3.0 and 4.0
vCard 3.0 is RFC 2426 and 4.0 is RFC 6350. The tool writes the required properties, escapes special characters and ends lines with CRLF.
- Required:
BEGIN:VCARD,VERSION(4.0 requires it right after BEGIN),FNdisplay name andEND:VCARD; 3.0 also requiresN(last;first;;;) - Commas, semicolons, backslashes and line breaks in text become
\,\;\\\n, so "Example, Inc." is writtenExample\, Inc. - Phones: 3.0 writes
TEL;TYPE=CELL:+1 415…; 4.0 should use a tel: URI,TEL;VALUE=uri;TYPE=cell:tel:+1-415-…(RFC 6350 §6.4.1), falling back to text when the number has no + ADRalways has 7 parts: PO box;extended;street;city;region;postal code;country- No CHARSET parameter; the QR code carries UTF-8
- No line folding: the RFC recommends lines of at most 75 bytes (a SHOULD, not a MUST); skipping folds saves bytes in the code
| Field | Written as |
|---|---|
| Name | N:Smith;Jane;;; FN:Jane Smith |
| Company / title | ORG:Example\, Inc. TITLE:Head of Growth |
| Mobile | TEL;TYPE=CELL:+1 415 555 0100 |
EMAIL;TYPE=INTERNET:jane@example.com | |
| Address | ADR;TYPE=WORK:;;100 Market St;San Francisco;CA;94105;USA |
A badge code with UTM tags
A head of growth puts the same vCard code on her trade show badge and the back of her card. The website field holds a UTM-tagged link, so when contacts open it later, analytics shows the show brought them.
| Field | Value | Why |
|---|---|---|
| Website | https://www.example.com/?utm_source=expo_card&utm_medium=qr&utm_campaign=saastr_2026 | Build it with the URL type first, then paste it here |
| Mobile | +1 415 555 0100 | International format dials from anywhere |
| Note | Empty | Fewer fields mean a sparser code that scans more easily on a card |
People open the link whenever they get round to it, sometimes days later, so treat these visits as a lead indicator rather than an exact count.
What goes wrong with campaign QR codes
Printed codes cannot be changed, so these are worth checking before the proof.
Printing a bare URL
Scans blend in with typed URLs and bookmarks as Direct traffic, and the campaign cannot be measured. Give every placement its own UTM tags.
Redirects that drop the tags
With a short link or redirect page, if the redirect does not pass ?utm_… through to the final page, analytics never sees it. Scan once and check the address bar.
Pale or inverted colors
Light gray modules, colored backgrounds and white-on-black codes fail on some phones. Keep modules dark on a light background, at least 4.5:1.
Oversized logo, no quiet zone
A logo covering more codewords than error correction can repair breaks the code, and a code jammed against artwork is hard to find. Use the coverage estimate and leave 4 modules of clear space.
Follow the scan through to the result
The code gets people to the page. With the right parameters, the visits, conversions and channels after that are all in TapCub.
Scans split by UTM
Source, medium, campaign and content each get a breakdown with sessions, conversions and rate, so stores and spots compare side by side.
Learn moreLanding page performance
Visits, bounces and conversions by entry page, with the channel alongside: did people who scanned keep going?
Learn moreA chat link to print
Every site key has a hosted chat page you can turn into a code for packaging or business cards; messages land in the same inbox.
Learn moreQR code generator FAQ
Still have a question?
Chat with the team behind TapCub — we usually reply within a few hours on business days.
Should I use vCard 3.0 or 4.0?
If unsure, 3.0. It was published in 1998 (RFC 2426) and is widely supported. 4.0 (RFC 6350, 2011) is stricter and writes phones as tel: URIs; support varies by device, so test more carefully if you choose it.
Does every phone save the contact automatically?
No. Some scanner apps open an Add Contact screen, others only show the text. We have not found official documentation covering this per app, so test with the phones your audience uses.
The code is too dense to scan. What can I do?
Remove rarely used fields (note, a second phone, the full address), keep error correction at M and print larger. Or encode just a link to your profile page with the URL type and put the details on the page.
Can I include a photo?
No. A photo is far larger than a QR code can hold (just under 3 KB at most).
Update history
New features, fixes and data refreshes for this tool, newest first.
-
· v1.0
LaunchedFirst release.
Data this tool relies on
- GA4 default channel group source lists — checked 2026-11-09, reviewed every 6 months (next review by 2027-05-09)
Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates
Make every code accountable
Add the TapCub tracking code and break scan traffic down by UTM: which store, which poster, which spot brought visits and conversions.