Adding support for Google Pay within Android WebView

MAY 28, 2025
Dominik Mengelt Developer Relations Engineer Payments

Does your Android App embed a web checkout process by using a WebView?

We are happy to announce that Google Pay is now supported within Android WebView. This feature is available in WebView starting with version 137.


How does Google Pay within Android WebView work?

The solution uses the Payment Request API which allows launching Android payment apps when the website is embedded inside of a WebView.

Starting with Google Play Services 25.18.30 (available today), Google Pay will trigger the native payment sheet which means user device tokens will be available for facilitation when triggered from within a WebView.


What changes are required for my App?

Since the Payment Request API will be disabled by default for WebView, the following simple changes need to be implemented:

Add (or update) build dependency:

androidx.webkit:webkit:1.14.0-rc01
Kotlin
The stable version of 1.14.0 follows beginning of June

Add the following queries tags to your AndroidManifest.xml:

<!--
  Allow Chromium defined actions PAY, IS_READY_TO_PAY,
  UPDATE_PAYMENT_DETAILS to be initiated in your Android App or SDK
-->
<queries>
  <intent>
    <action android:name="org.chromium.intent.action.PAY"/>
  </intent>
  <intent>
    <action android:name="org.chromium.intent.action.IS_READY_TO_PAY"/>
  </intent>
  <intent>
    <action android:name="org.chromium.intent.action.UPDATE_PAYMENT_DETAILS"/>
  </intent>
</queries>
Kotlin

Enable the Payment Request API for the WebView you use in your App. Make sure to use the correct import statement. No other Google Pay specific changes are needed.

Kotlin (Compose):

import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.webkit.WebSettingsCompat;
import androidx.webkit.WebViewFeature;

AndroidView(
    factory = {
        WebView(it).apply {
            // Update WebView settings to allow JavaScript and payment request 
            settings.javaScriptEnabled = true            
            if (WebViewFeature.isFeatureSupported(
                    WebViewFeature.PAYMENT_REQUEST)) {
                WebSettingsCompat.setPaymentRequestEnabled(settings, true);
            }
        }
    },
    update = {
      it.loadUrl(url)
    }
)
Kotlin

Java:

import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.webkit.WebSettingsCompat;
import androidx.webkit.WebViewFeature;

WebView webView = findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();

// Update WebView settings to allow JavaScript and payment request
webSettings.setJavaScriptEnabled(true);
if (WebViewFeature.isFeatureSupported(WebViewFeature.PAYMENT_REQUEST)) {
    WebSettingsCompat.setPaymentRequestEnabled(webSettings, true);
}
Java

Finally, make sure to use the Pay & Wallet console to request production access for your App:

An approved Android app integration
An approved Android app integration

Unlock seamless payments in your Android App

Supporting Google Pay within Android WebView allows you to offer Google Pay to your Android users when embedding your web checkout in your app. For more assistance with your implementation, sign in to the Google Pay & Wallet Console to create a support ticket. In addition, you can join the developer community in the #payments channel on Discord.

Follow @GooglePayDevs on X for future updates. If you have questions, tag @GooglePayDevs and include #AskGooglePayDevs in your tweets.