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 -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).
| Targeting | Behaviour | Response |
|---|---|---|
pass_ids | Sends now to installed passes among the IDs. Uninstalled passes are skipped | data.successful, data.failed, data.summary |
template_id | Queued as a background job and fanned out | data.status: "queued" and data.template_id |
A template-wide send returns before delivery finishes, so a 200 means queued, not delivered.
Errors
- 422
VALIDATION_ERRORwhenmessageis missing or over 1,000 characters, or when neitherpass_idsnortemplate_idis given. - 404
WALLET_PASS_NOT_FOUNDfor an unknown pass ID on the single send. - 500
NOTIFICATION_SEND_FAILEDorBULK_NOTIFICATION_SEND_FAILEDwhen delivery fails upstream.