Pass design specs

Wallet pass design specs: sizes, contrast, and the safe zones

Exact pixel sizes for Apple Wallet and Google Wallet passes, contrast ratios that hold up in dark mode, text caps, and a pre-print QR checklist.

Waya TeamUpdated 18 August 202610 min read

Every image slot, in pixels

Apple Wallet wants three densities of three images. The icon ships at 29×29, 58×58, and 87×87 pixels. The logo ships at 160×50, 320×100, and 480×150. The strip — the wide band behind the stamps — is 375×123 at 1x, which means 750×246 at @2x and 1125×369 at @3x.

Apple is unforgiving about this. A pass whose image files don't match the documented dimensions can refuse to render at all, and the phone shows a generic error instead of telling you which file is wrong. That's why Waya resizes every slot on the server at mint time: you upload one logo, and the builder produces all six icon and logo files with a contain fit, so your brand's aspect ratio survives.

There's a fourth, optional slot. The thumbnail — Waya uses it for the reward icon — ships at 90×90, 180×180, and 270×270. If there's no reward icon on file, those files are left out of the bundle entirely rather than padded with a placeholder, because an empty slot renders cleaner than a gray box.

Google Wallet is put together differently. The loyalty class carries a hex background color, a program logo, and an optional hero image, and Google's renderer scale-fits whatever you send into a hero slot that lands around 1032×336. You don't ship density variants for Google; you ship one hosted URL per image and its renderer handles the rest.

Safe zones: what actually gets cropped

The logo slot is the one most people get wrong. At 160×50 it's a 3.2:1 box, so a square logo contain-fitted into it renders about 50×50 at 1x — roughly a third of the width you were given, floating in dead space. Export a horizontal lockup for the wallet: mark and wordmark side by side, cropped tight to the ink, with no built-in padding.

The strip and the hero don't share an aspect ratio, which is the second trap. Waya's generated strip artwork is 1125×432, about 2.6:1, while Google's hero slot is closer to 3.1:1. Send the same file to both and Google crops the sides. Keep the stamp row, the reward mark, and any wordmark inside the middle 80% of the width, and let the outer edges be background you can afford to lose.

Apple also draws pass text over the top of the store-card layout, so the strip's top-left and top-right corners belong to the header field, not to your artwork. Waya sidesteps the collision by rendering the stamps into the strip and leaving the primary field empty on stamp cards. If you're authoring the artwork by hand, treat the top 25% as reserved.

One more, and it costs people a whole print run: a transparent PNG logo is composited onto your card background, not onto white. A near-black logo on a dark green card is invisible, and you won't notice it in a design tool that shows a white canvas. Preview the logo against the actual background color before you save.

Contrast that survives dark mode

Neither wallet re-themes the face of your pass for dark mode. The background color, text color, and label color you ship are what renders at noon and at midnight. What does flip is the chrome around the pass: the iOS lock-screen notification puts your icon on a system background, and the details panel under a Google Wallet card follows the phone's theme.

So the ratio that matters is your text against your own card. Waya scores it with the WCAG 2.1 contrast formula and grades the result: 4.5:1 or better passes AA for small text, 7:1 passes AAA, 3:1 is large-text only, and under 3:1 fails. Pass fields are small text. Treat 4.5:1 as the floor.

Here's the useful part of the math. If you always take the better of white or black text, you can't actually fail AA — the worst background on the spectrum, a mid gray around #757575, still scores 4.61:1 with black text. What mid-tones can't do is reach 7:1. A medium green like #4E9F5B tops out at 6.43:1 with black text; darken it to #0B5B2E and white text scores 8.23:1.

The practical fix for a mid-tone brand color is to darken the card background and keep the bright brand color for the stamps and the strip, where it's decoration rather than text. Give the icon file the same check, because it lands on a notification background you don't control. A mark that only reads on white will look broken on half your customers' lock screens.

Text limits before the wallet truncates

Wallet fields render on one line and ellipsize. There's no wrap, so a caption that's four characters too long doesn't shrink, it gets cut. Waya's designer caps each field at a length that still fits and shows a live counter: reward title 30 characters, reward description 80, terms and conditions 500, address 200, website 200, Google Maps link 300, phone 30, and 40 for a generic field.

