The wallet pass API
built for developers.
Issue Apple & Google Wallet passes from a single request. Push live updates, trigger lock‑screen messages by location, and skip the Apple Developer account, the certificates, and the APNs plumbing entirely.
- 1,000 passes/month free
- No credit card
- Live in 5 minutes
Powering wallet passes across every category
A wallet platform that does the boring parts for you.
PassKit‑grade infrastructure, Stripe‑grade developer experience. Build the loyalty program — not the certificate plumbing.
One request, two wallets
A single POST creates a signed Apple .pkpass and a Save to Google Wallet link for the same pass.
Live push updates
PUT new field values to a serial and every installed device refreshes within seconds, on both platforms.
Lock‑screen geofencing
Attach up to 10 GPS locations per pass. Wallet surfaces it when the customer is nearby.
Your branding
Logo, strip banner, colors, and custom field labels — all from the JSON body, no asset uploads required.
Managed certificates
We hold the Apple Pass Type ID cert and sign on your behalf. No Developer account, no APNs keys.
LLM‑ready docs
Point Codex, Claude, or Cursor at /llms.txt and your agent can ship a working integration end‑to‑end.
From zero to live pass in three requests.
Issue the pass
POST the pass content. You get back JSON with the .pkpass, a Save to Google Wallet link, and its serial number. The customer adds it to Apple or Google Wallet.
curl -X POST https://perkpass.co.uk/api/passes \
-H "Authorization: Bearer pk_live_<key>" \
-H "Content-Type: application/json" \
-d '{
"barcodeValue": "LOYALTY-98765",
"barcodeFormat": "QR",
"logoText": "Bayroast Coffee",
"headerFields": [{ "label": "POINTS", "value": "1,250" }],
"primaryFields": [{ "label": "CARD", "value": "Coffee Rewards" }]
}'Push updates
PUT the updated body to that serial. The pass refreshes on every device it's installed on, across Apple Wallet and Google Wallet, and a notification fires.
curl -X PUT https://perkpass.co.uk/api/passes/<serial> \
-H "Authorization: Bearer pk_live_<key>" \
-d '{
"headerFields": [{
"label": "POINTS",
"value": "1,300",
"changeMessage": "You hit %@ points. Free coffee unlocked!"
}]
}'Surface it by location
Attach coordinates to the serial. Apple and Google pin the pass to the lock screen when the customer is near the place you set.
curl -X PUT https://perkpass.co.uk/api/passes/<serial> \
-H "Authorization: Bearer pk_live_<key>" \
-d '{
"locations": [{
"latitude": 40.7484,
"longitude": -73.9857,
"relevantText": "Free refill at our Empire State store"
}]
}'One API. Every kind of pass.
Coffee loyalty, gym memberships, student IDs, ski passes, event tickets, gift cards — the same request shapes them all for Apple and Google Wallet.
Issue passes once. Update them forever.
Every pass returns a serial. Call it again to change a value, ping the lock screen, or trigger a notification when a customer walks past your store.
Design a pass right now.
Tweak the JSON body. Watch the wallet pass update in real time.
Two endpoints. That's the whole API.
Create a pass for both wallets. Returns JSON with the .pkpass and Google save link.
curl -X POST https://perkpass.co.uk/api/passes \
-H "Authorization: Bearer pk_live_<your_key>" \
-H "Content-Type: application/json" \
-d '{
"barcodeValue": "MEMBER-12345",
"barcodeFormat": "QR",
"logoText": "Bayroast Coffee",
"primaryFields": [{ "label": "CARD", "value": "Coffee Rewards" }],
"colorPreset": "green"
}'Push new field values. Every installed device refreshes within seconds, on both wallets.
curl -X PUT https://perkpass.co.uk/api/passes/<serial> \
-H "Authorization: Bearer pk_live_<your_key>" \
-d '{
"headerFields": [{
"label": "POINTS",
"value": "1,300",
"changeMessage": "Now at %@ points"
}]
}'Coding with Codex, Claude, or another agent? Point it at /llms.txt for tight, up‑to‑date docs.
PerkPass vs PassKit and Pass2U
A modern, developer‑first wallet API — without enterprise sales calls or per‑pass billing.
| Feature | PerkPass | PassKit | Pass2U |
|---|---|---|---|
| Apple Wallet + Google Wallet from one request | |||
| Managed Apple certificate (no Developer account) | |||
| REST API for create, update, and push | Limited | ||
| Flat pricing, no per-pass fees | $19/mo · 100k | Enterprise | Per pass |
| Free tier for development | 1,000/mo | Limited | |
| Hosted Add-to-Wallet page per pass | |||
| Built for developers (docs + LLM-ready) | Sales-led |
Comparison reflects publicly listed features as of 2026. Marks and product names belong to their owners.
Simple, flat pricing.
Free for development. $19 flat for production. No per‑pass surprises.
- 1,000 passes/month
- Limited branding
- Signed .pkpass delivery
- 100,000 passes/month
- Live updates & push on both wallets
- Lock-screen location triggers
- Logo, thumbnail, strip, icon
- Priority email support
- Sign with your Apple certificate
- Managed APNs
- Volume pricing past 100k/month
- SLA & dedicated technical support
- Custom contract, DPA & onboarding
Built for the people shipping the integrations.
Run an agency? Sell a lightweight CRM to your small business clients.
Build a white-label notification CRM on our API. Your agency clients pay you per customer they reach. We charge you $19 flat, no matter how many customers move through it.
Host events? Make the badge update itself.
Hand every attendee a pass that lives next to their physical badge. Push session changes, room swaps, and tomorrow's agenda straight to their lock screen.
Running a small store? Skip the app build.
Drop a pass into every order confirmation. Ping customers on the lock screen for restocks, drops, and order updates. No app install.
Building a B2B SaaS? Ship Wallet passes for every client.
Your clients are businesses with their own customers to reach. Integrate PerkPass once and the Wallet pass feature ships across every account on your platform. We don't bill per client.
Frequently asked questions
Ship your first wallet pass today.
Free under 1,000 passes a month. $19/month flat for 100,000 on Pro. No credit card to start.
- Apple & Google Wallet
- No Apple Developer account
- Cancel anytime