WalletWallet API
Get API Key Docs Pricing Changelog Log in

PassKit vs WalletWallet API

A side-by-side comparison of PassKit and WalletWallet for Apple Wallet pass generation. Verified pricing, feature matrix, and an even-handed pick guide.

Last updated 2026-05-20

PassKit is one of the longest-running Apple Wallet pass platforms. It has been around since 2012, supports Apple Wallet and Google Wallet, handles pass updates and push notifications, and ships an analytics dashboard, NFC support, and integrations with Zapier, Make, and the major POS/CRM systems. If you’re running a multi-channel customer engagement program, it is a serious, well-built product.

WalletWallet is a REST API for Apple Wallet passes, served sub-200ms from Cloudflare’s global edge. POST creates a signed .pkpass; PUT updates it and pushes the refresh over APNs. The same .pkpass opens in Google Wallet on Android too. $19/month flat with no Apple Developer account.

This page is here to help you figure out which one is right for your project. We tried to write the version of this article we’d want to read if we were on the other side of the decision. Where PassKit is the better pick, we say so.

Summary

PassKit is a full-lifecycle wallet platform (create, update, push, scan, analyze) across both Apple Wallet and Google Wallet, with team seats, NFC, and a no-code dashboard. Plans start at $39.50/mo for 1 user, plus per-pass usage, and customers bring their own Apple Developer account ($99/yr).

WalletWallet is a REST API for Apple Wallet passes, served sub-200ms from Cloudflare’s global edge. POST creates a signed .pkpass; PUT updates it and pushes the refresh over APNs. The same file opens in Google Wallet on Android (live updates on Google are on the roadmap). $19/month flat for up to 100,000 passes; 1,000/mo free, indefinite. We sign with our certificate, so you skip the Apple Developer account.

If you need Google Wallet, NFC, an analytics dashboard, or team-seat collaboration, pick PassKit. If you just need to issue and update Apple Wallet passes from your own backend at low cost and skip the certificate setup, try WalletWallet.

What PassKit is

PassKit homepage screenshot

PassKit is a wallet-pass platform aimed at retailers, event organizers, hospitality groups, and SaaS teams running loyalty, membership, or ticketing programs. The product covers the full pass lifecycle: design, issue, update, push, scan, analyze. It supports Apple Wallet and Google Wallet from the same template, and offers a no-code Pass Builder alongside REST APIs and webhooks. Integrations are extensive, including Zapier, Make, point-of-sale, and CRM connectors built in.

PassKit is the choice most enterprises make when they want a single vendor for digital cards across both wallets, a dashboard their non-technical team can use, and the established reputation that makes procurement happy.

What WalletWallet is

WalletWallet homepage screenshot

WalletWallet is a REST API for Apple Wallet passes, served from Cloudflare’s global edge. Two write endpoints (POST, PUT), one read endpoint, no template or project state on our side.

  • Apple Wallet, fully. POST /api/pkpass creates a signed pass and returns an X-Serial-Number header. PUT /api/pkpass/{serial} updates the pass and fans out an APNs push to every installed device. Identical bodies are free no-ops.
  • Google Wallet via .pkpass conversion on Android. The signed pass we return opens directly in Google Wallet on Android, so one API call lands a pass in both wallets. Live push updates on Google Wallet are on the roadmap, not shipped.
  • Fast and cheap. Sub-200ms pass generation and instant push, served from Cloudflare’s co-located global edge. $19/mo flat for up to 100,000 passes; 1,000/mo free, indefinite. We sign with our certificate, so no Apple Developer account is required.
  • Everything a pass needs. Geofencing (up to 10 locations surface the pass on the lock screen near a coordinate), barcode formats (QR, PDF417, Aztec, Code128), expirationDays, six color presets free plus custom hex on Pro, brand assets (logoURL / thumbnailURL / stripURL / iconURL), changeMessage templates for lock-screen banners, organizationName as the notification title. See /llms.txt for the full list.
  • Start simple, stay simple. The Pass Editor on the homepage previews every pass change live, including push updates. Tune the fields, colors, and images, watch the pass update, then copy the equivalent code and run it. The dashboard editor handles signed-in push-to-installed-passes too.
  • Agent-ready docs. Point Claude or any LLM at /llms.txt and it knows how to call the API.
  • Usable by non-developers. The Pass Editor doesn’t require writing code to design or test a pass.

Side-by-side code

PassKit’s API is structured around projects and templates: you create a project, define one or more pass templates inside it, and then create individual passes against a template. That gives you reusability and the ability to push template-wide updates, which is useful at scale, but it means three API calls and some state management for a first integration.

WalletWallet is one call:

curl -X POST https://api.walletwallet.dev/api/pkpass \
  -H "Authorization: Bearer ww_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "barcodeValue": "MEMBER-12345",
    "barcodeFormat": "QR",
    "logoText": "Loyalty Card",
    "primaryFields": [{"label": "BALANCE", "value": "$42.50"}],
    "secondaryFields": [{"label": "MEMBER", "value": "Sarah K."}]
  }' \
  --output member.pkpass

