Skip to main content
Version: v2

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​

  1. Complete onboarding, including domain registration and feature activation for Apple Pay/Google Pay (see Getting Started)
  2. Create a session with GOOGLE_PAY and/or APPLE_PAY in config.paymentMethodChannel.card β€” see Sessions API for full request/response details
  3. 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.


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_PAY and/or APPLE_PAY in config.paymentMethodChannel.card
    • See Sessions API for full request payloads and field definitions
  • 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

Express Checkout Payment Lifecycle​

  1. Initialize CCG Widget.
  2. Initialize and Display Payment Webform or CCG Wallet with Apple Pay / Google Pay if available.
  3. User authenticates payment using Face ID / Touch ID / PIN.
  4. Upon successful authentication, CCG Widget submits payment request to CCG Services.
  5. Transaction completes and User receives confirmation.
Express Checkout Lifecycle

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
BrowserApple PayGoogle 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
  1. Domain Registration:

    • Provide your domain(s) to the CCG team during onboarding
    • Include all relevant subdomains that will offer Google Pay and Apple Pay.
  2. 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​

  1. Device/Browser Detection: Verify wallet buttons appear only on supported devices and browsers
  2. Button Display: Confirm buttons are properly styled and positioned
  3. Payment Flow: Complete test transactions using each available wallet method
  4. 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​

  1. 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 ↩