Google Pay
Acepta pagos con Google Pay™ en cualquiera de tus integraciones — Link de Pago, Checkout redireccionado o Checkout embebido — con una sola configuración.
¿Por qué Google Pay™?
Tus clientes pagan con las tarjetas guardadas en su cuenta de Google, sin capturar datos manualmente.
En Android el pago viaja con criptograma 3DS a nivel de red (CRYPTOGRAM_3DS); en escritorio e iOS se procesa con la tarjeta guardada en la cuenta de Google (PAN_ONLY), con 3DS según tu configuración.
Se renderiza en Android, escritorio (Chrome, Safari, Firefox, Edge) e iOS — ya no solo en el ecosistema Android.
Ficha del método
| Propiedad | Detalle |
|---|---|
| Tipos de integración | Link de Pago · Checkout redireccionado · Checkout embebido · Direct API |
| Dispositivos | Android, escritorio (Windows / Mac / Linux) e iOS |
| Navegadores | Chrome, Safari, Firefox, Edge y Opera (escritorio y móvil) |
| Autenticación | CRYPTOGRAM_3DS (token de dispositivo con criptograma, en Android) y PAN_ONLY (tarjeta guardada en la cuenta de Google, en escritorio e iOS) |
| Reembolsos | Totales y parciales, igual que un cargo de tarjeta |
| Recurrencia | No disponible actualmente |
| Cuenta de Google | No se requiere en ninguna integración de Checkout — Conekta gestiona el Merchant ID de Google Pay en tu nombre. Solo Direct API en producción requiere registro en la Google Pay & Wallet Console |
1. Cómo funciona
Google Pay™ devuelve un token de pago según la superficie del cliente: en Android entrega un token de dispositivo con criptograma 3DS (CRYPTOGRAM_3DS), donde la verificación 3D Secure viaja dentro del token sin challenge adicional; en escritorio e iOS entrega la tarjeta guardada en la cuenta de Google (PAN_ONLY), que Conekta procesa como una tarjeta (con 3DS según tu configuración antifraude).
sequenceDiagram
participant C as Cliente (Android, escritorio o iOS)
participant G as Google Pay
participant K as Conekta
participant B as Banco emisor
C->>G: Selecciona tarjeta de su cuenta de Google
G-->>C: Token de pago (CRYPTOGRAM_3DS en Android · PAN_ONLY en escritorio/iOS)
C->>K: Pago tokenizado (checkout)
K->>B: Procesa el cargo
B-->>K: Autorización
K-->>C: Pago confirmado (order.paid)
El botón se renderiza en Android, escritorio e iOS: en Android usa el token de dispositivo con criptograma (CRYPTOGRAM_3DS) y en escritorio e iOS la tarjeta guardada en la cuenta de Google (PAN_ONLY). Para que aparezca, el cliente debe tener al menos una tarjeta disponible en su cuenta de Google (o en Google Wallet, en Android). Si no es elegible, el resto de los métodos de pago se muestra con normalidad.
Términos y políticas de GoogleAl integrar Google Pay™ a través de Conekta aceptas la Política de Uso Aceptable de Google Pay y Wallet API y los Términos de Servicio del API de Google Pay. Su incumplimiento puede resultar en la suspensión de tu integración.
¿Tu cliente aún no tiene tarjetas en Google Wallet?Puede agregarlas en el momento desde la app Google Wallet de su Android (escaneando su tarjeta física o digitándola) o desde la app de su banco, y regresar al checkout para pagar.
2. Intégralo en tu Conekta Checkout
Configuración de métodos de pago en el Panel (v2.3)A partir de esta versión, los métodos de pago disponibles en el Checkout se habilitan directamente desde el Conekta Panel, no desde el API. Para activarlos, ingresa a tu Panel de Conekta y en el menú izquierdo selecciona Métodos de pago. Asegúrate de tener habilitado el método correspondiente antes de realizar pruebas.
Requisitos
- Ten habilitado el método de pago Tarjeta en tu Conekta Panel y tu integración de tarjetas funcionando (Google Pay™ se muestra dentro de tu mismo checkout de tarjetas).
- Ten habilitado el método de pago Google Pay™ en tu Conekta Panel — se muestra automáticamente en el checkout, sin cambios en tu request. Si personalizas los métodos con
allowed_payment_methodsoexcluded_payment_methods, asegúrate de no filtrar- No necesitas registrarte en la Google Pay & Wallet Console: Conekta gestiona la integración por ti.
Crea una orden con checkout de tipo HostedPayment — exactamente igual que un cargo con tarjeta:
curl --request POST \
--url https://api.conekta.io/orders \
--header 'accept: application/vnd.conekta-v2.3.0+json' \
--header 'content-type: application/json' \
--header 'authorization: Bearer key_XXXXXXX' \
--data '{
"currency": "MXN",
"customer_info": {
"name": "Juan Perez",
"email": "[email protected]",
"phone": "+5218181818181"
},
"line_items": [
{
"name": "Box of Cohiba S1s",
"unit_price": 35000,
"quantity": 1
}
],
"checkout": {
"type": "HostedPayment",
"success_url": "https://www.mysite.com/payment/confirmation",
"failure_url": "https://www.mysite.com/payment/failure",
"redirection_time": 4
}
}'La respuesta incluye checkout.url; al redirigir a esa URL tu cliente verá el botón de Google Pay junto al resto de los métodos habilitados.

