Eazy Toolbox
Skip to tool

vCard QR Code Generator

Encode your contact details as a QR code that adds you to someone’s address book in one scan — the standard way to make a business card work after the exchange.

Your data never leaves your browser. This tool runs entirely on your device.

Why vCard 3.0 and not 4.0

vCard is the interchange format behind every "export contact" button, and it exists in two versions that matter. This generator emits version 3.0, which is the older one.

That is deliberate. 4.0 is technically cleaner, but 3.0 is what contact apps on both platforms have imported without complaint for well over a decade, and a business card QR that produces a blank contact on a colleague’s phone has failed completely. There is no advantage to 4.0 that a scanned business card can actually use.

BEGIN:VCARD
VERSION:3.0
N:Lovelace;Ada;;;
FN:Ada Lovelace
TEL;TYPE=CELL,VOICE:+44 20 7946 0000
END:VCARD

Fill in less than you think

Every field you add lengthens the encoded text, and the length decides how fine the grid is. A card with a name, a mobile number and an email produces a code that scans instantly across a table; the same card with a job title, a company, a website and a postal address produces a dense mesh that needs a steady hand and good light.

The useful test is what the recipient actually needs in their address book. A website is often better as its own separate QR code, or simply left off — they will find it from your email domain.

  • Name and one phone number are enough for most exchanges.
  • Put the international dialling prefix on the number (+33, +44, +1). A scanned contact travels, and a local-format number will not dial from abroad.
  • Accented characters and non-Latin scripts are fine, but they cost more space — UTF-8 spends two to four bytes on characters ASCII spends one on.

Printing a code that actually scans

Most unscannable QR codes fail for one of three reasons, and all three are avoidable before the file goes to print.

The quiet zone is the first: a QR code needs a clear margin of about four modules on every side, and a design that crops tight to the black edge breaks the scan. The download here keeps that margin, so place the image as it is rather than trimming it.

  • Print at 2 cm square or larger for a code held in the hand, and roughly a tenth of the reading distance for anything scanned from further away — a code read from 2 m needs about 20 cm.
  • Download the SVG for anything printed. It is resolution-independent, so it stays sharp at poster size; the PNG is fixed at the pixel size you chose.
  • Keep it dark-on-light. Scanners look for dark modules on a light background, and inverting that stops many phone cameras cold.
  • Do not stretch it. A QR code is square, and a non-uniform scale distorts the finder patterns the scanner uses to orient itself.

What the error-correction level changes

Every QR code carries redundant data so it still reads when part of it is dirty, torn or covered. The level sets how much: L recovers about 7% of the symbol, M about 15%, Q about 25% and H about 30%.

That redundancy is not free — it takes up space in the same symbol, so a higher level means either fewer characters or a denser grid of smaller modules. Denser modules are harder for a cheap camera to resolve, which is why cranking it to H is not automatically safer.

L ≈ 7%   M ≈ 15%   Q ≈ 25%   H ≈ 30%
  • On a screen, or on paper that will stay clean: L or M.
  • On a sticker, a label, a window or anything that gets handled or weathered: Q or H.
  • If you overlay a logo in the centre, use H — the logo is damage as far as the scanner is concerned, and must cover no more than about 30% of the code.

Frequently asked questions

Does the scan add the contact automatically?

No, and it should not. Both iOS and Android show the parsed details first and wait for the person to confirm before anything is written to their address book. A QR code that could silently add entries to a stranger’s contacts would be an obvious thing to abuse.

Why does my code look so much denser than the ones on other cards?

Almost always because it encodes more. A vCard with a company, job title, full postal address and website can be four times the length of one with a name and a number, and every extra character adds modules to the grid. Remove the fields the recipient does not need and the code gets visibly coarser and easier to scan.

Can I put a photo or a logo in the vCard itself?

Not usefully. The vCard format has a PHOTO property, but even a small embedded image runs to thousands of bytes and a single QR code holds at most 2,953 — well past the point where the code becomes unscannable. Overlay a logo on top of the finished code instead, at error-correction level H.

Does this QR code expire?

No, and it cannot. The data is encoded directly into the pattern, so the code is self-contained — there is no account, no short link and no server of ours involved once you have downloaded the image. Many free generators instead encode a link to their own redirect service, which is what makes those codes stop working when a trial ends or the service shuts down.

Can you see what I encode, or track scans?

No. The code is generated by JavaScript running in your own browser, and what you type is never sent anywhere. That also means there is nothing to count: because the code contains your data rather than a redirect through us, scans do not pass through any server we control and cannot be tracked.

What happens to fields I leave blank?

They are omitted from the vCard entirely rather than written out empty, which keeps the encoded text as short as possible and stops the receiving phone from creating a contact with blank rows in it. Only the structured name line is always present, because the format requires it.