REST and Agent API.
Read and update partner-owned Apple Wallet item settings without exposing signing or member pass data.
The APIs manage business product settings, not signed packages or a member's operational pass registry. They never return a Pass Type certificate, private key, password, private path, pass serial, authentication token, member data, package bytes, or download URL.
Item types
Use this closed set in {type}:
| Type | Product |
|---|---|
loyalty |
Loyalty card |
stamp |
Stamp card |
offer |
Voucher |
prepaid |
Prepaid-pass product |
{id} must belong to the authenticated business. A missing, unsupported, soft-deleted prepaid, or foreign item returns not found so another business's records cannot be discovered.
Locale REST API
Partner authentication is required.
GET /api/{locale}/v1/partner/apple-wallet/{type}/{id}
PUT /api/{locale}/v1/partner/apple-wallet/{type}/{id}
GET returns the safe settings object directly. PUT accepts a partial idempotent representation and returns the resulting settings object directly.
{
"enabled": true,
"appearance": {
"mode": "custom",
"background_color": "#102033",
"foreground_color": "#FFFFFF",
"label_color": "#E9B949",
"strip_focal_x": 50,
"strip_focal_y": 40,
"primary_locale": "en_US"
}
}
At least one setting is required. Appearance fields are optional when the appearance object is omitted. Colors are #RRGGBB; focal points are integers from 0 through 100; locale must be one of the twelve supported locale codes.
Agent API
GET /api/agent/v1/partner/apple-wallet/{type}/{id}
PUT /api/agent/v1/partner/apple-wallet/{type}/{id}
| Operation ID | Scope |
|---|---|
get_apple_wallet_item_settings |
read or write:wallet |
update_apple_wallet_item_settings |
write:wallet |
The authenticated key also needs normal partner Agent API access. write:wallet is separate from write:passes: Wallet scope changes Apple presentation, while pass scope manages prepaid products and issued visits.
Agent success uses the standard envelope:
{
"data": {
"type": "loyalty",
"item_id": "01234567-89ab-cdef-0123-456789abcdef",
"enabled": true,
"appearance": {
"mode": "custom",
"background_color": "#102033",
"foreground_color": "#FFFFFF",
"label_color": "#E9B949",
"strip_focal_x": 50,
"strip_focal_y": 40,
"primary_locale": "en_US"
},
"assets": {
"logo_source": "inherited",
"strip_source": "apple_wallet_override"
},
"availability": {
"infrastructure_configured": true,
"entitled": true,
"can_enable": true,
"blocked_reason": null
}
},
"meta": {
"result": "updated"
}
}
An identical PUT performs no model write and returns meta.result: "unchanged".
Enable and disable rules
Enabling requires both:
- effective Apple Wallet entitlement from the per-business override or plan;
- healthy installation signing configuration.
Disabling remains allowed when either is absent. This lets an integration reduce exposure safely after a downgrade or operator incident.
Agent errors use the normal machine envelope:
| Status | Code | Retry strategy | Meaning |
|---|---|---|---|
| 401/403 | authentication/scope error | according to the shared Agent contract | Missing or insufficient Integration API key |
| 403 | FEATURE_DISABLED |
contact_support |
Business is not entitled to Apple Wallet |
| 404 | not found | do not retry with the same ID | Type or owned item was not found |
| 409 | PLATFORM_UNAVAILABLE |
retry_later |
Installation signing is incomplete or unhealthy |
| 422 | validation error | fix request | Empty body or invalid type, color, focal point, or locale |
Administrator permission APIs
The existing administrator partner permission endpoints include apple_wallet_permission:
GET /api/{locale}/v1/admin/partner/{partner}/permissions
PATCH /api/{locale}/v1/admin/partner/{partner}/permissions
GET /api/agent/v1/admin/partners/{partner}
PATCH /api/agent/v1/admin/partners/{partner}/permissions
Set it to true to grant or false to revoke independently of the plan. Omitting it preserves the normal plan-derived default according to the surrounding partner-management contract.
Deliberate omissions
The API does not provide endpoints to download a signed member pass, upload signing credentials, inspect registry rows, read analytics events, reset issuer identity, or bypass the member/staff web flows. Credential custody and identity reset remain full-administrator dashboard operations. Member package download remains an authenticated, throttled browser action so the normal relationship and lifecycle gates run immediately before signing.