# Arquitectura y flujo

El modelo de integración App2App permite una comunicación local segura y fluida en el mismo terminal Android. La comunicación ocurre entre una aplicación de automatización de terceros y la Getnet Payment App instalada en el terminal.

## Mecanismo de comunicación: Android Intents
El intercambio de datos no requiere una conexión persistente. En su lugar, usa Android Intents y deeplinks para disparar comandos y recibir respuestas.

* Un Intent es un objeto de mensajería que se usa para solicitar una acción a otro componente de la app.

* Un deeplink es un URI específico (por ejemplo, `getnet://payment/v1/payment`) que funciona como la "dirección" de una función específica dentro de la Getnet App.

## Comandos admitidos

Esta tabla resume las operaciones que tu aplicación puede solicitar al terminal Getnet:

| Operación | URI del deeplink | Descripción |
| :--- | :--- | :--- |
| **Pago** | `getnet://payment/v1/payment` | Inicia una transacción de pago (tarjeta o QR Code). |
| **Preautorización** | `getnet://payment/v1/pre-auth` | Retiene fondos temporalmente en la tarjeta de crédito del cliente. |
| **Devolución** | `getnet://payment/v1/refund` | Revierte una transacción aprobada previamente. |
| **Datos del comercio** | `getnet://payment/v1/commerce-data` | Obtiene los datos de registro del comercio. |
| **Obtener información** | `getnet://payment/v1/get-info` | Obtiene datos técnicos del terminal (S/N, OS, versión). |
| **Polling** | `getnet://payment/v1/polling` | Verifica si la app de pago está lista para atender solicitudes. |
| **Reimpresión** | `getnet://payment/v1/last-transaction` | Devuelve o reimprime el último comprobante. |
| **Reportes** | `getnet://payment/v1/reports` | Obtiene el historial de transacciones (lista detallada o resumen de totales). |
| **Turno** | `getnet://payment/v1/shift` | Administra los turnos (configurar, cambiar u obtener información del turno). |
| **Cancelar operación** | `getnet://payment/v1/cancel-operation` | Cancela una operación de deeplink en curso. |
| **Consultar estado** | `getnet://payment/v1/transaction-check-status` | Busca el estado de una transacción anterior específica. |

## El ciclo de vida de la transacción

El proceso sigue tres etapas principales. Al final de la operación, el control de la interfaz vuelve a tu app:

1. **Inicio (solicitud)**: tu app dispara un Intent con un URI de deeplink específico y los parámetros de la solicitud enviados como extras.

2. **Procesamiento (flujo de interfaz)**: la Getnet Payment App toma el control de la interfaz para interactuar con el usuario o procesar la transacción.

3. **Retorno (callback)**: al finalizar, la Getnet Payment App devuelve los parámetros de respuesta como extras del Intent mediante el método `onActivityResult`.

## Siguientes pasos

* [Inicio rápido](/es/app2app/first-steps-a2a/create-quick-start-guide) - ejecuta tu primer pago a través del deeplink.
* [Referencia de parámetros del deeplink](/es/app2app/reference-a2a/deeplink-parameters) - todos los parámetros de solicitud y respuesta por operación.