All articles

Comparison

Web Payments vs Google Play Billing in Android TWAs

November 1, 2026 · 6 min read

When publishing a Progressive Web App (PWA) to the Google Play Store using a Trusted Web Activity (TWA), one of the most critical decisions revolves around monetisation. Because a TWA runs within a native Android wrapper but executes on a standard browser engine, developers often wonder whether they can continue using their existing web payment gateways, such as Stripe, PayPal, or Braintree, or if they are forced to integrate native Google Play Billing.

Understanding the Google Play Payments Policy

Google Play has strict policies governing how transactions are processed within apps distributed through the store. These rules apply equally to native apps, hybrid apps, and TWA apps. The policy is determined entirely by the nature of the product or service being sold, rather than the technology used to build the app wrapper.

Under Google Play policy, you must use Google Play Billing for transactions involving virtual goods, digital currencies, premium app features, or content consumed directly within the app. Conversely, you are permitted—and often required—to use alternative web payment gateways for physical goods, real-world services, or digital services consumed outside the app.

When Web Payments are Allowed

You can use standard web payment solutions like Stripe or custom credit card forms inside your TWA if you are selling:

  • Physical goods, such as clothing, groceries, or consumer electronics.
  • Real-world services, such as ride-sharing, food delivery, cleaning services, or event tickets.
  • Content or services that are consumed entirely outside the app, such as home utility bills or physical gym memberships.

When Google Play Billing is Mandatory

You must use Google Play Billing (utilising the Digital Goods API in your TWA) if you are selling:

  • Premium features, ad-removal tiers, or SaaS subscriptions accessed inside the app.
  • Virtual currencies, game items, or cosmetic upgrades.
  • Media subscriptions for content streamed or read within the app, such as video, music, or digital publications.

Comparing Integration Paths for TWAs

The choice between web payments and Google Play Billing impacts your technical architecture, user experience, and financial margins. Below is an overview of how these two approaches compare.

FeatureWeb Payment Gateways (Stripe, etc.)Google Play Billing
Transaction FeeTypically 1.5% to 3.5% + fixed fee15% for first $1M USD annually; 30% thereafter
User ExperienceRequires card input or web-based wallets (Apple Pay, Google Pay on Web)One-tap native payment using Google Account credentials
Development EffortZero change if already implemented on your websiteRequires implementing Digital Goods API and Play Billing library
Refund ManagementHandled directly via your web merchant dashboardHandled via Google Play Console or Play Developer API
Device CompatibilityWorks on all devices with a modern browserRequires Google Play Services on the target device

Implementing Web Payments inside a TWA

If your business model permits the use of web payments (for example, an e-commerce platform or a physical service booking app), implementing payments within your TWA is highly straightforward. Because a TWA shares cookies, saved passwords, and autofill data with the user default browser, your existing checkout flow will function seamlessly.

When a user reaches your checkout page, saved credit card details, addresses, and contact info stored in Chrome or their default browser will automatically autofill. Furthermore, you can implement the standard Web Payment Request API. This API provides a browser-native modal sheet for payment selection, bridging the gap between web and native checkout experiences without needing native Android code.

Ensure that your payment gateways do not trigger external window redirects that escape your TWA container. If a payment provider redirects to a third-party verification page (such as a 3D Secure verification page), ensure that the domain is included in your TWA configuration or handled gracefully to prevent the user from being thrown out to a system browser.

Implementing Google Play Billing via Digital Goods API

If your TWA sells digital services or subscriptions, you must integrate Google Play Billing. Traditionally, this required writing complex native Kotlin or Java wrapper code and setting up a bridge between JavaScript and Android. However, modern TWAs can utilise the Digital Goods API alongside the Payment Request API.

The Digital Goods API acts as a web-standard wrapper around the native Google Play Billing API. It allows your web application to query available in-app products, retrieve prices formatted in the user local currency, and initiate purchases directly from JavaScript. The actual payment is then completed securely by Chrome using the native Google Play sheet.

To implement this, you must define your digital products within the Google Play Console, verify your Digital Asset Links to prove ownership of the domain, and invoke the digital goods service from your web application code. While the initial technical setup is more complex than a standard Stripe integration, it guarantees compliance with Play Store terms and prevents app suspension.

Ensuring Policy Compliance to Avoid Rejection

Google uses automated scanners and human reviewers to check submitted AAB files for policy compliance. If your app sells digital subscriptions using a web-only Stripe form, your app will likely be flagged and rejected or suspended from the store. To prevent this, ensure you categorise your inventory correctly. If you operate a hybrid business model (selling both physical and digital items), you must split your checkout flows to use the correct payment processor for each item type.

Ready to ship your Android app?

Paste your PWA URL, get a signed APK and a Google Play ready AAB in minutes.

Build my app