A QR code that saves your contact details
This generator turns your name, job title, company, phone number, email address, website and address into a vCard β the plain-text contact format that phones and email programs understand β and encodes that vCard in a QR code. When someone points a phone camera at the code, the phone offers to add you as a new contact with the fields already filled in, so nobody has to type your email address from a business card. Typical uses are the back of a printed business card, a conference badge, a slide at the end of a talk, a shop counter or an email signature image.
How to use it
- Fill in First Name and/or Last Name (at least one is needed), then any of Job Title, Company, Phone, Email, Website and Address. Empty fields are left out.
- Press Generate QR Code. A preview card shows how the details read, next to the code.
- Scan the code with your own phone before sharing it, and check every field on the contact screen that appears.
- Press Download QR to save
vcard-qr.png, or Copy vCard to copy the underlying text, which you can save as a.vcffile. Clear empties the form.
What goes into the code
The page builds a vCard 3.0 record like this, with lines only for the fields you filled in:
BEGIN:VCARD Β· VERSION:3.0 Β· N:Doe;John;;; Β· FN:John Doe Β· TITLE:β¦ Β· ORG:β¦ Β· TEL;TYPE=CELL:β¦ Β· EMAIL:β¦ Β· URL:β¦ Β· ADR;TYPE=WORK:;;β¦;;;; Β· END:VCARD
The phone number is labelled as a mobile number, and the whole address is stored in the street part of a work address, because the form has a single address field. Commas and semicolons in names, titles, company names and addresses are escaped as the vCard format requires, so a company such as "Smith, Jones & Co." is kept as one value.
How the QR code is made
The QR code is generated by a small encoder written directly into this page, not by an online service or an external library, so your details are not sent anywhere and nothing is stored. The vCard text is converted to UTF-8 bytes and encoded in byte mode with error-correction level L, which can recover roughly 7% of damaged modules. The encoder picks the smallest QR version (size) that fits, adds ReedβSolomon error-correction codes, and chooses one of the eight standard mask patterns to avoid large blocks of one colour. The image is drawn at 6 pixels per module with a four-module white margin (the "quiet zone"), so a typical card produces a PNG roughly 250 to 400 pixels square. The more you enter, the denser the pattern becomes.
Printing and scanning tips
- Print the code at least about 2 cm (0.8 in) wide; dense codes with many fields need more room, and codes meant to be scanned from a distance need to be larger.
- Keep the white margin around the code and print it dark on a light background. Inverted or low-contrast colours scan poorly.
- Because level L has little redundancy, do not place a logo over the code and avoid glossy finishes that cause glare.
- Leave out fields you do not need; a shorter vCard gives a simpler code that older phones read more easily.
Frequently asked questions
Which phones can read the code?
Recent iPhones and most Android phones read QR codes from the built-in camera app or a Google Lens shortcut and recognise vCard data. Older devices may need a QR reader app. How each field is labelled depends on the phone's contacts app.
Is my contact information uploaded?
No. Building the vCard, encoding the QR code and creating the PNG all happen in JavaScript in your browser. The page makes no network request with your data and does not save it; reloading clears the form.
Can I update the details later?
No. This is a static QR code: the contact details are stored in the pattern itself, not behind a link. If your phone number or job changes, generate and print a new code.
Do accents and non-Latin names work?
Yes. Text is encoded as UTF-8, which current iOS and Android scanners read correctly. Very old scanner apps that assume a different character set may show garbled characters.