Desarrolladores
Flujos de integración
Reembolsos

Reembolsos

Devuelve el total o una parte de una transacción aprobada. El reembolso se procesa contra el procesador de tarjetas y queda registrado con su trazabilidad completa.

Ejecutar un reembolso

const refund = await wpay.refund({
  id_transaction: 1042,        // id numérico de la transacción (no la reference)
  amount: 100.0,               // total o parcial
  currency: 'BOB',             // default BOB
  reason: 'Producto defectuoso',
})
{
  "msg": "REFUND_COMPLETED",
  "cybersource_refund_id": "7364298471236458210433",
  "amount": 100.0,
  "currency": "BOB",
  "status": "PENDING"
}

status: "PENDING" es el estado del reembolso en el procesador (los reembolsos se liquidan en batch, típicamente en 24–72 h). En WizPay el registro ya queda COMPLETED.

Reglas

  • Solo transacciones en estado APROBADO.
  • El monto debe ser > 0 y al monto original.
  • Puedes hacer varios reembolsos parciales: la suma nunca puede exceder el monto original — WizPay lo valida contra el historial.

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

Webhooks relacionados

refund.requested, refund.completed.

Referencia