cURL
curl -X POST https://api.shakewellwallet.com/v1/passes \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "template_id": "tmpl_abc", "fields": { "name": "Alex Park", "points": 12 } }'API
Issue, update, and revoke Apple Wallet and Google Wallet passes from your stack. Push notifications, webhooks, segmentation — all via a clean REST API.
Code samples
Pick your stack. Each example issues a pass against a saved template — the most common starting point.
cURL
curl -X POST https://api.shakewellwallet.com/v1/passes \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "template_id": "tmpl_abc", "fields": { "name": "Alex Park", "points": 12 } }'JavaScript
import Shakewell from "@shakewell/wallet";
const sw = new Shakewell({ apiKey: process.env.SW_API_KEY });
const pass = await sw.passes.create({
template_id: "tmpl_abc",
fields: { name: "Alex Park", points: 12 },
});Python
from shakewell import Shakewell
sw = Shakewell(api_key="...")
pass_ = sw.passes.create(
template_id="tmpl_abc",
fields={"name": "Alex Park", "points": 12},
)Full reference, error codes, and authentication flows at docs.shakewellwallet.com.
What you can do
If you can do it in the dashboard, you can do it from your stack.
Single API call or bulk CSV import. Templates resolved on the server, signed and delivered to the passholder.
Push loyalty balance, tier, or expiry changes the moment they happen in your system of record.
Send push notifications by segment or to an individual passholder, with full delivery telemetry.
Install, update, uninstall, and barcode-scan events delivered as signed webhooks to your endpoint.
Create and update templates, designs, and customer signup forms via the same REST surface.
Pull pass installs, engagement, and scan data into your warehouse or BI tool of choice.
Developer experience
The defaults a senior engineer would want, without having to ask for them.
RESTful endpoints, JSON request and response, OAuth 2.0 and API-key auth.
Sandbox account included with every free trial — no separate signup.
Generous, documented rate limits: 10 req/sec per API key on Growth, 100 req/sec on Scale.
Webhooks signed with HMAC SHA-256 — verifiable on receipt.
Postman collection available to import and explore the API in minutes.
Public status page at status.shakewellwallet.com with subscribable incident updates.
SDKs + integrations
Officially supported: cURL, Node.js, and Python — kept current with every API change. Community libraries cover Ruby, PHP, and Go. Plus first-class triggers and actions in Zapier, Make, and n8n for no-code workflows.
Use cases
A few of the most common patterns. The API surface supports plenty more.
Issue a wallet pass the moment a customer completes checkout. Update points on every subsequent transaction.
Keep wallet pass content current as customer records change — tier, balance, expiry — without a manual export.
Event-triggered passes, dynamic offers, geofence-aware updates. The primitives are there, you compose the workflow.
Ship it
Three doors, depending on where you are. Pick the one that gets you unblocked fastest.