A Thousand Cards and a Dead QR Code: What a Printed Scan Should Never Depend On

A law firm’s cards carried nine QR codes from an online subscription service. When those codes were deactivated, 1,000 printed cards opened a notice and a price list.

For firms with a QR code on business cards, brochures or signage

4 min read · LIAISON Dossier · November 2026

A bearded man in a camel overcoat standing on a city street, looking back over his shoulder away from the camera.
Photograph: Surprising_Media, Pixabay

The cards were good. They had been designed in September 2025, before we started working with MH Legal Hub: nine people, each with a personal QR code, 1,000 printed cards in all. A lawyer hands one over at a conference, the other person scans it, and the contact is saved.

In November 2026 we scanned one. The phone opened a page in Spanish saying that the QR code had been deactivated, with a link to a price list. All nine codes gave the same result.

Nobody at the firm had done anything wrong. The codes had simply depended on something the firm did not own.

What a dynamic code really is

There are two kinds of QR code, and they look identical on paper.

A static code holds the information itself: a web address, or a whole contact card. Nothing stands between the paper and the person scanning it.

A dynamic code holds a short address on a service provider’s server, and that server forwards the visitor to the real destination. It is sold as a convenience, since you can change the destination without reprinting. The price of the convenience is that every printed copy now depends on an account, a subscription and a company staying alive and willing. When the account stops, the provider decides what your client sees. In this case they saw an advertisement for the provider.

So a business card built this way is a rented object, and the rent is invisible until it stops being paid.

  1. 01 / 03

    Dynamic, on a provider’s service

    Who controls it

    The provider

    Change the destination

    Yes, while the account runs

    If the account ends

    Dead on every printed copy

    Needs a connection to work

    Yes

  2. 02 / 03

    Static, on your own domain

    Who controls it

    You

    Change the destination

    Yes, on your own site

    If the account ends

    Not affected

    Needs a connection to work

    Yes

  3. 03 / 03

    Static, contact card inside

    Who controls it

    Nobody needs to

    Change the destination

    No, you reprint

    If the account ends

    Not affected

    Needs a connection to work

    No

Dynamic, on a provider’s service Static, on your own domain Static, contact card inside
Who controls it The provider You Nobody needs to
Change the destination Yes, while the account runs Yes, on your own site No, you reprint
If the account ends Dead on every printed copy Not affected Not affected
Needs a connection to work Yes Yes No

What we did the same day

The first idea was to pay to reactivate the codes. We tried on November 2. The provider’s platform did not work, and that turned out to be useful, because paying would only have rented the same risk for another year.

We built the founder’s replacement that day, the other way: a static code holding a full contact card, with name, firm, role, phone, email and website inside the code itself. Scanning it offers to save the contact, with no server and no account behind it. A second version opens a WhatsApp conversation directly, with the WhatsApp icon set in the centre of the code. Both come as a landscape card and as a phone screen, so they can be shown from a phone across a table.

Paper is paper, and those printed cards will not repair themselves. Anything printed from now on carries a static code.

If a printed code depends on a monthly payment, the firm does not own its own business card.

Checking a code before it goes to print

Most QR failures come from the last step, and the design file looks perfect until then. These are the checks we now run on every printed code.

Decode the final artwork. Test the exported file that goes to the printer, at print size. A preview proves very little.

Use high error correction when you add an icon. QR codes carry redundancy in four levels, and the highest can restore about 30 percent of the code (Denso Wave). That margin is what lets an icon sit in the centre, and it is a margin to spend carefully. Our WhatsApp version still decoded when scaled down to 0.2 times its size.

Resize by whole multiples. A code is a grid of small squares, called modules. Scaling by a fraction makes some modules wider than others, and a scanner can fail on a code that looks fine to the eye. Scale by whole multiples of the module, then compare the grid with the original.

The rule for anything printed

  • A printed code is static, either on a domain you own or with the contact card inside it.
  • Test the final file at final size.
  • If you need to change a destination later, do it with a redirect on your own site.

05 steps

What to do on Monday

  1. Scan everything printed. Cards, brochures, signs, posters, packaging. Do it with a phone, today, and write down where each one lands.

  2. Look at the address the code opens. If it starts with a provider’s domain and not yours, it is a dynamic code on someone else’s account.

  3. Find out who holds that account, whether it is paid, and when it renews. These accounts often sit with a designer or a former employee.

  4. Replace before you reprint. Move to a page on your own domain, or to a static contact card, and then order the next batch.

  5. Keep a digital card on your phone as the fallback, so that a dead print run never costs you a contact.

Sources (2)

  1. 01

    Denso Wave, “Error correction feature”, QRcode.com.

    qrcode.com
  2. 02

    LIAISON MARKETING, working records of the MH Legal Hub engagement, 2026.

Not a sales call. A diagnostic.

We can write one about your market.

Thirty minutes. We map how your clients research you today against how they actually decide, and we name the gaps.

Clément Assingo
Clément AssingoStrategy and editorial, São PauloSão Paulo--:--
Valentin Toussaint
Valentin ToussaintPerformance and paid media, MadridMadrid--:--