Wallet
Understand how passes are created, updated, and rendered in The Wallet Crew.
Wallet
Wallet work in The Wallet Crew follows a simple lifecycle. A pass is created during an enrolment flow or from a connector event. After creation, templates control what appears in Apple Wallet and Google Wallet, while the API manages existing passes over time.
Real-world examples
A loyalty pass is created during account signup, then refreshed after each purchase.
A ticket pass is created from an order event, then updated when gate or seat data changes.
A membership pass is created after registration, then kept current through connector data and pass-level overrides.
Choose the right creation flow
Enrolment flows
Use Enrolment flows when pass creation happens during signup, checkout, registration, or another user-facing journey. This is the usual pattern when a web flow, app flow, or hosted form controls issuance.
Connector-triggered pass creation
Use Connector-triggered pass creation when an upstream system decides eligibility and creates the pass from an event. This is common for CRM, ticketing, or subscription-driven issuance.
The API manages passes after they exist. It does not create new passes.
Build and maintain the pass
Once a pass exists, the next step is usually to decide how wallet fields are populated and refreshed. Update pass data in templates explains how stored values and connector data reach the template. Templating engine documents the supported Liquid behavior used in those templates.
If the pass data model needs a refresher first, use Pass data and sync.
Pages in this section
Enrolment flows explains user-facing pass creation.
Connector-triggered pass creation explains source-driven pass creation.
Update pass data in templates explains how to update existing passes and display the right values.
Templating engine explains supported Liquid syntax, filters, and error behavior.
FAQ
Can passes be created directly with the API?
No. Pass creation belongs to enrolment flows or connector-triggered creation. The API is used after the pass already exists.
Last updated

