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.

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

OAuth token scopes

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

The Adaptive Links (wadl) scope includes endpoints that manage adaptive links.

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

Events

The Events (wevt) scope includes endpoints that manage events for event tickets.

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

Flights

The Flights (wfli) scope includes endpoints that manage flights for boarding passes.

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

Notifications

The Notifications (wnot) scope includes endpoints that send pass notifications.

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

Passes

The Passes (wpas) scope includes endpoints that manage passes.

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

Projects

The Projects (wprj) scope includes endpoints that manage projects.

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

Statistics

The Statistics (wrpt) scope includes endpoints that read pass statistics.

OperationEndpoint
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

Schedules

The Schedules (wsch) scope includes endpoints that manage schedules.

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

Segments

The Segments (wseg) scope includes endpoints that manage segments.

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

Templates

The Templates (wtmp) scope includes endpoints that manage templates.

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