Skip to navigation

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 un pago con Balance Recurrente (balance), el monto completo regresa al instante al balance del pagador. Para una venta en efectivo (cash), registra la devolución que realiza el comercio por fuera de Recurrente, sin mover dinero. El intent solo se cancela cuando los reembolsos acumulados cubren el total. Envía amount_in_cents para solicitar un reembolso parcial en CyberSource, Visa CyberSource o efectivo (cash). 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.

Si la venta tiene una factura certificada por Recurrente, cada parcial genera una nota de crédito por el monto correspondiente y conserva la factura original. Un reembolso del total original intenta anularla primero; usa nota de crédito si el período cerró o la factura ya tiene una nota. Esto aplica también a cash_sales. Un refund exitoso no garantiza que la corrección fiscal haya terminado: puede fallar o requerir reintentos. Las facturas emitidas fuera de Recurrente las corrige el comercio.

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.

Authentication

X-SECRET-KEYstring

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.

La llave también fija el ambiente: una sk_test_ solo lista y resuelve objetos de prueba (live_mode: false) y una sk_live_ solo objetos reales. Un ID del otro ambiente responde 404 (401 en /customers).

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

This endpoint expects any.
anyRequired
OR
anyRequired

Response

Reembolso procesado
idstringOptional
ID del reembolso
statusenumOptional
Estado del reembolso
Allowed values:
failure_reasonstring or nullOptional

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

customerobjectOptional
user_idstringOptional
ID del usuario
account_idstringOptional

Cuenta dueña del cobro reembolsado

account_refunded_amount_in_centsintegerOptional

Monto debitado de la cuenta del comercio (en centavos)

customer_refunded_amount_in_centsintegerOptional

Monto devuelto al cliente (en centavos)

refund_application_feebooleanOptional
Si las comisiones de plataforma se devolvieron con el reembolso
transfer_adjustmentslist of objectsOptional
Transfer setups cancelados o revertidos por este reembolso
currencystringOptional
Moneda
created_atdatetimeOptional

Fecha de creación

voided_atdatetime or nullOptional

Fecha de anulación, si el reembolso fue anulado

Errors

422
Unprocessable Entity Error