Overview
When a cardholder taps “Add to Google Wallet” on their device, Mastercard verifies the card’s eligibility and initiates a verification flow. UTGL generates a 6-digit verification code, delivers it via SMS and webhook, and the cardholder enters the code in Google Wallet to complete activation.Key Benefits
- Contactless Payments - Enable cardholders to pay with their phone via NFC
- Real-time Webhook - Receive the verification code programmatically to surface in your app
- Secure Verification - OTP-based ownership verification before activation
- Multi-channel Delivery - Code delivered via both SMS and webhook
How It Works
The provisioning flow involves Mastercard, UTGL, and your system working together to verify the cardholder’s identity:Provisioning Lifecycle
- Initiation - Cardholder taps “Add to Google Wallet” on their device
- Eligibility Check - Mastercard verifies the card is eligible for provisioning
- Code Generation - UTGL generates a 6-digit verification code
- Code Delivery - Code is sent via SMS to the cardholder and via webhook to your system
- Verification - Cardholder enters the code in Google Wallet
- Activation - Card is activated and ready for contactless payments
Prerequisites
Before your cardholders can add cards to Google Wallet, ensure the following:- Google Pay Enabled - Your card product must have Google Pay provisioning enabled. Contact your solution manager to enable this feature.
- Registered Mobile Number - The cardholder must have a mobile phone number on file for SMS delivery.
- Email Address - The cardholder must have an email address on file for confirmation notifications.
Webhook Event
cardaccount.googlepay.verification-code-delivered
This webhook is fired when a Google Pay verification code is generated and delivered. Use this to surface the code in your app UI or trigger additional cardholder communications.
Event Structure
Event Data Fields
Webhook Handler Example
Notification Channels
When a verification code is generated, it is delivered through multiple channels:The SMS is sent automatically by UTGL. The webhook allows you to optionally display the code within your own app for a better user experience.
Timing and Expiry
Integration Guide
Step 1: Configure Webhook Endpoint
Ensure your webhook endpoint is set up to receivecardaccount.googlepay.verification-code-delivered events.
See Webhooks Overview for setup instructions.
Step 2: Handle the Verification Code
When you receive the webhook, you can optionally surface the code in your app:- Push Notification - Send a push notification to the cardholder’s device with the code
- In-App Display - Show the code in a dedicated section of your app
- SMS Fallback - The cardholder will also receive the code via SMS (handled by UTGL)
Step 3: Monitor Activation
After the cardholder enters the code, the card is activated in Google Wallet. You can verify the provisioning status through your card management flow.Best Practices
User Experience
- Surface the Code - Use the webhook to display the verification code in your app for a seamless experience
- Show Expiry Timer - Display a countdown timer so the cardholder knows how long the code is valid
- Clear Instructions - Guide the cardholder to enter the code in Google Wallet, not in your app
Reliability
- Idempotency - Use the event
idfield to prevent duplicate processing - Event Logging - Log all provisioning events for support and debugging
- Webhook Signature Verification - Always verify incoming webhook signatures
Security
- Don’t Store Codes - Treat verification codes as transient; do not persist them long-term
- Secure Display - If displaying the code in your app, ensure the display is secure and time-limited
- Verify Webhook Origin - Always validate webhook signatures before processing
Troubleshooting
Next Steps
Webhooks Overview
Set up your webhook endpoint
Webhook Events
View all available webhook events

