Plexy
Pay API
Gate APISDKDashboard
Pay API
Gate APISDKDashboard
  1. Wallets
  • Overview
  • Authorization
  • Webhooks
  • API Errors
  • Test Scenarios
  • Ecommerce Plugins
  • API
    • Payments
      • Overview
      • Transaction Errors
      • Payment Links
        • Create Payment Link
        • List Payment Links
        • Retrieve Payment Link by Order Reference
        • Cancel Payment Link
        • Retrieve Payment Link
        • Update Payment Link Expiration
        • Retrieve Payment Links Statistics
      • Reccurent Payments
        • Create Merchant-Initiated Payment
      • Direct Payments
        • Get Keys
        • Create Host-to-Host Payment
      • Transaction Management
        • Find Transaction's History by ID
        • Find Transaction by Payment Link ID
        • Find Transaction by ID
        • Find Transaction by Order reference
      • Payment Management
        • Cancel Payment
        • Capture Payment
        • Process Refund
      • Split Requests
        • Create
        • List
        • Update
        • Get By Id
        • Delete
    • Payouts
      • Retrieve Payout Transactions
      • Process Payout
      • Save Card for Payouts
    • Customers
      • Get Customer's Card Tokens
      • List Customers
      • Create Customer
      • Get Customer by ID
      • Get Customer's Transactions
    • Merchants
      • Payment Beneficiary
        • Create
        • Update
        • Gey By Id
        • List
        • Transfer from beneficiary balance to merchant balance
        • Create manual settlement for beneficiary
      • Retrieve Merchant's Details
    • Wallet
      • Authorize
      • Сapture
      • Refund
      • Cancel
    • Payment Methods
      • Google Pay™ Integration
    • Invoice
      • List Bank Invoices
      • Create Bank Invoice
      • Get Bank Invoice
    • Distributions
      • Create distribution
      • List distributions
      • Get distribution by ID
      • Get distributions balance
  • Client SDK
    • Server flow
      • Session server flow
    • Web
      • Web Drop-in
      • Web iFrame
    • Flutter
      • Flutter Drop-in
    • Wallets
      • Apple Pay Web SDK Integration
      • Apple Pay Moible Integration
      • Google Pay Integration
  • Schemas
    • Schemas
      • response.TransactionList
      • entity.SplitRequest
      • entity.PaymentBeneficiary
      • request.CreatePaymentBeneficiary
      • entity.SettlementPaymentOrder
      • entity.PayoutRequest
      • entity.PayoutRequestRowData
      • entity.UserProfile Copy
      • entity.Store
      • request.AssignStoreToUser
      • request.RemoveStoreFromUser
      • entity.AccountExternalSystem
      • response.AssignStoreToUser
      • request.CreateStore
      • response.Store
      • response.UserList
      • request.WalletAuthorizeRequest
      • entity.ShortWalletTransaction
      • response.WalletAuthorizeResponse
      • request.WalletCapture
      • response.RemoveStoreFromUser
      • command.HandleThreeDResult
      • domain.Report
      • entity.CardSaveSessionCustomer
      • entity.Permission
      • entity.UserProfile
      • entity.UserRole
      • git_plexypay_com_ecom_back_api_internal_domain_view.Page-domain_Report
      • git_plexypay_com_ecom_back_api_internal_domain_view.Page-entity_UserProfile
      • models.CSVApiRequest
      • models.CreateBussinessDetails
      • models.KeyResponse
      • models.OnboardingRequest
      • models.Transaction
      • paymentcore.Address
      • paymentcore.CustomerDetails
      • request.AuthorizePayment
      • request.BrowserDetails
      • request.CardData
      • request.ChangeUserRole
      • request.ContinueThreeDS
      • request.CreateCardSaveSession
      • request.CreateInviteSession
      • request.CreatePaymentLink
      • request.CreatePaymentLinkMetadata
      • request.HandlePayout
      • request.MerchantInitiatedPayment
      • request.PasswordRequest
      • request.Recurring
      • request.RefundPayment
      • request.SaveCard
      • request.SaveOneCustomer
      • request.TwoStepAuthorizePayment
      • request.UpdateMerchantSettingsRequest
      • request.UpdatePaymentLink
      • response.AcquirerResponseThreeDSecure
      • response.AuthorizeAndCapturePayment
      • response.AuthorizePayment
      • response.CancelPaymentResponse
      • response.CapturePaymentResponse
      • response.ContinueThreeDS
      • response.Currency
      • response.Customer
      • response.CustomerTransaction
      • response.CustomerTransactions
      • response.Customers
      • response.Merchant
      • response.MerchantInitiatedPayment
      • response.MerchantSettings
      • response.PaymentLink
      • response.PaymentLinkInfo
      • response.PaymentLinkMetadata
      • response.PaymentLinksInfo
      • response.PaymentLinksStatistics
      • response.PaymentLinksStatisticsItem
      • response.Payout
      • response.Permission
      • response.RefundPaymentResponse
      • response.Report
      • response.SavedCard
      • response.Session
      • response.Settlement
      • response.SettlementTransaction
      • response.Store
      • response.Stores
      • response.Transaction
      • response.TransactionDetails
      • response.TransactionEvents
      • response.TransactionHistoryEvent
      • response.TransactionHistoryEventData
      • response.TransactionResponse
      • response.TransactionWebhookDetails
      • response.Transactions
      • response.UpdateMerchantSettingsResponse
      • response.UserProfile
      • value.PaymentMethod
    • receipt
    • Error
    • response.BankInvoice
    • DistributionStatus
    • DecimalAmount
    • errors.Source
    • Currency
    • ProductType
    • errors.Message
    • DistributionRecipient
    • ProductCategory
    • request.CreateBankInvoice
    • DistributionCreateRequest
    • Product
    • git_plexypay_com_ecom_back_api_internal_platform_errors.Code
    • DistributionBase
    • response.Error
    • Order
    • DistributionCreatedResponse
    • AgentBalance
    • response.BankInvoiceList
    • DistributionDetailResponse
    • AgentDeposit
    • errors.Type
    • DistributionListItem
    • TopupRequest
    • DistributionListResponse
    • CreateOrderRequest
    • DistributionBalanceResponse
  1. Wallets

