👤 vCard QR Code Generator

Turn Your Contact Info Into
a Scannable QR Code

Create a digital business card QR code in seconds. Enter your name, phone, email, address and website — anyone who scans it can save your contact instantly. 100% free, no sign‑up. Perfect for business cards, resumes, and networking.

👤 Name 📞 Phone ✉️ Email 🏢 Company
👤 Enter contact details VCARD 3.0
How it works: Fill in your contact details (name is required). When scanned, the vCard QR code lets anyone save your contact directly to their phone's address book — no typing needed.
Personal
Contact
Address (optional)
📁 Click or drag to upload logo
PNG, JPG, SVG · max 500 KB
Logo preview
vCard QR Code
💡 Quick tips
Include at least name + phone or email for a useful vCard
Use Level H error correction with a logo overlay
Download SVG for print — infinite resolution
Minimum print size on business card: 2×2 cm
Test scan on iPhone and Android before printing

📊 Why vCard QR Codes Are Essential for Networking

88%
of professionals prefer a digital contact exchange over paper business cards
3s
average time to save a contact via vCard QR vs. 30s+ manual entry
67%
of business cards get thrown away within a week — vCard QR lives in the phone
100%
private — your contact data never leaves your browser

📖 How to Create Your vCard QR Code in 4 Steps

Enter Your Name
First name is required. Last name, company, and job title are optional but recommended for a complete business card.
Add Contact Details
Fill in phone, mobile, email, and website. All fields are optional — include what matters for your network.
Add Address (Optional)
Include your street, city, state, postal code, and country for a complete professional profile.
Generate & Customise
Click Generate, customise colours and logo, then download PNG or SVG for your business card or resume.
Test on All Devices
Before printing, test the QR with both iPhone and Android to ensure the contact saves correctly.
Print & Network
Add to your business card, resume, email signature, or any place where contacts need to be shared.

💼 Where to Use Your vCard QR Code

Business Cards
Replace or supplement printed contact details — one scan saves everything.
Resumes & CVs
Add to your printed CV header for instant contact saving.
Event Name Badges
Attendees scan to connect without exchanging paper business cards.
Email Signatures
Embed a vCard QR code in your email signature for easy contact sharing.
Social Media Profiles
Add the QR to your LinkedIn, Instagram, or other social bios.
Office Reception
Display a vCard QR at reception for visitors to save your company contacts.
Product Packaging
Brands can include a vCard QR for customer support and contact.
Website & Blog
Add the QR to your website's contact page or about section.

🚀 6 Benefits of a vCard QR Code

Instant Contact Saving
Anyone who scans your QR code can save your full contact details in one tap — no manual typing, no typos.
No App Required
The standard vCard format is supported natively on all modern smartphones — camera app is all that's needed.
100% Private
QR generation happens entirely in your browser. Your contact information never leaves your device — never stored, never tracked.
Works Offline Forever
Static vCard QR codes work completely offline — no server, no expiry, no subscription.
Fully Branded
Customise with your brand colours and logo. A branded QR code looks professional and increases scan rates.
Universal Compatibility
vCard 3.0 is recognised by iOS, Android, and all major contact management apps worldwide.

📖 Complete Guide: How to Use vCard QR Codes for Networking

In today's fast‑paced networking environment, exchanging contact information efficiently can make the difference between a meaningful connection and a missed opportunity. Traditional paper business cards are easily lost, forgotten, or thrown away. vCard QR codes solve this problem by encoding your full contact details into a scannable image that lives on your phone — and in the phones of everyone who scans it.

What Is a vCard QR Code?

A vCard QR code is a QR code that contains your contact information in the vCard 3.0 format — the universal standard for electronic business cards. When someone scans the QR with their phone's camera, the phone displays your contact details and offers to save them directly to the address book. No typing, no mistakes, no lost cards.

Why Traditional Business Cards Are Failing

Research shows that 67% of paper business cards are thrown away within a week of being received. Even when they're kept, they often end up in a drawer, never to be seen again. vCard QR codes eliminate this problem — the contact lives in the recipient's phone, ready to use immediately. And with no manual entry, there are no typos in phone numbers or email addresses.

How to Get the Most from Your vCard QR Code

Frequently Asked Questions

A vCard QR code encodes your contact information using the vCard 3.0 standard. When scanned, the phone offers to save the contact directly to the address book — no typing needed.
Only your first name is required. All other fields are optional. For a business card, we recommend at minimum: name + phone + email.
Yes. vCard QR codes work with the native camera app on iPhone (iOS 11+) and Android (9+) — no additional app required.
No. Our vCard QR codes are static — the contact data is encoded directly in the QR image. They work forever with no server or subscription.
No. All QR code generation happens entirely in your browser. Your contact information never leaves your device — it is never sent to our servers, never stored, and never tracked.
No — static vCard QR codes encode the data directly in the image. To update your contact details, simply generate a new QR code and update your printed materials.

vCard QR Code — ' + name + ' · ToolsBox.org