Write to the cap rather than around it. "Free medium latte after 8 stamps" is 32 characters, so it won't survive a 30-character reward title. Split it: "Free latte" as the title, "Any medium latte after 8 stamps" in the 80-character description, which is where both Apple and Google have room to show it.

The caps count characters, not words, and they apply identically to Arabic and English cards. If you run both languages off one design, measure the longer of the two strings against the cap instead of assuming the translation shrinks.

The barcode has a limit that's easy to miss. Waya's Apple passes use PKBarcodeFormatQR with messageEncoding set to iso-8859-1, which is Latin-1 and cannot carry Arabic characters at all. If you're building passes yourself, keep the barcode payload to an ASCII identifier and put human-readable text in fields, where it belongs.

Pre-flight checklist before you print the poster

Size the code to the reading distance first. The working rule is 10:1 — the printed code should be about a tenth as wide as the distance someone reads it from. A table tent scanned at 30 cm needs roughly 3 cm of code; a wall poster read from 2 m needs closer to 20 cm.

Waya renders the poster QR at 520×520 pixels on a white background with the quiet-zone margin baked in. That prints clean up to about 4 cm at normal print resolution, which covers counter cards and table tents. Blow the same PNG up to A3 and the edges soften, so scan the printed proof before you order fifty.

Then check the boring things. Keep the white margin around the code and don't drop it on a photo. Don't invert it, because a light code on a dark background fails on plenty of scanners. Skip glossy lamination if the poster sits under a spotlight, since glare beats every scanner ever made.

Last, run one real enrollment yourself. Scan with the native iPhone Camera app and an Android camera rather than an in-app scanner, fill in the form, and watch the pass land in the wallet. Then look at that card on a dark-mode phone and a light-mode phone. Print the code your dashboard generated instead of re-encoding a screenshot through a free QR site, which is how mistyped links end up on 200 printed cards.

Waya's designer enforces the sizes and caps above, so this spec sheet is mostly a way to understand what it's already doing for you. Worth saying plainly what it doesn't do: there's no POS or till integration, and no SMS, so the pass and its wallet notifications are the whole channel. The free plan is 0 SAR forever for up to 100 customers and 100 wallet messages a month with no credit card, and Growth at 85 SAR a month adds design help from the Waya team if you'd rather hand the artwork over.

Frequently asked questions

What size should my logo be for an Apple Wallet pass?

Upload a logo at least 480×150 pixels — that's Apple's @3x logo slot, with 160×50 at 1x and 320×100 at @2x. The slot is 3.2:1, so a wide horizontal lockup fills it while a square mark renders only about 50×50 at 1x. Waya resizes your upload into all three densities with a contain fit, so the aspect ratio you upload is the one that shows.

What are the exact strip dimensions for a wallet pass?

The Apple Wallet store-card strip is 375×123 pixels at 1x, 750×246 at @2x, and 1125×369 at @3x. Google Wallet has no strip; it has a hero image that renders at around 1032×336, so artwork built for Apple gets cropped at the sides on Android. Keep anything important inside the middle 80% of the width.

Do wallet passes change color in dark mode?

No. Apple Wallet and Google Wallet render the pass face using the background and text colors baked into the pass, and dark mode does not invert them. What does change is the surrounding interface — the iOS lock-screen notification and Google Wallet's details panel follow the phone's theme — so your icon needs to read on both a light and a dark notification background.

Why won't my pass open after I changed an image?

The most common cause is image dimensions that don't match the spec, because Apple rejects off-spec icon, logo, and strip files and shows a generic error instead of naming the file. Re-export at the exact pixel sizes and try again. Waya resizes every slot on the server at mint time specifically so this can't happen to a merchant's card.

How big should the QR code on my loyalty poster be?

Print it about a tenth as wide as the distance people read it from: roughly 3 cm for a table tent read at 30 cm, and 20 cm for a wall poster read at 2 m. Keep the white quiet zone around it, avoid inverted colors, and test-scan the printed proof with a phone's native camera app before printing a batch.

Put Waya on your counter — free forever up to 100 customersDesign your card free
Design your card free