Integrar Bounce Provisioning

Captura a tus clientes que buscan agregar su tarjeta desde Google Wallet y llévalos directo a tu app.


Introducción

Cuando tu cliente quiere agregar una tarjeta a Google Wallet, no siempre empieza por tu app. Muchas veces abre Google Wallet directamente y busca su banco o fintech desde ahí. Sin Bounce Provisioning, ese cliente tiene que salir de Google Wallet, abrir tu app por su cuenta y volver a empezar. Buena parte de esos intentos se pierde en el camino.

Bounce Provisioning conecta esos dos mundos: Google Wallet muestra tu app en el listado de emisores disponibles y, cuando tu cliente la elige, la abre directo en la pantalla para agregar la tarjeta. El flujo de tokenización sigue siendo el tuyo, con tu marca y tus controles de seguridad, pero el punto de entrada pasa a ser Google Wallet.

Funcionamiento

  1. Tu cliente abre Google Wallet y presiona "Agregar tarjeta de pago".
  2. Google Wallet busca en el dispositivo todas las apps que declararon la acción ACTION_INITIATE_PROVISIONING y consulta a sus servidores cuáles están habilitadas.
  3. Google Wallet muestra el listado de emisores habilitados y tu cliente elige tu app.
  4. Google Wallet abre la activity que declaraste, que tiene que mostrar la tarjeta lista para agregar.
  5. Tu cliente presiona "Add to Google Wallet" y tu app llama a pushTokenize indicando que el flujo se originó en Google Wallet.
  6. Completada la tokenización, tu app muestra la confirmación y tu cliente queda con la tarjeta agregada en Google Wallet.

Habilitación con Google

Empieza por aquí, antes de escribir código. Google valida contra sus servidores qué apps puede mostrar en el listado, así que tu package name tiene que estar habilitado para Bounce Provisioning además del allowlisting que ya hiciste para Push Provisioning.

1. Agrega tu app package al allowlist

Agrega el package name de tu aplicación en Issuer Console.

2. Completa el formulario de onboarding

Una vez que tu app esté en el allowlist, completa el formulario de onboarding de Bounce Provisioning con tu Merchant ID y el package name que participa del flujo.

Implementación

1. Declara la acción en tu AndroidManifest.xml

Google Wallet descubre las apps compatibles buscando esta acción en los dispositivos. Declárala en la activity que quieres que Google Wallet abra.

2. Detecta el origen del flujo

En la activity que recibe el intent, revisa la acción para saber si tu cliente llegó desde Google Wallet.

El origen del flujo es una propiedad de la sesión de navegación, no de la pantalla actual. Si la activity que recibe el intent no es la misma que ejecuta la tokenización, propaga el valor por Intent extra, argumento de navegación o el mecanismo que uses en tu app.

3. Marca la tokenización como Bounce Provisioning

Al construir el PushTokenizeRequest, agrega el objeto PushTokenizeExtraOptions con el valor que detectaste en el paso anterior.

Estos son los métodos que agrega el SDK para este flujo:

Método Descripción
setPushTokenizeExtraOptions(PushTokenizeExtraOptions) Método de PushTokenizeRequest.Builder. Define las opciones extra de la tokenización.
setIsBounceProvisioned(Boolean) Método de PushTokenizeExtraOptions.Builder. Indica que el token se agregó a través de Bounce Provisioning.

El resto de la llamada a pushTokenize no cambia. Si ya tienes Push Provisioning funcionando, el único ajuste en la tokenización es agregar estas opciones.

El manejo del resultado tampoco cambia: muestra la confirmación como lo haces en el flujo de Push Provisioning habitual. No necesitas cerrar tu activity ni devolver a tu cliente a Google Wallet.

Experiencia de usuario

Google evalúa la experiencia de este flujo antes de habilitarlo. Estos son los criterios que tienes que cumplir:

  • Tras la autenticación, tu cliente tiene que llegar directo a la pantalla con la lista de tarjetas elegibles para tokenización, sin overlays ni popovers antes de esa pantalla. Si tu cliente tiene una sola tarjeta, muéstrale esa; si tiene varias, muéstrale el selector para que elija cuál agregar.
  • Si tu app requiere autenticación, resuélvela sin pasos adicionales innecesarios. Tu cliente ya tomó la decisión de agregar la tarjeta en Google Wallet.
  • Respeta los lineamientos de marca de Google Pay en el botón "Add to Google Wallet".

Repositorio de ejemplo

Para complementar esta guía, te compartimos un repositorio de ejemplo con una implementación de punta a punta de UPP que ya incluye Bounce Provisioning.

En la app Android encuentras:

  • La declaración del intent-filter en el AndroidManifest.xml.
  • La detección del intent de Google Wallet en la Activity.
  • El PushTokenizeRequest armado con PushTokenizeExtraOptions.

Preguntas frecuentes

¿Tengo que cambiar mi integración de Push Provisioning existente?

No. El flujo de tokenización, la generación del OPC y el manejo de resultados siguen igual. Solo agregas el intent-filter en el manifest y las opciones extra en el PushTokenizeRequest.

¿Puedo usar el mismo intent-filter en la activity principal de mi app?

Sí, siempre que esa activity lleve a tu cliente directo a la pantalla para agregar la tarjeta. Si tu activity principal es un login o una home con varias secciones, te conviene declarar el intent en una activity dedicada.

¿Mi app aparece en Google Wallet apenas publico la versión con el intent-filter?

No. Google consulta en sus servidores qué apps están habilitadas antes de mostrar el listado. Hasta que tu package name esté habilitado para Bounce Provisioning, tu app no aparece aunque el intent esté declarado correctamente.

¿Dónde encuentro la documentación oficial de Google?

En la guía de Bounce Provisioning para Android. Ahí están el detalle de la API, el diagrama del flujo completo y los requisitos que Google evalúa antes de habilitar tu app.

Pomelo AI

Asistente de inteligencia artificial para consultas sobre la API de Pomelo
¡Hola!¿Cómo puedo ayudarte hoy?
Bounce Provisioning