' ); win.document.close(); } function resetAll() { ['vc-first', 'vc-last', 'vc-org', 'vc-title', 'vc-phone', 'vc-mobile', 'vc-email', 'vc-url', 'vc-street', 'vc-city', 'vc-state', 'vc-zip', 'vc-country', 'vc-note' ].forEach(id => { const el = document.getElementById(id); if (el) el.value = ''; }); document.getElementById('qr-out').innerHTML = ''; document.getElementById('qm-info').textContent = '—'; document.getElementById('qm-ready').textContent = ''; document.getElementById('vcard-preview').style.display = 'none'; rmLogo(); } /* ── CUSTOMISE ── */ function toggleCust() { const b = document.getElementById('cust-body'); const hd = document.querySelector('.cust-hd'); const h = b.classList.toggle('hide'); hd.setAttribute('aria-expanded', !h); document.querySelector('.cust-arr').textContent = h ? '▾' : '▴'; } function syncHex(cid, hid) { document.getElementById(hid).value = document.getElementById(cid).value; } function syncCol(hid, cid) { const v = document.getElementById(hid).value; if (/^#[0-9a-fA-F]{6}$/.test(v)) document.getElementById(cid).value = v; } function updSize() { const v = document.getElementById('sz-range').value; document.getElementById('sz-label').textContent = v + '×' + v; document.getElementById('sz-range').setAttribute('aria-valuetext', v + ' by ' + v + ' pixels'); } function setEC(ec, btn) { EC = ec; document.querySelectorAll('.ec-p').forEach(p => { p.classList.remove('on'); p.setAttribute('aria-pressed', 'false'); }); btn.classList.add('on'); btn.setAttribute('aria-pressed', 'true'); } function preset(fg, bg) { document.getElementById('fg-col').value = fg; document.getElementById('fg-hex').value = fg; document.getElementById('bg-col').value = bg; document.getElementById('bg-hex').value = bg; } /* ── LOGO ── */ function handleLogo(inp) { const f = inp.files[0]; if (!f) return; if (f.size > 512000) { showErr('Logo must be under 500 KB'); return; } const reader = new FileReader(); reader.onload = e => { currentLogoBase64 = e.target.result; document.getElementById('logo-img').src = currentLogoBase64; document.getElementById('logo-name').textContent = f.name; document.getElementById('logo-prev').style.display = 'flex'; setEC('H', document.querySelector('.ec-p[data-ec="H"]')); autoGenerate(); }; reader.readAsDataURL(f); } function rmLogo() { currentLogoBase64 = null; document.getElementById('logo-inp').value = ''; document.getElementById('logo-prev').style.display = 'none'; document.getElementById('logo-img').src = ''; autoGenerate(); } /* ── ERRORS ── */ function showErr(m) { const e = document.getElementById('err-box'); e.textContent = '⚠️ ' + m; e.classList.add('show'); setTimeout(() => e.classList.remove('show'), 5000); } function hideErr() { document.getElementById('err-box').classList.remove('show'); } /* ── FAQ ── */ function faq(el) { const p = el.parentElement; const open = p.classList.contains('open'); document.querySelectorAll('.fi').forEach(x => { x.classList.remove('open'); x.querySelector('.fq').setAttribute('aria-expanded', 'false'); }); if (!open) { p.classList.add('open'); el.setAttribute('aria-expanded', 'true'); } } /* ── MOBILE NAV ── */ (function() { const h = document.getElementById('ham'), m = document.getElementById('mob-menu'); h.addEventListener('click', () => { const o = m.classList.toggle('open'); h.setAttribute('aria-expanded', o); const s = h.querySelectorAll('span'); if (o) { s[0].style.transform = 'rotate(45deg) translate(4px,4px)'; s[1].style.opacity = '0'; s[2].style.transform = 'rotate(-45deg) translate(4px,-4px)'; } else { s.forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); document.addEventListener('click', e => { if (!h.contains(e.target) && !m.contains(e.target)) { m.classList.remove('open'); h.setAttribute('aria-expanded', 'false'); h.querySelectorAll('span').forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); })(); /* ── LOGO DRAG‑AND‑DROP ── */ (function() { const drop = document.getElementById('logo-drop'); ['dragenter', 'dragover'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.add('drag-over'); })); ['dragleave', 'drop'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.remove('drag-over'); })); drop.addEventListener('drop', e => { e.preventDefault(); const f = e.dataTransfer.files[0]; if (f && f.type.startsWith('image/')) { const dt = new DataTransfer(); dt.items.add(f); document.getElementById('logo-inp').files = dt.files; handleLogo(document.getElementById('logo-inp')); } }); drop.addEventListener('keydown', e => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); document.getElementById('logo-inp').click(); } }); })(); /* ── DEMO ON LOAD ── */ window.addEventListener('load', () => { document.getElementById('vc-first').value = 'Jane'; document.getElementById('vc-last').value = 'Doe'; document.getElementById('vc-org').value = 'ToolsBox'; document.getElementById('vc-title').value = 'Product Manager'; document.getElementById('vc-phone').value = '+91 98765 43210'; document.getElementById('vc-email').value = 'jane@example.com'; document.getElementById('vc-url').value = 'https://mytoolsbox.org'; livePreview(); generateQR(); });