Skip to main content

Add Apple Pay and Google Pay to React Native

ยท 5 min read
Full Stack Developer
Last updated on May 18, 2026

Apple Pay and Google Pay can make mobile checkout faster, especially for commerce, marketplace, restaurant, delivery, booking, and service apps. Old React Native tutorials often mention Android Pay or abandoned Payment Request wrappers. For current production work, use the maintained payment SDK for your provider and keep privileged payment logic on your backend.

This guide focuses on Stripe's React Native SDK because it supports PaymentSheet and platform wallets through the same production payment flow.

apple pay android pay react native payments request

Quick Answerโ€‹

Use Stripe's React Native SDK, configure Apple Pay with an Apple Merchant ID, configure Google Pay for Android, create PaymentIntents on your backend, and show platform wallet options only when the device and merchant configuration support them.

For Instamobile apps, start with:

Android Pay vs Google Payโ€‹

Android Pay is the old name. In modern app copy, documentation, and UI, refer to Google Pay. Keep the old slug for SEO and redirects, but use Google Pay in the article and implementation.

Mega Bundle Sale is ON! Get ALL of our React Native codebases at 90% OFF discount ๐Ÿ”ฅ

Get the Mega Bundle

Apple Pay Requirementsโ€‹

For Apple Pay with Stripe in a React Native app, verify:

  • Apple Developer Program membership;
  • production bundle identifier;
  • Apple Merchant ID;
  • Apple Pay capability enabled in Xcode;
  • Stripe account with Apple Pay configured;
  • Stripe publishable key in the app;
  • Stripe secret key only on the backend;
  • real iOS device for final testing.

The Merchant ID must match across Apple Developer, Xcode entitlements, Stripe configuration, and the React Native app config.

import { StripeProvider } from '@stripe/stripe-react-native';

export function PaymentsProvider({ children }: { children: React.ReactNode }) {
return (
<StripeProvider
publishableKey="pk_test_your_publishable_key"
merchantIdentifier="merchant.com.yourcompany.yourapp"
>
{children}
</StripeProvider>
);
}

Use the Apple Pay setup guide for the detailed Instamobile flow.

Google Pay Requirementsโ€‹

For Google Pay, verify:

  • Android app package name matches the production app;
  • Stripe account supports the payment methods and currency;
  • Google Pay test mode is used in development;
  • production mode is enabled only after real checkout testing;
  • the app has a fallback card checkout when Google Pay is unavailable.

In Instamobile app config, Google Pay settings usually live beside Stripe publishable key and backend URL. Search for:

rg "ANDROID_PAYMENT_MODE|googlePay|Google Pay|STRIPE_CONFIG"

PaymentSheet Wallets vs Separate Wallet Buttonsโ€‹

Stripe PaymentSheet can present supported wallet payment methods inside the checkout sheet. This is the best default when you want one checkout flow for cards, Apple Pay, Google Pay, Link, and saved methods.

Use a separate Apple Pay or Google Pay button when the product design needs a wallet-first checkout. In that case, still create the PaymentIntent on the backend and confirm the payment through Stripe's platform payment APIs.

Check Platform Support Before Showing a Buttonโ€‹

Do not render a wallet button just because the app is running on iOS or Android. Check support through the payment SDK:

import { PlatformPayButton, useStripe } from '@stripe/stripe-react-native';
import { useEffect, useState } from 'react';

export function WalletPayButton() {
const { isPlatformPaySupported } = useStripe();
const [supported, setSupported] = useState(false);

useEffect(() => {
isPlatformPaySupported().then(setSupported);
}, [isPlatformPaySupported]);

if (!supported) {
return null;
}

return <PlatformPayButton onPress={() => startWalletCheckout()} />;
}

Always keep a standard checkout fallback. A user may not have a card in Wallet, may be in an unsupported country, or may be using a device that cannot complete the platform wallet flow.

Backend and Store Policy Checksโ€‹

Apple Pay and Google Pay do not remove the need for backend validation:

  • calculate totals server-side;
  • create PaymentIntents on the backend;
  • finalize orders from trusted payment state;
  • handle webhooks;
  • prevent duplicate checkout taps;
  • log failed payment attempts without exposing card data.

Also check store policy before using external payments. Physical goods and services are different from digital goods and subscriptions. For digital goods, Apple and Google may require their in-app purchase or billing systems depending on product and region.

Real-Device Testing Checklistโ€‹

Test before release:

  • Apple Pay appears on a real iOS device with a Wallet card;
  • Google Pay appears on a real Android device with a supported account;
  • unsupported devices fall back to card checkout;
  • test-mode payments appear in Stripe Dashboard;
  • order status updates only after backend confirmation;
  • cancellation leaves the cart unpaid;
  • failed payments do not create paid orders;
  • live mode uses live publishable and secret keys from the same Stripe account.
Looking for a custom mobile application?

Our team of expert mobile developers can help you build a custom mobile app that meets your specific needs.

Get in Touch

FAQโ€‹

Should I use React Native Payments or Payment Request wrappers?โ€‹

Not for new Stripe-based production work. Use Stripe's maintained React Native SDK and the official Apple Pay / Google Pay docs.

Can Apple Pay and Google Pay replace card checkout?โ€‹

No. Keep a fallback. Not every user has a wallet configured or uses a supported device, region, card, or currency.

Can I use Apple Pay or Google Pay for digital subscriptions?โ€‹

Do not assume that. Check Apple App Review Guidelines and Google Play payments policy for your exact product before implementing payment flows.