Wallet API Authorization Reference

Find which authentication methods are supported for each Wallet API endpoint.

For information about each authentication method, see Wallet API Security.

Authorization per authentication method

The following table indicates supported authentication methods per endpoint in the Wallet API. See the column for each authentication method to understand what access it allows. For OAuth 2.0, it lists the scope that allows access to the endpoint.

Name and API ReferenceEndpointPublicBasic AuthOAuth 2.0 scope
Generate pass from Adaptive LinkGET /pass/adaptive/{adaptiveLinkId}/{deviceType}
Generate multiple passes from a single Adaptive LinkGET /pass/adaptive
List Adaptive LinksGET /links/adaptive
Create Adaptive LinkPOST /links/adaptiveAdaptive Links
List Adaptive Links for a projectGET /links/adaptive/projects/{projectId}Adaptive Links
List Adaptive Links for a templateGET /links/adaptive/projects/{projectId}/templates/{templateId}Adaptive Links
Get Adaptive LinkGET /links/adaptive/{adaptiveLinkId}Adaptive Links
Update Adaptive LinkPUT /links/adaptive/{adaptiveLinkId}Adaptive Links
Delete Adaptive LinkDELETE /links/adaptive/{adaptiveLinkId}Adaptive Links
Get passes from Adaptive LinkGET /links/adaptive/{adaptiveLinkId}/passes/id/{passExternalId}Passes
Update passes from Adaptive LinkPUT /links/adaptive/{adaptiveLinkId}/passes/id/{passExternalId}Passes
List passes for an Adaptive LinkGET /links/adaptive/{adaptiveLinkId}/passesPasses
Get Adaptive Link from projectGET /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}Adaptive Links
Create Adaptive Link in projectPOST /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}Adaptive Links
Get Adaptive LinkGET /links/adaptive/project/{projectId}/id/{adaptiveLinkExternalId}Adaptive Links
Create Adaptive LinkPOST /links/adaptive/project/{projectId}/id/{adaptiveLinkExternalId}Adaptive Links
Get pass from Adaptive LinkGET /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}/passes/id/{passExternalId}Passes
Update passes from Adaptive Link for an external projectPUT /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}/passes/id/{passExternalId}Passes
Create boarding pass or event ticket Adaptive LinksPOST /links/adaptive/multiple/project/{projectId}Adaptive Links
List passes for an Adaptive Link for a projectGET /links/adaptive/project/{projectId}/id/{adaptiveLinkExternalId}/passesPasses
List passes for an Adaptive Link for an external projectGET /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}/passesAdaptive Links
List certificatesGET /certificates
Add new certificatePOST /certificates
Get certificateGET /certificates/{id}
Update certificatePUT /certificates/{id}
Remove certificateDELETE /certificates/{id}
List pass groups for eventGET /events/project/{projectId}/{eventId}/passGroupsEvents
Add event to pass groupPOST /events/project/{projectId}/{eventId}/passGroupsEvents
Remove event from pass groupDELETE /events/project/{projectId}/{eventId}/passGroups/{passGroup}Events
Update events in a pass groupPUT /events/project/{projectId}/passGroups/{passGroup}Events
Create eventPOST /events/project/{projectId}Events
Create event with external IDPOST /events/project/id/{projectExternalId}/id/{eventExternalId}Events
Get eventGET /events/project/{projectId}/{eventId}Events
Update eventPUT /events/project/{projectId}/{eventId}Events
Delete eventDELETE /events/project/{projectId}/{eventId}Events
List event passesGET /events/project/{projectId}/{eventId}/passesPasses
List pass groups for a flightGET /flights/project/{projectId}/{flightId}/passGroupsFlights
Add flight to a pass groupPOST /flights/project/{projectId}/{flightId}/passGroupsFlights
Remove flight from pass groupDELETE /flights/project/{projectId}/{flightId}/passGroups/{passGroup}Flights
Update flights in a pass groupPUT /flights/project/{projectId}/passGroups/{passGroup}Flights
Update flights with external ID in a pass groupPUT /flights/project/id/{projectExternalId}/id/passGroups/{passGroup}Flights
Create flightPOST /flights/project/{projectId}Flights
Get flightGET /flights/project/{projectId}/{flightId}Flights
Update flightPUT /flights/project/{projectId}/{flightId}Flights
Delete flightDELETE /flights/project/{projectId}/{flightId}Flights
Create flight with external IDPOST /flights/project/id/{projectExternalId}/id/{flightExternalId}Flights
List flight passesGET /flights/project/{projectId}/{flightId}/passesPasses
Send notification by passPOST /pass/{passId}/notifyNotifications
Delete notification by passDELETE /pass/{passId}/notifyNotifications
Send notification by pass with external IDPOST /pass/template/{templateId}/id/{passExternalId}/notifyNotifications
Delete notification by pass with external IDDELETE /pass/template/{templateId}/id/{passExternalId}/notifyNotifications
Send notification by segmentPOST /segments/{projectId}/{segmentId}/notifyNotifications
Delete notification by segmentDELETE /segments/{projectId}/{segmentId}/notifyNotifications
Send notification by tagPOST /tag/{tag}/notifyNotifications
Delete notification by tagDELETE /tag/{tag}/notifyNotifications
Send notification by templatePOST /template/{templateId}/notifyNotifications
Delete notification by templateDELETE /template/{templateId}/notifyNotifications
Request tokenPOST /token
Verify public keyGET /verify/public_key/{kid}
Generates a passPOST /pass/{id}/dynamicPasses
Get passGET /pass/{id}Passes
Create passPOST /pass/{id}Passes
Update passPUT /pass/{id}Passes
Delete passDELETE /pass/{id}Passes
View Apple Wallet JSONGET /pass/{passId}/viewJSONPassPasses
View Apple Wallet JSON with external IDGET /pass/id/{passExternalId}/viewJSONPassPasses
Download Apple Wallet .pkpassGET /pass/{passId}/downloadPasses
Download multiple Apple Wallet Passes in a single .pkpass fileGET /pass/downloadPasses
Save to Google WalletPOST /pass/{templateId}/saveToWalletPasses
Get passGET /pass/template/{templateId}/id/{passExternalId}Passes
Create passPOST /pass/template/{templateId}/id/{passExternalId}Passes
Update pass for a templatePUT /pass/template/{templateId}/id/{passExternalId}Passes
Delete passDELETE /pass/template/{templateId}/id/{passExternalId}Passes
Download Apple Wallet .pkpass with external IDGET /pass/template/{templateId}/id/{passExternalId}/downloadPasses
Download multiple Apple Wallet Passes with external IDs in a single .pkpass fileGET /pass/template/{templateId}/downloadPasses
List tags for pass with external IDGET /pass/template/{templateId}/id/{passExternalId}/tagsPasses
Update tags for pass with external IDPUT /pass/template/{templateId}/id/{passExternalId}/tagsPasses
Add locations to passPOST /pass/template/{templateId}/id/{passExternalId}/locationsPasses
Delete locations from passDELETE /pass/template/{templateId}/id/{passExternalId}/location/{locationId}Passes
List beacons on Apple Wallet passGET /pass/template/{templateId}/id/{passExternalId}/beaconsPasses
Add or update beacons for Apple Wallet passPUT /pass/template/{templateId}/id/{passExternalId}/beaconsPasses
Get messages for Google PassGET /pass/{passId}/messagePasses
Add message to Google PassPOST /pass/{passId}/messagePasses
Get messages for Google Pass with external IDGET /pass/template/{templateId}/id/{passExternalId}/messagePasses
Add message to Google Pass with external IDPOST /pass/template/{templateId}/id/{passExternalId}/messagePasses
Update passPUT /pass/id/{externalId}Passes
Create pass from a templatePOST /pass/id/{templateExternalId}/id/{passExternalId}Passes
Add locations to passPOST /pass/{passId}/locationsPasses
Delete locations from passDELETE /pass/{passId}/location/{passLocationId}Passes
List passesGET /passPasses
List projectsGET /project
Create projectPOST /project
Create project with external IDPOST /project/id/{externalId}
Get projectGET /project/{projectId}
Update projectPUT /project/{projectId}
List NFC merchantsGET /project/{projectId}/nfcMerchantsProjects
Add NFC merchantPOST /project/{projectId}/nfcMerchantsProjects
Get NFC merchantGET /project/{projectId}/nfcMerchants/{merchantId}Projects
Update NFC merchant informationPUT /project/{projectId}/nfcMerchants/{merchantId}Projects
Delete NFC merchantDELETE /project/{projectId}/nfcMerchants/{merchantId}Projects
Duplicate projectPOST /project/duplicate/{projectId}
List schedulesGET /schedules/{projectId}Schedules
Schedule an update or push notificationPOST /schedules/{projectId}Schedules
Get scheduleGET /schedules/{projectId}/{scheduleId}Schedules
Update schedulePUT /schedules/{projectId}/{scheduleId}Schedules
Delete scheduleDELETE /schedules/{projectId}/{scheduleId}Schedules
List segmentsGET /segments/{projectId}Segments
Create segmentPOST /segments/{projectId}Segments
Look up segmentGET /segments/{projectId}/{segmentId}Segments
Update segmentPUT /segments/{projectId}/{segmentId}Segments
Delete segmentDELETE /segments/{projectId}/{segmentId}Segments
Update passes by segmentPUT /segments/{projectId}/{segmentId}/passesPasses
Template statisticsGET /template/{templateId}/statsStatistics
Template activityGET /template/{templateId}/activityStatistics
Project statisticsGET /project/{projectId}/statsStatistics
Project activityGET /project/{projectId}/activityStatistics
Tag statisticsGET /tag/{tag}/statsStatistics
Pass statistics with external IDGET /pass/id/{externalId}/statsStatistics
List tags for passGET /pass/{passId}/tagsPasses
Add tags to passPUT /pass/{passId}/tagsPasses
List all tagsGET /tag
List passes for a tagGET /tag/{tag}/passesPasses
Update passes by tagPUT /tag/{tag}/passesPasses
Remove tag from all passesDELETE /tag/{tag}/passesPasses
Remove tag from a passDELETE /tag/{tag}/pass/{pass}Passes
Delete tagDELETE /tag/{tag}
Get templateGET /template/{id}Templates
Create templatePOST /template/{id}Templates
Update templatePUT /template/{id}Templates
Delete templateDELETE /template/{id}Templates
Get template v2GET /templates/{id}Templates
Update template v2PUT /templates/{id}Templates
Patch templatePATCH /templates/{id}Templates
Create template with external IDPOST /template/{projectId}/id/{templateExternalId}Templates
List templatesGET /template/headersTemplates
Duplicate templatePOST /template/duplicate/{templateId}Templates
Add locations to templatePOST /template/{templateId}/locationsTemplates
Delete location from templateDELETE /template/{templateId}/location/{locationId}Templates
Get personalization requirementsGET /template/{templateId}/personalizationTemplates
Add personalization requirementsPOST /template/{templateId}/personalizationTemplates
Update personalization requirementsPUT /template/{templateId}/personalizationTemplates
Delete personalization requirementsDELETE /template/{templateId}/personalizationTemplates
Get template passesGET /template/{templateId}/passesPasses
Publish a bulk update to passesPUT /template/{templateId}/passesPasses
Get ticket statusGET /ticket/{ticketId}
Check system statusGET /system/status
Get callback specificationGET /project/{projectId}/settings/callback
Create callback specificationPOST /project/{projectId}/settings/callback
Update callback specificationPUT /project/{projectId}/settings/callback
Delete callback specificationDELETE /project/{projectId}/settings/callback

