refunds

Crear un reembolso

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 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

Headers

X-SECRET-KEYstring required

Tu clave secreta de API.

Una llave de cuenta (sk_live_..., sk_test_...) opera sobre su propia cuenta y, con X-ACCOUNT-ID, sobre sus cuentas conectadas.

Una llave de organización (sk_org_live_..., sk_org_test_...) alcanza todas las cuentas de una organización y solo sirve para leer: saldos, movimientos y reportes. Para operar sobre una cuenta debe nombrarla con X-ACCOUNT-ID; omitirlo en una lectura devuelve todas las cuentas de la organización. Cualquier otro endpoint responde 403 con code: organization_key_unsupported.

Request body

{"stackTrail":"components:schemas:Refunds_createRefund_Request:oneOf:0","oasType":"schema","type":"unknown","description":"Any type"}
OR
{"stackTrail":"components:schemas:Refunds_createRefund_Request:oneOf:1","oasType":"schema","type":"unknown","description":"Any type"}

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

No recorded changes to this endpoint across all 1 revision of this API.