Templates
POST /v1/templates
Define the layout, branding, and fields for a pass class. Update templates to push design changes to installed passes.
Developer docs
REST API reference, webhooks, code samples, and integration guides for issuing, updating, and revoking Apple Wallet and Google Wallet passes from your stack.
While we do, the essentials are below. Email engineers@shakewellwallet.com for anything that isn't here — we'll usually reply same day.
Quickstart
Generate a key from Dashboard → Settings → API. Treat it like a password — store it in your secret manager.
Design a pass in the visual builder, or POST one to /v1/templates. Templates control layout, branding, and fields.
POST a customer payload to /v1/passes with your template ID. The response includes an install URL.
Send the install URL via email or SMS, embed a signup form, or have your app deep-link straight to Apple Wallet / Google Wallet.
curl -X POST https://api.shakewellwallet.com/v1/passes \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"template_id": "tpl_01HXY...",
"customer": {
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace"
},
"fields": {
"tier": "Gold",
"points": 1240
}
}'Core resources
POST /v1/templates
Define the layout, branding, and fields for a pass class. Update templates to push design changes to installed passes.
POST /v1/passes
Issue a pass for a customer. Update field values to push live changes (tier, points, balance) to the lock screen.
POST /v1/notifications
Send lock-screen push to one pass, a segment, or every installed pass on a template.
GET /v1/customers
List passholders, attach metadata, and segment by tag or custom field.
POST /v1/webhooks
Subscribe to install, uninstall, push-receipt, and template-update events. Signed payloads delivered to your endpoint.
GET /v1/analytics
Query installs, active passes, push delivery, and engagement by template, segment, or date range.
Every request needs an API key passed as a bearer token:
Authorization: Bearer sk_live_xxxGenerate keys per environment (test / live) in Dashboard → Settings → API. OAuth 2.0 is available for Enterprise customers who need per-user scopes.
Errors + rate limits
| Code | Meaning | When you'll see it |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid payload or missing required field. |
| 401 | Unauthorized | Missing or invalid API key. |
| 403 | Forbidden | Key lacks permission for this resource. |
| 404 | Not Found | Resource does not exist on your account. |
| 429 | Rate limited | Slow down — see rate limits below. |
| 500 | Server error | Our problem. Retry with exponential backoff. |
10 requests/second on Growth, 100 requests/second on Scale. Enterprise plans are negotiable. Throttled responses return 429 with a Retry-After header.
Officially supported today: cURL and Postman (collection on request). Coming soon: Node.js and Python SDKs.
No-code automations: Zapier, Make (Integromat), and n8n — see Integrations.
Have questions? Email engineers@shakewellwallet.com.
Build with the API
Set up takes minutes. No credit card required to start a free trial.