Implement push to digital wallets
Implement push to digital wallets
Use this guide to integrate D1 push provisioning into your issuer application so end users can add their cards to Apple Pay, Google Pay, and Samsung Pay directly from your app.
At a high level, the issuer application must:
Check whether the card is already digitized in the selected wallet on the device.
If the card is not digitized, initiate the push provisioning flow to add the card to the wallet.
For a conceptual introduction, see Push provisioning overview.
A card cannot be digitized more than once in the same wallet on the same device. Use the digitization state to drive your Add to wallet and Activate card actions.
Before you start
Make sure the following prerequisites are met:
D1 onboarding
You have completed D1 onboarding and can access the D1 backend.
D1 registration
End users and cards are registered in D1. At minimum, the
consumerIdandcardIdare available. See the D1 registration section in Get started.
D1 SDK integration
The D1 SDK is integrated into your issuer application for Android and/or iOS, and the SDK login flow is implemented. See Integrate the D1 SDK.
Wallet program enrollment
You are enrolled in the relevant wallet programs (for example, Apple Pay, Google Pay, Samsung Pay) and comply with each provider’s branding and UX guidelines.
Google Unified Android Push Provisioning – Thales will support the new API and the Google-OPC model by October 2026.
Thales will send a communication by June 2026 to allow issuers to properly plan the migration activities.
End-to-end flow
The push-to-wallet implementation with D1 typically follows this sequence:
Check the card digitization state
When the issuer application starts, or when the end user opens a card details screen, use the D1 SDK to retrieve the card digitization state for a specific card and wallet (for example, Apple Pay, Google Pay, or Samsung Pay).
The digitization state drives your UI:
DIGITIZED – The card is already tokenized in the wallet on this device. Hide Add to wallet.
NOT_DIGITIZED – The card is not tokenized. Show an Add to wallet button.
PENDING_IDV – Tokenization is pending step-up authentication. Show an Activate card button if in-app authentication (ID&V) is supported.
See Get the card digitization state for detailed SDK flows and examples.
Push the card to the digital wallet
When the end user taps Add to wallet and the card state is NOT_DIGITIZED, call the D1 SDK to start the push provisioning flow.
The D1 SDK and D1 backend:
prepare the payload based on the end user and card data stored in D1
interact with the wallet application and TSP to perform Tokenization
return the result to the issuer application so you can update the UI
For platform-specific steps and sequence diagrams, see Push to the digital wallet.
Handle activation (pending ID&V)
If the digitization state is PENDING_IDV, the digital card is created but requires additional authentication before it can be used.
In this case:
Prompt the end user to authenticate in the issuer application using your chosen ID&V method.
After successful authentication, call the D1 SDK to activate the digital card.
The activation flow is described in Get the card digitization state and in the D1 SDK API reference.
Support Apple Wallet extensions
For Apple Pay, you can integrate Apple Wallet extensions so end users can start provisioning directly from the Apple Wallet application, not only from your issuer application.
Use this when you want to:
let Apple Wallet discover which cards are available in your issuer application
authenticate the end user via a dedicated UI extension
provide provisioning payloads to Apple Wallet for selected cards
For details, see Apple wallet extension.
How this relates to other D1 features
View and control – After cards are digitized, you can use the D1 SDK to list digital cards, show their status (active, suspended, deleted), and manage life cycle operations within the issuer application. See View and control.
Payment network push provisioning – If you also participate in payment network programs (for example, Mastercard token connect), you can push cards into token requestors certified by the payment network. See Mastercard token connect.
Related references
Use these references while implementing push to digital wallets:
Last updated
Was this helpful?