Gestionar preautorizaciones y confirmaciones
El flujo de Preautorización te permite reservar fondos en la tarjeta de un cliente (Retención) y capturarlos más tarde (Confirmar). Esto es distinto de una “Venta” (Sale) estándar donde los fondos se capturan inmediatamente.
Este proceso implica dos operaciones de API distintas:
- Preautorización (
/preautorizacion): El terminal verifica la tarjeta y retiene los fondos. - Confirmación (
/confirmacion): Capturas explícitamente los fondos (total o parcialmente) para completar la transacción.
Fase 1: Crear la preautorización
El primer paso es iniciar la retención. Esto es muy similar a una petición de pago estándar, pero utiliza un endpoint diferente.
- Endpoint:
/preautorizacion - Método:
POST
Paso 1.1: Enviar la petición
Envía el importe que quieres retener. Debes proporcionar una factura (ID de factura) única que servirá como referencia para la futura confirmación.
{
"info": {
"comercio": "777888991",
"terminal": 1,
"timestamp": "20250428 120000",
"notificacion": {
"urlNotificacion": "https://your-server.com/api/webhooks/preauth",
"correoNotificacion": "[email protected]"
},
"datosOperacion": {
"importe": "100.00",
"factura": "RES-Hotel-001"
}
},
"signature": "YOUR_CALCULATED_SIGNATURE"
}Paso 1.2: Recibir la notificación
Al igual que un pago estándar, la interacción con el terminal físico es asíncrona. Recibirás una notificación en tu urlNotificacion.
tipoPago: SeráPREAUTORIZACION.resultado: BuscaAutorizada.- Acción: No consideres el dinero como recibido. Considera únicamente que los fondos están “reservados” o “retenidos”.
Fase 2: Confirmar la transacción
Cuando estés listo para cobrar al cliente (p. ej., check-out de un huésped, devolución de un coche de alquiler), debes enviar una petición de confirmación.
Referencias coincidentes: La
factura(ID de factura) utilizada en la confirmación debe coincidir con lafacturautilizada en la preautorización original. Así es como el sistema enlaza la captura con la retención.
- Endpoint:
/confirmacion - Método:
POST
Paso 2.1: Enviar la petición de confirmación
Se especifica el importe a capturar.
{
"info": {
"comercio": "777888991",
"terminal": 1,
"timestamp": "20250429 080000",
"datosOperacion": {
"importe": "100.00",
"factura": "RES-Hotel-001"
}
},
"signature": "YOUR_CALCULATED_SIGNATURE"
}Paso 2.2: Gestionar la respuesta
A diferencia de la interacción inicial, la Confirmación a menudo se procesa de servidor a servidor (server-to-server) sin requerir que el titular de la tarjeta vuelva a insertar su tarjeta.
Recibirás una notificación confirmando la captura:
resultado:Autorizada.
Consideraciones importantes
- Gestión de errores: Si intentas confirmar una operación que no existe o que ya ha sido confirmada, puedes recibir códigos de error específicos.
TPVPC0094: “No es posible realizar más confirmaciones sobre la preautorización original”.
Próximos pasos
- Devolver un pago: Aprende a devolver fondos si se realizó una confirmación por error.
- Consultar el historial de transacciones: Comprueba el estado de tus preautorizaciones si no estás seguro de si están confirmadas.