refunds

Crear un reembolso

Changed on

Reembolsa un intent. Usa intent_id con el ID unificado in_… para cualquier tipo compatible. payment_intent_id sigue aceptándose como alias legado para integraciones existentes.

Para pagos electrónicos, devuelve los fondos al método de pago original del cliente. Para un pago con Balance Recurrente (balance), el monto completo regresa al instante al balance del pagador. Para una venta en efectivo (cash), no mueve dinero: marca el intent como cancelado y anula su DTE, igual que la operación del panel. Envía amount_in_cents para solicitar un reembolso parcial en CyberSource o Visa CyberSource. Si omites el monto, se reembolsa todo el saldo pendiente. Puedes enviar varios reembolsos parciales hasta cubrir el total. Otros proveedores solo admiten el saldo pendiente completo.

Para reembolsar un cobro de una cuenta conectada, envía su ID en el header X-ACCOUNT-ID; la API key debe permitir movimientos de dinero. Envía refund_application_fee: true para regresar a la cuenta dueña del cobro todas sus comisiones de plataforma antes de solicitar el reembolso al procesador. El valor predeterminado es false y las distribuciones con purpose: fund_split nunca se revierten por este parámetro.

Recurrente reserva los movimientos y el balance del comercio sin mantener bloqueos durante la llamada externa. Si el procesador rechaza el reembolso, crea movimientos compensatorios. Una factura fiscal de comisión se puede anular cuando todas sus líneas pertenecen a este reembolso; un documento que agrupa otros pagos hace fallar la solicitud antes de contactar al procesador. Si otra solicitud ya está procesando el mismo reembolso, responde 202 y no vuelve a llamar al proveedor. Si el resultado del proveedor queda indeterminado, el reembolso permanece pending con failure_reason: provider_outcome_unknown; Recurrente conserva la reserva, no reintenta automáticamente y un POST posterior responde 422 con el refund_id para consultar y reconciliar el caso.

Usa un Idempotency-Key único por reembolso. Cuando una solicitud parcial responde 202, las repeticiones con la misma llave y cuerpo reproducen esa respuesta con el mismo refund_id; consulta ese ID antes de enviar otro monto.

post/refunds

Request

Request body

unknown required
OR
unknown required

Response

Reembolso procesado

idstring

ID del reembolso

status'pending' | 'succeeded' | 'failed' | 'voided'

Estado del reembolso

failure_reasonstring nullable

Razón del fallo. provider_outcome_unknown indica que el resultado debe reconciliarse antes de reintentar

user_idstring

ID del usuario

account_idstring

Cuenta dueña del cobro reembolsado

account_refunded_amount_in_centsinteger

Monto debitado de la cuenta del comercio (en centavos)

customer_refunded_amount_in_centsinteger

Monto devuelto al cliente (en centavos)

refund_application_feeboolean

Si las comisiones de plataforma se devolvieron con el reembolso

currencystring

Moneda

created_atstring date-time

Fecha de creación

voided_atstring date-time nullable

Fecha de anulación, si el reembolso fue anulado

Changes

    • breaking

      added to the response property oneOf list for the response status

    • breaking

      the / response's property type changed from object to array for status

    • warning

      deleted the header request parameter X-SECRET-KEY

    • info

      the endpoint scheme security secretKey was added to the API