Procesa un reembolso
Esta guía muestra cómo revertir una transacción aprobada previamente con initRefund.
Cómo funciona
Inicias un reembolso con initRefund. El parámetro refundData define quién proporciona el paymentId:
- Reembolso directo — tu aplicación proporciona un
paymentIdconocido. - Reembolso indirecto — el usuario busca la transacción en las pantallas del SDK.
El resultado llega mediante un callback (consulta Resultado de la transacción). Se requiere un warm-up exitoso (WarmUpStatus.Success).
Los reembolsos aplican solo a transacciones de crédito y débito. Las transacciones Pix y voucher no se pueden reembolsar.
Antes de comenzar
Para un reembolso directo, mantén tu propio historial de transacciones. El SDK no expone las transacciones anteriores. El paymentId que devuelve el resultado de la venta es la clave para reembolsarla. Guarda el paymentId — no necesitas guardar los datos de la tarjeta.
Reembolso directo
Proporciona el paymentId que guardaste de la venta original:
ApoloSdk.getClient().initRefund(
context = activity,
refundData = Refund(paymentId = paymentIdFromYourRecord),
onResult = { result -> /* see Transaction result */ },
)Reembolso indirecto
Omite refundData (o pasa un paymentId vacío) para que el SDK guíe la búsqueda en sus propias pantallas:
ApoloSdk.getClient().initRefund(
context = activity,
onResult = { result -> /* see Transaction result */ },
)Lee el resultado
El resultado llega en onResult. En caso de éxito, el payload es un ICancelPaymentResponse. Consulta Resultado de la transacción para ver los códigos y los campos del payload.
Siguientes pasos
- Referencia del resultado de la transacción — códigos de resultado y campos del payload.