CardJar

Your cards.Nobody else’s business.

CardJar keeps your loyalty cards on your phone. No account, no sign-up, no email address. Not now, not later. Open it at the till and the barcode is there, network or no network.

Download CardJar on the App StoreGet CardJar on Google Play™

Free. No account, no sign-up, no email address.

The CardJar jar screen: a grid of loyalty cards in each retailer's own colour, with Tesco Clubcard, Nectar and Co-op Membership pinned as favourites
Tesco Clubcard on the CardJar till screen: its EAN-13 barcode on a white plate, with the number underneath
  • The app sends nothing anywhere. No account, no analytics, no server. Your cards travel to a new phone the same way every other app's data does: Android's own backup, into your own Google account.
  • Ready at the till in seconds. Open, tap, scan. It works in aeroplane mode because your cards are simply there.
  • On your wrist, properly. Favourite a card and it is on your Wear OS watch, with a tile, working with the phone out of range.

Why it exists

Three deliberate differences from what it replaces.

No account. Ever.

There is no sign-up screen, because there is nothing to sign up to. No email address, no password, no profile, and no server holding a list of the shops you use.

With backup left off, which is the default, the app makes no network requests whatsoever.

Sharing that ends when you send it.

Send a card to your partner and they get a copy to keep. No shared account, no linked state, no sync, nothing to revoke, and nothing about it passes through us.

The card travels inside the part of the link after the #, which browsers never send to a server.

The watch is not an afterthought.

Wear OS gets a real app and a real tile, holding its own copy of your favourites so it works with your phone in another room.

There is no Apple Watch app. The iPhone app is on the App Store now and no watchOS app is part of it, so the wrist is a Wear OS story for now and this page would rather say that than describe one that does not exist.

The screens

This is the app, not an impression of it.

Every picture below is the shipping interface, rendered straight from the code that draws it on your phone.

At the till

A barcode that does not scan is the only bug that matters.

Everything else about a loyalty app is convenience. This part is the product, so it gets treated that way.

CardJar draws barcodes as module patterns rather than images, then floors each one to whole device pixels and snaps its origin to a pixel boundary. A fractionally scaled or antialiased bar edge is a failed scan, and a failed scan in a queue is why people delete loyalty apps.

Every encoder is checked module for module against a reference implementation, and every symbol is rasterised and decoded back to prove it is readable rather than merely correct on paper. The screen also turns its own brightness up, and stays white in dark mode: dark theming stops at the plate's edge, because a tinted barcode does not scan.

Tesco Clubcard on the CardJar till screen in dark mode: the plate behind its EAN-13 barcode stays white while the rest of the app is dark
Dark mode everywhere else. Never here.

Backup

One file. One passphrase. Any phone.

A new phone gets your cards on its own, and there is a spare copy for the day it does not.

Setting up a new phone from your old one, or from a Google backup, brings your cards with it, the same way your other apps come across. That covers the ordinary case, and it needs nothing from you.

For every other case there is Export. CardJar seals every card into a single file and locks it with a passphrase you choose. Keep it wherever you keep important things. It opens on any phone with that passphrase and on no phone without it, because nobody holds a copy of it. Not Google, and not us.

Setting a passphrase before exporting a backup file
The passphrase is the whole of the lock. We could not open your file if we wanted to.

Coverage

508 loyalty schemes recognised, in 12 countries.

84 in United Kingdom, 86 in United States, 26 in Canada, 40 in Australia, 30 in Ireland, 43 in Germany, 37 in Poland, 32 in France, 23 in Spain, 28 in Italy, 27 in Netherlands and 52 in Ukraine. Scan a card and CardJar fills in the name, the colour and what the number on the back is called.

  • 508 loyalty schemes recognised on sight
  • 12 countries, all of them inside the app
  • 0 accounts, requests or bytes collected

All 12 countries ship inside the app. It never requests a retailer's logo, because a request for one would tell a server which cards you hold. See what that looks like for one specific card, like the Booths Card, or browse the full list below.

Coming from somewhere else

Stocard has closed. Your screenshots are enough.

If you took pictures of your cards before the shutdown, point CardJar at the album and it reads every barcode out of every picture, on the phone, with nothing uploaded, and names them from the catalogue.

Schemes that issue a fresh code every time are flagged before they disappoint you, rather than after.

The CardJar import screen: five barcodes read out of seven pictures on the phone, with Tesco Clubcard, Nectar and Co-op Membership named and ticked, one left needing a name, and a warning that Starbucks Rewards makes a fresh code each time

Questions worth asking

How do I get my loyalty cards onto my phone?

Scan the barcode on the back of each card, or type the number in by hand if the plastic has worn smooth. Many schemes are recognised from that number alone, filling in the name and colour on their own; where a number is not distinctive enough, you type or pick the retailer yourself and CardJar colours the card the same way. Either way, the card stays on the device from then on: no account, no server, nothing sent anywhere to do it.

Is it really free, and what is the catch?

It is free, and the catch is that it does not do anything clever with your data, because it does not have your data. There is no advertising, no affiliate scheme, no analytics and no third-party SDK in the app at all.

What happens if you disappear?

Nothing. Your cards are on your phone and the app has no server to switch off. It keeps working exactly as it does today, offline, forever. You can also export everything to a file you keep, whenever you like.

Does it work with no signal?

Yes, entirely. The cards, the barcode drawing and the retailer list are all on the device. Aeroplane mode changes nothing about what CardJar can do.

Which barcode types does it handle?

EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, Code 93, ITF, Codabar, QR, Aztec and Data Matrix are all drawn on screen. PDF417 is scanned and stored correctly but this version cannot draw it, and the app says so at the moment it matters rather than showing you a blank screen at a till.

What about cards with a code that changes every time?

Those cannot work in any wallet, including this one, and CardJar tells you at the point you add the card instead of letting you find out at the front of a queue.

Is there an iPhone version?

Yes. It is on the App Store, for iPhone and iPad, built from the same shared code as the Android app: the same cards, the same offline catalogue, the same nothing sent anywhere. The App Store button at the top of this page is the listing. It does not include an Apple Watch app.

Can I lock it?

Yes. A fingerprint, face or PIN unlock can be required every time the app opens. If nothing is enrolled on the phone, it lets you in rather than locking you out of your own cards.

Is this page in other languages?

Yes, each with its own text rather than an English page run through a translator: Deutsch, Polski, Français, Español, Italiano, Nederlands and Українська.

Put your cards somewhere that has no opinion about them.

Free, with no account, and nothing about them ever leaves your phone unless you ask it to.

Download CardJar on the App StoreGet CardJar on Google Play™

Free. No account, no sign-up, no email address.