> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/transit-digitization/es/implementar-google-transit/ticketing-basado-en-cuenta-abt/aprovisionamiento-nativo.md).

# Aprovisionamiento nativo

El proceso de Provisionamiento Nativo permite la emisión de una nueva tarjeta de transporte anónima directamente desde Google Wallet.

### Flujo de trabajo <a href="#workflow" id="workflow"></a>

A continuación se muestran los pasos de alto nivel del flujo de Provisionamiento Nativo:

1. **Selección de producto tarifario y pago**: el usuario selecciona el producto tarifario que desea comprar. Una vez seleccionado, el usuario autoriza la compra del producto tarifario seleccionado y el PSP procesa el pago.
2. **Provisionamiento**: Google obtiene el paquete de provisionamiento que contiene los detalles de la tarjeta.
3. **Resultado del provisionamiento**: Google envía una notificación indicando el resultado del provisionamiento.

### Diagrama de secuencia <a href="#sequence-diagram" id="sequence-diagram"></a>

#### Selección de producto tarifario y pago <a href="#fare-product-selection--payment" id="fare-product-selection--payment"></a>

El usuario comienza seleccionando la tarjeta de transporte dentro de Google Wallet y cargándola con un producto tarifario elegible de su elección. Antes de proceder al pago, Google Wallet presentará los términos y condiciones del emisor de transporte, que el usuario debe revisar y aceptar para continuar. Una vez aceptados, el usuario será dirigido a una interfaz de pago que muestra una hoja de pago, donde podrá elegir una tarjeta de pago elegible para completar la compra.

**Escenarios de error**

Cuando ocurre un fallo de pago o un tiempo de espera, Google Wallet muestra un error al usuario. El usuario puede reintentar el pago utilizando la misma credencial de pago o una diferente.

{% hint style="info" %}
Es importante tener en cuenta que el emisor de transporte deberá comenzar a preparar los datos necesarios para emitir la tarjeta digital tan pronto como la solicitud de pago sea validada con el PSP.
{% endhint %}

<figure><img src="/files/b8c0bd7d4284cd99986031e6bd632533b2031453" alt=""><figcaption></figcaption></figure>

#### Provisionamiento <a href="#provisioning" id="provisioning"></a>

Una vez que el usuario ha completado el pago con éxito, Google comienza a enviar solicitudes de provisionamiento para obtener el paquete de provisionamiento cifrado.

**Escenarios de error**

**No hay solicitud de Google para obtener el paquete de provisionamiento**

Se establece en el lado de D1 Transit un período de tiempo de espera entre la respuesta de productos de compra y la solicitud getOpaqueAuthenticationCredential de Google.

Si la solicitud getOpaqueAuthenticationCredential no es recibida por D1 Transit dentro de este período de tiempo de espera, la cuenta de la tarjeta y las referencias de la tarjeta digital se descartan por completo. El emisor de transporte deberá reembolsar al cliente.

Si Google solicita getOpaqueAuthenticationCredential después del tiempo de espera, D1 Transit notificará a Google que el paquete de provisionamiento ya no está disponible, lo que llevará a Google a detener el flujo de provisionamiento.

<figure><img src="/files/5efde417d55770388f9c27a8fa17357901c90cdd" alt=""><figcaption></figcaption></figure>

#### Resultado del provisionamiento

Una vez que Google recibe el paquete de provisionamiento, las claves y los datos se extraen y almacenan de forma segura. Después de completar la personalización, se envía un acknowledgePaymentBundle a D1 Transit para informar el resultado del flujo de provisionamiento.

**Escenarios de error**

**La tarjeta no se puede provisionar en el dispositivo**

Si el provisionamiento falla, Google no proporciona ninguna notificación a la plataforma D1 Transit. Como consecuencia, D1 Transit espera a que se alcance el tiempo de espera configurado (ver más abajo).

**No hay solicitud acknowledgePaymentBundle de Google**

D1 Transit tiene un período de tiempo de espera después de enviar el paquete de provisionamiento a Google. Si no se recibe un acknowledgePaymentBundle dentro del plazo especificado, D1 Transit completa el flujo de trabajo considerando el provisionamiento como fallido, es decir: se notifica al emisor de transporte para que pueda:

* reembolsar al cliente y notificar a D1 Transit que la cuenta de la tarjeta ha sido eliminada.
* Permitir al cliente reiniciar el provisionamiento push

El emisor de transporte puede basarse en **getCardAccountInfo** API para comprobar cuáles son la información de cardAccount almacenada dentro de la plataforma D1 Transit (estado de la cuenta de la tarjeta, tarjetas digitales vinculadas a la cuenta de la tarjeta) con el fin de tomar una decisión.

<figure><img src="/files/b466a61c6cf8b0dd71d2d379ef2737b2dcf42d69" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.payments.thalescloud.io/transit-digitization/es/implementar-google-transit/ticketing-basado-en-cuenta-abt/aprovisionamiento-nativo.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