Los ejemplos completos de creación de orden en PHP, Ruby, Python, Node, .NET, Go y Java están en Cargo único con tarjeta.
a) Crea el Order con checkout Integration desde tu backend
curl --request POST \
--url https://api.conekta.io/orders \
--header 'Accept-Language: es' \
--header 'accept: application/vnd.conekta-v2.3.0+json' \
--header 'authorization: Bearer {PRIVATE_KEY}' \
--header 'content-type: application/json' \
--data '{
"checkout": {
"type": "Integration",
"name": "Pago con Google Pay"
},
"customer_info": {
"name": "DevTest",
"email": "[email protected]",
"phone": "5522997233"
},
"currency": "MXN",
"line_items": [{
"name": "Box of Cohiba S1s",
"description": "Imported From Mex.",
"unit_price": 500000,
"quantity": 1
}]
}'La respuesta incluye el objeto checkout con un id (checkoutRequestId) para el siguiente paso.
b) Renderiza el Componente de Pago
El SDK detecta automáticamente si el cliente puede pagar con Google Pay™ y muestra el botón cuando corresponde:
<div id="conekta-checkout"></div>
<script src="https://pay.conekta.com/v1.0/js/conekta-checkout.min.js"></script>
<script type="text/javascript">
const options = {
backgroundMode: 'lightMode',
colorPrimary: '#081133',
colorText: '#585987',
colorLabel: '#585987',
inputType: 'minimalMode',
};
const config = {
locale: 'es',
publicKey: '{{PUBLIC_KEY}}',
targetIFrame: '#conekta-checkout',
checkoutRequestId: '{{checkoutRequestId}}',
};
const callbacks = {
onGetInfoSuccess: function (loadingTime) {},
onFinalizePayment: function (order) {
console.log('success:', JSON.stringify(order));
},
onErrorPayment: function (error) {
console.log('error:', error);
},
};
window.ConektaCheckoutComponents.Integration({ config, callbacks, options });
</script>
Los ejemplos de creación de orden en Ruby, Node, Python, Go, Java y .NET están en Cargo único con tarjeta.
Desde el Panel
- Ingresa a tu panel de administración y entra a Link de pago → Crear Link.
- En Configuración avanzada verás los métodos de pago habilitados, entre ellos Google Pay.