OAuth token scopes

Refer to the following sections when setting permissions for OAuth client credentials.

The Adaptive Links (wadl) scope includes endpoints for managing adaptive links.

NameEndpoint
Create Adaptive LinkPOST /links/adaptive
Create boarding pass or event ticket Adaptive LinksPOST /links/adaptive/multiple/project/{projectId}
Get Adaptive Link from projectGET /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}
Create Adaptive Link in projectPOST /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}
List passes for an Adaptive Link for an external projectGET /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}/passes
Get Adaptive LinkGET /links/adaptive/project/{projectId}/id/{adaptiveLinkExternalId}
Create Adaptive LinkPOST /links/adaptive/project/{projectId}/id/{adaptiveLinkExternalId}
List Adaptive Links for a projectGET /links/adaptive/projects/{projectId}
List Adaptive Links for a templateGET /links/adaptive/projects/{projectId}/templates/{templateId}
Get Adaptive LinkGET /links/adaptive/{adaptiveLinkId}
Update Adaptive LinkPUT /links/adaptive/{adaptiveLinkId}
Delete Adaptive LinkDELETE /links/adaptive/{adaptiveLinkId}

Events

The Events (wevt) scope includes endpoints for managing events.

NameEndpoint
Create event with external IDPOST /events/project/id/{projectExternalId}/id/{eventExternalId}
Create eventPOST /events/project/{projectId}
Update events in a pass groupPUT /events/project/{projectId}/passGroups/{passGroup}
Get eventGET /events/project/{projectId}/{eventId}
Update eventPUT /events/project/{projectId}/{eventId}
Delete eventDELETE /events/project/{projectId}/{eventId}
List pass groups for eventGET /events/project/{projectId}/{eventId}/passGroups
Add event to pass groupPOST /events/project/{projectId}/{eventId}/passGroups
Remove event from pass groupDELETE /events/project/{projectId}/{eventId}/passGroups/{passGroup}

