How to make a vCard QR code A QR code that saves a contact.

Encoding contact details straight into a QR code works, right up until the code gets too dense to scan or the phone decides not to open it. Here is the version that holds up, with the four codes that show why.

Kai, Founder of Cardr · 6 min read

A Cardr Apple Wallet pass in the oxford design, its QR code linking to this post

A vCard QR code carries your contact details inside the code itself, so scanning it offers to save you without loading a web page. That is its strength and its limit: everything must fit, and the more you add the denser and more fragile the code becomes. This covers what to include, what to leave out, why a link is often the better choice, and how to make either one free.

What is actually inside the code.

Not a link. The contact card itself, as text.

A vCard QR code encodes a small text document in the vCard format, the same format your phone uses when you share a contact. Name, phone, email, company, title and a website, wrapped in a few lines of markup. The phone recognises it and offers to add the contact.

Because the data is inside the code, it works with no internet connection at all. Nothing is fetched. That is the genuine advantage and it is the reason to use one.

It is also the reason it breaks. A QR code holds a fixed amount of data per grid size, so the more characters you cram in, the bigger the grid has to get — and at a fixed printed size, a bigger grid means a smaller black square. Here is the same person, encoded four ways.

  • A link cardr.co/jordanhale
    Characters
    27
    Grid
    29×29
    Square, printed 20mm
    0.69mm
  • Lean vCard Name, mobile, email, company, title
    Characters
    171
    Grid
    53×53
    Square, printed 20mm
    0.38mm
  • Plus an address And a website
    Characters
    310
    Grid
    69×69
    Square, printed 20mm
    0.29mm
  • Everything Second number, second email, a note, a social handle
    Characters
    540
    Grid
    89×89
    Square, printed 20mm
    0.22mm
The same person, encoded four ways, at error-correction level M. The grid size and character count under each code are read back from the encoder, not typed in. The final column is the arithmetic: at a 20mm printed size, the grid size is the only thing deciding how big each black square ends up.

Nothing above is an illustration. Each code was generated by the same encoder our free tool uses, and the grid size and character count under each one are read back from the encoder rather than typed in.

The last one is the interesting failure. Adding an address, a second number, a note and a social handle takes the grid from 53 squares across to 89, which at a 20mm print takes each square from 0.38mm down to 0.22mm. It still technically encodes. It just will not scan in a bar.

One 20 mm print

  • 0.38 mma square, 53 across
  • 0.22 mma square, 89 across

The same person, with an address, second number, note and handle.

What to put in, and what to cut.

Ruthlessness here is what makes the difference between a code that scans and one that half works.

Include: name, one phone number, one email, company, job title. That is a complete business card and it stays comfortably inside a scannable density.

Cut: a full postal address, a second and third phone number, a photo, social handles, and any note. An address alone can nearly double the payload, as the third code above shows. A photo is not worth discussing; an embedded image will not fit in anything you can scan from a phone.

What goes in the code

Put in

  • Name
  • One phone
  • One email
  • Company
  • Job title

Cut

  • Postal address
  • More phones
  • Photo
  • Social handles
  • A note

Then test it the way it will be used. Display it at the size you will actually show it, on the device you will actually show it on, and scan it from about arm’s length in ordinary indoor light. A code that only scans when held six inches away in bright light is a code that will fail in a bar.

Every scanning problem anyone has ever had with a QR code was a size or a contrast problem.Which is a nicer way of saying: it was almost never the phone.

Making one, free, with no signup.

Five steps. No account, no email, no watermark.

  1. 01

    Decide whether you want the raw vCard or a link

    Raw vCard if it must work with no signal and the details will never change. A link if you want it to stay small, stay current, and be able to give you something back.

  2. 02

    Fill in five fields, not fifteen

    Name, one mobile, one email, company, job title. Leave out the postal address, the second number and any note — those are what take the grid from 53 squares across to 89.

  3. 03

    Generate it and look at the grid size

    Our free generator shows you the code immediately. The denser it looks, the more you should be cutting. A code you can count the squares on from across the room is a code that will scan from across the room.

  4. 04

    Test it at the size and distance you will actually use

    On the device you will show it on, from about arm's length, in ordinary indoor light. Not held six inches away under a desk lamp. The scene is a bar or a doorstep, so test in something like one.

  5. 05

    Print it bigger than feels necessary

    Scan distance runs to roughly ten times the code's width, so a 2cm code on a card is a 20cm reach. If it is going on a stand or a van, scale up accordingly and test the printed proof before ordering hundreds.

Our vCard QR generator makes the raw kind and works whether or not you ever create a card with us. If you want the link kind, that is what a Cardr address is: a short URL with a page behind it that shows your details, saves to contacts with a tap, and takes their details back with one more.

Which kind

The generator

A raw vCard. No account.

A Cardr address

A link to a page you can edit.

Questions, answered.

Does a vCard QR code work without internet?

Yes. The details are inside the code, so nothing is fetched and it works with no signal. That is the main reason to choose it over a link.

Why will my QR code not scan?

Almost always density or size. Too much data makes the grid bigger, which makes each square smaller at any given print size. A lean vCard encodes to a 53 by 53 grid; adding an address, a second number, a note and a social handle takes it to 89 by 89, which at a 20mm print is 0.22mm per square. Remove the address and any extra numbers first, then make it physically bigger.

Can I change the details later?

Not in a raw vCard code. The data is baked in, so every copy already printed or saved keeps the old details forever. A code pointing at a page can be updated any time.

How much data fits in a QR code?

More than you want to put in one. The limit that bites is not the theoretical maximum but the physical one: every extra character grows the grid, and past roughly 300 characters a code printed at business-card size has squares too small for a phone camera at conversational distance.

Do I need to pay for a QR code generator?

No. Ours is free with no signup and no email. Be careful with generators that route your code through their own domain as a redirect, because your code stops working if they turn that service off or start charging for it.

Get started

Free forever. About a minute to build.

Nothing for the other person to install, and no card details to start.

Create my free card