Back to the blog

How-To

How to Create a Digital Stamp Card: Branding, Apple & Google Wallet, AI Generator, and 70+ Customizations

Step by step: how to set up your first program in reloop — from brand colors and stamp icons to the Wallet pass. Three ways, 70+ options, live preview.

reloop Team· updated 12 min read
Create a ProgramApple WalletGoogle WalletBrandingAI GeneratorStamp Card

When you create a digital stamp card, you're really building two Wallet passes at once behind the scenes: an Apple Wallet .pkpass and a Google Wallet loyalty object. Both are generated from a single configuration in the reloop dashboard. This article walks you through all three ways to set up a program and explains every one of the 70+ configuration options — from branding and stamp mechanics to anti-fraud features. Before you start: you'll find the full dashboard overview in the pillar article.

Three ways to your first stamp card

You have three options for creating your first program — and they all land in the same editor in the end:

  1. AI generator from your homepage URL — fastest route, ~10 seconds
  2. Create manually — full control, blank form
  3. Copy from an example — use one of our demo examples as a template

Option 1: AI generator

You click "Create with AI," enter your website's URL, and the system scrapes your homepage. Within 10–15 seconds you get a draft that includes:

The draft is cached for 10 minutes in your sessionStorage. You land in the normal program editor with all fields prefilled — and you can adjust everything before you save. If there are extraction issues (for example, a missing logo), the editor shows warnings.

Option 2: Create manually

If you already have clear branding, or your business isn't publicly listed (insider loyalty, early-bird programs), start with "Create manually." You land in a blank editor and fill in the fields yourself. Time: ~3–5 minutes for a standard program.

Option 3: Copy from an example

At reloop.cards/beispiele you'll find six interactive demo passes (café, restaurant, hair salon, bakery, dog groomer, food truck). Each one can be cloned directly into your account as a template — you inherit the mechanics and brand style and just tailor them to your business. Skip designing from scratch.

Program basics

No matter which route you take, these four fields are the foundation of every program:

FieldDescriptionExample
Program nameVisible title on the Wallet card and in the dashboard"Coffee Loyalty Card"
SubtitleOptional sub-headline, shown in italics on the pass"Your 5th is free"
Reward textWhat the customer gets when the card is full"1 coffee on the house"
Homepage URLClickable link on the back of the pass, optionalhttps://cafe-milchschaum.at

Stamp mechanics

FieldRange / DefaultMeaning
Stamp goal2–100 (default: 5)How many stamps until the reward
Max. stamps per day1–10 (default: 1)Anti-fraud daily limit per card
Expiry in days0–730 (0 = never)Stamps expire after X days of inactivity
Bonus display timingat_max | before_maxReward state at N, or already at N–1
Bonus display show extraBoolean"+1 stamp" suffix in the counter (X/Y+1)

Branding: colors, logo, background

Branding is what makes the difference between a generic "loyalty card" and a card that looks like your business at first glance.

