API

Wallet passes, REST-API native.

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

Create your first pass in three lines.

Pick your stack. Each example issues a pass against a saved template — the most common starting point.

cURL

bash
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

js
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

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

Every product surface, available via API.

If you can do it in the dashboard, you can do it from your stack.

Issue passes

Single API call or bulk CSV import. Templates resolved on the server, signed and delivered to the passholder.

Update in real time

Push loyalty balance, tier, or expiry changes the moment they happen in your system of record.

Push by segment

Send push notifications by segment or to an individual passholder, with full delivery telemetry.

Webhook events

Install, update, uninstall, and barcode-scan events delivered as signed webhooks to your endpoint.

Manage templates

Create and update templates, designs, and customer signup forms via the same REST surface.

Pull analytics

Pull pass installs, engagement, and scan data into your warehouse or BI tool of choice.

Developer experience

Built the way you'd build it yourself.

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. Community-extended.

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

What developers build with us.

A few of the most common patterns. The API surface supports plenty more.

Integrate with your POS

Issue a wallet pass the moment a customer completes checkout. Update points on every subsequent transaction.

Sync with your CRM

Keep wallet pass content current as customer records change — tier, balance, expiry — without a manual export.

Build a custom flow

Event-triggered passes, dynamic offers, geofence-aware updates. The primitives are there, you compose the workflow.

Ship it

Read the docs. Start a trial. Talk to an engineer.

Three doors, depending on where you are. Pick the one that gets you unblocked fastest.