Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt

Use this file to discover all available pages before exploring further.

This guide is for mobile apps only. For web applications, Google Pay works automatically when enabled via the payment.fiat.allowedMethods.googlePay prop — no additional setup required.
This guide covers how to enable Google Pay for onramp flows in React Native and Android native (Kotlin) applications. Mobile apps require additional native configuration that web apps do not need.

Overview

When properly configured, users see the native Android Google Pay sheet, providing seamless access to payment credentials stored in Google Wallet without leaving your app.
PlatformSetup Required
Web (React, Next.js, etc.)Enable via props only
React Native (Expo)Expo plugin + rebuild
React Native (Bare)Manual Android config
Android Native (Kotlin)AndroidManifest config

Mobile SDK Integration

Prerequisites

  • React Native project with Expo or bare workflow
  • Crossmint account with API keys
  • Android device or emulator with Google Play Services
1

Install Dependencies

pnpm add @crossmint/client-sdk-react-native-ui
The SDK includes react-native-webview as a dependency. If you need to install it separately, ensure version 13.15.0 or higher:
pnpm add react-native-webview@^13.15.0
2

Configure the Expo Plugin

Update your app.json to enable Google Pay:
{
  "expo": {
    "plugins": [
      [
        "@crossmint/client-sdk-react-native-ui",
        {
          "enableGooglePay": true
        }
      ]
    ]
  }
}
This plugin modifies native Android permissions required for Google Pay. The app must be rebuilt after adding this configuration.
3

Rebuild Your App

Hot reload cannot apply the permission changes. You must rebuild:
npx expo run:android
Or for bare React Native:
npx react-native run-android
4

Enable Google Pay in the Checkout Component

When creating the onramp checkout, enable Google Pay in the payment configuration:
import {
    CrossmintEmbeddedCheckout,
    CrossmintProvider,
} from "@crossmint/client-sdk-react-native-ui";

export default function OnrampScreen() {
    return (
        <CrossmintProvider apiKey="YOUR_CLIENT_SIDE_API_KEY">
            <CrossmintEmbeddedCheckout
                orderId={order.orderId}
                clientSecret={order.clientSecret}
                payment={{
                    crypto: { enabled: false },
                    fiat: {
                        enabled: true,
                        allowedMethods: {
                            card: true,
                            applePay: false,
                            googlePay: true,
                        },
                    },
                }}
            />
        </CrossmintProvider>
    );
}

Google Pay Production Approval

Google Pay works immediately in staging environments. For production, Google requires explicit approval of your app.
  1. Navigate to the Google Pay & Wallet Console
  2. Select “Merchant” as your business type
  3. Complete all business profile information
  4. Navigate to Google Pay API and click “Get Started”
  5. Accept the Google Pay API Terms of Service
  6. Note your Merchant ID (top-right corner after completion)
In the Google Pay & Wallet Console:
  1. Navigate to Google Pay API then Integrations then Integrate with your Android app
  2. Locate your Android application and click “Manage”
  3. Select your integration type (typically “Gateway”)
  4. Upload screenshots of your TEST Google Pay integration
  5. Click “Save” then “Submit for approval”
Required Screenshots:
  • Product/item selection showing Google Pay option
  • Cart or checkout view with payment options
  • Google Pay payment sheet with card selection
  • Confirmation or receipt screen
After Google approval (typically ~1 business day):
  1. Sign your APK with a release key (debug keys do not work in production)
  2. Update environment settings:
    • Kotlin: environment = CheckoutEnvironment.PRODUCTION
    • React Native: Use production API key
  3. Publish your app to Google Play Store

Troubleshooting

  1. Plugin not configured: Verify enableGooglePay: true in app.json plugins
  2. App not rebuilt: Run npx expo run:android after adding the plugin
  3. Environment mismatch: Staging works without approval; production requires it
  4. Payment method disabled: Check googlePay: true in allowedMethods
  1. AndroidManifest missing queries: Add all three Chromium intent queries
  2. Native rebuild required: Hot reload cannot apply permission changes
  3. Device requirements: User needs Google Play Services 25.18.30+ and WebView 137+