# Procese operaciones de Cashback

Esta guía explica cómo implementar operaciones de Cashback (Compra con Retiro de Efectivo). Esta funcionalidad permite al usuario hacer una compra y recibir efectivo en una sola transacción. Para eso, usted declara dos importes separados de forma explícita.

## Cómo funciona

Una operación de Cashback modifica el flujo de transacción estándar. Divide el total en el costo de los bienes o servicios y el importe en efectivo que solicita el cliente.

* **Condiciones de activación**: Una transacción se procesa como Cashback solo si el campo `TTY` tiene el valor **"09"** y el campo `ICB` contiene un valor mayor que cero.
* **Tag EMV 9C**: Cuando `TTY` tiene el valor **"09"**, el kernel EMV interno formatea automáticamente el Tag **9C** (Tipo de transacción) con el valor que EMV define para Compra con Cashback (`09`).
* **Comportamiento de la interfaz**: El Pinpad muestra una pantalla dividida con el importe de la compra y el importe del cashback. El titular de la tarjeta los ve antes de presentar la tarjeta.

Para activar un flujo de Cashback, el Sistema Host modifica los parámetros de inicialización de una secuencia de pago estándar (Y19 → Y15 → Y02). Los pasos de esta guía siguen esa secuencia.

## Paso 1: Inicialice con Y19

Defina los parámetros principales de Cashback en la solicitud inicial:

* **Tipo de transacción (`TTY`)**: Establezca exactamente **"09"** (Compra con Cashback).
* **Importe de la compra (`IMP`)**: El valor numérico de 12 dígitos que representa el costo de los bienes o servicios (ej., \$15.00 \= `000000001500`).
* **Importe de Cashback (`ICB`)**: El valor numérico de 12 dígitos que representa el importe del retiro de efectivo (ej., \$20.00 \= `000000002000`).

## Paso 2: Establezca el importe total (Y15)

Si su flujo usa el comando **Y15** para transacciones EMV con contacto, verifique que los importes coincidan:

* **Actualización del importe**: El terminal usa los valores del flujo para calcular el total que se presenta al usuario.
* **Confirmación**: El usuario debe confirmar los importes en la pantalla del terminal antes de presentar la tarjeta.

## Paso 3: Recupere los datos y autorice (Y02 / Y03)

Una vez que el usuario confirma los importes y presenta la tarjeta:

1. **Actualización Y02**: El Sistema Host puede actualizar los importes `IMP` o `ICB` en el comando **Y02** si es necesario.
2. **Autorización**: El Sistema Host recibe los datos de pista cifrados y los Tags EMV, incluido el Tag 9C. Con ellos construye la solicitud de autorización para el backend.
3. **Finalización**: Use el comando **Y03** para enviar la respuesta de la autorizadora al terminal.

## Pantallas del terminal

Cuando el requerimiento `Y19` indica una operación de Cashback, el terminal muestra una interfaz específica al titular de la tarjeta:

* **Visualización del importe**: La pantalla muestra explícitamente el importe que se entregará en efectivo junto con el importe de la compra.
* **Fallback estándar**: Si el valor de `ICB` es **"000000000000"**, el terminal ignora la lógica de Cashback y continúa con la pantalla de compra convencional.

> Aunque el software admite este flujo, la solución Pinpad Getnet no cuenta con certificación oficial para operaciones con cashback.

## Siguientes pasos

Con el flujo de Cashback implementado, puede avanzar hacia otros tipos de transacción especializados:

1. [**Pagos con código QR**](https://docs.globalgetnet.com/es/products/in-store-payments/host-to-host?doc=h2h-process-qr-code-payments\&section=kei2fli2gqggbwgaddtl3xb7): aprenda a implementar el flujo `Y0Q` para carteras digitales.
2. [**Comandos de la API**](https://docs.globalgetnet.com/es/products/in-store-payments/host-to-host?doc=h2h-api-commands\&section=g7b851vgbt737kwul1fmgve2): consulte la estructura técnica completa de los campos de los comandos `Y19` e `Y02`.