Pass templates
A pass template is the structural and visual foundation for a family of passes. It defines what kind of pass you're creating, which fields appear on it, how it looks, and what data it carries. Once your template is saved, you can issue hundreds of individual passes from it in seconds. All of them will be personalized, and consistent with your brand.
Template are living objects. Update a template and propagate changes to all active passes at once, without the need to re-issue it.
Your template is the first impression. Use your brand colours, logo, and a compelling background image to make your passes feel like a natural extension of your brand.
Template types
Actito Wallet supports seven distinct pass types, each designed to match a specific interaction pattern. Select the type that best represents your use case. The underlying layout, Apple Wallet style, and Google Wallet class will be configured automatically.
Loyalty
⭐ Reward every visit. Retain every customer.
Loyalty passes are the digital evolution of the membership card. They sit permanently in your customer's wallet, updating silently in the background as points accumulate, tiers change, and rewards unlock. Because the pass is always there, on the lock screen, at the till, on the bus, customers identify themselves more often, collect more consistently, and engage more deeply with your programme.
Ideal use cases:
- Retail loyalty and points-collection programmes.
- Coffee shop and hospitality stamp cards.
- Tiered membership programmes (Silver, Gold, Platinum).
- Subscription and recurring purchase reward schemes.
- Partner loyalty coalitions and multi-brand programmes.
Offer
🏷️ The coupon, reinvented. Dynamic, trackable, and impossible to lose.
Offer passes replace paper coupons and static email vouchers with living, breathing digital promotions. Set expiry dates, redemption limits, and location triggers. Update the offer value, extend the deadline, or swap the offer entirely... all without reissuing the pass.
Ideal use cases:
- Discount coupons and percentage-off promotions.
- Time-limited flash sales and seasonal campaigns.
- Welcome offers and first-purchase incentives.
- Referral rewards and partner cross-promotions.
- Location-triggered in-store offers.
Gift card
🎁 The gift that goes everywhere: branded, digital, and always ready to spend.
Gift card passes let you issue branded, value-bearing cards that live in the recipient's wallet from the moment they're sent. Display the current balance, update it after every partial redemption, and surface the card automatically at checkout. Unlike physical gift cards, digital gift card passes never get left in a drawer: they're always one tap away.
Ideal use cases:
- Retail and e-commerce gift cards.
- Restaurant and hospitality pre-loaded dining credits.
- Corporate gifting and employee reward programmes.
- Subscription credits and service vouchers.
- Promotional top-ups and cashback rewards.
Event ticket
🎟️ Turn admission into an experience — before, during, and after the event.
Event ticket passes are designed for moments that matter. Whether it's a concert, a conference, a sporting fixture, or a private dinner, this template type puts the full power of digital engagement behind your ticket. Display seat details, venue maps, personalised greetings, and barcodes, then use push notifications to keep attendees informed with lineup changes, schedule updates, or exclusive on-site offers.
Ideal use cases:
- Concert and festival ticketing.
- Sports events and stadium access.
- Conferences, summits, and trade shows.
- Theatre, cinema, and cultural events.
- Private member events and exclusive experiences.
Flight
✈️ From check-in to touchdown, a seamless boarding experience in your customers' pocket.
Flight passes bring the airline boarding experience into the digital age. Structured around departure and arrival data, they surface automatically when you arrive at the airport, update in real time when flights change, and display everything a traveller needs without ever opening an app. Seat number, boarding times, terminal information and barcodes all live in one scannable card.
Ideal use cases:
- Airline and charter flight boarding passes
- Private aviation and executive travel services
- Airport lounge access and fast-track entry cards
- Integrated loylaty tier display for frequent flyers
Transit
🚆 Faster journeys, fewer queues, digital transit passes that move as fast as your customers.
Transit passes are purpose-built for public and private transportation: buses, trains, ferries, metro systems, and shared mobility services. They're optimised for rapid scanning at entry points and can be updated dynamically. Perfect for multi-journey tickets, season passes, or real-time travel credits.
Ideal use cases:
- Bus, tram, and metro season tickets.
- Ferry boarding passes and day passes.
- Inter-city rail tickets and multi-modal travel cards.
- Bike-sharing, scooter, and car-club access passes.
Generic
📋 When your use case doesn't fit a box, build exactly what you need
The Generic template is your blank canvas. It provides a flexible layout with no predefined field semantics, giving you complete control over what appears on the pass and how it's structured. It's ideal for use cases that don't naturally map to a specific category — membership credentials, access control passes, student IDs, health cards, and more.
Ideal use cases:
- Member ID and credential passes.
- Employee access badges and workplace credentials.
- Library cards, student IDs, and institution passes.
- Insurance cards and healthcare access passes.
- Access control and venue entry passes.
Pass structure
Regardless of pass type, all passes share the same field architecture. Understanding this structure is essential for designing passes that are effective and readable across all devices.
Field architecture
- Apple Wallet
- Google Wallet
Apple Wallet organises pass content into named, position-based field zones. Each zone has a fixed visual role and strict limits on the number of fields it can contain.
| Field zone | Visibility | Role and usage guidance |
|---|---|---|
| Header Fields | Always visible, including when passes are stacked | The topmost zone on the pass. Reserve for the most critical identifier: member number, service class, tier status. Maximum 3 fields. |
| Primary Fields | Pass front | The most visually prominent zone. The first thing your customer sees: points balance, event name, departure city. 1 field for most pass types, 2 for flight and transit (origin + destination). |
| Secondary Fields | Pass front | Supporting information displayed below the primary field. Date, time, seat number, holder name. Maximum 4 fields. |
| Auxiliary Fields | Pass front | Useful but non-essential details: terminal, gate, confirmation number. Maximum 4 fields. Displayed in a single row for offer and loyalty passes. |
| Back Fields | Pass back (tap the ⓘ icon) | Displayed on the reverse of the pass. Terms and conditions, FAQs, contact details, web links. No limit on quantity or text length. |
| Barcode | Pass front | The scannable element. QR Code, PDF417, Aztec, or Code128. Displayed at the bottom or centre of the pass depending on type. |
Google Wallet does not use position-based field zones. Pass content is structured through two complementary mechanisms: semantic class properties specific to each pass type, and generic content modules shared across all types. Visual rendering is handled automatically by Google based on the pass class and the data provided.
Semantic class properties
Each Google Wallet pass class exposes structured, typed properties specific to its use case. These are not free-form fields — they are named properties with defined data types, and their visual placement is determined by Google.
| Pass type | Google Wallet class | Key semantic properties |
|---|---|---|
| Flight | FlightObject / FlightClass | flightHeader.departureAirport.airportIataCode, flightHeader.arrivalAirport.airportIataCode, flightHeader.flightNumber, boardingAndSeatingInfo.seatNumber, boardingAndSeatingInfo.boardingTime, localScheduledDepartureDateTime |
| Transit | TransitObject / TransitClass | ticketHolder.name, tripType, ticketLeg.originName, ticketLeg.destinationName, ticketLeg.departureDateTime, ticketLeg.transitOperatorName |
| Event Ticket | EventTicketObject / EventTicketClass | eventTicketClass.eventName, seatInfo.seat, seatInfo.row, seatInfo.section, reservationInfo.confirmationCode |
| Loyalty | LoyaltyObject / LoyaltyClass | loyaltyPoints.balance, loyaltyPoints.label, secondaryLoyaltyPoints, accountName, accountId |
| Gift Card | GiftCardObject / GiftCardClass | balance.micros, balance.currencyCode, cardNumber, pin, eventNumber |
| Offer | OfferObject / OfferClass | offerClass.title, offerClass.provider, offerClass.redemptionChannel, offerClass.localizedDetails |
| Generic | GenericObject / GenericClass | cardTitle, subheader, header, textModulesData, barcode |
Generic content modules
All Google Wallet pass types support a set of generic content modules for supplementary information.
| Module | Purpose | Usage guidance |
|---|---|---|
textModulesData | One or more label/value text pairs displayed in the pass body. | Use for any structured information not covered by semantic properties: confirmation numbers, membership details, programme rules. Each entry has a header (label) and a body (value). |
linksModuleData | Clickable links displayed in the pass details view. | Use for URLs, phone numbers, and email addresses. Supports uri, description, and kind (URL, PHONE, EMAIL). |
imageModulesData | One or more images displayed in the pass body. | Use for supplementary visuals beyond the hero image or logo. Each entry references a publicly accessible HTTPS image URL. |
messages | A banner message on the pass, optionally time-limited. | Use for temporary communications: a promotion, a reminder, an urgent notice. Supports header, body, and optional displayInterval. |
infoModuleData | Legacy label/value pairs (older API versions). | Replaced by textModulesData in current implementations. Avoid for new passes. |
textModulesData is your go-to module for everything that doesn't fit a semantic property. Think of it as a flexible, structured notepad on the pass — use it for any label/value pair you want displayed in the pass body.
Images
- Apple Wallet
- Google Wallet
Dimensions are expressed in points. Multiply by 2 for @2x Retina and by 3 for @3x — always upload at the highest resolution needed.
| Image | Dimensions (points) | Usage and recommendations |
|---|---|---|
| Icon | 29 × 29 pt | App icon visible in system notifications and pass lists. PNG with transparent background strongly recommended. |
| Logo | 160 × 50 pt | Your logo displayed in the top-left corner of every pass. Transparent background mandatory to adapt to any background colour. |
| Strip | 375 × 123 pt | Horizontal visual band displayed below the primary fields. Used for offer, loyalty, and gift card passes. (375 × 98 pt for event ticket passes.) |
| Background | 180 × 220 pt | Full-pass background image. Available for event ticket and generic passes. Use dark images to ensure text legibility. Mutually exclusive with Strip. |
| Thumbnail | 90 × 90 pt | Small square image to the right of the primary fields. Ideal for a product visual, artist photo, or event logo. |
| Footer | 286 × 15 pt | Thin strip at the bottom of transit and flight passes, above the barcode. Often used for partner logos or regulatory information. |
Always upload images at the highest resolution needed (preferably @3x), keeping each file under 1 MB. Heavy images degrade pass download time and the overall customer experience.
Google Wallet images are not embedded in the pass file — they are referenced by publicly accessible HTTPS URLs defined in the pass class or object. Dimensions are in pixels.
| Image | Property | Dimensions (pixels) | Usage and recommendations |
|---|---|---|---|
| Issuer Logo | logo (class-level) | 660 × 660 px | Displayed in the top-left corner of the pass. Square format. PNG with transparent background recommended. Identifies the issuing brand at a glance. |
| Hero Image | heroImage (class-level) | 1032 × 336 px | Wide horizontal banner displayed prominently on the pass. The primary visual impact zone — use it for your strongest brand or event visual. Available for all pass types. |
| Wide Logo | wideLogo (class-level) | 1032 × 336 px | Available for Flight and Transit passes. Replaces the hero image to display the operator or airline logo in wide format. Mutually exclusive with hero image on these pass types. |
| Program Logo | programLogo (Loyalty class) | 660 × 660 px | Specific to Loyalty passes. Represents the loyalty programme rather than the issuing brand. |
| Thumbnail | thumbnail (object-level) | 246 × 246 px | Small image displayed alongside the pass title on certain pass types. |
Images must be hosted on a publicly accessible HTTPS URL — they are fetched at pass load time. Optimise files for fast loading and keep them under 500 KB where possible.
Relevance
Relevance is one of the most powerful features of digital passes. It allows a pass to appear automatically on a customer's lock screen at the right place and the right time, with no action required on their part.
- Apple Wallet
- Google Wallet
| Relevance type | Behaviour | Configuration |
|---|---|---|
| Location-based | The pass appears on the lock screen when the customer enters a defined radius around a GPS coordinate. | GPS coordinates (locations array: latitude, longitude, optional relevantText shown on the lock screen). Default radius: 100 metres. |
| BTLE Beacons | Ultra-precise triggering based on short-range Bluetooth beacons deployed on-site. | Up to 10 beacons per pass (beacons array: proximityUUID required, major and minor optional). Requires physical beacon hardware. |
Combine location relevance with a push notification for a perfect brand moment: when your customer walks past your store, their loyalty pass surfaces on their lock screen — and if you've just added points, a notification tells them the good news at the very same instant.
Google Wallet surfaces passes through notification suggestions driven by the Google Pay layer on Android.
| Relevance type | Behaviour | Configuration |
|---|---|---|
| Location-based | The pass is surfaced as a notification suggestion when the customer's device detects proximity to a defined location. | locations array at class level (latitude, longitude, optional label). Triggered by Google's location services — no beacon hardware required. |
Google Wallet does not support Bluetooth beacon relevance. For precise proximity triggering in physical spaces, use location-based relevance with a tightly defined radius, or combine it with a server-side push notification triggered by your own beacon or geofencing infrastructure.
Template personalizations
Once your template is ready, you can personalise its fields using attributes from Actito. To do so, select your template and click on Template personalisations:

In the personalization panel, you will find all the pass fields from the template that you can personalize based on all the personalizations available in Actito:

When a pass is issued, it will automatically be personalised with the data from the recipient's profile.
Distributing the passes
Once your pass template is created and your template personalizations are configured, you can distribute passes directly through an email campaign.
Adding the Wallet block to your email
In the email editor, open the block library and navigate to App/Wallet. You will find the Wallet modules in different languages, that you can drag and drop into your email layout.

The Wallet module displays two native buttons — Add to Apple Wallet and View in Google Wallet — that your recipients will use to install the pass directly from their email.
Linking the block to your pass template
Behind each button, you can add a URL. This URL should be set as a personalization, so that each recipient receives a link to their own individual pass.
To do so:
- Hover over the button and choose "Add a new link"
- Add a personalization in the "Link" that refers to the pass link.
- Make sure the corresponding personalization is configured in your template personalizations, so that the correct pass URL is injected for each recipient at send time.
The pass link must be generated from a template that is ready to use. Make sure your template is fully configured — including personalization, fields, design, relevance, and barcode — before using it in an email campaign.