WalletWallet API

Easy pricing that doesn't bill per device or per active pass.

For reference, PassKit charges $1,300/month for the same pass lifecycle features.

Free

Build and test

$0 /month
  • 1,000 passes/month (creations + updates)
  • Apple & Google Wallet delivery
  • Pass Editor: design passes visually
  • Signed .pkpass downloads
  • Limited branding
Start free
30-day Pro trial

Pro

Ship to production

$39 /month
  • 100,000 passes/month (creations + updates)
  • Live updates on Apple & Google Wallet
  • Pass Editor: design passes visually
  • Pass Manager: edit passes, no code
  • Lock-screen location triggers
  • Logo, thumbnail, cover image, icon
  • Send push notifications

Past 100,000/month? Overage is $0.00039 per pass. Get in touch.

Start 30-day trial

Bring your own cert

Scale on your own cert

$379 /month
  • Sign with your Apple certificate & Google issuer account
  • Managed APNs on dedicated, low-latency workers
  • Pass Editor: design passes visually
  • Pass Manager: edit passes, no code
  • Unlimited passes, no monthly cap
  • SLA & dedicated technical support
  • Dedicated onboarding

Includes setup support for provisioning your Apple and Google credentials.

Schedule a call

Your monthly total counts each pass you create and each update that changes a pass. One pass covers both Apple and Google and counts once, so you are never billed per platform.

Frequently asked questions

What's in the 30-day Pro trial?

Every new account starts on Pro for 30 days: all features, all image slots, lifecycle updates, and 100,000 passes a month. After that, keep Pro at the $39/month standard rate or stay free under 1,000 passes/month. No card up front, no auto-charge.

Does this work with Google Wallet too?

Yes, fully. One API call lands a pass in both wallets: Apple installs the signed .pkpass, and Google installs from a Save to Google Wallet link we generate for the same pass. Live updates and push work on both too. We re-sign and push to Apple over APNs, and update the Google object and push directly. One honest difference: Apple shows your custom message on the lock screen, while Google's update banner is generic and your text lives inside the pass.

Do Apple and Google Wallet count as two passes?

No. One pass generation covers both platforms. A single POST /api/passes returns the signed Apple .pkpass and a Save to Google Wallet link for the same pass, and it counts as one pass against your plan, not one per wallet. Updates and push to both wallets are included in that same pass, so there are no per-platform fees.

What counts toward my monthly passes?

Two things count: each pass you create with POST /api/passes, and each update that changes a pass with PUT /api/passes/<serial>. A card you issue once and refresh a few times over its life is the create plus each content change, not a new pass every month. Revoking a pass does not count.

Can I update a pass after it's been added to someone's wallet?

Yes. Every pass gets a unique serial, returned as serialNumber in the JSON response and embedded inside the .pkpass file. PUT a new body to /api/passes/<serial> and the pass refreshes on every device it was added to, iPhone, iPad, Apple Watch, and Android. Identical bodies don't trigger a push and don't count against your quota.

How do I send the pass to my customers?

The API response carries the signed .pkpass (base64 applePass) and a Save to Google Wallet link for the same pass. Forward them however you already reach your user: email, an "Add to Wallet" button on a confirmation page, SMS, or in-app. Or share the hosted pass page we host at /p/<serial>, which shows the right Add button for the visitor's phone, Apple on iPhone, Google on Android.