Apple Wallet & Google Wallet, one API

Wallet passes, shipped today.

One API for Apple and Google Wallet. No .p12 files, no WWDR chains, no Apple Developer forums. Your first pass in minutes.

Issue a pass right here

Select a starter and the pass updates, along with the exact SDK call to issue it renders beside it. This is the whole integration.

Event Ticket
Event
Midnight Sessions
Doors
Fri, Mar 21 · 8:00 PM
Venue
Berghain, Berlin
Section
Floor
Seat
GA

We'll issue a real demo pass and open the download page in a new tab.

issue-pass.ts

Start from a template

15 production-ready passes. Pick one, make it yours.

Everything between your API call and their wallet.

The parts of wallet passes you'd rather not build, like signing, delivery, updates and tracking, are already done. You make one call.

One API

Apple and Google, one call

One POST issues the pass for both wallets and hands back a link to each, plus a hosted page that picks the right one for whoever opens it.

  • A typed Node SDK that also runs on Bun and Deno
  • Signed webhooks for every pass event
  • Separate test and live keys
For developers
Designer

Design passes in the browser

Pick colors, add fields and upload images while the preview redraws as you type, then flip between Apple and Google to check both.

  • No code, no rebuild, no deploy
  • 15 starter templates to begin from
  • Field limits checked against Wallet's rules
Pass Designer
Distribution

One link, the right wallet

Every pass gets a permanent link. iPhones get the Add to Wallet sheet, Android gets Google Wallet, and desktops get a QR code to scan.

  • A QR code for every pass
  • Expiring download links when you need them
  • No app or account for the person adding it
Distribution
Analytics

See where every pass went

Issued, add intent, added to wallet, still active: read the funnel per template, or follow a single pass through its journey.

  • Lifecycle events as they happen
  • Funnel and events APIs for your own stack
  • Time to install and update delivery rates
Analytics
Live updates

Change a field, every phone updates

Update a pass through the API and installed copies change with it: Apple over APNs, Google by patching the wallet object.

  • Points, balances and gates stay current
  • An optional lock-screen message for the change
  • No reinstall, no new link to send
How updates work
Certificates

Certificates without the ceremony

Live Apple passes are signed with a Pass Type ID from your own Apple Developer account. Passmint generates and holds the key, so you never handle a .p12.

  • Private key generated and held by Passmint
  • One signing-request exchange for Apple's certificate
  • Expiry reminder emails at 30, 14, 7, 1 and 0 days
Certificates

MIT licensed

The pass-generation core is open source. Read it, fork it, or run it yourself without us.

View on GitHub →

Web Crypto only

No Node built-ins anywhere in the signing path, so it runs on Workers, Deno, Bun and Node 20+.

Both wallets, one template

Apple Wallet and Google Wallet from a single template, with per-platform targeting. Shipped 24 June 2026.

Read the changelog →

Updates you can watch land

Add a pass to your wallet, press a button, and watch it change on your lock screen. No account needed.

Try the live demo →

Questions

Everything else about shipping passes with Passmint.

For live passes, yes: Apple requires every pass to be signed with a certificate belonging to the brand on the pass. You do one CSR exchange in the Apple Developer portal; Passmint generates and holds the private key, signs every pass, and bundles the WWDR intermediate. Test mode uses Passmint's certificate and needs no Apple account.
Yes. The same pass definition produces a signed .pkpass for iOS and a Google Wallet save-link JWT for Android.
Yes. Change a field value via the API and Wallet pushes the update silently to every installed pass.
The hosted API's typed SDK, @passmint/node, runs on Node 20+, Bun and Deno, and anything else can call the REST API directly. The open-source passmint library that generates passes is Web Crypto only, with no node:* imports, so it also runs on Cloudflare Workers and other edge runtimes.
Free for up to 10 active passes. Paid plans are Hobby $15, Pro $49, and Scale $149 per month, all with live updates and webhook delivery.

First pass on your phone in under two minutes.

Free for 10 active passes. No card required.