Flights

The Flights (wfli) scope includes endpoints for managing flights.

NameEndpoint
Update flights with external ID in a pass groupPUT /flights/project/id/{projectExternalId}/id/passGroups/{passGroup}
Create flight with external IDPOST /flights/project/id/{projectExternalId}/id/{flightExternalId}
Create flightPOST /flights/project/{projectId}
Update flights in a pass groupPUT /flights/project/{projectId}/passGroups/{passGroup}
Get flightGET /flights/project/{projectId}/{flightId}
Update flightPUT /flights/project/{projectId}/{flightId}
Delete flightDELETE /flights/project/{projectId}/{flightId}
List pass groups for a flightGET /flights/project/{projectId}/{flightId}/passGroups
Add flight to a pass groupPOST /flights/project/{projectId}/{flightId}/passGroups
Remove flight from pass groupDELETE /flights/project/{projectId}/{flightId}/passGroups/{passGroup}

Notifications

The Notifications (wnot) scope includes endpoints for managing notifications.

NameEndpoint
Send notification by pass with external IDPOST /pass/template/{templateId}/id/{passExternalId}/notify
Delete notification by pass with external IDDELETE /pass/template/{templateId}/id/{passExternalId}/notify
Send notification by passPOST /pass/{passId}/notify
Delete notification by passDELETE /pass/{passId}/notify
Send notification by segmentPOST /segments/{projectId}/{segmentId}/notify
Delete notification by segmentDELETE /segments/{projectId}/{segmentId}/notify
Send notification by tagPOST /tag/{tag}/notify
Delete notification by tagDELETE /tag/{tag}/notify
Send notification by templatePOST /template/{templateId}/notify
Delete notification by templateDELETE /template/{templateId}/notify

