POST /payment/refund
Reembolsa total o parcialmente una transacción aprobada. Guía completa: Flujo de reembolsos.
Auth: requiere x-wpay-key.
Request
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
id_transaction | number | ✅ | Id numérico de la transacción original (no la reference). |
amount | number | ✅ | Monto a reembolsar (0.01 … monto original, acumulable). |
reason | string | ✅ | Motivo del reembolso. |
currency | string | — | BOB (default) o USD. |
Response 201
{
"msg": "REFUND_COMPLETED",
"cybersource_refund_id": "7364298471236458210433",
"amount": 100.0,
"currency": "BOB",
"status": "PENDING"
}status es el estado del reembolso en el procesador (se liquida en batch, 24–72 h).
Errores
| HTTP | Mensaje |
|---|---|
400 | id_transaction, amount y reason son requeridos |
404 | Transacción no encontrada |
400 | Solo se pueden reembolsar transacciones aprobadas |
400 | La transacción no tiene ID de CyberSource |
400 | El monto de reembolso debe ser entre 0.01 y {monto} |
400 | El monto excede el disponible para reembolso (ya reembolsado: {suma}) |
400 | Error al procesar el reembolso en CyberSource |
Pruébalo
En el simulador, primero aprueba un pago en /payment/process; el
id_transaction de las transacciones simuladas es incremental a partir de 1001 (la demo
sembrada es 1001; cada init suma uno — pero recuerda que solo las aprobadas se pueden
reembolsar).