The response body is the .pkpass file. You serve it to the user however you like (email link, download button, “Add to Apple Wallet” button on a page).

Both approaches are valid. PassKit’s template model is more powerful when you want to push a change to every pass that shares a template; WalletWallet’s stateless model is simpler when each pass is independent and you keep your own data on your side.

Pricing at common volumes

We pulled both rate cards on 2026-05-07 and re-verified on 2026-05-20. PassKit’s public rate card splits passes into two billing tracks: multi-use (loyalty, membership, policy passes) and single-use (coupons, event tickets, boarding passes). Single-use is roughly twice as expensive per pass. The numbers below are for multi-use at 1 team seat, which is the cheapest combination.

Volume / monthPassKit+ Apple Developer ($99/yr)WalletWallet
100 passes$39.50$47.75$0 (free tier)
1,000$73.25$81.50$0 (free tier)
10,000$340.75$349.00$19.00
100,000$1,336$1,344$19.00
500,000$3,016$3,024$95.00
1,000,000$4,066$4,074$190.00

A few notes on the math:

  • PassKit’s $39.50/mo is the platform fee for one user. It includes 250 multi-use and 250 single-use passes. Adding a second team member raises the platform fee to $59.25; a fifth raises it to $99.75. WalletWallet has no per-seat charge.
  • For single-use passes (coupons, tickets, boarding passes), multiply PassKit’s per-pass cost by ~2×. At 100,000 single-use passes/mo, PassKit lands around $2,765. WalletWallet’s $19/mo doesn’t distinguish pass types.
  • The Apple Developer Program fee is $99/year, payable directly to Apple. PassKit’s help center is explicit that there’s no way around it on their side: “Unfortunately, there is no alternative to creating and managing a Pass Type ID without an Apple Developer account.” WalletWallet customers don’t need it because we sign passes with our certificate.
  • PassKit’s per-pass rate falls sharply at very high scale, reaching $0.0005/pass at 5,000,000+ multi-use. Our overage rate of $0.00019/pass is still lower per unit, and our $19 base has no seat-fee tax. PassKit is meaningfully cheaper at 5M than at startup volumes, but doesn’t undercut our per-pass cost at any tier we’ve modeled. If you’re at that volume, both vendors will custom-quote.

What WalletWallet doesn’t do (yet)

We try to be upfront about this on every page. Today, WalletWallet:

  • Does not support Google Wallet live updates. The .pkpass we return opens in Google Wallet on Android, but Google Wallet doesn’t honor webServiceURL, so our PUT updates and APNs push only reach iOS devices. PassKit handles Google Wallet end-to-end.
  • Does not support NFC (Apple VAS, Google SmartTap). PassKit does, and it’s not on our short-term roadmap.
  • Does not provide an analytics dashboard. We don’t track installs or redemptions on our side, whereas PassKit does this well.
  • Does not provide multi-user staff workflows. We ship a Pass Editor in the dashboard (single-user, API-key-scoped) plus a public Pass Editor on the homepage for non-developers. PassKit ships seat-based team collaboration with multiple non-technical users, which we don’t.

If any of these are blocking, PassKit is the better pick. We’d rather you find out from this page than from a half-built integration.

Feature comparison

PassKitWalletWallet
Apple Wallet pass generation
Google Wallet support
Pass updates (Apple Wallet)✓ (PUT /api/pkpass/{serial})
Push notifications (Apple Wallet)✓ (APNs fan-out on every PUT)
Pass updates / push on Google Wallet
Geofencing / location triggers✓ (up to 10 locations)
NFC (Apple VAS, Google SmartTap)
No-code Pass Editor✓ (homepage + dashboard)
Analytics dashboard
Webhooks
Zapier / Make integrations
POS / CRM integrations
Multi-user / team seatsAPI key
Apple cert handlingbring your ownplatform handles
API modelproject → template → passPOST + PUT, stateless
Free tier45-day trial, no contract1,000 passes/mo, indefinite
Public pricingyesyes
Edge / global deliverynot statedCloudflare Workers

When PassKit is the better pick

  • You need Google Wallet live updates alongside Apple. PassKit pushes updates to both wallets. Our .pkpass opens in Google Wallet on Android, but the lifecycle (updates + push) reaches only iOS on our side.
  • You need Google Wallet alongside Apple Wallet. If your customers are split across iOS and Android and you want one platform for both, PassKit’s the answer. We’re Apple Wallet only for now.
  • You need NFC support (Apple VAS, Google SmartTap, contactless redemption at terminals). PassKit handles this and we don’t.
  • You have a team that wants a dashboard to design, issue, and analyze passes without writing code. PassKit’s no-code Pass Builder, analytics, and seat-based collaboration are built for that.
  • You want established integrations with your POS, your CRM, Zapier, Make. PassKit ships those and we don’t.
  • Your evaluation includes a procurement review that rewards vendor maturity, named accounts, RFP responses. PassKit has been doing this since 2012.

