Skip to main content
POST
Send a wallet push

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string

Replay-safe request key. Repeated requests with the same value within 24h return the original response unchanged.

Maximum string length: 255

Body

application/json
enrollment_id
string
required

The enrolment to target. The push fans out across every wallet pass on the customer's physical device (siblings with the same deviceFingerprint), so multiple cards on one phone share the message.

message
string
required

Plain-text push body. Merge fields are resolved: {firstName}, {lastName}, {balance}, {cardName}, {installLink}, {shareLink}, {orgName}.

Required string length: 1 - 180
metadata
object

Free-form key/value bag for partner-side context. Not persisted beyond the audit row.

Response

Test-mode push (no actual delivery)

id
string | null

Broadcast audit row id. Null on test-mode calls (no row written).

delivered
boolean

True when every attempted platform succeeded. False if any APNs / Google send failed — the message still landed on the pass copy + audit row.

target_enrollment_ids
string[]

Enrolment ids touched, including sibling-device-fingerprint fan-out beyond the supplied enrollment_id.

platforms_attempted
integer

Count of (pass × platform) deliveries attempted. Zero in test mode.

platforms_failed
integer
test_mode
boolean

True when the caller used a pk_test_… key or an OAuth mode=TEST token. No wallet push is actually fired and no Broadcast row is written.