vCard QR Code Generator

Turn contact details into a vCard QR code, a downloadable .vcf file and a printable business card sheet. Everything is generated inside your browser.

🌐 Español

  • Enter at least a first or last name.

🔒 Private by design: everything runs locally in your browser and never uploaded to any server.

A contact card that needs no server

The usual way to put your details behind a QR code is to sign up for a service, fill in a profile, and print a code that points at a page it hosts. It works until the service changes its pricing, rebrands the link, or disappears, at which point every card you printed becomes a dead end.

Encoding the contact card directly into the QR removes the dependency entirely. The scanned code contains the details themselves in the standard contact format, so a phone offers to add the contact straight away with no page load, no network and no third party in between. A card printed this way works the same in ten years as it does today.

The trade is that the code holds a fixed snapshot. Change your phone number and the printed cards are wrong, whereas a hosted profile could have been updated. For a business card that is usually the right trade, since the card is a physical object you would reprint anyway.

Producing a card

  1. Fill in the contact fields. A first or last name is the minimum.
  2. Watch the QR code update as you type. The vCard text, the file and the code all come from the same source.
  3. Choose a QR size and an Error correction level.
  4. Download the .vcf file, the QR image as a PNG, or both.
  5. Choose how many cards per sheet and print, or copy the raw vCard text.

One source, four outputs

Everything the page produces is derived from a single vCard string assembled from the form. The QR encodes that string, the download is that string as a file, the copy control gives you the string, and the print sheet embeds the QR built from it.

That matters because the obvious way to build a tool like this is to generate each artefact from the form separately, and then a field that is handled slightly differently in one path produces a QR that disagrees with the file. Here there is only one thing to be right.

The website field is the one place a deliberate normalisation happens. A bare domain has https prepended, because a contacts app will often refuse to make a scheme-less value tappable, and a tappable link is the whole point of putting it on a card. A value that already declares a scheme is untouched.

The capacity readout, and why it is only a guide

Under the code is a figure showing how many bytes the card takes against roughly what a QR can hold at the chosen error correction level. It is deliberately not a gate.

The reason is that a QR encoder is cleverer than a plain byte count suggests. It can switch into denser modes for runs of digits and capital letters, and a real vCard is full of both, so the encoder will accept cards slightly larger than the byte figure implies. A tool that refused based on the figure would reject cards that actually encode perfectly well.

So the encoder is always asked, every time, and the figure exists to tell you how close you are getting. Only when the encoder itself refuses does a message appear, and it explains the refusal in terms of what to remove.

Error correction is a print decision

The error correction level decides how much of the code can be damaged while remaining readable, and it trades directly against capacity.

For anything printed, choose a higher level. A business card lives in a wallet, gets bent, picks up ink and coffee, and a code with more redundancy keeps scanning through all of that. For a code that will only ever appear on a screen, the lowest level is fine and gives you the most room for a longer card.

The practical consequence of a card that will not fit is nearly always the free text note or a long address. Those are the fields to trim first, before reaching for a lower error correction level, because capacity gained that way costs you durability.

For a QR code around something other than a contact, QR Code Generator covers arbitrary text and links, and Bulk QR Generator produces many at once from a list.

To go the other way and turn contact exports into a spreadsheet, VCF to CSV reads the same file format this tool writes. For the digital equivalent of a business card, Email Signature Generator builds the block that goes at the bottom of your messages. The rest are on the generators hub.

See it in action

Screenshot of the vCard QR Code Generator tool with a full contact form - names, job title, company, mobile and work phone, email, website and a complete postal address - encoded into a scannable vCard QR code
vCard QR Code Generator mid-process: a full contact form - names, job title, company, mobile and work phone, email, website and a complete postal address - encoded into a scannable vCard QR code.
Diagram: where the work happens on a SysFenix page that has no file input at all: the tool arrives as ordinary JavaScript inside the page, works the answer out on your own device and renders it in place, so the upload, queue and server-side record a typical online tool needs never happen
Where the work happens on a SysFenix page that has no file input at all: the tool arrives as ordinary JavaScript inside the page, works the answer out on your own device and renders it in place, so the upload, queue and server-side record a typical online tool needs never happen.

Frequently asked questions

What does someone actually get when they scan the code?

A contact card, not a link. The QR encodes the vCard text itself, so a phone's camera offers to add the contact directly rather than opening a page that then has to be trusted and downloaded from. It works with no internet connection on either side, and it keeps working forever, because there is no short link to expire and no service to shut down.

Are the QR code, the file and the printed card the same data?

Yes, all three come from one vCard string built from the form. The QR image encodes that exact text, the download is that text as a file, and the print sheet embeds the same QR. There is no path by which the code and the file can drift apart, which is the failure people worry about with a tool that produces several artefacts at once.

Do I have to type the scheme on the website field?

No. A bare domain gets https prepended, because a phone's contacts app will not usually make a value without a scheme tappable. Anything that already carries a scheme is left exactly as typed, including a mail or telephone scheme, so a deliberate entry is never rewritten into something else.

What is the minimum I have to fill in?

A first or last name. Everything else is optional, and the tool refuses to build a card without a name because a contact with no name is not usable in any address book. An email address containing no at sign is also flagged, which catches the most common typing slip without pretending to validate addresses properly.

What is the byte count shown under the code?

How large the card is against roughly what a QR code can hold at the error correction level you chose. It is a guide rather than a verdict. The encoder is always asked to produce the code regardless of that figure, because a real vCard contains runs of digits and capitals that the encoder can pack more densely than the plain byte figure suggests, so it accepts cards slightly larger than the stated capacity.

What happens if the card genuinely will not fit?

The encoder refuses and a message explains the refusal in terms of the sizes involved and the two things that help, which are removing the longest fields or dropping to a lower error correction level. The note and the address are almost always what pushed it over. Lowering error correction buys capacity at the cost of how much damage or dirt the printed code can survive.

Which error correction level should I choose?

A higher one for anything printed, because a code on a card that lives in a wallet will get scuffed and a higher level tolerates more damage before becoming unreadable. A lower one when the card is large and you need the capacity. For a code that will only ever be shown on a screen, the lowest level is usually fine, since a screen does not get scratched.

Is any of this sent anywhere?

No. The vCard text, the QR image and the print sheet are all produced in your browser tab, so a set of contact details, which is personal information by any definition, never leaves your device. That is the main reason to prefer this over a service that stores your card and gives you a link to it.

Related tools