When WalletWallet is the better pick

  • You want the fastest pass generation and push. Sub-200ms generation from Cloudflare’s co-located global edge; APNs push lands on every installed device within seconds. Most competitors don’t publish latency numbers, and we do.
  • You want a live preview before writing any code. The Pass Editor on our homepage previews every pass change (fields, colors, images, push) and the dashboard editor sends real push updates to installed passes after signup. Copy the equivalent code when you’re ready.
  • You want agent-ready docs. Point Claude or any LLM at /llms.txt and it can call the API end-to-end. No SDK plumbing needed; the docs are designed for both humans and agents.
  • Non-developers on your team will touch this too. The Pass Editor doesn’t require writing code to design or test a pass.
  • You skip the Apple Developer Program entirely. We sign with our certificate by default, which means no $99/yr fee, no Pass Type ID setup, and no certificate renewal calendar.
  • You only need to issue Apple Wallet passes. Loyalty cards where you store balances on your own server, business cards, single-use ID passes, basic event tickets where the data is set at issue time. Generation-only is a real workflow, and it’s what we’re built for.
  • You don’t want to manage an Apple Developer account. That means skipping the $99/yr fee, the Pass Type ID setup, and the certificate renewal calendar; we sign for you. (Bring-your-own-cert is supported as an option, not a requirement.)
  • You’re a solo developer or a small team. There’s no per-seat fee, no platform fee minimum, and no contract. The free tier of 1,000 passes/month is indefinite, not a 45-day trial.
  • Your volume is above a few thousand passes/month. This is where the pricing curves diverge most. At 10,000 multi-use passes you’re paying $341/mo on PassKit and $19/mo with us; at 100,000 you’re paying $1,336 vs $19.
  • You’d rather hold member/program data in your own backend. We sign and push updates, but we don’t try to be the source of truth for member balances, tiers, or analytics; you keep that on your side and we just translate it to a signed pass.

Try it before you decide

Get a free API key for 1,000 passes/month, indefinite, with no card required. After signup the Pass Editor in the dashboard previews every pass change live (including push updates to installed passes), so you can dial in fields, colors, and images, then copy the equivalent code and run it. Before signup the homepage Pass Editor runs the same preview live.

FAQ

Does WalletWallet require an Apple Developer account? No. We sign passes with our own certificate by default. PassKit requires you to bring your own Apple Developer account ($99/yr) and Pass Type ID, and there’s no workaround in their product. WalletWallet supports bring-your-own-cert as an option, but it’s not required.

How does PassKit’s per-seat pricing work? PassKit charges a platform fee that scales with usernames: $39.50/mo for 1 user, $59.25 for 2, $75.75 for 3, $89.50 for 4, $99.75 for 5, $114.75 for 6–10, $159.25 for 11–20, $249.50 for unlimited. Each tier includes 250 multi-use and 250 single-use passes. Pass volume beyond that is charged separately on a tiered rate that decreases at higher volumes. WalletWallet has no per-seat charge.

Why does PassKit have separate pricing for “multi-use” and “single-use” passes? PassKit splits its rate card by pass lifetime. Multi-use passes (loyalty, membership, policy) are long-lived and re-used across visits. Single-use passes (coupons, event tickets, boarding passes) are issued, used once, and discarded. PassKit charges roughly 2× for single-use because the underlying issuance volume tends to be higher and the lifecycle differs. WalletWallet charges the same rate regardless of pass type.

Can I migrate my existing PassKit passes to WalletWallet? Apple-Wallet generation, updates, and push migrate cleanly: the JSON fields are nearly 1:1 and the update path maps to PUT /api/pkpass/{serial} with automatic APNs fan-out. If your existing PassKit integration relies on Google-Wallet live updates or NFC, plan for a hybrid setup.

Is PassKit cheaper at very high volumes? No. Even at PassKit’s lowest published tier ($0.0005/pass for 5,000,000+ multi-use), our $0.00019/pass overage is lower per unit. PassKit’s per-pass rate falls steeply with volume, but doesn’t drop below ours; meanwhile the seat fee and the $99/yr Apple Developer fee add a fixed gap on PassKit’s side. At extreme scale (10M+/mo) both vendors will custom-quote, so request both.

What does “Cloudflare Workers” actually mean for me? WalletWallet runs on Cloudflare’s global edge network. The pass-generation endpoint responds from whichever Cloudflare data center is nearest the request, and we target sub-200ms p50 worldwide and publish runtime numbers on our pricing page. PassKit doesn’t publish their hosting architecture; latency hasn’t been a complaint we’ve heard about them.

Does WalletWallet support Google Wallet? Partially. The signed .pkpass we return opens directly in Google Wallet on Android, so one API call lands a pass in both wallets. Live updates and push notifications are Apple-only, because Google Wallet doesn’t honor webServiceURL, so PUTs only re-flow to iOS devices. PassKit handles Google-Wallet live updates end-to-end; if you need that, PassKit is the right pick.


Last verified 2026-05-20. PassKit’s pricing and feature claims are pulled from passkit.com/pricing/rates/ and the public help center. If you spot something out of date, let us know; we’d rather correct the page than have it stale.

Try WalletWallet in 60 seconds

Sign up with just an email and verification code (no card), then generate your first signed .pkpass with one curl. Free tier covers 1,000 passes/month, indefinite.