Cafe MilchschaumWallet
Coffee Loyalty Card
Your 5th coffee free
2 / 5 StempelQR-Code
Brand color espresso (#5B3826), accent caramel (#E8C180), stamp emoji ☕
FieldFormatEffect
Brand colorHex #RRGGBBCard background; text contrast is chosen automatically
Accent colorHex #RRGGBBStamp highlights, reward eyebrow, CTA buttons on the pass
LogoURL (Firebase Storage, max. 2 MB)Appears in the pass header, automatically scaled for retina (1×, 2×, 3×)
Strip backgroundURL, optionalBackground image behind the stamps (e.g. a latte photo for a café)
Strip overlay modenone / darken / lighten / brand-tintHow the background image blends with the brand color
Strip overlay opacity0–80% (default: 35%)Strength of the overlay

Stamp display: circle-with-number or image-only

You have two fundamental display modes:

circle-number (default)

Classic numbered circles. Unstamped: outline. Stamped: filled with the accent color, number in the brand color. Works well for 5–10 stamps.

image-only

Just stamp icons (emoji or a custom URL), no numbers. Unstamped: grayscale. Stamped: full color. Modern and very stylish for boutique brands.

Additional optionsMeaning
Stamp icon URLCustom image (PNG, transparent), e.g. your logo symbol
Stamp emojiFrom a curated palette (☕, 🥐, ✂️, 🐶, etc.) or any emoji
Stamp icon scale50–200% (default: 100%) — bigger = more prominent
Image-only: show goal ringIn image-only mode: toggle the progress ring around empty slots

Goal icon: the symbol for the "final stamp"

By default, the slot just before the reward shows a star. You can replace this icon:

FieldEffect
Use custom goal iconToggle: your own icon instead of the star
Goal icon URLImage URL (e.g. your logo as a crown)
Goal icon emojiOr an emoji (e.g. 🏆)
Goal icon accent tintTints the icon in your accent color
Cafe MilchschaumWallet
Coffee Loyalty Card
🎉 Glückwunsch
Your 5th coffee free
Bereit zum EinlösenQR-Code
Reward state: sunburst, eyebrow text, the big reward front and center.

Reward screen: the moment of payoff

When the card is full, the pass switches into the reward state. Here you get just as many customization options as you do for the progress state:

FieldMeaning
Reward background URLCustom hero image for the reward state (e.g. a photo of your signature drink)
Reward background colorSolid color as a fallback when there's no image
Reward overlay modeSame as the strip above
Reward overlay opacity0–80%
Reward eyebrow textSmall headline element above the reward (e.g. "🎉 Congratulations")
Reward text colorHex color for the big reward line
Reward sunburstRadiating animation behind the reward — celebratory
Hide reward eyebrowToggle: omit the eyebrow (for a minimalist design)
Hide reward textToggle: image only, no text (when the image already says it all)

Apple Wallet integration: the .pkpass format

For Wallet passes, Apple requires its proprietary PassKit format — a signed ZIP file with a strictly defined structure. reloop generates this server-side:

When you trigger the pass generator, the following pipeline runs:

  1. Program data from the editor → AppleWalletInput
  2. Logo fetch from Firebase Storage (8s timeout, 15min TTL cache)
  3. Sharp resizing to all retina sizes
  4. renderAppleStripSet() renders the strip images with your colors, stamps, goal icon, and sunburst (if in the reward state)
  5. Pass.json is populated with all fields
  6. The PassKit generator signs the ZIP
  7. The .pkpass is delivered

The customer taps "Add to Wallet" — no app installation. iOS automatically recognizes the MIME type application/vnd.apple.pkpass.

Push updates via APNs

As soon as a new stamp arrives, reloop sends an APNs push to Apple's servers. Apple wakes the pass on the device, which quietly loads the new data in the background. The customer sees the new stamp count the next time they open the card — no app update, no reinstall.

Google Wallet integration: LoyaltyClass + LoyaltyObject

Google uses an API-centric model. For each program we create a LoyaltyClass (static branding), and for each card a LoyaltyObject (the dynamic stamp count). On every stamp, the backend makes a PATCH request — and Google syncs the card automatically across all of the user's devices.

What the LoyaltyClass contains

What the LoyaltyObject contains

Push notifications via Wallet broadcast

Unlike Apple, Google can send direct push notifications to the lock screen. In the dashboard you write a header and body, pick the target programs — and the notification appears for all Google Wallet users as a banner right on the lock screen. More on this in the reporting spoke.

Live preview: what you type is what you see

As you write in the editor, the WalletSimulator runs on the right — the same component we use on /beispiele for demo passes. You toggle between Apple and Google, scrub through every stamp state (0/5, 1/5, …, 5/5 + reward), and see immediately how colors, icons, and text behave at each step.

reloop.cards/dashboard/programs/cafe-milchschaum

Edit program

Sunburst on redemption
Rotating QR barcode
Hide watermark
Live preview
Cafe MilchschaumWallet
Coffee loyalty card
The 5th coffee free
12345
3 / 5 StempelQR-Code
The editor with live preview. Every change on the left renders in the preview on the right in under 300 ms.

Strip image rendering runs server-side at /api/wallet-preview/strip.png and is cached for 200 ms — fast drag inputs (e.g. the color picker) get bundled into a single request to keep things smooth.

Email capture & loyalty tiers

Two especially powerful features for advanced programs:

Email capture modes

ModeBehavior
offNo email capture. The card is 100% anonymous.
optionalAfter save-to-Wallet, an email field is offered. Bonus stamps as an incentive are possible.
requiredThe card can only be saved with an email. Maximum reach for your newsletter.

Email capture reward stamps = the number of bonus stamps the customer gets for entering their email. Typical values: 1–2 stamps. Very effective as a conversion driver.

Loyalty tiers (Bronze / Silver / Gold)

On the Premium plan you can build multi-tier programs: a card has tiers, and the customer advances to the next tier each time they complete a row of stamps. The tierConfig is a JSON block that defines reward text, threshold, and display name per tier.

Example (a fictional café): Bronze (5 coffees → free coffee), Silver (15 coffees → +1 free croissant), Gold (30 coffees → personalized mug with your name). Very strong for retaining existing customers.

Anti-fraud: rotating QR code, NFC tap, block card sharing

Three security features that prevent abuse:

Rotating QR code (TOTP)

The QR code on the card rotates every 30 seconds. Any stamp attempt with an old code fails. This prevents screenshots and photo sharing. Available from the Business plan up. TOTP is the same standard used by authenticator apps — very secure.

NFC tap stamping

Instead of a QR code, the customer holds their phone to an NFC tag on your counter. The stamp is booked instantly, without you or the customer opening an app. The only requirement is an NFC tag provisioned by us. Included on every plan.

Block card sharing

For Google Wallet: screenShotEligibility: INELIGIBLE and multipleDevicesAndHoldersAllowedStatus: ONE_USER_ALL_DEVICES. This means cards can't be forwarded, and screenshots block the pass display. Maximum protection against card sharing. Included on every plan.

Standard anti-fraud (active on every plan)

Publishing, QR code, pause/end

Once you're happy, you click Publish. The program switches to active status, the QR code is generated (/s/[slug]/scan URL as a QR), and you can:

Pausing or ending a program

Creating test cards

Before going live, you should run through the entire customer workflow yourself. In the program editor, click "Create test card" — you get a fully functional card with no real customer ID that you can stamp, redeem, and delete yourself. Test cards don't count against your card quota and are reported separately.

Summary: your first program in 5 minutes

If you go through it step by step:

  1. AI generator → type in your URL, review the draft
  2. Adjust the program basics (name, reward, stamp goal)
  3. Finalize your branding (logo, colors, stamp emoji)
  4. Check the live preview — scrub through every stamp state
  5. Choose your anti-fraud settings (standard is usually enough)
  6. Publish → print the QR → hand out your first card

Keep reading

More from the reloop blog

Launch your digital stamp card without an app project.
Create your first card, test it in the wallet and get your team up and running with staff scanning.

Ready for a stamp card your guests will actually use?

Try the digital wallet stamp card yourself or start for free with your first program.

© 2026 candybytes GmbH, Linz. reloop is a digital wallet loyalty solution for Apple Wallet and Google Wallet.

Apple Wallet is a trademark of Apple Inc. Google Wallet is a trademark of Google LLC. reloop is not an official partner of Apple or Google.