Passes

The Passes (wpas) scope includes endpoints for managing passes.

NameEndpoint
List event passesGET /events/project/{projectId}/{eventId}/passes
List flight passesGET /flights/project/{projectId}/{flightId}/passes
Get pass from Adaptive LinkGET /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}/passes/id/{passExternalId}
Update passes from Adaptive Link for an external projectPUT /links/adaptive/project/id/{projectExternalId}/id/{adaptiveLinkExternalId}/passes/id/{passExternalId}
List passes for an Adaptive Link for a projectGET /links/adaptive/project/{projectId}/id/{adaptiveLinkExternalId}/passes
List passes for an Adaptive LinkGET /links/adaptive/{adaptiveLinkId}/passes
Get passes from Adaptive LinkGET /links/adaptive/{adaptiveLinkId}/passes/id/{passExternalId}
Update passes from Adaptive LinkPUT /links/adaptive/{adaptiveLinkId}/passes/id/{passExternalId}
List passesGET /pass
Download multiple Apple Wallet Passes in a single .pkpass fileGET /pass/download
Update passPUT /pass/id/{externalId}
View Apple Wallet JSON with external IDGET /pass/id/{passExternalId}/viewJSONPass
Create pass from a templatePOST /pass/id/{templateExternalId}/id/{passExternalId}
Download multiple Apple Wallet Passes with external IDs in a single .pkpass fileGET /pass/template/{templateId}/download
Get passGET /pass/template/{templateId}/id/{passExternalId}
Create passPOST /pass/template/{templateId}/id/{passExternalId}
Update pass for a templatePUT /pass/template/{templateId}/id/{passExternalId}
Delete passDELETE /pass/template/{templateId}/id/{passExternalId}
List beacons on Apple Wallet passGET /pass/template/{templateId}/id/{passExternalId}/beacons
Add or update beacons for Apple Wallet passPUT /pass/template/{templateId}/id/{passExternalId}/beacons
Download Apple Wallet .pkpass with external IDGET /pass/template/{templateId}/id/{passExternalId}/download
Delete locations from passDELETE /pass/template/{templateId}/id/{passExternalId}/location/{locationId}
Add locations to passPOST /pass/template/{templateId}/id/{passExternalId}/locations
Get messages for Google Pass with external IDGET /pass/template/{templateId}/id/{passExternalId}/message
Add message to Google Pass with external IDPOST /pass/template/{templateId}/id/{passExternalId}/message
List tags for pass with external IDGET /pass/template/{templateId}/id/{passExternalId}/tags
Update tags for pass with external IDPUT /pass/template/{templateId}/id/{passExternalId}/tags
Get passGET /pass/{id}
Create passPOST /pass/{id}
Update passPUT /pass/{id}
Delete passDELETE /pass/{id}
Generates a passPOST /pass/{id}/dynamic
Download Apple Wallet .pkpassGET /pass/{passId}/download
Delete locations from passDELETE /pass/{passId}/location/{passLocationId}
Add locations to passPOST /pass/{passId}/locations
Get messages for Google PassGET /pass/{passId}/message
Add message to Google PassPOST /pass/{passId}/message
List tags for passGET /pass/{passId}/tags
Add tags to passPUT /pass/{passId}/tags
View Apple Wallet JSONGET /pass/{passId}/viewJSONPass
Save to Google WalletPOST /pass/{templateId}/saveToWallet
Update passes by segmentPUT /segments/{projectId}/{segmentId}/passes
Remove tag from a passDELETE /tag/{tag}/pass/{pass}
List passes for a tagGET /tag/{tag}/passes
Update passes by tagPUT /tag/{tag}/passes
Remove tag from all passesDELETE /tag/{tag}/passes
Get template passesGET /template/{templateId}/passes
Publish a bulk update to passesPUT /template/{templateId}/passes

