WalletWallet API
Get API Key Docs Pricing Changelog Log in
Powered by

WalletWallet API

Generate Apple Wallet passes with one API call, then push live updates to every installed device whenever the content changes. JSON in, .pkpass out — no certificates or Apple Developer account to set up.

Starts free for up to 1000 passes per month

$0.00019 per pass on Pro

Example Request
curl -X POST https://api.walletwallet.dev/api/pkpass \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ww_live_<your_key>" \
  -d '{
    "barcodeValue": "LOYALTY-98765",
    "barcodeFormat": "QR",
    "logoText": "Bayroast Coffee",
    "primaryFields": [{"label": "CARD", "value": "Coffee Rewards"}],
    "secondaryFields": [{"label": "TIER", "value": "Gold Status"}],
    "colorPreset": "green",
    "expirationDays": 365,
    "stripURL": "https://example.com/coffee-strip.jpg"
  }' \
  -o rewards.pkpass

Returns a signed .pkpass file. PUT the same JSON later to push updates to installed devices.

Why WalletWallet API?

Single Endpoint

One POST request, instant .pkpass file. No multi-step flows or Apple developer account needed.

Live Pass Editor

Design your pass visually, then grab the exact API call to reproduce it. Preview first, code second.

Free for 1,000 passes/mo

No credit card required. Start generating passes immediately and only upgrade when you need to.

No Setup Required

We handle Apple certificates and signing. You just send JSON, we return a ready-to-use .pkpass.

Fully Customizable Fields

Add as many fields as you need. Headers, primary, secondary, back-of-pass — all configurable via simple JSON arrays.

Pro

Your Branding

Custom colors, logos, thumbnails, and strip images to match your brand.

Pro

Push Updates to Installed Passes

Change a field, send one PUT request, and every iPhone with the pass installed banners on the lock screen within seconds. Wallet refreshes the pass in place — no reinstall needed.

Pro

Lock-Screen Location Triggers

Add up to 10 coordinates per pass. Wallet surfaces the pass on the user's lock screen when their device is nearby — coffee shop, stadium, storefront.

Use Cases

Build wallet experiences for any industry

Membership Cards

Gyms, clubs, co-working spaces. Let members check in with a tap, and update tier or balance on every installed card the moment it changes.

Event Tickets

Conferences, concerts, sports. Scannable tickets that push gate changes, seat updates, or schedule shifts directly to every attendee's lock screen.

Coupons & Loyalty

Retail, restaurants, e-commerce. Drive repeat visits with offers that surface on the lock screen when customers walk near your storefront.

Student & Campus IDs

Universities, schools, training programs. Tap-to-enter library, gym, dining hall, with the ID surfacing on the lock screen as students arrive on campus.

Everything is configurable

Edit any field and see the pass update live

Text next to the logo (top-left)

No header fields

No primary fields

No secondary fields

No back fields

Overrides color preset

Wide banner image. Use secondary fields for readable text when using this option.

EXPIRES

API Reference

Everything you need to generate passes

Endpoint

POST https://api.walletwallet.dev/api/pkpass

Authentication

Include your API key in the Authorization header using the Bearer scheme.

Headers

Header Value
Content-Type application/json
Authorization Bearer ww_live_<your_key>

Request Body

