WalletWallet API
Get API Key Docs Pricing Log in
Powered by

WalletWallet API

Generate Apple Wallet passes with one API call. No certificates or complexity. Just JSON in, .pkpass out.

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 valid .pkpass file ready for Apple Wallet

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.

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.
primaryFields array No Main content fields. Array of {label, value} objects.
secondaryFields array No Fields below primary. Array of {label, value} objects.
headerFields array No Top-right header area. Array of {label, value} objects.
backFields array No Back of pass. Array of {label, value} objects.
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.
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

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

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
  • Custom colored passes
  • Custom logo, thumbnail & strip images
  • 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