Projects

The Projects (wprj) scope includes endpoints for managing projects.

NameEndpoint
List NFC merchantsGET /project/{projectId}/nfcMerchants
Add NFC merchantPOST /project/{projectId}/nfcMerchants
Get NFC merchantGET /project/{projectId}/nfcMerchants/{merchantId}
Update NFC merchant informationPUT /project/{projectId}/nfcMerchants/{merchantId}
Delete NFC merchantDELETE /project/{projectId}/nfcMerchants/{merchantId}

Schedules

The Schedules (wsch) scope includes endpoints for managing schedules.

NameEndpoint
List schedulesGET /schedules/{projectId}
Schedule an update or push notificationPOST /schedules/{projectId}
Get scheduleGET /schedules/{projectId}/{scheduleId}
Update schedulePUT /schedules/{projectId}/{scheduleId}
Delete scheduleDELETE /schedules/{projectId}/{scheduleId}

Segments

The Segments (wseg) scope includes endpoints for managing segments.

NameEndpoint
List segmentsGET /segments/{projectId}
Create segmentPOST /segments/{projectId}
Look up segmentGET /segments/{projectId}/{segmentId}
Update segmentPUT /segments/{projectId}/{segmentId}
Delete segmentDELETE /segments/{projectId}/{segmentId}

Statistics

The Statistics (wrpt) scope includes endpoints for managing statistics.

NameEndpoint
Pass statistics with external IDGET /pass/id/{externalId}/stats
Project activityGET /project/{projectId}/activity
Project statisticsGET /project/{projectId}/stats
Tag statisticsGET /tag/{tag}/stats
Template activityGET /template/{templateId}/activity
Template statisticsGET /template/{templateId}/stats

Templates

The Templates (wtmp) scope includes endpoints for managing templates.

NameEndpoint
Duplicate templatePOST /template/duplicate/{templateId}
List templatesGET /template/headers
Get templateGET /template/{id}
Create templatePOST /template/{id}
Update templatePUT /template/{id}
Delete templateDELETE /template/{id}
Create template with external IDPOST /template/{projectId}/id/{templateExternalId}
Delete location from templateDELETE /template/{templateId}/location/{locationId}
Add locations to templatePOST /template/{templateId}/locations
Get personalization requirementsGET /template/{templateId}/personalization
Add personalization requirementsPOST /template/{templateId}/personalization
Update personalization requirementsPUT /template/{templateId}/personalization
Delete personalization requirementsDELETE /template/{templateId}/personalization
Get template v2GET /templates/{id}
Update template v2PUT /templates/{id}
Patch templatePATCH /templates/{id}