Pass
GET /api/{tenantId}/passes?pageIndex=0&pageSize=20
&filter[0].field=passType&filter[0].operator=equals&filter[0].value=loyalty
&sortBy[0].field=creationDate&sortBy[0].direction=DESCGET /api/{tenantId}/passes?filter[0].field=installationStatus&filter[0].operator=contains&filter[0].value=appleZero-based page index.
0Number of passes per page.
20Paged list of passes returned successfully.
Represents a pass returned by the API.
Platform-assigned unique pass identifier. This is a random alphanumeric string generated at creation time and cannot be set by callers (e.g., xK9mP2nQr7sT).
Platform-generated opaque token used internally to authenticate pass delivery. Read-only; treat as confidential.
Timestamp when the pass was created by the platform. Read-only. Accepts ISO 8601 date-time string or Unix epoch seconds in request inputs. Responses are serialized as ISO 8601 date-time strings.
Timestamp of the most recent update. Equals CreationDate when no update has occurred. Read-only. Accepts ISO 8601 date-time string or Unix epoch seconds in request inputs. Responses are serialized as ISO 8601 date-time strings.
Type of pass, matching a file in the tenant server/passes/ configuration.
Paged list of passes returned successfully.
POST /api/{tenantId}/passes?passType=loyalty
{
"identifiers": {
"shopify.customerId": "12345",
"shopify.customerId.hmac": "{hmac-of-12345}"
},
"additionalData": { "loyaltyTier": "silver" }
}POST /api/{tenantId}/passes?passType=loyalty
{
"identifiers": { "shopify.customerId": "12345" },
"additionalData": { "loyaltyTier": "silver" }
}Type of the pass to create. Must match a file in the tenant server/passes/ configuration.
Data payload for pass creation operations.
Arbitrary data to persist with the pass (for example, loyalty tier, store code, or campaign flags).
Extensibility data related to this pass.
Pass created successfully.
Identifiers cannot be validated and caller lacks Pass.Write scope.
PATCH /api/{tenantId}/passes?id=xK9mP2nQr7sT
{
"additionalData": { "loyaltyTier": "gold" },
"options": { "updateMetadata": true }
}PATCH /api/{tenantId}/passes?id.shopify.customerId=12345
{
"identifiers": { "email": "[email protected]" },
"additionalData": { "loyaltyTier": "gold" },
"options": { "updateMetadata": false }
}type of the pass to update. type name should be one of the file in the server/passes/ tenant configuration.
Data payload for single pass update operations.
Arbitrary data to persist with the pass (for example, loyalty tier, store code, or campaign flags).
Optional pass type to convert the pass to.
Specifies if passes metadata should be updated. Updating metadata is time consuming and could be avoided for notification only push update
falseIndicates whether the push update should bypass the queue and run immediately. Queuing helps protect the system load and should only be bypassed when required.
falsePass update enqueued or applied successfully.
No content
No pass found matching the provided identifiers.
No content
GET /api/{tenantId}/passes/xK9mP2nQr7sT?device=appleGET /api/{tenantId}/passes/xK9mP2nQr7sT?device=autoGET /api/{tenantId}/passes/xK9mP2nQr7sT?device=apple&neo.src=email-campaign|emailPlatform-assigned pass identifier (random alphanumeric string, e.g. xK9mP2nQr7sT).
^[\w-]{5,50}$Target platform: apple, google, preview, or auto.
Source tags for categorizing installation source.
Installation medium (e.g., email, sms, app).
Installation origin or referrer.
User agent string from the installation request.
OK
No content
OK
No content
PATCH /api/{tenantId}/passes/xK9mP2nQr7sT
{
"additionalData": { "loyaltyTier": "platinum", "points": 5000 },
"options": { "updateMetadata": true, "bypassQueue": false }
}PATCH /api/{tenantId}/passes/xK9mP2nQr7sT
{
"additionalData": { "boardingStatus": "boarding" },
"options": { "updateMetadata": true, "bypassQueue": true }
}The unique identifier of the pass to update.
^[\w-]{5,50}$Optional type of the pass to update. Type name should match a file in the server/passes/ tenant configuration.
Data payload for single pass update operations.
Arbitrary data to persist with the pass (for example, loyalty tier, store code, or campaign flags).
Optional pass type to convert the pass to.
Specifies if passes metadata should be updated. Updating metadata is time consuming and could be avoided for notification only push update
falseIndicates whether the push update should bypass the queue and run immediately. Queuing helps protect the system load and should only be bypassed when required.
falsePass update queued or completed successfully.
No content
Pass with the specified passId not found.
No content
GET /api/{tenantId}/passes/xK9mP2nQr7sT/connect
Platform-assigned pass identifier (random alphanumeric string, e.g. xK9mP2nQr7sT).
^[\w-]{5,50}$WebSocket URL returned successfully.
Represents a Web PubSub connection response for a pass.
WebSocket URL to connect for pass notifications.
Pass not found.
Retrieve aggregated pass data from all registered data providers.
GET /api/{tenantId}/passes/xK9mP2nQr7sT/data
Platform-assigned pass identifier (random alphanumeric string, e.g. xK9mP2nQr7sT).
^[\w-]{5,50}$OK
No content
OK
No content
Retrieve the raw persisted pass document for diagnostics.
GET /api/{tenantId}/passes/xK9mP2nQr7sT/data/raw
Platform-assigned pass identifier (random alphanumeric string, e.g. xK9mP2nQr7sT).
^[\w-]{5,50}$Raw pass document returned.
No content
Raw pass document returned.
No content
Send a notification to the pass identified by its pass identifier
The internal identifier of the pass
Could be null if LocalizedContent is specified
Localized notification content by language code. Key: ISO 639-1 code or "iso2-region" (e.g., "en", "en-US"). Value: The notification content for that language.
OK
No content
Not Found
No content
Redirect to a web page that lets the user view and download the pass.
GET /api/{tenantId}/passes/xK9mP2nQr7sT/view
Additional query parameters are forwarded to the view page.Platform-assigned pass identifier (random alphanumeric string, e.g. xK9mP2nQr7sT).
Found
No content
Not Found
No content
GET /api/{tenantId}/passes/xK9mP2nQr7sT,a3Bc4dEf5gHi?device=appleGET /api/{tenantId}/passes/xK9mP2nQr7sT,a3Bc4dEf5gHi?device=googleCollection of pass identifiers with parsing support.
^[\w-]{5,50},([\w-]{5,50},?)+$Target platform: apple or google.
Source tags for categorizing installation source.
Installation medium (e.g., email, sms, app).
Installation origin or referrer.
User agent string from the installation request.
OK
No content
OK
No content
GET /api/{tenantId}/passes/findPass?shopify.customerId=12345&shopify.customerId.hmac={hmac}GET /api/{tenantId}/passes/findPass?shopify.customerId=12345Optional pass type to restrict the search.
OK
No Content
No content
No content
Retrieve passes by direct pass IDs or via a registered supplier.
GET /api/{tenantId}/passes/findPasses?ids=xK9mP2nQr7sT,a3Bc4dEf5gHiGET /api/{tenantId}/passes/findPasses?ids.shopify=ORDER-12345&includePreview=trueGET /api/{tenantId}/passes/findPasses?ids.shopify=ORDER-12345&ids.shopify.hmac={hmac}When true, include preview details (title, subtitle, colors, header text, enabled status) for each pass.
falsePass list retrieved successfully.
Bad Request
Could be null if LocalizedContent is specified
Localized notification content by language code. Key: ISO 639-1 code or "iso2-region" (e.g., "en", "en-US"). Value: The notification content for that language.
OK
No content
Not Found
No content
POST /api/{tenantId}/passes/pushUpdate
?filter[0].field=passType&filter[0].operator=equals&filter[0].value=loyalty
{
"additionalData": { "offer": "summer2025", "discount": "20%" },
"options": {
"updateMetadata": true,
"throughput": 12,
"correlationId": "campaign-summer-2025"
}
}Arbitrary data to persist with the pass (for example, loyalty tier, store code, or campaign flags).
Optional pass type to convert the pass to.
Specifies if passes metadata should be updated. Updating metadata is time consuming and could be avoided for notification only push update
falsePasses scheduled for update; returns the count in the response body.
Result returned after scheduling a bulk push update operation.
Count of passes scheduled for update.
Passes scheduled for update; returns the count in the response body.
POST /api/{tenantId}/passes/pushUpdate/campaign-summer-2025/cancelCorrelationId used when scheduling the push update.
Cancellation request accepted.
No content
Cancellation request accepted.
No content
Retrieve execution statistics for recent push update operations.
GET /api/{tenantId}/passes/pushUpdate/statusStatistics retrieved successfully.
Aggregated status of a push update operation.
Unique operation identifier.
Operation name/category.
Correlation ID for tracking related updates.
Operation start timestamp.
Last activity timestamp.
Total passes scheduled for update.
Number of passes successfully updated.
Number of passes with update errors.
Number of Apple Pass updates deployed.
Number of Google Pass updates deployed.
Whether the operation was cancelled.
Statistics retrieved successfully.
Optional pass type filter (must match a tenant pass configuration file).
OK
Get statistics about pass usage
OK
Last updated

