Getting started
What is the Google Wallet API?
The Google Wallet API allows developers to create digital passes in the Google Wallet. The Google Wallet API currently supports boarding passes, event tickets, loyalty cards, offers, and transit passes. More recently, a generic pass type was added to support additional use cases.
API Exceptions and Troubleshooting
- What does this Exception mean?
-
If you encounter any API exceptions while working with the Google Wallet API, please see the following table to find explanations and suggestions:
Exception Example Message Suggestion 400 - BadRequestException Request contains an invalid argument. Invalid resource ID: {1234567891234567899 - ABCD1234567}. Check the data structure for type, format and length and pass the correct argument. 403 - PermissionDeniedException Permission Denied Ensure the correct Service Account email is an authorized user within your Business Pay and Wallet Console. 404 - NotFoundException Wallet Object {1234567891234567899.SampleClubCardxf6a8edf-87ca-4022-a813-694cc57e9fd3} not found. Perform a GET on the Object ID before trying before a PATCH or PUT request to ensure you have an object to update and that it's the latest. 404 - IssuerClassNotFoundException Wallet Object Class {1234567891234567899.ABCD.1234567} not found. When performing an update , ensure you do a GET request before a PATCH or PUT request to ensure you have a class to reference that it’s the latest class. Also ensure the correct payload (object and class) is being used in the request correctly. 409 - AlreadyExistsException Wallet Object Class {1234567891234567899.ABCD.1234567} already exists. Perform a GET on the Class ID before trying to create the same Class ID. If the resource exists you may want to use PATCH or PUT. - Firstly, ensure your logo follows the guidelines and is saved in PNG format.
- Ensure the logo is readily available with high reliability. Do not redirect to image files which can cause 404 errors. Your images should be hosted on HTTPS location as they will not be visible in Google Wallet otherwise.
- Ensure that all required fields marked as required in the API are set in the pass.
- This option enables a centrally managed approach using 1 main account with zero to many sub businesses/issuers.
- 1 Google Cloud Project.
- 1 service account credential.
- Single set of users.
- This option enables a centrally managed approach using 1 main account with many sub businesses.
- 1 Google Cloud Project.
- Distinct business console users per issuer.
- 1 to many service account credentials.
- 1 credential per business/issuer.
- Different credential access per business.
- This option enables a centrally managed approach using 1 main account with many sub businesses.
- 1 to many Google Cloud Projects.
- Distinct business console users per issuer.
- 1 to many service account credentials.
- 1 PROD credential per business/issuer.
- 1 DEV credential per business/issuer.
General Questions
How do I enable push notifications?
Developer authored push notifications are not currently supported by Google Wallet. However Google Wallet provides timely notifications for the following passes. Developer authored push notifications are not currently supported by Google Wallet.
Vertical | Notification | Triggered | Documentation |
---|---|---|---|
Event | Upcoming reminder | 3 hours before the event | docs |
Boarding pass | Upcoming reminder | 3 hours before the flight departure | docs |
Boarding pass | Pass Update | Origin terminal, gate, boarding time or departure time change | docs |
Offer card | Expiry reminder | 48 hours before the offer card expires | docs |
Generic | Upcoming reminder | 24 hours before the “time interval” starts | docs |
Generic | Expiry reminder | 48 hours before the “time internal” ends | docs |
Can merchant IDs be deleted?
Currently, merchant IDs cannot be deleted or archived from the Google Pay & Wallet Console.
How do I delete classes or objects?
Currently, you cannot delete classes or objects from Google Wallet. However users can de-link objects from their Google Wallet.
How do I use the Applinking feature?
Applinking requires allowlisting which can be requested here.
Why does my time setting display the wrong time for the event?
Time displayed on the pass is local time to the event, with offset for the time where the event is.
Does Google Wallet support Geofencing?
Geofencing is not currently supported.
How do I set up a loyalty program?
You can set up an enrollment and loyalty program by following this guide.
How do I send Google my logo for Transit passes?
Please use this form to send Google the logo for allowlisting.
My logo won't render on the Passes I have built. What could be wrong?
Are there tools that simplify JWTs implementation and debugging?
Yes, platforms such as www.jwt.io allow you to decode and debug your tokens during your development process, allowing you to verify the content you are submitting. Do note that Google has no affiliation and does not specifically recommend any of such third parties.
How to properly handle Base64 encoded userProfile data?
Make sure you use UTF-8 encoding throughout your process. The JSON string is first UTF-8 encoded and subsequently encoded using android.util.Base64 with the options NO_WRAP and URL_SAFE. This corresponds with RFC 3548 section 4.
How do I group multiple passes together?
Using the GroupingID makes it easy to group passes together.
How do I create Issuer accounts programmatically?
See this guide to create issuer accounts via the API.
My JWT link URL exceeds the 1800 character limit browser restriction. What should I do?
You can pre-create classes and objects using the API ahead of creating the save pass link (JWT).
How do I update only part of a pass?
Follow our performance guide to understand how to perform partial updates using PATCH requests.
Can I batch create passes?
Follow our performance guide to understand how to perform batch requests using the API.
Smart Tap
Do I need a special NFC reader for Google SmartTap passes?
It must be a SmartTap capable terminal. A list of certified providers can be found here.
How do I make my passes work with NFC?
Please follow this configuration to enable your pass to be Smart Tap redeemable.
Developer setup
How can I set up my dev environment based on my business requirements and complexity?
Below are guides that can be used to set up a development environment catering for different levels of business complexity and security. Using multiple service accounts can enable developers to create a TEST environment separate from their PROD environment.
Basic setup complexity
1 business console account or 1 business console parent account to many issuer accounts.
Average setup complexity
1 parent account to many issuer accounts.
Complex setup complexity
1 parent account to many issuer accounts.
How do I contact technical support support?
For additional help, contact the support team through the Google Pay and Wallet console.
Leave feedback
How do I leave product feedback?
To leave product feedback click the "Send Feedback" button in the upper right quadrant of the developer site page and select "Product feedback". Next, describe your feedback in the text area and click "Send".
How do I leave documentation feedback?
To leave documentation feedback click the "Send Feedback" button in the upper right quadrant of the developer site page and select "Documentation feedback". Next, describe your feedback in the text area and click "Send".