gateway: 'plexy') handles tokenization, so you only enable the payment method and render the button.Platform support: Google Pay is available on Web and Android. On iOS in-app Google Pay is not supported — use Apple Pay instead.
In the TEST environment Google Pay is always considered available.
configuration object to the component:| Field | Meaning | Required |
|---|---|---|
gatewayMerchantId | Your Plexy merchant account — the identifier the Plexy gateway recognizes. Google does not issue or validate it; it's placed in the gateway tokenizationSpecification and forwarded to Plexy to route the token to the right merchant. Take this value from your Plexy Dashboard settings, where it's labeled merchantName. | Yes |
merchantId | Your Google-issued merchant ID (from the Google Pay Business Console). Used by Google to identify the merchant and render the sheet | Yes — always. The SDK throws IMPLEMENTATION_ERROR "Missing merchantId" if absent, in both TEST and PRODUCTION |
merchantName | Display name rendered in the payment sheet | No |
merchantOrigin / authJwt | Platform / fully-qualified-domain options | No |
The Plexy gateway is fixed ( gateway: 'plexy') and built into the SDK — you never set it. Pass the Googleenvironment('TEST'/'PRODUCTION') to the component. If omitted, it's resolved from the checkoutenvironment:production/live/live-au/live-apse/live-us/live-in→PRODUCTION, everything else (includingtest) →TEST.
AndroidManifest.xml<application> element:<meta-data
android:name="com.google.android.gms.wallet.api.enabled"
android:value="true" />googlepay sub-object inside the unified checkout Configuration. Required: countryCode and amount (Google Pay needs both to display the sheet).merchantAccount — your Plexy merchant account (the equivalent of the Web gatewayMerchantId). Take this value from your Plexy Dashboard settings, where it's labeled merchantName.googlePayEnvironment — GooglePayEnvironment.Test or GooglePayEnvironment.Production. If omitted, inherited from the root environment (test → TEST, live-* → PRODUCTION).totalPriceStatus — defaults to "FINAL".The React Native config exposes no merchantId/merchantName/gatewayfields. The native Android SDK supplies the GooglemerchantInfoand the Plexy gateway internally — on this layer you setmerchantAccount(your Plexy DashboardmerchantName).
GooglePayConfiguration, wrapped by GooglePayComponentConfiguration (which carries the root environment / clientKey / countryCode / amount).Unlike Web/React Native, Flutter sets the Google Pay environment explicitly via the GooglePayEnvironmentenum (test/production) rather than deriving it from the environment string. Flutter is also the only mobile SDK that lets you set the GooglemerchantInfo(merchantId+merchantName) directly.
| Parameter | Description | Default |
|---|---|---|
merchantAccount | Your Plexy merchant account put in the token sent to Plexy (= Web gatewayMerchantId). From the Plexy Dashboard settings (merchantName) | set manually |
merchantInfo (Flutter only) | Google identity shown in the sheet: merchantId + merchantName | not set |
googlePayEnvironment | Google Pay environment | from root environment (RN) / explicit enum (Flutter) |
totalPriceStatus | NOT_CURRENTLY_KNOWN / ESTIMATED / FINAL | FINAL |
allowedCardNetworks | Supported card networks | SDK default |
allowedAuthMethods | PAN_ONLY / CRYPTOGRAM_3DS | SDK default |
allowCreditCards / allowPrepaidCards | Support for credit/prepaid cards | true |
billingAddressRequired (+ billingAddressParameters) | Request billing address | false |
shippingAddressRequired (+ shippingAddressParameters) | Request shipping address | false |
emailRequired | Request email | false |
existingPaymentMethodRequired | Report shopper readiness to pay | false |
| Symptom | Likely cause / fix |
|---|---|
| PRODUCTION shows "not enabled" | Your Google Pay & Wallet Business Console submission hasn't been approved yet. Use TEST until approved. |
| Button doesn't appear | The device/browser doesn't support Google Pay, or isAvailable() rejected. On Web, check the console warning from the .catch(). |
| Button missing on Android | Verify the com.google.android.gms.wallet.api.enabled metadata tag is inside <application> in AndroidManifest.xml. |
| "Google Pay is unavailable on this device" (Flutter) | No Google Pay support / no saved cards; the unavailableWidget is shown by design. |
| iOS shows no Google Pay button | Expected — Google Pay is not available in-app on iOS. Use Apple Pay. |
| Sheet shows wrong amount/currency | Ensure amount and countryCode are both set (required together for Google Pay). |
| Concept | What it is | Web | React Native | Flutter |
|---|---|---|---|---|
| Plexy merchant account | Your account on Plexy's side. Sent to Google as the gateway gatewayMerchantId and forwarded to Plexy to route the token — not issued or validated by Google. Found in the Plexy Dashboard settings under merchantName | configuration.gatewayMerchantId | googlepay.merchantAccount | merchantAccount |
| Google merchant identity | Google-issued identity from the Google Pay Business Console, shown in the payment sheet (merchantId + merchantName) | configuration.merchantId / merchantName | not exposed (handled natively) | merchantInfo.merchantId / merchantName |
| Gateway | The payment gateway Google tokenizes for | fixed 'plexy' (internal) | internal | internal |
'plexy' and is never set by you (only literally present in the Web SDK's internal request).merchantId is required: the component throws "Missing merchantId" if absent (TEST and PRODUCTION).merchantAccount exists; Google's merchantInfo is supplied by the native Android SDK.gatewayMerchantId / merchantAccount) comes from the Plexy Dashboard settings, where it's labeled merchantName.