PassKit
Loyalty & ReferralCreate and manage Apple Wallet and Google Wallet passes with PassKit, covering membership and loyalty programs, tiers, members, points, and single-use passes. Agents issue and update passes straight to the customer's phone.
What This Integration Enables
PassKit is not a loyalty app. It is the wallet-pass infrastructure that sits underneath one, and the distinction matters when you are choosing where to put your program logic. PassKit owns the pass on the customer's phone: the Apple Wallet serial number, the Google Wallet object, the template that decides what the card looks like, the push that updates it. You own everything above that. The program model it exposes is genuinely structural rather than cosmetic, with programs that own tiers, tiers that own the pass design and expiry rules, members that belong to exactly one tier, and a separate campaign, offer and coupon hierarchy for single-use codes.
That structure is what makes PassKit worth orchestrating rather than clicking. FlowRunner agents provision programs and tiers, enrol members against your own external ID so the record stays addressable from your database, earn and burn and set point balances with the new number pushed to the device in the same call, move members between tiers with the matching wallet notification, record check in and check out events when a pass is scanned at a venue, and run the whole single-use coupon lifecycle from campaign to issuance to redemption to void. PassKit stores personal details encrypted and returns the member ID that doubles as the wallet identifier, which is the join key every downstream system needs. The Orchestration as a Service argument for this connector is simple: the pass is only correct if the systems that own points, tiers and orders agree, and something has to keep them agreeing.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Enrolment and points, driven from the systems that already know
A customer signs up in your store or CRM. The agent calls List Tiers to resolve the entry tier, then Enrol Member with your own external ID attached, and PassKit issues the Apple Wallet and Google Wallet pass and returns the member ID. From then on the pass is downstream of your revenue data rather than of a marketing calendar. A purchase drives Earn Points with the transaction amount attached to the event for later reporting, a redemption drives Burn Points, and a nightly reconciliation against your own loyalty ledger drives Set Points to overwrite the balance absolutely where the two have drifted. Every one of those pushes the new balance to the phone. When the customer crosses a threshold, Change Member Tier swaps the pass template and fires the tier upgrade notification.
Venue check in without a bespoke app
A member scans their pass at the door of a gym, lounge or members club. The agent calls Check In Member with the location, the device and any free-form meta data the door system reports, and the member's status moves to checked in. Check Out Member closes the visit. Because these are events rather than counters, the whole visit history is queryable later, and Count Members with a single field filter answers how many members are on a given tier without pulling every record into the flow. That is the reporting surface that usually justifies the project internally.
Single-use coupon campaigns with a real end state
Marketing wants a campaign of unique codes. The agent calls Create Coupon Campaign, then Create Coupon Offer with the customer-facing wording, the issue window, and both pass templates, the one shown before redemption and the one shown after, so a used coupon visibly changes on the customer's phone. Each qualifying customer gets a Create Coupon call with your own code as the external ID and an SKU that drives the barcode. At the till, Get Coupon By External ID looks the code up and Redeem Coupon stamps it, recording the staff reference, the transaction amount and the location. Get Coupon Campaign Analytics then reports redemptions by day alongside the install split across Apple Wallet, Google Wallet and other Android wallets.
Human-in-Loop Highlight
Void Coupon reaches into a customer's wallet and kills a pass they are already holding. There is no softer version of that: the coupon can no longer be redeemed, the pass on the device is invalidated, and the first the customer learns of it is usually at the till in front of a queue. The legitimate reasons to do it are real, including fraud, cancelled orders and returned goods, but every one of them is a judgment about a specific person rather than a rule. An agent that voids on any chargeback signal will eventually void the pass of a customer whose bank flagged a card the customer still owns. So the agent gathers and asks. It posts to the loss prevention channel: "Chargeback on order 30114 for jane@example.com. The order issued coupon code SUMMER-4471 from the Summer Offer campaign, still unredeemed, expiring in nine days. Void the pass now, leave it live pending the bank's decision, or void and issue a replacement if the chargeback is reversed?" An operator answers. The same gate belongs on Delete Membership Program and Delete Coupon Campaign, which invalidate every installed pass under them at once and cannot be undone. Issuing, earning, burning and redeeming stay automatic. Overwriting a balance the customer can already see with Set Points, or taking something off their phone entirely, does not.
Agent Capabilities
43 actionsMembership Programs
6- Create Membership Program Create the top level container that owns tiers, members and the business rules for a wallet pass. Draft programs use a PassKit certificate and have their data purged every 7 days; publishing requires a custom Apple Developer Certificate on the account. Returns the generated 22 character program ID.
- Get Membership Program Retrieve a program by its PassKit ID with its status, points configuration, distribution settings and issued and installed pass metrics.
- List Membership Programs List the programs on the account with paging, ordering and an optional single field filter. Used to discover program IDs before enrolling members or managing tiers.
- Update Membership Program Update a program, changing only the fields supplied. Used to rename it, move it from draft to published, or adjust expiry and retention rules.
- Delete Membership Program Flag a program for deletion. Every tier and member under it becomes unusable and the passes already installed in Apple Wallet and Google Wallet are invalidated. This cannot be undone.
- Get Program Enrolment URLs Return the SmartPass enrolment page URL and QR code image URL for a program, plus a per tier enrolment page and QR code. Used to let customers sign themselves up and add the pass to their wallet.
Membership Tiers
5- Create Tier Create a tier inside a program. Every member belongs to exactly one tier, and the tier determines the pass template, the expiry rules and whether negative point balances are allowed. At least one tier is required before members can be enrolled.
- Get Tier Retrieve a single tier with its pass template, expiry settings, upgrade and downgrade messages and short code.
- List Tiers List every tier in a program with paging and ordering. Used to resolve the tier IDs that enrolment and tier changes require.
- Update Tier Update a tier to rename it, point it at a new pass template, or change the upgrade and downgrade notifications. Passes already issued in the tier are refreshed with the new design.
- Delete Tier Delete a tier from a program. Move any members to another tier first, because a tier that still holds members cannot be removed cleanly.
Members
7- Enrol Member Enrol a member into a program tier and issue the Apple Wallet and Google Wallet pass. The external ID keeps the record addressable from your own system and cannot be changed later. Personal details are stored encrypted. Returns the member ID, which is also the Apple Wallet serial number and the Google Wallet object identifier.
- Get Member By ID Retrieve a member by PassKit member ID with tier, points balances, encrypted personal details, meta data and pass installation status for both wallets.
- Get Member By External ID Retrieve a member using your own customer reference together with the program ID. Used when your database stores your identifier rather than PassKit's.
- Update Member Update a member record, identified by PassKit member ID or by external ID plus program ID. The default mode merges only the supplied fields; replace mode overwrites every field. The wallet pass is pushed to the device automatically.
- Delete Member Delete a member record and invalidate the wallet pass on the customer device. The pass can no longer be scanned once deleted.
- List Members List members of a program with paging, ordering and an optional single field filter such as tier. Used to export a segment, reconcile a CRM, or drive a downstream messaging step.
- Count Members Return the number of members matching an optional single field filter without transferring the records. Used for dashboards and for checking a segment size before a bulk action.
Points, Tiers and Visits
6- Check In Member Record a check in event, for example when the pass is scanned at a venue, gym or lounge, with location, device and free form meta data attached. The member status moves to checked in.
- Check Out Member Record a check out event for a member who was previously checked in, closing the visit and moving the status to checked out.
- Earn Points Add points to a member balance and push the new balance to the pass on the device. Primary, secondary and tier points can be awarded in one call, with event details such as the transaction amount attached for reporting.
- Burn Points Deduct points when a reward is redeemed and push the updated balance to the pass. A negative result is rejected unless the tier allows overdrawn balances.
- Set Points Overwrite a member's points balance with an absolute value rather than adding or subtracting. Used to synchronise PassKit with an external loyalty ledger, or to zero a balance.
- Change Member Tier Move a member into a different tier of the same program. PassKit swaps the pass template, applies the upgrade or downgrade notification and pushes the new design to both wallets.
Coupon Campaigns
6- Create Coupon Campaign Create the container that owns coupon offers and the individual coupons issued from them. The campaign name is internal and never shown to the customer. Returns the generated 22 character campaign ID.
- Get Coupon Campaign Retrieve a campaign by its PassKit ID with its name, status, timezone and creation dates.
- List Coupon Campaigns List the single use coupon campaigns on the account with paging, ordering and an optional single field filter. Used to discover campaign IDs before creating offers or issuing coupons.
- Update Coupon Campaign Update a campaign to rename it, change the timezone, or move it from draft to published once a custom Apple Developer Certificate is in place.
- Delete Coupon Campaign Flag a campaign for deletion. Every offer and issued coupon under it becomes unusable and the passes already installed in customers' wallets are invalidated. This cannot be undone.
- Get Coupon Campaign Analytics Return redemption statistics grouped by day, month or year, with an installation breakdown across Apple Wallet, Google Wallet and other Android wallets and totals per distribution source, narrowable to one offer and a date range.
Coupon Offers
5- Create Coupon Offer Create an offer inside a campaign holding the customer facing wording, the issue window, the expiry rule and the pass templates used before and after redemption, so a redeemed coupon visibly changes on the device.
- Get Coupon Offer Retrieve an offer with its wording, pass templates, quota, issue window, expiry settings and redemption settings.
- List Coupon Offers List the offers belonging to a campaign with paging, ordering and an optional single field filter. Used to find the offer ID required when issuing coupons.
- Update Coupon Offer Update an offer to correct wording, swap a pass template or extend the issue window. Template changes are pushed to every unredeemed coupon already installed in a wallet.
- Delete Coupon Offer Delete an offer from its campaign. Coupons already issued from it can no longer be redeemed, so delete only offers that have finished their lifecycle.
Coupons
8- Create Coupon Issue a single use coupon from an offer and generate the Apple Wallet and Google Wallet pass. The external ID stores your own coupon code and is immutable; the SKU drives the barcode value. Every coupon starts unredeemed.
- Get Coupon By ID Retrieve a coupon by PassKit coupon ID with its redemption status and details, SKU, meta data and wallet installation status.
- Get Coupon By External ID Retrieve a coupon using your own code together with the campaign ID. Used at the point of sale where the cashier scans the code printed in your system.
- Update Coupon Update an issued coupon and push the change to the pass on the device, correcting the SKU, refreshing personal details, adjusting meta data or moving a variable expiry date. The external ID cannot be changed once set.
- Redeem Coupon Mark a coupon as redeemed at the point of sale. PassKit stamps the redemption date, switches the pass to the after redemption template where the offer defines one, and stores the redemption code, staff or till reference, transaction amount and location. A coupon can only be redeemed once.
- Void Coupon Void an issued coupon so it can no longer be redeemed, invalidating the pass held in the customer's wallet. Used for fraud, cancelled orders or returned goods, and the operation that should always carry an approval gate.
- List Coupons List the coupons issued in a campaign with paging, ordering and an optional single field filter such as redemption status. Used to reconcile redemptions or export a batch of codes.
- Count Coupons Return the number of coupons matching an optional single field filter without transferring the records. Used to report on redemption rates or check how much of an offer quota is left.
Frequently Asked Questions
What can FlowRunner do with PassKit?
FlowRunner agents can run Create Membership Program, Get Membership Program, and List Membership Programs in PassKit, plus 40 more actions.
Does connecting PassKit to FlowRunner require OAuth?
PassKit uses a custom authentication method to connect to FlowRunner.
Can PassKit trigger a FlowRunner workflow automatically?
PassKit doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with PassKit
$100 in credits. No card required. Connect in minutes.