Google Pay Integration

Get Started with Google Pay#

Google Pay lets shoppers pay with the cards saved to their Google account. Unlike Apple Pay, Google Pay doesn't require per-domain validation — Plexy's gateway (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.

Prerequisites#

Before you begin:
1.
Plexy account & Client key — get your Client key from the Plexy dashboard. It's required for Drop-in/Components to talk to the Plexy API.
2.
Google Pay & Wallet Business Console account — create a business profile so your brand is shown in the payment sheet.
Sign in to the Google Pay & Wallet Console with your company Google account and complete the business profile (legal business name, website, and support contact details). Once the profile is filled in, open the Google Pay API section and submit your integration for review — Google checks that your checkout follows the Google Pay brand and UX guidelines before granting production access. After you submit, you'll receive a Merchant ID, which you configure in your Plexy Customer Area.
TEST environment works immediately — you can develop and test the full flow before submitting anything.
PRODUCTION payments are blocked until Google approves your submission, so plan for a review period (typically a few business days). Until approval lands, keep using the TEST environment.

Web setup#

Unlike Apple Pay, Google Pay needs no separate domain-registration step. You create the Google Pay component, check availability, and mount the button into your page yourself.

1. Create the checkout and the Google Pay component#

2. Check availability and mount#

In the TEST environment Google Pay is always considered available.

Merchant identifiers — configure them yourself#

The Web SDK does not receive any Google Pay configuration from the API. You must set every value manually in code by passing a configuration object to the component:
FieldMeaningRequired
gatewayMerchantIdYour 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
merchantIdYour Google-issued merchant ID (from the Google Pay Business Console). Used by Google to identify the merchant and render the sheetYes — always. The SDK throws IMPLEMENTATION_ERROR "Missing merchantId" if absent, in both TEST and PRODUCTION
merchantNameDisplay name rendered in the payment sheetNo
merchantOrigin / authJwtPlatform / fully-qualified-domain optionsNo
The Plexy gateway is fixed (gateway: 'plexy') and built into the SDK — you never set it. Pass the Google environment ('TEST' / 'PRODUCTION') to the component. If omitted, it's resolved from the checkout environment: production / live / live-au / live-apse / live-us / live-in → PRODUCTION, everything else (including test) → TEST.

Native setup (Android)#

1. Enable the Google Pay API in AndroidManifest.xml#

Add this metadata tag inside your <application> element:
<meta-data
  android:name="com.google.android.gms.wallet.api.enabled"
  android:value="true" />

2a. React Native#

Google Pay config is a googlepay sub-object inside the unified checkout Configuration. Required: countryCode and amount (Google Pay needs both to display the sheet).
Notes:
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 / gateway fields. The native Android SDK supplies the Google merchantInfo and the Plexy gateway internally — on this layer you set merchantAccount (your Plexy Dashboard merchantName).

2b. Flutter#

Google Pay config is the typed 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 GooglePayEnvironment enum (test / production) rather than deriving it from the environment string. Flutter is also the only mobile SDK that lets you set the Google merchantInfo (merchantId + merchantName) directly.

Configuration parameters (Android: React Native & Flutter)#

ParameterDescriptionDefault
merchantAccountYour 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 + merchantNamenot set
googlePayEnvironmentGoogle Pay environmentfrom root environment (RN) / explicit enum (Flutter)
totalPriceStatusNOT_CURRENTLY_KNOWN / ESTIMATED / FINALFINAL
allowedCardNetworksSupported card networksSDK default
allowedAuthMethodsPAN_ONLY / CRYPTOGRAM_3DSSDK default
allowCreditCards / allowPrepaidCardsSupport for credit/prepaid cardstrue
billingAddressRequired (+ billingAddressParameters)Request billing addressfalse
shippingAddressRequired (+ shippingAddressParameters)Request shipping addressfalse
emailRequiredRequest emailfalse
existingPaymentMethodRequiredReport shopper readiness to payfalse

Troubleshooting#

SymptomLikely 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 appearThe device/browser doesn't support Google Pay, or isAvailable() rejected. On Web, check the console warning from the .catch().
Button missing on AndroidVerify 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 buttonExpected — Google Pay is not available in-app on iOS. Use Apple Pay.
Sheet shows wrong amount/currencyEnsure amount and countryCode are both set (required together for Google Pay).

Appendix: Merchant identifiers & gateway — terminology across SDKs#

There are two different "merchant" concepts, plus a fixed gateway. They are named differently per SDK:
ConceptWhat it isWebReact NativeFlutter
Plexy merchant accountYour 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 merchantNameconfiguration.gatewayMerchantIdgooglepay.merchantAccountmerchantAccount
Google merchant identityGoogle-issued identity from the Google Pay Business Console, shown in the payment sheet (merchantId + merchantName)configuration.merchantId / merchantNamenot exposed (handled natively)merchantInfo.merchantId / merchantName
GatewayThe payment gateway Google tokenizes forfixed 'plexy' (internal)internalinternal
Key points verified against the SDK source:
The gateway is always 'plexy' and is never set by you (only literally present in the Web SDK's internal request).
On Web all merchant identifiers are configured manually in code — the SDK receives nothing from the API. merchantId is required: the component throws "Missing merchantId" if absent (TEST and PRODUCTION).
On React Native only merchantAccount exists; Google's merchantInfo is supplied by the native Android SDK.
The Plexy merchant account (gatewayMerchantId / merchantAccount) comes from the Plexy Dashboard settings, where it's labeled merchantName.
Modified at 2026-06-18 14:33:56
Previous
Apple Pay Moible Integration
Next
response.TransactionList
Built with