neo-pays

Reembolsos

Devolver todo o parte de un cobro.

Crear un reembolso

POST /v1/refunds
Campo Obligatorio Descripción
payment_id sí El cobro original: su identificador o su referencia
amount_minor — Cadena, en unidades menores. Ausente = el saldo restante
reason — customer_request, duplicate, fraudulent u other
description — Texto libre, visible en el panel

El reembolso es una operación de pleno derecho: su propio id, su propio estado, su propio evento webhook (refund.success / refund.failed).

Reglas

  • Sólo se reembolsa un cobro exitoso.
  • La suma de los reembolsos no puede superar el importe cobrado — la API responde 422 refund_exceeds_refundable por encima.
  • Las comisiones de cobro no se devuelven: quedan a su cargo.
  • Un reembolso parcial deja el cobro original consultable, con su historial completo.
  • Los fondos se toman de su saldo disponible en el momento de la llamada, como en un pago.

Una clave de idempotencia por reembolso. Nunca el identificador del pago original: un cobro puede reembolsarse en varias veces, y una clave que lleve el identificador del padre haría pasar el segundo reembolso parcial por un reenvío del primero.

Leer y listar

GET /v1/refunds/{id}
GET /v1/refunds                     — lista; ?payment_id= para un solo cobro
GET /v1/payments/{id}/refunds        — los reembolsos de un cobro

GET /v1/payments/{id}/refunds y GET /v1/refunds?payment_id= devuelven el mismo objeto que la lista, con la misma paginación. El cobro se designa por su identificador o su referencia; el de otra cuenta responde 404 en el subrecurso, y una lista vacía en el filtro.

Códigos de rechazo

Un reembolso rechazado responde 422, en el sobre de error habitual:

Código Significado
refund_exceeds_refundable El importe supera lo que queda por reembolsar. El error incluye amount_refundable_minor.
wave_partial_refund_window_closed Cobro Wave: el plazo de reembolso parcial ha vencido; solo es posible el reembolso total, si no se ha reembolsado nada.
wave_partial_refunds_disabled Los reembolsos parciales Wave no están abiertos; el reembolso total sigue siendo posible.
wave_refund_window_closed Cobro Wave ya reembolsado en parte y plazo vencido: ningún otro reembolso.
payer_not_found Wave no indica el pagador: un reembolso parcial, abonado al pagador, no puede enviarse.
insufficient_funds Su saldo disponible no cubre el reembolso.

Wave: reembolsos parciales

Wave solo reembolsa una transacción en su totalidad. Un reembolso parcial de un cobro Wave se abona por tanto al número Wave del pagador, y solo durante el plazo indicado por partial_refund_deadline en el cobro. Pasado ese plazo, solo es posible el reembolso total, y solo si no se ha reembolsado nada.