Push notifications API

Send lock-screen messages to one wallet pass or to many with the Shakewell Wallet API. Message limits, targeting by template and the errors returned.

Last updated 2026-11-05

Notifications appear on the lock screen of an installed pass. The message is capped at 1,000 characters and the title shown is the template name.

Send to one pass

cURL
curl -X POST https://api.shakewellwallet.com/api/public/v1/notifications/wallet-passes/72Fs3a9OH1Qqrmapw7aGC9 \
  -H "Authorization: Bearer $SHAKEWELL_API_KEY" \
  -H "Content-Type: application/json" -H "Accept: application/json" \
  -d '{"message": "Your reward is ready to claim."}'

A 200 response returns data.pass_id, data.status: "sent" and data.sent_at. A pass that is not installed returns 400 PASS_NOT_INSTALLED.

Send to many

POST /notifications/bulk takes message plus exactly one way of choosing recipients: pass_ids (an array of pass IDs) or template_id (every pass on that template).

TargetingBehaviourResponse
pass_idsSends now to installed passes among the IDs. Uninstalled passes are skippeddata.successful, data.failed, data.summary
template_idQueued as a background job and fanned outdata.status: "queued" and data.template_id
A template-wide send returns before delivery finishes, so a 200 means queued, not delivered.

Errors

  • 422 VALIDATION_ERROR when message is missing or over 1,000 characters, or when neither pass_ids nor template_id is given.
  • 404 WALLET_PASS_NOT_FOUND for an unknown pass ID on the single send.
  • 500 NOTIFICATION_SEND_FAILED or BULK_NOTIFICATION_SEND_FAILED when delivery fails upstream.