Passmint
TemplatesDocsPricingBlog
Log inGet started
Passmint

Apple and Google Wallet passes from one API. Built for people who ship.

Product
  • Pass Designer
  • Developers
  • Distribution
  • Analytics
  • Templates
  • Pricing
Developers
  • Documentation
  • API reference
  • Node SDK
  • Webhooks
Company
  • Changelog
  • About
  • Contact
  • Support
  • Security
  • Terms
  • Privacy
Social
  • GitHub
  • X

© 2026 Passmint. Built for indie makers.

Apple Wallet & Google Wallet, one API.

Forms & signups

Hand respondents a wallet pass the second they finish your Typeform

Typeform is where people sign up, register, and apply. Turn that completion into something they keep — a membership card, an event ticket, a reward coupon, or a waitlist pass dropped straight into Apple Wallet or Google Wallet. No code.

Start freeRead the docs →
Apple & Google WalletNo-code via ZapierFree to start
Typeform
New Form Response
via Zapier
Passmint
Create Pass
Welcome pass

What you can do

A few ways teams put Typeform and Passmint to work together.

Use a community or club signup Typeform with a membership template. Map the plan/tier answer into member_tier; every completed form hands the new member an Apple/Google Wallet membership card with their name and tier the moment they finish.
Point an RSVP or registration Typeform at an event-ticket template. Map the session, date, or ticket-type answers into the ticket's fields, and each respondent walks away with a wallet ticket showing their name and details — ready to scan at the door.
Gate a guide, discount, or trial behind a Typeform and issue a coupon template on completion. Finishing the form rewards the respondent with a wallet coupon they can redeem — a far stickier hook than a one-time email link.
Run a waitlist or early-access Typeform with a generic or loyalty template. Each signup gets a wallet 'queue pass' confirming they're in line — and because passes update live, you can later run Find Pass → Update Pass to bump their position or flip them to 'You're in'.

Set it up

One Zap links the two — live in a few minutes, no code involved.

  • A Passmint account and an API key (pmk_live… or pmk_test…), from Developers → API Keys.
  • A Passmint template for the pass you're issuing — a membership card, ticket, coupon, or waitlist pass. Note its field names (e.g. member_tier, event_date): they must match the answer mappings you set up.
  • A Zapier account (the free plan is enough to build and test this).
  • A Typeform with the answers you want on the pass — and an email question, so passes can be delivered and tracked. A name question is recommended too.

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 setting things up.

Create a new Zap and choose Typeform as the trigger app. Pick the trigger that fires when someone completes a form, then select the specific form Passmint should watch. Send a test so Zapier can pull a sample response and learn each of your questions as a separate field.

TODO(verify): Confirm the exact Typeform trigger label (the one that fires on a finished/submitted response) and that it asks you to choose a specific form. Confirm how each answer is exposed to Zapier — questions typically appear as individual fields you can map, but the labels and ordering depend on your form.

Add an action step, choose Passmint, and select Create Pass. Pick the template to issue from the dropdown — Zapier loads your templates automatically. Then map Holder Email from your form's email question, and Holder Name from the name question.

TODO(verify): Confirm which Typeform answer fields correspond to the respondent's email and name, since these depend on how your questions are worded and ordered.

In Field Values, map each Typeform answer you want on the pass to a template field. The key on the left must exactly match a field name defined in your Passmint template (e.g. member_tier → the 'Which plan?' answer; event_date → the date answer); the value on the right is the answer from the response. Answers you don't map are simply left off the pass.

TODO(verify): Confirm, on a real template, that the Field Values keys you reference exist as field names in that template. Mismatched keys are silently ignored.

Run the Zap with your sample response and check that a pass is created in Passmint and the URL comes back. Open the pass on a phone to confirm the mapped answers look right, then switch your API key to pmk_live…, turn the Zap on, and complete the form yourself to watch it work end to end.

Questions

The details teams check before switching the Zap on.

The email and name answers map to Holder Email and Holder Name. Every other answer you want on the pass goes into Field Values, where the key must match a field name defined in your Passmint template. Any answer you don't map is ignored, so the form can ask for more than the pass shows.
It's strongly recommended. Holder email is technically optional, but without it you lose automatic pass delivery and per-holder analytics — so for most signup, registration, and lead-magnet forms, an email question is what makes the pass actually reach the person who filled it in. Typeform's dedicated email question type is the cleanest way to capture it.
Yes — add a Zapier Paths (or Filter) step after the trigger that branches on an answer, and give each branch its own Create Pass step with a different template. For example, a 'Which plan?' answer can route Founder respondents to one membership template and Maker respondents to another. Each path picks its own template from the dropdown.
The pass is still created. Any Field Values mapping pointing at a skipped answer just comes through empty, so that field shows blank on the pass rather than breaking the Zap. If a particular answer is essential, mark the question required in Typeform, or add a Zapier filter that only issues a pass when it's present.
Effectively yes. The Zap fires on form completion and Create Pass returns a shareable pass URL within seconds, which you can show on Typeform's ending screen, email to the respondent, or both. There's no manual step on your side between submit and pass.
Zapier is perfect for getting this live today. When a form goes viral and you're issuing passes by the thousand, need them created the instant a response lands without per-task costs, or want answers validated and branched in your own backend before a pass is issued, call the Passmint API directly — POST /v1/passes, or the @passmint/node SDK. Same passes, same live updates, full control.

Related integrations

Google Forms

Issue a wallet pass on every Google Forms submission.

Jotform

Turn Jotform submissions into wallet passes.

Tally

Issue a wallet pass when someone submits your Tally form.

Gravity Forms

Issue a wallet pass on every Gravity Forms entry.

Issue your first pass from Typeform today

Free for your first passes. No Apple or Google certificates to manage, no code to write.

Start freeExplore the API →