Beep

Beep

Showing a loyalty card barcode from your phone at the checkout

Updated · TIT

A barcode on a screen should work like a barcode on plastic, and nearly always does. When it doesn't, the cause is usually one of a handful of things: a barcode drawn at the wrong size, a screen that went dark, a glossy protector, or a format the app changed on the way. Here is what matters, and what Beep does about each.

Download on the App Store

Why a barcode on a screen can fail

A one-dimensional barcode is read from the relative widths of its bars. On a screen, a barcode scaled to a fraction of a pixel gets neighbouring bars that differ by a pixel, and the scanner reads nonsense. Beep draws every barcode at a whole number of device pixels per bar, full width on a white panel in light and dark mode alike, so the widths are exactly what the format expects.

The rest is physical: don't cover the barcode with a thumb, and a heavily matte screen protector or a cracked screen scatters the laser — tilting the phone slightly usually fixes it.

Brightness, and the screen going dark

While a card is open, Beep keeps the screen awake so it doesn't lock while you wait in the queue. It does not change your brightness: an app that forces the screen to maximum overrides what you just set in a dark room, and modern scanners read a screen at normal brightness without trouble. If your screen is dim, turn it up yourself.

The number is always there

Beep prints the card number under the barcode, grouped for reading, because every till can also type a number in. Beep supports EAN-13, EAN-8, UPC-A, Code 39, ITF, Code 128, QR, PDF417 and Aztec, and checks the number when you add a card so a typo doesn't save a card whose barcode can't be drawn.

Apple Wallet and barcode formats

Up to iOS 26, Wallet could show only four formats: QR, PDF417, Aztec and Code 128. iOS 27 added EAN-13, Code 39 and ITF, and Beep's passes carry both: on iOS 27 a card printed with EAN-13 (the usual one on supermarket cards), UPC-A, Code 39 or ITF keeps its own barcode in Wallet, and on earlier versions the same pass shows Code 128 with the same number, which is what the till looks up. EAN-8 goes in as Code 128 on every version. Beep says so on the card screen whenever Wallet will show Code 128.

A pass added before Beep 1.2 has only the Code 128; add the card to Wallet again to get its own barcode. And if a scanner won't read the Wallet pass, open the card in Beep, where it's always drawn as printed.

All Beep cards sit in one stack in Wallet; that's how Wallet groups passes signed with the same certificate. Swipe the stack to move between them.

Finding the card before it's your turn

Search by store name, filter loyalty cards from gift cards, sort by most used, or drag the cards you use weekly to the top. The wall shows two or three columns with each store's logo, so the right card is one tap away. Quicker still: open it from a widget on the Home Screen or Lock Screen, ask Siri, or, on iOS 18, use Control Centre or Spotlight. And since the cards live on your iPhone, none of this needs a signal in the shop.

Frequently asked questions

Does Beep turn the brightness up for the barcode?

No. It keeps the screen awake while a card is open but leaves the brightness to you. Turn it up if your screen is dim.

The scanner won't read my screen — what now?

Tilt the phone slightly, remove a thumb from the barcode, and check the brightness. If it still won't read, the cashier can type the number printed under the barcode.

Why does my barcode look different in Apple Wallet?

Before iOS 27, Wallet can't show EAN-13, UPC-A, Code 39 or ITF, so the pass shows Code 128 with the same number; EAN-8 is always shown as Code 128. On iOS 27 the pass keeps the card's own barcode — for a pass added before Beep 1.2, add the card again. In Beep itself the card is always drawn in its original format.

Does it work without internet in the shop?

Yes. Cards are stored on your iPhone and shown offline; nothing is fetched when you open one.

More about Beep