WalletWallet API
Get API Key Docs Pricing Changelog Log in

Flat pricing. No per-pass fees, no per-device fees.

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

Free

Testing & side projects

$0 /month
  • 1,000 passes/month
  • Limited branding
  • Signed .pkpass delivery
Start free
30-day Pro trial

Pro

Production apps

$19 /month
  • 100,000 passes/month
  • Live updates & push on both wallets
  • Lock-screen location triggers
  • Logo, thumbnail, strip, icon
  • Priority email support
Start 30-day trial

Bring your own cert

Sign with your Apple Developer ID

Custom
  • Sign with your Apple certificate
  • Managed APNs on dedicated, low-latency workers
  • Volume pricing past 100k passes/month
  • SLA & dedicated technical support
  • Custom contract, DPA & onboarding
Schedule a call

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, unlimited passes. After that, keep Pro at $19/month 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.

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.