Wallet API Revision History¶
| Date | Description |
|---|---|
| 10/15/26 | Added new nodes to the pass-template object of the GetPassTemplate API response (v3) for all Pass Types: pass-type-id, issuer-id, apple-pass-icon, disable-pass-sharing, disable-screenshot, pass-install-logo-display, pass-install-help-text, linked-app and linked-app-title. pass-type-id and issuer-id return the Apple Pass Type ID and Google Wallet Issuer ID assigned to the Pass Template, or an empty string if none is assigned. apple-pass-icon is only returned when the Pass Template has an icon. disable-pass-sharing, disable-screenshot and pass-install-logo-display are returned as “true” or “false”. pass-install-help-text is returned as plain text with HTML removed; if no custom help text has been set, the default help text is returned. |
| 10/15/26 | All Wallet API (v3) date and datetime request fields now accept ISO 8601 only. Other formats are rejected with the new error E930. This covers expiry-date, relevance-date-time, never-installed-archive-timestamp and the pass date fields on CreatePassTemplate and UpdatePassTemplate, expiration-timestamp on GeneratePass and UpdatePassData, and link-expiration-timestamp on CreatePassIssuanceLink and UpdatePassIssuanceLink. Date values in responses are now ISO 8601 too: expiration-timestamp in GetPassData, expiry-timestamp and pass date fields in GetPassTemplate, and created-timestamp and last-updated-timestamp in GetPassTemplates and GetPassIds. See Date and Time Formats in the API Introduction. |
| 10/15/26 | Updated the UpdatePassTemplate API (v3) for all Pass Types. When pass-update-notification is sent but no Passes are installed yet for the template, a request that also changed another template value now returns Success with a new warning-message field instead of failing; the template update is saved. A request that sends only pass-update-notification (or changes nothing else) returns Failure with error E1521 and a message explaining that the notification couldn't be queued because no Pass has been installed yet. Added E1521 to the Other Error Codes table in the Appendix. Added a new API: GetPassTemplateStats. It returns pass record stats (added, archived, updated, redeemed, voided and expired) and pass install and uninstall stats for Apple Wallet and Google Wallet for one Pass Template, as range totals and as one zero-filled entry per day. The period param accepts today, last_7_days, last_30_days, last_60_days, last_year or custom; a custom range uses ISO 8601 start-date and end-date values, may cover at most 366 days, and must fall between 1970-01-01 and the current date in the account timezone. Added error codes E1605 to E1611 for period and date validation. |
| 10/15/26 | Authentication, the IP whitelist check and the throughput check now run before request validation on all v3 API calls. A request with a missing or invalid API key returns E104, and a request from an IP that isn't whitelisted returns E112, even when the request body also contains invalid values. Previously, some validation errors could be returned before authentication, for example E922 for an invalid boolean value on CreatePassTemplate and UpdatePassTemplate, or for an invalid update-pass-data value on CreatePassIssuanceLink and UpdatePassIssuanceLink. A pass-template-id that belongs to another account is now treated the same as one that doesn't exist. The GeneratePass, UpdatePassTemplate, UpdatePassData, GeneratePassById, DeletePassData and GetPassData API calls return E802 in this case, before any other validation, with no field-level errors and no echoed request data. Previously these calls could return E922, E835, E927 or E808 for another account's Pass Template. Calls on your own Pass Templates and passes are unaffected. |
| 09/09/26 | The CreatePassTemplate and UpdatePassTemplate API calls (v3) now accept ISO 8601 date/time values on the following params for all applicable Pass Types: event-start-time, doors-open-time, event-end-time, relevance-date-time, expiry-date, never-installed-archive-timestamp, departure-time, estimated-departure-time, arrival-time, estimated-arrival-time, link-expiration-timestamp, gate-closing-time, expiration-timestamp, and boarding-time. The expected format is yyyy-MM-ddTHH:mm:ss, for example 2026-12-31T17:30:00. The param tables for Event Ticket and Boarding Pass have been updated to show the ISO 8601 format in place of the previous mm/dd/yyyy hour:min AM/PM format. Clarified the redemption-profile param of the barcode-fields object in the CreatePassTemplate and UpdatePassTemplate API (v3) for Coupon and Loyalty Card Pass Templates. The value must be the Profile ID (rp_randid) shown on the Redemption Profiles listing page; the internal numeric row ID is not accepted and returns error E1553. |
| 08/18/26 | Added a new param called display-alternate-barcode-text to the barcode-fields object of the CreatePassTemplate and UpdatePassTemplate API calls (v3) for all Pass Types. The same param is now also returned in the GetPassTemplate API response. This boolean param defines whether the barcode value is displayed as alternate text below the barcode on installed passes. It accepts boolean true/false values like other boolean template params; if omitted, it defaults to true (display), so existing integrations are unaffected. |
| 08/11/26 | Added redemption-system, redemption-type, and redemption-profile params to the barcode-fields object of the CreatePassTemplate and UpdatePassTemplate API (v3), for Coupon and Loyalty Card Pass Templates only. These let you configure Redemption Mode via the API to match the Template Builder’s Transaction Fields section. redemption-profile is required only when redemption-system is set to use-walletthats-url-redemption, and must be the ID of a Redemption Profile owned by the account. |
| 08/10/26 | Added new params apple-wallet-fields.pass-type-id and gpay-fields.issuer-id to the CreatePassTemplate API (v3) for all Pass Types, letting you assign a specific Apple Pass Type ID certificate and Google Wallet Issuer ID certificate per Pass Template via the API. A non-empty value that doesn’t match one of the account’s active certificates is rejected with error E922; an omitted or empty value falls back to the account’s default certificate. Create only – updatePassTemplate is unchanged. Updated the pass-update-notification param on the UpdatePassTemplate API for all Pass Types: providing this param now sends the notification to all installed passes for the template even when no other pass field values changed in the same request. |
| 06/25/26 | Added new params to the CreatePassTemplate and UpdatePassTemplate API calls for all Pass Types. The new params are added under the apple-wallet-fields block: 1. enable-update-notifications – toggles pass update notifications (Apple lock-screen banner and back “Last Notification” field, and the Google Pay “Last Notification” message). Accepts 0 to disable; any other value enables. Defaults to enabled when omitted. 2. pass-install-help-text – custom rich-text shown on the pass installation page, replacing the install-language selector. Accepts a limited HTML subset (p, br, span, strong, b, em, i, u, s; color and text-align CSS only), 500 character max. Pass an empty string to revert to the system default. 3. pass-install-background-color – sets the background color of the pass installation page. Accepts a 6-digit hex color code. 4. pass-install-checkmark-display – shows or hides the success checkmark icon on the pass installation page. Accepts 1 to show or 0 to hide; defaults to 1. The pass-install-help-text-language param is now optional and is ignored when pass-install-help-text is provided. Updated the pass-download-wait-message and pass-download-thank-you-message params for all Pass Types to allow reverting to the system default by passing an empty string. Updated the message1, message2, text-module, and info-module params for all Pass Types to accept <a href=”https://…”> anchor links (https only) in addition to plain text; other HTML is rejected and the character limit is 1,000. Links render inline on both Apple Wallet and Google Pay Passes. |
| 12/16/25 | Added new param called no-expiration to the CreatePassTemplate and UpdatePassTemplate API calls for all Pass Types. |
| 11/18/25 | Added new param called disable-screenshotting for Google Wallet only fields to the CreatePassTemplate and UpdatePassTemplate API calls for all Pass Types. |
| 04/10/25 | Added API calls for the new generic pass type. |
| 06/01/22 | Added 7 new dynamic fields for Coupon and Loyalty Card Pass types. The new fields have been added to the following API requests for both Pass types: 1. GeneratePass 2. UpdatePassData 3. CreatePassIssuanceLink 4. UpdatePassIssuanceLink 5. CreatePassTemplate Layout 1 6. UpdatePassTemplate Layout 1 7. CreatePassTemplate Layout 2 8. UpdatePassTemplate Layout 2 |
| 10/14/21 | Modified the “priority” param for the updatepassdata API requests to accept boolean true/false values rather than text true/false values, to make it consistent with other boolean variables. |
| 08/25/21 | Added new params to the generatePass and updatePassData API requests to store the meta data details for the pass. This includes the user’s email id and phone number. Modified the generate and update Pass Issuance Links API to add the new meta data related params to the list of pass variables. |
| 04/16/21 | Moved the API KEY from the request to the request header section. All API request structures, examples and param tables have been modified to remove the “api-key” param and add the request header param “X-Api-Key” to be used instead. |
| 03/03/21 | Added a new mandatory param: pass-template-subtype to the CreatePassTemplate API for all Pass Types. Added CreatePassTemplate and UpdatePassTemplate APIs for Loyalty Card Layout 2 and Coupon Layout 2 subtypes. Added a new param for dynamic strip images for all Pass Types to the GeneratePass, UpdatePassData, CreatePassIssuanceLink, and UpdatePassIssuance Link API calls. Added a new param called update-pass-data to the CreatePassIssuanceLink and UpdatePassIssuanceLink API calls for all Pass Types. Added a new param called pass-update-notification to the UpdatePassTemplate API calls for all Pass Types. Added new params for auto expiration settings to the CreatePassTemplate and UpdatePassTemplate API calls for all Pass Types. Added notes to the UpdatePassData API to notify users that the barcode-value, additional-image, and strip-image params cannot be left empty. |
| 01/08/21 | Added API calls for the new coupon layout 2. |
| 07/07/20 | Pass-Ids are now unique per Pass Template, not per account. A new parameter – “pass-template-id” has been added to the following APIs: 1. UpdatePassData 2. GetPassData 3. GeneratePassById 4. DeletePassData |
| 05/05/20 | Added a new Generic API: GetPassRelevanceInfo |
| 03/09/20 | Added a new Generic API: getPassIds |
| 02/25/20 | The generatePassById and deletePassData APIs have been moved to a Generic API section, since they are the same for all Pass types and have been removed from each pass type section. Also the sections for different layouts for Loyalty Card have been merged into a single section. |
| 02/14/20 | Made updates to generatePass, updatePassData, getPassData and getPassTemplate APIs for Gift Card. The param “event-id” has been renamed to “event-number” in the request for generatePass and updatePassData APIs, and in the response for getPassData and getPassTemplate APIs, for Gift Card. Made updates to getPassData and getPassTemplate APIs for Loyalty Card. The secondary-rewards-tier field has been removed from the response of both the APIs, since the field is no longer supported by GPay. New APIs added: createPassTemplate and updatePassTemplate, for all Pass Types, which can be used to create or update a Pass Template. |
| 02/03/20 | Added API calls for the new loyalty card layout 2. |
| 01/27/20 | Added new API calls for CreatePassIssuanceLink and UpdatePassIssuanceLink for all pass types. Added new error codes for the Issuance Link APIs. Added a new section for encryption and checksum algorithms for the Issuance Link APIs. |
| 08/22/19 | Renamed the API param names, for ‘Event ticket’: “event-gate” renamed to “event-custom-value-1” “seat-section” renamed to “event-custom-value-2” “seat-row” renamed to “event-custom-value-3” “seat-number” renamed to “event-custom-value-4” |
| 07/02/19 | Added a new node called “reference-data” in the “generatepass” APIs for all pass types and the “installed” and “uninstalled” response examples for Apple Wallet and Google Pay. With the new node “reference-data”, the customer can add additional information related to the pass and passback the same information in the postback. |
| 06/20/19 | Removed error codes that were related to ‘reference-id’. The following error codes were removed: E813, E829, AND E833 |
| 06/19/19 | Removed the param “reference-id” for all pass types from “generatepass” and “getpassdata” API requests and request examples. ‘reference-id’ has also been removed from notification examples and notification parameters. Added a new node “priority” in the “updatepassdata” API. The node “priority” will add the update request to the front of the queue if it is set as true in the request. The node “priority” accepts the following values: ‘true’ or ‘false’ |
| 06/13/19 | Added images to the introduction sections to display where each field used in the API calls appears on the passes for both Apple Wallet and Google Pay. |
| 06/12/19 | The section for Error Codes has been moved to the Appendix. |
| 06/11/19 | The section for ‘Expiration Timezone Names and Timestamp Value’ has been moved to ‘Appendix’. The section for expiration timezone names and timestamp values was added as a subsection in the Appendix. |
| 05/30/2019 | Removed the param “pass-status” for all pass types from the “generatepass” APIs. |
| 05/16/2019 | Added new introduction sections containing related Parameters to the specific pass type at the beginning of each section. |
| 05/09/2019 | Added the new param “pass-update-notification” for all pass types under the “updatepassdata” APIs. |
| 04/02/2019 | Removed the param “barcode-text” from “generatepass” and “updatepassdata” APIs. |
| 03/06/2019 | The param “expiration-timezone” has been added to the “generatepass” and “updatepassdata” APIs for all pass types. |
| 03/01/2019 | For Google Pay, when ‘expiration-timestamp’ is set for coupons and gift cards, the timestamp will appear in the app below the pass. If the timestamp is future dated, the label will display as “expires” and if it is backdated then it will display as “expired”. The parameter “expiration-timestamp” will overwrite the pass expiration date set in the Pass Template Builder. If an empty value is passed or the param is not set in the request, the template value will be considered. For “expiration-timezone”, the timezone value will be considered only if the timestamp is set, otherwise, it will be ignored. The full timezone name is accepted in API calls. A list of valid timezone names is given at the end of this guide. The response examples for ‘getpassdata’ and ‘getpasstemplate’ APIs have been updated for all pass types. The “pass-id” parameter has been added to the error responses for all pass types. |
| 02/08/2019 | The “updatepassdata” and “generatepass” APIs now accept a parameter named “pass-status”. The parameter “pass-status” accepts the following values: “redeemed”, “expired”, “voided”, “active”. Using pass-status values, excluding “active”, will expire the pass in both the Apple Wallet and Google Pay app. The status will also be displayed on the back of the Apple Wallet pass and the bottom of the Google Pay pass in the app.For Google Pay, when ‘pass-status’ is set to ‘expired’, ’voided’, or ‘redeemed’, the pass is displayed under expired passes listing in the Google Pay app. |