When someone subscribes in Stripe, they get an Apple Wallet or Google Wallet membership card showing their plan and renewal date — and it updates itself when they renew, downgrade, or cancel. No code, no resend.
A few ways teams put Stripe and Passmint to work together.
One Zap links the two — live in a few minutes, no code involved.
In Zapier, add Passmint as a connected app and paste your API key when prompted. Zapier verifies it against your account immediately, so you'll know the connection works before building the rest of the Zap. Use a pmk_test… key while you're wiring this up against Stripe test mode.
Create a new Zap and choose Stripe as the trigger app. Pick the trigger that fires when a customer starts a subscription, connect your Stripe account, and send a test so Zapier pulls a sample subscription — including the customer's email and name, the plan/price, the subscription status, and the current period end. Those become the fields you'll map onto the card.
TODO(verify): Confirm Stripe's exact trigger for a started subscription (Stripe exposes several subscription-related events) and that the test payload surfaces customer email/name, the plan or price name, the subscription status, and current_period_end. Some setups expose the customer as a nested object or a separate lookup — note whether you need an extra Find Customer step to get the email.
Add an action step, choose Passmint, and select Create Pass. Pick your membership template from the dropdown — Zapier loads your templates automatically. Map Holder Email from the Stripe customer's email and Holder Name from the customer's name; the email is what every later lifecycle step will use to find this exact card again, so it's worth getting right here.
In Field Values, map the Stripe plan/price name to your template's plan (or tier) field, the subscription status to a status field, and the current period end to a renews_on field. The key on the left must match a field name in your Passmint template character for character; the value on the right is the Stripe field. Format the period-end date here if you want it human-readable on the card — Stripe gives it to you as a timestamp.
TODO(verify): On a real template, confirm the Field Values keys you reference (plan/tier/status/renews_on or your own names) exist as field names in that template — mismatched keys are silently ignored. Confirm whether current_period_end arrives as a Unix timestamp that needs a Zapier Formatter step to display as a date.
Build a second Zap triggered by a subscription change — a renewal, a plan change, or entering past-due. Add Passmint → Find Pass and map Holder Email from the Stripe customer (this returns that customer's most recent card, no IDs to track). Then add Update Pass, map its Pass ID from the Find Pass output, and in Field Values push only what changed: the new renews_on after a renewal, the new tier after a plan change, or status = past_due during a failed payment. Passmint pushes the edit to the card already in the holder's wallet automatically.
Add a third Zap on the canceled-subscription trigger: Find Pass by Holder Email → Void Pass with the Pass ID from Find Pass. The card is marked invalid in the holder's wallet the instant their subscription ends — so a lapsed member can't flash a still-valid-looking card. Test all three Zaps end to end in Stripe test mode (create a test subscription, change it, cancel it), confirm the card is created, updated, then voided, then switch your Passmint key to pmk_live…, point the Zaps at live Stripe events, and turn them on.
The details teams check before switching the Zap on.
Free for your first passes. No Apple or Google certificates to manage, no code to write.