# Devolver un pago

Esta guía te muestra cómo procesar una operación de devolución para revertir una transacción de pago anterior. Aprenderás a referenciar la transacción original y a iniciar la devolución utilizando la integración Get Mini App2App.

## Requisitos

Antes de seguir los pasos, asegúrate de tener:

* La **aplicación Get Mini** instalada en el dispositivo Android
* Un **dispositivo PIN pad compatible** emparejado y conectado
* **Detalles de la transacción original**, incluyendo número de autorización, número de pedido y fecha
* El **ActivityResultLauncher** correctamente registrado en tu Activity o Fragment

<Callout type="warning">

Debes tener los detalles exactos de la transacción original para procesar una devolución. Estos se devuelven en la respuesta del pago.

</Callout>

## Proceso de devolución

Esta sección te guía en la creación de un intent de devolución con los detalles de la transacción original. La aplicación Get Mini validará la información y procesará la reversión.

### Paso 1: Crear el intent de devolución

Crea un intent con la acción `es.redsys.paysys.mPOSRedsys_REFUND_REQUEST` e incluye todos los parámetros requeridos de la transacción original.

La siguiente tabla enumera los campos obligatorios:

| Parámetro | Tipo | Obligatorio | Descripción |
| :---- | :---- | :---- | :---- |
| `amount` | double | Sí | El importe a devolver. |
| `date` | String | Sí | Fecha del pago original (formato AAAAMMDD). |
| `authorization` | String | Sí | Número de autorización del pago original. |
| `order` | String | Sí | Número de pedido del pago original. |

<Callout type="note">

Los valores de `date`, `authorization` y `order` deben coincidir exactamente con la transacción original para procesar la devolución correctamente.

</Callout>

El siguiente código muestra cómo crear e iniciar el intent de devolución:

```java
// Create the Intent
Intent intent = new Intent("es.redsys.paysys.mPOSRedsys_REFUND_REQUEST");

// Add required parameters from the original transaction
intent.putExtra("amount", 10.50);
intent.putExtra("date", "20240116");
intent.putExtra("authorization", "123456");
intent.putExtra("order", "ORD-12345");

// Launch the Get Mini app
refundLauncher.launch(intent);
```

### Paso 2: Gestionar el resultado de la devolución

Una vez procesada la devolución, la aplicación Get Mini devuelve el control a tu aplicación con el resultado. Comprueba el código de resultado y extrae los detalles de la devolución de los extras del intent, incluyendo el nuevo estado de la transacción y la información del ticket certificado.

Para obtener detalles completos sobre la gestión de respuestas, consulta [Gestionar los resultados de la transacción](/es/get-mini/get-mini-app2app/transaction-guides/response-handling/handle-transaction-results).

### Próximos pasos

Ahora que has procesado una devolución, puedes explorar otras operaciones:

* [Procesar un pago](https://docs.globalgetnet.com/es/products/local-processor-spain/get-mini?doc=getmini-app2app-processing-a-payment) - Aprende a procesar transacciones de pago
* [Operaciones de consulta](/es/get-mini/get-mini-app2app/transaction-guides/transactions/query-operations) - Recupera el histórico de transacciones, incluyendo devoluciones
* [Códigos de resultado y errores](/es/get-mini/get-mini-app2app/reference/result-codes-and-errors) - Referencia para todos los campos de respuesta