Desarrolladores
Referencia de la API
POST /payment/refund

POST /payment/refund

Reembolsa total o parcialmente una transacción aprobada. Guía completa: Flujo de reembolsos.

Auth: requiere x-wpay-key.

Request

CampoTipoRequeridoDescripción
id_transactionnumberId numérico de la transacción original (no la reference).
amountnumberMonto a reembolsar (0.01 … monto original, acumulable).
reasonstringMotivo del reembolso.
currencystringBOB (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

HTTPMensaje
400id_transaction, amount y reason son requeridos
404Transacción no encontrada
400Solo se pueden reembolsar transacciones aprobadas
400La transacción no tiene ID de CyberSource
400El monto de reembolso debe ser entre 0.01 y {monto}
400El monto excede el disponible para reembolso (ya reembolsado: {suma})
400Error 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).

POST/payment/refund⚡ Simulador — se ejecuta en tu navegador
Ver cURL equivalente (producción)
curl -X POST "https://api.wizpay.app/payment/refund" \
  -H "x-wpay-key: wpk_sandbox_demo" \
  -H "Content-Type: application/json" \
  -d '{ "id_transaction": 1002, "amount": 100, "currency": "BOB", "reason": "Producto defectuoso" }'