Field Type Required Description
barcodeValue string Yes The data encoded in the barcode (e.g., member ID, ticket number)
barcodeFormat string Yes One of: QR PDF417 Aztec Code128
logoText string No Text next to the logo (top-left of pass).
description string No Accessibility text (not visible). Defaults to logoText.
organizationName string No Issuing org shown in Wallet under the pass title. Max 64 chars. Falls back to your account default.
primaryFields array No Main content fields. Array of {label, value, changeMessage?} objects. changeMessage is the lock-screen banner template that fires when this field's value changes during an update.
secondaryFields array No Fields below primary. Array of {label, value, changeMessage?} objects.
headerFields array No Top-right header area. Array of {label, value, changeMessage?} objects.
backFields array No Back of pass. Array of {label, value, changeMessage?} objects.
locations array No Up to 10 geofences. {latitude, longitude, altitude?, relevantText?} per entry. Surfaces the pass on the lock screen when the device is nearby.
colorPreset string No Color theme: dark blue green red purple orange
color string No Custom hex color (Pro only) e.g., #1e40af
logoURL string No URL to custom logo image (Pro only). Supports HTTPS URLs or a PNG data URI (data:image/png;base64,...).
title string No Legacy shortcut. Sets primaryFields[0].value and logoText if those aren't set.
cardLabel string No Legacy shortcut. Sets primaryFields[0].label. Defaults to CARD.
label string No Legacy shortcut. Sets secondaryFields[0].label.
value string No Legacy shortcut. Sets secondaryFields[0].value.
thumbnailURL string No Top-right image. HTTPS URL or PNG data URI. Pro only.
stripURL string No Banner behind the primary field. Switches to store card layout. HTTPS URL or PNG data URI. Pro only.
iconURL string No Replaces the default lock-screen notification icon. Distinct from logoURL, which renders on the pass face. HTTPS URL or PNG data URI. Pro only.
expirationDays number No Pass expires after this many days. Common presets: 30, 90, 365. Any integer between 1 and 3650 is accepted.

Response

200 Returns application/vnd.apple.pkpass binary file (save as .pkpass)
400 Invalid request body or missing required fields
401 Invalid or missing API key
429 Rate limit exceeded
500 Server error

Successful responses include an X-Serial-Number header with the server-generated serial — save it if you plan to call PUT /api/pkpass/<serial> to push updates later.

Examples

curl -X POST https://api.walletwallet.dev/api/pkpass \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ww_live_<your_key>" \
  -d '{
    "barcodeValue": "MEMBER-12345",
    "barcodeFormat": "QR",
    "logoText": "Membership Card"
  }' \
  -o membership.pkpass
curl -X POST https://api.walletwallet.dev/api/pkpass \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ww_live_<your_key>" \
  -d '{
    "barcodeValue": "LOYALTY-98765",
    "barcodeFormat": "QR",
    "logoText": "Bayroast Coffee",
    "description": "Loyalty card for Bayroast Coffee",
    "primaryFields": [{"label": "CARD", "value": "Coffee Rewards"}],
    "secondaryFields": [{"label": "TIER", "value": "Gold Status"}],
    "headerFields": [{"label": "BALANCE", "value": "$25.00"}],
    "colorPreset": "dark",
    "expirationDays": 365,
    "logoURL": "https://example.com/logo.png",
    "thumbnailURL": "https://example.com/photo.png",
    "stripURL": "https://example.com/banner.png"
  }' \
  -o rewards.pkpass

Updating a pass

Pass content can change after install. PUT /api/pkpass/<serial> with a new body and every device with the pass installed gets a push notification within seconds — Wallet refreshes the pass in place.

PUT https://api.walletwallet.dev/api/pkpass/<serial>

Add a changeMessage to any field to control the lock-screen banner text. Identical bodies are free — no push, no quota. See the full Update Pass reference for the response shape and error codes.

Barcode Formats

Format Best For
QR General purpose, high data capacity
PDF417 Boarding passes, IDs
Aztec Transit tickets, compact spaces
Code128 Retail, inventory

Rate Limits

Plan Monthly Limit Custom Colors Custom Logo
Free 1,000 No No
Pro 100,000 Yes Yes

Priced for scale

$0.00019 per pass. No certificate fees.

Free

For testing & hobby projects

$0 /month
  • 1,000 passes/month
  • All barcode formats
  • 6 color presets
  • Primary & secondary fields
  • Signed .pkpass delivery
  • Global edge via Cloudflare
  • No Apple Developer account needed
Get API Key

Your first month is Pro, automatically

Pro

For production apps

$19 /month
  • 100,000 passes/month
  • Everything in Free
  • Live pass updates with push notifications
  • Lock-screen location triggers (10 per pass)
  • Custom colored passes
  • Custom logo, thumbnail, strip & notification icon
  • Header & back fields
  • Priority support
Get Pro API Key

$0.00019 per pass

Need more? Contact us for unlimited pricing.

Ready to get started?

Request your API key today. No credit card required.

Get API Key