# Google Pay™ Integration

Accept Google Pay™ payments through Plexo using either Plexo Hosted Checkout or your own Google Pay SDK integration.

## Choose Your Flow

| Flow                                                                       | Best When                                                                            | What You Build                                                                                                                                     |
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Web](https://plexo.gitbook.io/rest-api/wallets/google-pay/google-pay-web) | You want Plexo to render checkout and handle Google Pay inside the hosted experience | Create a checkout session and use the hosted checkout URL returned in the session actions                                                          |
| [API](https://plexo.gitbook.io/rest-api/wallets/google-pay/google-pay-api) | You want full control over the checkout UI and render the Google Pay button yourself | Fetch runtime configuration, initialize the Google Pay SDK, send the encrypted token to your server, then forward it to Plexo via the Payments API |

## Shared Prerequisites

1. **Google Pay Merchant Account** - Register at [Google Pay & Wallet Console](https://pay.google.com/business/console)
2. **Plexo Merchant Account** - Use an active merchant in Plexo
3. **Google Pay Enablement** - Ask `soporte@plexo.com.uy` to enable Google Pay for the merchant before starting either flow
4. **Integration Choice** - Decide whether you will use Hosted Checkout, API integration, or both

## Google Resources

If you render the Google Pay™ button yourself, follow Google's official branding and go-live checklists:

* [Google Pay Web Brand Guidelines](https://developers.google.com/pay/api/web/guides/brand-guidelines)
* [Google Pay Android Brand Guidelines](https://developers.google.com/pay/api/android/guides/brand-guidelines)
* [Google Pay Web Integration Checklist](https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist)
* [Google Pay Android Integration Checklist](https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist)

Hosted Checkout merchants do not build or brand the button themselves because Plexo renders Google Pay inside the hosted experience.

## Google Pay Quick Reference

| Item                                                     | Value                                                                                                                                                                                                                  |
| -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Runtime configuration endpoint                           | `GET /v1/merchants/{merchantId}/google-pay/configuration`                                                                                                                                                              |
| `tokenizationSpecification.parameters.gateway`           | `plexouy`                                                                                                                                                                                                              |
| `tokenizationSpecification.parameters.gatewayMerchantId` | Your Plexo `merchantId` rendered as a string                                                                                                                                                                           |
| Supported `allowedAuthMethods`                           | `PAN_ONLY`, `CRYPTOGRAM_3DS`                                                                                                                                                                                           |
| `PAN_ONLY` and 3DS                                       | Plexo triggers 3DS only when the merchant's standard 3DS configuration is enabled and the payment matches the merchant's 3DS rules. Otherwise Plexo returns `google-pay-pan-only-cvc-required` and you retry with CVC. |

{% hint style="info" %}
If you are building the API flow, refer to the [Google Pay API documentation](https://developers.google.com/pay/api) for client-side SDK setup.
{% endhint %}

{% hint style="warning" %}
By using Google Pay, you agree to the [Google Pay and Wallet API's Acceptable Use Policy](https://payments.developers.google.com/terms/aup) and the [Google Pay API Terms of Service](https://payments.developers.google.com/terms/sellertos).
{% endhint %}

## Enable Google Pay

Before using either flow, make sure Google Pay is enabled for your merchant. If you manage merchant configuration through the API, use `PUT /v1/merchants/{merchantId}/wallet-integrations/google-pay`. Otherwise contact `soporte@plexo.com.uy` with your merchant details and the integration mode you need: `hosted`, `api`, or `both`.

### Integration Modes

| Mode     | Description                                                 |
| -------- | ----------------------------------------------------------- |
| `hosted` | Google Pay is available inside Plexo Hosted Checkout        |
| `api`    | You render Google Pay and send the resulting token to Plexo |
| `both`   | The merchant can use both hosted and API integrations       |

For API mode with `profileMode = plexo`, we recommend providing the following configuration parameters to ensure a smooth integration:

* `googleMerchantName` as the display name for Google Pay
* `googleMerchantOrigin` as a hostname without protocol
* `allowedAuthMethods` with one or both of `PAN_ONLY` and `CRYPTOGRAM_3DS`
* `allowedOrigins` as a list of allowed origins for Google Pay API calls (e.g. `["https://yourdomain.com"]`)

If you want `PAN_ONLY` available in PRODUCTION, include it explicitly in `allowedAuthMethods`.

After Plexo confirms enablement, continue with the integration guide that matches your flow.

## Implementation Guides

* [Web](https://plexo.gitbook.io/rest-api/wallets/google-pay/google-pay-web) - Hosted checkout using Plexo Checkout
* [API](https://plexo.gitbook.io/rest-api/wallets/google-pay/google-pay-api) - Send the resulting Google Pay token to Plexo via the Payments API

## Direct Tokenization

If you only need to tokenize a Google Pay token without creating a payment, use `POST /v1/tokenizations` with source `google-pay-token`. The response includes card metadata (`cardType`, `cardOrigin`, `issuer.country`) that you can use for installment UX decisions. See the [Tokenization Guide](https://plexo.gitbook.io/rest-api/customers-and-saved-methods/tokenization-guide#direct-wallet-tokenization-google-pay--apple-pay) for details and examples.

## Next Steps

* [Digital Wallets Overview](https://plexo.gitbook.io/rest-api/wallets/digital-wallets)
* [Wallet Integrations API Reference](https://plexo.gitbook.io/rest-api/api-reference/wallet-integrations)
* [Payment Processing Guide](https://plexo.gitbook.io/rest-api/payments/payment-processing)
* [Google Pay API Documentation](https://developers.google.com/pay/api)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://plexo.gitbook.io/rest-api/wallets/google-pay.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
