Skip to main content

Wallet Passes

Query wallet pass templates, list wallet passes for customers, verify a scanned pass, and send push notifications to wallet pass holders.

List Templates

Retrieve wallet pass templates for a specific shop.
string
required
The shop identifier
Required permission: wallet_pass_template:read

Example Request

Response

List Wallet Passes

Retrieve wallet passes for a specific shop customer and shop combination.
string
required
The shop customer ID
string
required
The shop identifier
string
Optional template UID to filter by
Required permission: wallet_pass:read

Example Request

Response

total is the number of passes in data — this endpoint returns every matching pass in one response and is not paginated, so it carries neither totalRegistries nor totalPages.

The Wallet Pass Object

Create a Wallet Pass

Issues a pass for a patient from one of your templates. The patient is identified by your own shop_customer_id together with the shop_identifier, so you never need to resolve an RxScale patient UID first. Required permission: wallet_pass:write

Request Body

string
required
UID of the template to issue from. Get it from GET /wallet-passes/templates.
string
required
Your customer identifier for the patient
string
required
The shop the customer belongs to

Example Request

Response

Returns the wallet pass object.
The status code tells you whether a pass was created or reused. This endpoint is idempotent per patient and template: 201 means a new pass was issued, 200 means the patient already had a pass for that template and it was refreshed and returned. Calling it twice will not give the patient two passes.
Hand ios_download_url / android_download_url to the patient to add the pass to their wallet.

Error Responses

A template that requires a signed prescription returns a specific message, so you can distinguish it from a malformed request:

Get a Wallet Pass

Loads a single pass by UID. Use this to re-read the download links, or to check whether a pass is still active (deleted_at is null). Required permission: wallet_pass:read
string
required
The wallet pass UID

Example Request

Response

Returns the wallet pass object.

Error Responses

Delete a Wallet Pass

Revokes a pass. The pass is soft-deleted: the record is kept and deleted_at is set, so a scan of a revoked pass still resolves — POST /wallet-passes/verify answers "valid": false with "status": "revoked" rather than a 404. Required permission: wallet_pass:write
string
required
The wallet pass UID

Example Request

Response

204 No Content with an empty body.

Error Responses

Verify a Scanned Pass

Resolve a scanned Patient Pass to shop-scoped identity handles. Requires an API key with the wallet_pass:verify permission.
Required permission: wallet_pass:verify

Request Body

string
required
The value encoded in the pass barcode. Treat it as a credential and send it in the body, never in a URL.

Example Request

Response (200)

A revoked pass returns "valid": false with "status": "revoked". shop_customer_id is absent for passes issued before the shop customer requirement.
Treat the wallet_pass_uid as a credential — anyone holding it can resolve the patient behind the pass. Send it in the request body, never in a URL, and do not write it to logs.
This endpoint returns identity handles only. Load the patient’s details with GET /v1/management/patients.

Error Responses

Send Push Notifications

Send push notifications to one or more wallet pass holders. Accepts a batch of notifications.
Required permission: wallet_pass_push_notification:write

Request Body

The request body is a JSON array of notification objects.

Example Request

Response (201 Created)

Error Responses