Express Checkout with Digital Wallets
Overviewβ
Express Checkout is a new feature in Common Checkout UI that enables customers to make payments using digital wallets such as Apple Pay and Google Pay. This integration leverages Stripe's Payment Request API to deliver a streamlined checkout experience with fewer clicks and improved payment completion rates. By reducing payment friction, merchants typically experience a significant increase in the percentage of customers who successfully complete transactionsβa key metric for e-commerce success.
Benefitsβ
- Simplified Checkout Process: Reduces the number of steps required to complete a transaction
- Higher Conversion Rates: Minimizes form filling and payment friction, resulting in:
- Fewer abandoned carts (industry research shows up to 69% of carts are abandoned, with complex checkout being a primary reason1)
- Increased completion of payment transactions
- Better return on investment from existing traffic
- Enhanced Security: Utilizes tokenization and device-level authentication for secure payments
- Familiar User Experience: Leverages payment interfaces customers already know and trust
Implementationβ
Express Checkout is automatically included in the Common Checkout UI payment flow. When enabled, it appears above standard payment methods, allowing customers to choose between Express Checkout options and traditional payment methods.
Merchant Onboarding Requirementsβ
Before implementing Express Checkout, merchants must complete these onboarding steps:
- Domain Registration: For embedded integration using Google Pay and Apple Pay, provide your domain and subdomain(s) (e.g., optum.com, mysubdomainname.optum.com) during CCG onboarding
- Feature Activation: Request CCG to enable Apple Pay and Google Pay features as additional payment methods for your merchant account
- Payment Scenario Configuration: Configure session request properties according to your specific payment scenario (one-time payment or payment with wallet)
Integration Methodsβ
CCG supports these integration methods for Express Checkout:
Web Integrationβ
Standard web integration functions automatically once all onboarding steps are completed.
Mobile WebView Integrationβ
For mobile applications using WebView:
- iOS WebView: Standard WebView iOS implementation typically supports Apple Pay and Google Pay without additional configuration
- Android WebView: Payment Request API is not enabled by default for WebView components. Requirements to use Google Pay include:
- App must include dependencies for Payment Request API support
- Application must be published in production
- App must be approved and onboarded by the Google Pay team following instructions on publishing integration
Native Application Integrationβ
- CCG does not currently provide a library for native applications
- Only hosted integration within a WebView or similar component is supported
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: Configure with mode
PAYMENT
, customer details, and payment attributes (including merchant transaction ID, amount, and other required fields)
Session Request - PAYMENT
{
"customer": {
"name": "John Smith",
"email": "john.smith@outlook.com",
"ssnLastFour": "1001",
"dateOfBirth": "2000-09-21",
"zip5": "10003",
"phoneNumber": {
"number": "917-555-3352",
"countryCode": "+1"
},
"metadata": {
"patientId": "12345678",
"accountNumber": "4259882"
}
},
"payment": {
"merchantTransactionId": "ORDER-12345",
"statementDescriptorSuffix": "12345 Test",
"amount": 15000,
"authorizeCard": false,
},
"config": {
"modes": [
"PAYMENT"
],
"paymentMethodChannel": {
"card": [
"WEBFORM",
"GOOGLE_PAY",
"APPLE_PAY"
],
"bankAccount": [
"WEBFORM"
]
}
},
"consent": {
"merchantConsentText": "Nesciunt at esse beatae recusandae aut nulla similique voluptatem nostrum. Est possimus sit enim culpa expedita sint qui sint harum. Delectus earum tenetur molestiae quia voluptas ut aut. Dolorem dolor impedit sint fugiat quae distinctio ullam laudantium nisi. Hic aliquam enim nihil beatae nesciunt rerum et at aut. Cumque qui nesciunt ullam dolores odit ea rerum."
}
}- For payment with wallet: Set mode to
PAYMENT_WITH_WALLET
and include all properties required for one-time payments
Session Request - PAYMENT_WITH_WALLET
{
"customer": {
"name": "John Smith",
"email": "john.smith@outlook.com",
"ssnLastFour": "1001",
"dateOfBirth": "2000-09-21",
"zip5": "10003",
"phoneNumber": {
"number": "917-555-3352",
"countryCode": "+1"
},
"metadata": {
"patientId": "12345678",
"accountNumber": "4259882"
}
},
"payment": {
"merchantTransactionId": "ORDER-12345",
"statementDescriptorSuffix": "12345 Test",
"amount": 15000,
"authorizeCard": false,
},
"config": {
"modes": [
"PAYMENT_WITH_WALLET"
],
"paymentMethodChannel": {
"card": [
"WEBFORM",
"GOOGLE_PAY",
"APPLE_PAY"
],
"bankAccount": [
"WEBFORM"
]
}
},
"consent": {
"merchantConsentText": "Nesciunt at esse beatae recusandae aut nulla similique voluptatem nostrum. Est possimus sit enim culpa expedita sint qui sint harum. Delectus earum tenetur molestiae quia voluptas ut aut. Dolorem dolor impedit sint fugiat quae distinctio ullam laudantium nisi. Hic aliquam enim nihil beatae nesciunt rerum et at aut. Cumque qui nesciunt ullam dolores odit ea rerum."
}
} - For one-time payments: Configure with 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 capabilities2
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β
-
Baymard Institute. (2023). "Cart Abandonment Rate Statistics." According to their research, the average cart abandonment rate is 69.82%, and checkout complexity is among the top reasons for abandonment. https://baymard.com/lists/cart-abandonment-rate β©
-
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 β©