Stapel

NL

What Stapel does

One promise: the cashier scans it first time. Everything below is in service of that.

Two widgets, one idea

The wide widget (4×2) is the card that is ready: its colour, its mark and its barcode, with three tappable chips under it for the cards you used next most recently. Walk into a shop it knows and the code switches to that card, with the shop you are standing in named above it. Zero taps between you and the code. That switch is on by default; off, the card you used most recently stays.

The small widget (4×1) is a single row, edge to edge: the card itself, in its own colour, with the barcode across the full width. Tapping opens that card. Standing nowhere in particular, it is the card you used most recently.

The wide widget on a home screen: the Albert Heijn Bonuskaart barcode in a blue frame carrying the AH mark, with three chips under it in their own colours: Mijn Etos, meer HEMA and Kruidvat Club. The small widget: a single row, edge to edge, the Albert Heijn Bonuskaart barcode on the chain's own blue.
Both widgets, photographed on a home screen with the cards from the demo wallet. The small widget has no separate dark version: it is the card, and that colour does not change with the theme.

Quick Settings tile

Two gestures from a locked screen to a barcode. The tile retargets to the same card as the widget.

Launcher shortcuts

On a long press of the app icon: scan, plus the cards you used most recently. How many fit is up to your launcher; usually four.

Arrival detection

Opt-in. Off by default. One switch, on or off.

What the switch does.
Position What it uses What it costs
Off, which is how it ships No location at all Nothing. The widget shows what you use most
On Google Play Services geofencing on the ~20 nearest stores A little battery each day, and it says so on the screen. No percentage: not measured

There is no middle setting to pick. Switching it on asks for precise location, for "allow all the time" and for notifications, and without all three the switch does not move. Set Stapel's location in Android to "only while using the app", or to approximate, and that is not a modest variant but a dead end: Play Services geofencing refuses such a grant, so the app says on the screen what is missing rather than switching on something that would never fire.

On, there are two separate switches, both about what happens on arrival rather than about the measuring: whether the shop you are standing in is named above the barcode, and whether the card may appear on the lock screen. That last one is off; what it costs is on the privacy page.

Underneath this is Google Play Services' GeofencingClient with a radius of about 150 metres, re-armed on the nearest stores whenever you move meaningfully. The app still asks Android directly for your position rather than fused location, and Stapel sends it nowhere. What the geofencing itself gets to see is on the privacy page.

On arrival the widget changes, the tile retargets and one notification fires. That notification is probably the most useful part: nobody is looking at their home screen while walking into a shop.

Three kinds of card

Loyalty card

Points cards and member passes, with the logo, brand colour and icon from the catalogue.

Gift voucher

With an expiry date. From fourteen days out it is flagged as expiring in the voucher list. The balance is text you maintain; Stapel never pretends to know an amount it cannot verify.

Membership

Paid subscriptions such as Pathé Unlimited get a renewal date, shown on the card. Thirty days before that date you get a notification, unless you switch notifications off.

Getting cards in

Scan with the camera

On the device itself. Reads damaged, angled and badly lit codes. What the scanner reports always beats what the catalogue guessed.

From your photo roll

A screenshot from another app just works. One at a time: you pick the image in the scanner, Stapel reads the code and you confirm.

From Catima or Apple Wallet

Stapel reads a Catima export (.zip or .csv) in one go, and a pkpass off an iPhone, one pass per file. Those are the two real interchange formats that exist here.

By hand

Type the number, pick the chain, done. The catalogue suggests a barcode format; that is a hint, not an assumption.

Importing from Stocard or Klarna is not possible. Those apps have no export, so there is no file to read. What does work: scan your cards again, or screenshot every card in the old app and pick them one per card in the scanner.

Organising and finding things

Store finder

Which branches of a chain are near you, from the same database that feeds arrival detection. No map view, no request to anywhere.

Folders and manual order

Drag cards where you want them. No algorithm that knows better.

Pin a branch yourself

If the branch you use is not in the store data, pin it while you are standing in it. That works for a chain that is in the brand catalogue and whose card you hold in the app, and only with arrival detection on; without it there is nothing for the alert to hang on. So the gym round the corner, which is in no catalogue anywhere, cannot be pinned.

Brand catalogue

Hundreds of rows, most of them with a card. The Dutch ones are loyalty programmes and memberships that do carry a card, plus a handful of chains that run nothing and are listed precisely so the app does not suggest them. Alongside those are the foreign rows, for Belgium, Germany, Austria, France, Spain, Italy, Portugal, the United Kingdom, Ireland, Poland, the United States, Canada, Denmark, Sweden, Norway, Finland, Iceland, Brazil, Japan, Australia, New Zealand, Mexico and South Africa. Which countries the app also knows the shops for is a separate list, on the store data page. Some cards are honoured at more than one chain; Colruyt Xtra, for instance, at Colruyt, OKay, Bio-Planet, Spar, Dreamland and DATS 24. The catalogue grows most weeks, so this page does not quote a total that would only be right until the next release.

The app ships brand logos for most of the list: a few files also serve a sister chain in another country, Lidl's among them. They come from Wikimedia Commons and are there only to make the card you already hold recognisable; the provenance and licence of each one is in the app under Privacy → Licences. A chain without a logo gets the brand colour and an icon instead. Any chain that would rather not see its logo here only has to ask.

The list updates itself. It ships with the app as a floor, and the app picks up a signed version once a month over the same secured route as the store data: no account, no extra permission, no new server. When a chain renames its programme you do not have to wait for a new version of the app. The Brands screen says when your list was last updated.

Six of the Dutch programmes were renamed in 2025 or 2026. An outdated name or a wrong colour is a real bug: report it.

Backup and moving phones

Your cards, vouchers and folders in one file you put where you like, and a read-back on the new device. No cloud, no account. The file is not encrypted: it is plain JSON, so you can still open it in ten years, and anyone holding it can read your codes. The app says so on the backup screen too.

Android separately does Auto Backup, which puts a copy in your Google account. The app names that and you can switch it off; how is on the privacy page.

Accessible, and Android-native

Accessible from day one

TalkBack labels on everything, touch targets of at least 48 dp, and state is always a word as well, never only a colour.

Dark mode

Light, dark, or whatever your system is doing, in Stapel's own palette. The widgets do pick up your wallpaper colours where Android offers them; the app's own screens do not.

The card screen in light mode: dark type on white, with the cards below it in their chain's colour.
Light
The same card screen in dark mode: light type on near black, with the same cards in exactly the same chain colours.
Dark

What is deliberately absent

  • No points or stamp counters. Stapel cannot verify a balance, so it will not lie about one.
  • No offers feed. That is the reason the other apps are free.
  • No Google Wallet integration. It needs an issuer account and a server that signs tokens. Both are precisely what this app does not have.
  • No Wear OS in version 1. A watch screen is too small and too dim for a till scanner.
  • No pro tier and no adverts. Free, with the option to donate.

In the Play Store

Stapel is in the Play Store. Free, with no account, and you do not need to be on any list.