Express Checkout with Digital Wallets
When to Useβ
- You want to offer Apple Pay and Google Pay for frictionless checkout
- You want to maximize conversion by reducing payment steps
- You want to leverage device-level authentication and tokenization
Key Benefitsβ
- Simplifies checkout and reduces cart abandonment
- Secure, familiar payment experience for users
- Works in web, mobile WebView, and embedded widget flows
Setup Overviewβ
- Complete onboarding, including domain registration and feature activation for Apple Pay/Google Pay (see Getting Started)
- Create a session with
GOOGLE_PAYand/orAPPLE_PAYinconfig.paymentMethodChannel.cardβ see Sessions API for full request/response details - Express Checkout appears automatically above standard payment methods when enabled
Example: Session Configuration for Express Checkoutβ
Include GOOGLE_PAY and/or APPLE_PAY in config.paymentMethodChannel.card. For full session request/response payloads (PAYMENT and PAYMENT_WITH_WALLET modes), see Sessions API.
{
"config": {
"modes": ["PAYMENT"],
"paymentMethodChannel": {
"card": ["WEBFORM", "GOOGLE_PAY", "APPLE_PAY"],
"bankAccount": ["WEBFORM"]
}
}
}
Troubleshooting & FAQβ
Q: Why donβt I see Apple Pay or Google Pay buttons? A: Ensure your domain is registered and feature activation is complete. The userβs device/browser must also support the selected wallet.
Q: Can I use Express Checkout in a mobile app? A: Yes, via WebView. iOS WebView typically works out of the box; Android WebView requires Payment Request API support and Google approval.
Q: Is a native SDK available? A: No, only web and WebView integrations are supported.
Related Documentationβ
- Sessions API β Session creation, payloads, and status lifecycle
- Hosted Experience
- Embedded Experience
- Widget Capabilities
Sequence Diagram
Session Configurationβ
When creating a session that supports Express Checkout, ensure your session request includes all required properties as detailed in the session creation documentation, plus:
-
Payment Scenario Settings:
- For one-time payments: use mode
PAYMENT - For payment with wallet: use mode
PAYMENT_WITH_WALLET - For both modes, include
GOOGLE_PAYand/orAPPLE_PAYinconfig.paymentMethodChannel.card - See Sessions API for full request payloads and field definitions
- For one-time payments: use mode
-
Merchant Identification:
- Configure merchant details comprehensively during onboarding to ensure proper display in payment sheets
- Include a clear, descriptive statement descriptor to facilitate payment identification in customer transaction statements
- Configure merchant details comprehensively during onboarding to ensure proper display in payment sheets
Express Checkout Payment Lifecycleβ
- Initialize CCG Widget.
- Initialize and Display Payment Webform or CCG Wallet with Apple Pay / Google Pay if available.
- User authenticates payment using Face ID / Touch ID / PIN.
- Upon successful authentication, CCG Widget submits payment request to CCG Services.
- Transaction completes and User receives confirmation.
Limitations and Requirementsβ
Availability Restrictionsβ
- Self-Service Only: Express Checkout is available exclusively for self-service (non-agent) sessions and will not appear in agent-assisted payment flows
- Geographic Restrictions: Unavailable in regions where Stripe doesn't support digital wallet payments, specifically:
- IP addresses in India are not supported by Stripe for these payment methods
Device and Browser Supportβ
-
Apple Pay:
- Requires Safari browser on iOS 10+ or macOS 10.12+
- Device must be Apple Pay compatible
- User must have at least one card added to Apple Wallet
- Corporate Device Restriction: Apple accounts are not permitted on UHG/Optum devices; testing requires personal devices equipped with biometric authentication
-
Google Pay:
- Supported on Chrome, Firefox, Safari (Android), and Edge browsers
- Requires Android 5.0+ or iOS with Google Pay app installed
- User must have at least one card added to Google Pay account
| Browser | Apple Pay | Google Pay |
|---|---|---|
| Chrome | β | β |
| Edge | β | β |
| Firefox | β | β |
| Opera | β | β |
| Safari | β | β |
| Chrome on iOS 16+ | β | β |
| Firefox on iOS 16+ | β | β |
| Edge on iOS 16+ | β | β |
Mobile Application Constraintsβ
-
Android Native Applications: Payment Request API requires:
- App must include necessary dependencies
- App must be published in production
- Google Pay team must approve and onboard the application
-
Integration Method: Only hosted integration within WebView or similar components is supported, as CCG does not provide native application libraries
Testing Guidelinesβ
Google/Apple Pay Domain Validationβ
To enable Google Pay and/or Apple Pay on your website, your domain and subdomain must be registered. Follow these steps:
Domain Registration Process
-
Domain Registration:
- Provide your domain(s) to the CCG team during onboarding
- Include all relevant subdomains that will offer Google Pay and Apple Pay.
-
Domain Validation:
- Once you receive confirmation from CCG Team that your domain has been registered, please validate by making a test payment.
- If the test fails, please reach out to our support team via ServiceNow and use the assignment group: CCG_NONPROD_SUPPORT.
Test Scenariosβ
Focus testing on successful payment scenarios, as all payment processing occurs through Stripe's network. Declined payment scenarios are already covered by existing credit card payment path tests because:
- Both Express Checkout and standard credit card payments use the same underlying Stripe payment infrastructure
- Card decline handling, error responses, and validation logic are implemented at the Stripe gateway level
- Error codes, decline messages, and exception handling for failed transactions follow the same patterns regardless of the payment method source
- The same fraud detection, authorization systems, and gateway error handling apply to both Express Checkout payments and manual card entry
This shared infrastructure eliminates the need to duplicate declined payment testing specifically for Express Checkout payments.
Test Device Requirementsβ
- For Apple Pay Testing: Use a personal device with:
- Safari browser
- Apple Pay configured with a valid Stripe test card (no actual charges will occur in nonproduction environments)
- Biometric authentication enabled (Touch ID or Face ID)
- For Google Pay Testing: Use a device with:
- Chrome browser
- Google account registered with the Google Developer Program for full testing capabilities1
Test Recommendationsβ
- Device/Browser Detection: Verify wallet buttons appear only on supported devices and browsers
- Button Display: Confirm buttons are properly styled and positioned
- Payment Flow: Complete test transactions using each available wallet method
- Confirmation: Verify successful payment completion and receipt of related webhook payment events if applicable
Troubleshootingβ
Common Issuesβ
- Buttons Not Appearing: Verify device and browser support, and confirm wallet setup
- Payment Failures: Check test card configuration and network connectivity
- Integration Issues: Confirm CCG widget configuration and session request parameter setup
Supportβ
For technical assistance with Express Checkout integration, contact CCG support and provide:
- Detailed issue description
- Device and browser information
- Screenshots or error messages (if applicable)
- Transaction ID (if a payment was attempted)
Future Enhancementsβ
Express Checkout will continue to evolve with updates and support according to changes in the underlying payment gateway provider used to support Google Pay and Apple Pay. Contact the Product Team if you need to extend functionalities related to this feature. You can also submit a ticket on the idea portal.
Referencesβ
Footnotesβ
-
Google Pay API. "Test Card Suite." For testing Google Pay integration, use the recommended test cards and configuration settings. https://developers.google.com/pay/api/android/guides/resources/test-card-suite β©