vCard QR Code Generator
Put your contact details into a QR code that a phone can save as a contact. Name, company, phone, email, website and address.
Higher levels survive more damage but make the code denser.
PNG, JPEG or WebP up to 1 MB. The file stays on your device. Check with a phone that the code still scans.
Fill in the form to see the QR code.
Everything is generated in your browser; your data and logo are not uploaded.
How it works
Fill in the fields you want on the card; the code appears as you type. A scanning app that understands vCards can then offer to save the details as a contact, so nobody has to type your number from a card. Everything is generated in your browser. The details and the logo are not uploaded.
The code carries a vCard 3.0 card (RFC 2426) as plain text, one property per line, with CRLF line endings:
Nholds the family name and the given name, andFNthe full name as first name then last name. If you only enter a company, the company is used as the full name.ORGis the company andTITLEthe job title.TEL;TYPE=CELLis the phone number,EMAILthe email address andURLthe website.ADR;TYPE=WORKholds the address. The whole address you type is written into the street part.
Empty fields are left out, so a short card produces a small, easy-to-scan code.
Escaping and validation
In vCard text, backslash, semicolon, comma and line break have a meaning, so the tool escapes them. A comma in "1 Main Street, Springfield" becomes a backslash and a comma in the card. Control characters, including line breaks, are rejected outright, because a value containing a line break could otherwise start a new property and put a phone number on the card that you never typed.
Before the card is built, the tool checks that the phone number contains only digits, +, spaces and ( ) - . /, that the email has the shape of an address, and that the website is an http or https address.
Size
Each field adds bytes. Letters such as é, ö or ñ use two bytes each, so names and addresses that contain them take more room than plain ASCII ones. Fewer fields give a lower version and larger squares. The page shows the version that was chosen; if the card does not fit, you are told to remove fields or lower the error correction level.
Examples
These are the lines the tool writes for each input (every line ends with CRLF):
| Input | Written into the code |
|---|---|
| First name Alex, last name Morgan | N:Morgan;Alex;;; and FN:Alex Morgan |
| Company Example Corp, title Sales manager | ORG:Example Corp and TITLE:Sales manager |
| Phone +1 555 010 0100 | TEL;TYPE=CELL:+1 555 010 0100 |
| Email alex@example.com | EMAIL:alex@example.com |
| Website https://example.com | URL:https://example.com/ (normalized with a trailing slash) |
| Address 1 Main St, Springfield | ADR;TYPE=WORK:;;1 Main St\, Springfield;;;; |
| Company ACME only | N:;;;; and FN:ACME and ORG:ACME |
| Last name A;B, first name Alex, company X, Y | N:A\;B;Alex;;; and ORG:X\, Y |
The full card for the first five rows is BEGIN:VCARD, VERSION:3.0, then the lines above in the order N, FN, ORG, TITLE, TEL, EMAIL and URL, and END:VCARD (an address, when present, comes after URL). That card is roughly 190 bytes, compared with the 17 bytes that fit in the smallest QR code at the lowest error correction level. That is why a business card code looks denser than a short link.
A practical way to work: start with name, phone and email. Add the company and website if the card needs them, and leave the address out unless it matters, since a street address is often the longest field.
Things to watch for
- Only one phone, always marked mobile. A landline is saved with the mobile label too. Use the phone that people should actually call.
- No photo. The vCard written here has no image field. A logo on the code is a visual overlay on the QR symbol, not a contact photo, and it raises the error correction to H, which makes the code denser. Scan the result again.
- Check the website. Without http:// or https:// the address is rejected, and a trailing slash is added to a bare domain. Both are normal.
- The address is a single line. It is written into the street part of the address property; it is not split into street, postcode and city.
- Test on real phones. Different scanners and contact apps react differently, and some only show the text. Scan with a phone that is not yours, and check the saved contact for names with accented letters; we have not tested individual readers.
- No line folding. The card is vCard 3.0 text, and folding of long lines at 75 octets is not applied: a long line is written as one line. Scanners usually read such lines, but a strict parser might not; we have not tested strict parsers.
- Printed contact data is final. If a number or a title changes, you need a new code. Put a short, stable web address in the URL field if you want a place you can update.
- Privacy. A code on a business card is readable by everybody who holds the card. Include only what you would print on it anyway.
- Keep it simple. If the code is dense, remove a field rather than printing it small.
Frequently asked questions
Last updated: 10/11/2026