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
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",
"title": "Coffee Rewards",
"label": "Member",
"value": "Gold Status",
"colorPreset": "dark",
"expirationDays": 365
}' \
-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.
All Barcode Formats
QR, Code128, PDF417, and Aztec supported out of the box.
Your Branding
Custom colors and logos to match your brand identity.
Auto-Expiration
Set 30, 90, or 365-day expiry to keep wallets tidy.
No Setup Required
We handle Apple certificates. You just send JSON.
Edge Deployed
Running on Cloudflare Workers for fast global response.
Everything is configurable
Click any parameter to edit it live
logoURL Top-left logo. PNG URL or base64.
thumbnailURL Top-right image. PNG URL or base64.
stripURL Banner image behind the primary field.
title The card name.
cardLabel Label above the title. Defaults to CARD.
label + value Secondary field. Member name, tier, balance, etc.
expirationDays Days until the pass expires.
color / colorPreset Background color. Hex value or preset name.
barcodeValue + barcodeFormat Barcode data and format.
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 |
| title | string | Yes | Pass title displayed on the card |
| label | string | No | Label text above the value field |
| value | string | No | Value text displayed below the label |
| 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,...).
|
| cardLabel | string | No | Label above the title. Defaults to CARD. |
| 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
30,
90, or
365
days
|
Response
application/vnd.apple.pkpass
binary file (save as
.pkpass) 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",
"title": "Membership Card"
}' \
-o membership.pkpass curl -X POST https://api.walletwallet.dev/api/pkpass \
-H "Authorization: Bearer ww_live_<your_key>" \
-d '{"barcodeValue":"LOYALTY-98765","barcodeFormat":"QR","title":"Coffee Rewards","label":"Member","value":"Gold Status","colorPreset":"dark","expirationDays":365}' \
-o rewards.pkpass curl -X POST https://api.walletwallet.dev/api/pkpass \
-H "Authorization: Bearer ww_live_<your_key>" \
-d '{"barcodeValue":"VIP-001","barcodeFormat":"QR","title":"VIP Access","color":"#8B4513","logoURL":"https://example.com/logo.png"}' \
-o vip.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
50x cheaper than the competition
Free
For testing & hobby projects
- 1,000 passes/month
- All barcode formats
- All color presets
- HTTPS endpoint
Your first month is Pro, automatically
Pro
For production apps
- 100,000 passes/month
- All barcode formats
- Custom colors & logos
- Webhooks Soon
- Location aware passes Soon
- Priority support
$0.00019 per pass
Need more? Contact us for unlimited pricing.