Por API
curl --request POST \
--url https://api.conekta.io/checkouts \
--header 'accept: application/vnd.conekta-v2.3.0+json' \
-u key_eYvWV7gSDkNYXsmr: \
--header 'content-type: application/json' \
--data '{
"name": "Payment Link Name",
"type": "PaymentLink",
"recurrent": false,
"expires_at": 1799999999,
"needs_shipping_contact": true,
"order_template": {
"line_items": [{
"name": "Red Wine",
"unit_price": 1000,
"quantity": 10
}],
"currency": "MXN",
"customer_info": {
"name": "Juan Perez",
"email": "[email protected]",
"phone": "5566982090"
}
}
}'
expires_atdebe ser un timestamp futuro (entre 5 minutos y 365 días a partir de la creación).
3. Prueba tu integración
En el sandbox de Conekta no existen "tarjetas de prueba de Google Pay": usa tus llaves de sandbox y prueba con una tarjeta normal agregada a Google Wallet — el cargo no se procesa fuera del ambiente de pruebas.
Para simular rechazos, envía un email con el formato {motivo}[email protected] en el campo customer_info.email de la orden. El prefijo determina el resultado:
Email en customer_info.email | Resultado simulado |
|---|---|
[email protected] | insufficient_funds |
[email protected] | card_declined |
[email protected] | suspected_fraud |
| Cualquier otro email | Pago aprobado |
La lista completa de escenarios simulables está en el kit de pruebas.
4. ¿No aparece el botón?
El botón de Google Pay™ aparece cuando el cliente puede pagar con Google en su superficie. Diagnostica en dos pasos: primero el entorno del cliente, luego tu integración.
Checklist del entorno del cliente
- Tiene al menos una tarjeta válida (Visa, Mastercard o Amex) en su cuenta de Google — en Android, agregada a Google Wallet; en escritorio e iOS, guardada en su cuenta de Google.
- Está en un navegador soportado (Chrome, Safari, Firefox, Edge u Opera) o en un dispositivo Android/iOS.
- Está con sesión iniciada en su cuenta de Google (necesario en escritorio e iOS para ver las tarjetas guardadas).
- Nota: dentro de un WebView embebido de iOS el botón no se muestra (restricción de iOS); usa Safari u otro navegador.
Checklist de tu integración
- Tienes el método de pago Google Pay™ habilitado en tu Conekta Panel y el checkout no lo está filtrando — si envías
allowed_payment_methodsoexcluded_payment_methodspersonalizados, verifica que no excluyangoogle. - El sitio se sirve por HTTPS con certificado válido.
- Si el Component vive dentro de un
<iframe>tuyo, el iframe debe incluir el atributoallow="payment".
El botón aparece pero el pago falla
- Confirma el estado final vía webhooks (
order.paid/order.declined), no solo con el callback del frontend. - Una declinación bancaria regresa el código del emisor en la respuesta del cargo; una declinación antifraude rechaza sin cobro.
5. Disputas y contracargos
Los pagos de Google Pay™ en Android viajan con criptograma 3DS a nivel de red (autenticados, con traslado de responsabilidad al emisor), lo que reduce la incidencia de fraude y fortalece tu posición de defensa frente a un contracargo. Los pagos en escritorio e iOS (PAN_ONLY) se procesan como una tarjeta guardada: la autenticación 3DS depende de tu configuración antifraude, igual que un cargo de tarjeta digitada.
Los reembolsos (totales o parciales) funcionan igual que en cualquier cargo de tarjeta.
6. Eventos y webhooks
Configura webhooks para automatizar el seguimiento de la orden:
| Evento | Descripción |
|---|---|
order.paid | Pago completado exitosamente |
order.pending_payment | Orden creada, pendiente de pago |
order.declined | Pago rechazado |
Siguiente paso
- Apple Pay — habilita la otra wallet con la misma orden.
Google Pay es una marca de Google LLC.
Updated 17 days ago

