Ir a contenido
Crea una cuenta
o
inicia sesión
Logotipo de la documentación de Stripe
/
Pregúntale a la IA
Crear cuenta
Iniciar sesión
Empezar
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Recursos para desarrolladores
Resumen
Acerca de Stripe Payments
    Resumen
    Divisas
    Pagos rechazados
    Transferencias
    Pagos recurrentes
    Autenticación mediante 3D Secure
    Reembolsar y cancelar pagos
    Saldos y plazos de liquidación
    Recibos
    Administra eventos de webhook
    Preparación para la SCA
Actualiza tu integración
Análisis de pagos
Pagos por Internet
ResumenEncuentra tu caso de usoManaged Payments
Utiliza Payment Links
Crear una página del proceso de compra
Desarrolla una integración avanzada
Desarrolla una integración en la aplicación
Métodos de pago
Añadir métodos de pago
Gestiona los métodos de pago
Proceso de compra más rápido con Link
Interfaces de pago
Payment Links
Checkout
Elements para la web
Elements en la aplicación
Escenarios de pago
Administrar múltiples divisas
Flujos de pagos personalizados
Capacidad adquirente flexible
Orquestación
Pagos en persona
Terminal
Más allá de los pagos
Constituye tu empresa
Criptomonedas
Financial Connections
Climate
Comprender el fraude
Protección antifraude de Radar
Gestiona disputas
Verificar identidades
InicioPagosAbout Stripe payments

Reembolsar y cancelar pagos

Descubre cómo cancelar o reembolsar un pago.

Puedes cancelar un pago antes de que se complete sin coste alguno. También puedes reembolsar la totalidad o parte de un pago una vez que se ha completado correctamente, lo que puede conllevar una comisión. Visita nuestra página de precios para obtener más información.

Los reembolsos utilizan el saldo disponible de Stripe (sin incluir los importes pendientes). Si tu saldo disponible no cubre el importe del reembolso, Stripe retendrá el reembolso como pendiente hasta que tu saldo de Stripe sea suficiente. Puedes resolver un saldo negativo de Stripe cobrando pagos o recargando el saldo de tu cuenta. En las regiones donde corresponda, Stripe podría hacer un cargo automático en tus cuentas bancarias para recuperar un saldo negativo de Stripe.

Solicitudes de reembolso

Enviamos solicitudes de reembolso al banco de tu cliente o al emisor de la tarjeta. Los reembolsos que se efectúan correctamente aparecen en el extracto bancario de tus clientes en tiempo real, dependiendo de la red de la tarjeta y del banco emisor. No se admiten disputas y contracargos sobre cargos de tarjeta de crédito que se han reembolsado en su totalidad.

Si se aplican todas las condiciones siguientes, enviaremos un correo electrónico a tu cliente notificándole el reembolso:

  • El cargo original se creó en un cliente de tu cuenta de Stripe.
  • El cliente tiene almacenada una dirección de correo electrónico.
  • Tienes habilitada la opción Enviar correo electrónico al cliente en caso de reembolso en el Dashboard.

Puedes ver tus pagos reembolsados en el Dashboard.

Emitir reembolsos

Puedes emitir reembolsos usando la API Refunds o el Dashboard. Puedes emitir más de un reembolso por un cargo, pero no puedes reembolsar un total mayor que el importe del cargo original.

Para reembolsar un pago con la API, crea un reembolso indicando el ID del cobro o PaymentIntent.

Cuando usas un PaymentIntent para cobrar un pago, Stripe crea un objeto de cargo. Para reembolsar un pago después de que el PaymentIntent se efectúe correctamente, crea un reembolso utilizando el PaymentIntent, que es lo mismo que reembolsar el cargo subyacente. También puedes reembolsar solo parte de un pago especificando un importe. Si usas las API de Stripe Tax para registrar las ventas, debes registrar los reembolsos.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/refunds \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d payment_intent=pi_Aabcxyz01aDfoo

Para reembolsar parte de un PaymentIntent, especifica el parámetro amount como un número entero en céntimos (o la unidad más pequeña de la moneda del cargo).

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/refunds \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d payment_intent=pi_Aabcxyz01aDfoo \ -d amount=1000

Si quieres separar la autorización y captura de un cargo y reembolsar un PaymentIntent cuyo estado es requires_capture, el proceso de reembolso es diferente. En este caso, el cargo adjunto al PaymentIntent no se ha capturado y no se puede reembolsar de forma directa. Debes cancelar el PaymentIntent.

Reembolsos a través de una plataforma Connect

El comportamiento de los reembolsos depende del tipo de cargo de Connect utilizado en tu integración.

  • Stripe carga directamente en la cuenta conectada los reembolsos de los pagos con cargo directo.
  • Stripe carga en tu plataforma los reembolsos de los pagos con cargo indirecto o con cargo y envío de fondos por separado (con o sin on_behalf_of). Anula los envíos de fondos asociados a estos tipos de cargos para recuperar el importe del reembolso de tus cuentas conectadas.

Destinos de los reembolsos

Los reembolsos solo se pueden devolver al método de pago original utilizado para hacer el cargo. No puedes enviar un reembolso a un destino diferente, como otra tarjeta o cuenta bancaria.

Los reembolsos a tarjetas vencidas o canceladas son gestionados por el emisor de la tarjeta del cliente y, en la mayoría de los casos, se acreditan en la tarjeta de reemplazo del cliente. Si no hay un remplazo, el emisor de la tarjeta suele hacer el reembolso al cliente con un método alternativo (por ejemplo, un cheque o un depósito en la cuenta bancaria). En raras ocasiones, un reembolso a una tarjeta puede fallar.

En el caso de otros métodos de pago, como ACH e iDEAL, la gestión de los reembolsos varía de un banco a otro. Si un cliente ha cerrado su método de pago, el banco podría devolvernos el reembolso, en cuyo caso se marcará como fallido.

Administrar reembolsos fallidos

Un reembolso puede fallar si el banco del cliente o el emisor de la tarjeta no pueden procesarlo. Por ejemplo, una cuenta bancaria cerrada o un problema con la tarjeta pueden hacer que un reembolso falle. Cuando esto sucede, el banco nos devuelve el importe reembolsado y nosotros lo añadimos al saldo de tu cuenta de Stripe. Este proceso puede tardar hasta 30 días desde la fecha de envío.

Al usar la API, el estado de un objeto de reembolso pasa a failed e incluye estos atributos:

  • failure_balance_transaction: el ID de la transacción de saldo que representa el importe devuelto a tu saldo de Stripe.
  • failure_reason: el motivo por el que falló el reembolso. Entre estos motivos se incluyen:
    Motivo del errorDescripción
    charge_for_pending_refund_disputedUn cliente disputó el cargo mientras el reembolso está pendiente. En este caso, recomendamos aceptar o refutar la disputa en lugar de reembolsarla para evitar reembolsos duplicados al cliente.
    declinedNuestros socios financieros han rechazado el reembolso.
    expired_or_canceled_cardEl método de pago es cancelado por un cliente o caducado por el socio.
    insufficient_fundsEl reembolso está pendiente debido a la insuficiencia de fondos y ha superado el plazo de caducidad del reembolso pendiente.
    lost_or_stolen_cardEl reembolso ha fallado debido a la pérdida o robo de la tarjeta original.
    merchant_requestEl reembolso ha fallado por petición de la empresa.
    unknownHa fallado el reembolso debido a un motivo desconocido.

Para algunos métodos de pago, el código de rechazo proporcionado por nuestros socios financieros, que indica el motivo por el que falló el reembolso, está disponible en el campo network_decline_code destination_details:

{ id: "pyr_1234", destination_details: { blik: { network_decline_code: "decline_code" }, type: 'blik', } }

En el improbable caso de que un reembolso falle, te lo notificaremos mediante el evento refund.failed (consulta todos los eventos relacionados con el reembolso). Si esto ocurre, debes buscar una forma alternativa de proporcionar un reembolso a tu cliente.

Si tu plataforma utiliza Connect con cargos indirectos, transfiere los fondos de un depósito de reembolso fallido al saldo de Stripe de tu cuenta de plataforma.

Cancelar un reembolso

Según el tipo de reembolso, es posible que puedas cancelarlo antes de que llegue al cliente. Algunos reembolsos de tarjetas admiten la cancelación durante un corto período de tiempo. El reembolso no debe haberse procesado como una anulación del cargo. Actualmente, solo se admiten cancelaciones en el Dashboard para los reembolsos con tarjeta.

Para algunos métodos de pago, Stripe se comunica con el cliente para recopilar información bancaria antes de procesar el reembolso. Puedes cancelar estos reembolsos mientras no se haya recopilado la información bancaria. Tanto la API como las cancelaciones del Dashboard son compatibles con este tipo de reembolso.

Los reembolsos cancelados pasan a un estado canceled. Como las cancelaciones son un tipo de fallo de reembolso, los atributos failure_reason y failure_balance_transaction se incluyen en el Reembolso.

Si tu plataforma utiliza Connect con cargos indirectos, transfiere los fondos de un depósito de reembolso cancelado al saldo de Stripe de tu cuenta de la plataforma.

Para cancelar un reembolso a través de la API, cancela un reembolso proporcionando el ID del reembolso.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/refunds/re_Aabcxyz01aDfoo/cancel \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Reembolso y anulación

Algunos reembolsos (aquellos emitidos poco después del cargo original) aparecen como anulación en lugar de como un reembolso. En el caso de una anulación, el cargo original desaparece del extracto del cliente y no se emite un crédito separado.

Los usuarios de IC+ pueden observar una diferencia en el coste entre las anulaciones y los reembolsos porque las anulaciones generalmente tienen tarifas de red más bajas.

Para verificar si un reembolso se procesa como una anulación usando la API:

  1. Consume el evento refund.updated o recupera el reembolso con la API.
  2. Si se trata de una anulación, devuelvedestination_details[card][type] = 'reversal'.

Rastrear un reembolso

Una vez iniciado el reembolso, Stripe envía solicitudes de reembolso al banco o al emisor de la tarjeta del cliente. En función del banco, el cliente verá el reembolso como un crédito en un plazo aproximado de 5 a 10 días hábiles. Un cliente puede ponerse en contacto contigo si no ve el reembolso. Un reembolso puede no ser visible para el cliente por varias razones:

  • Algunos reembolsos emitidos poco después del cargo original aparecen en forma de una anulación en lugar de un reembolso. En el caso de una anulación, el cargo original desaparece del extracto del cliente y no se emite un crédito separado.
  • Un reembolso puede fallar si el banco o emisor de la tarjeta del cliente no ha podido procesarlo correctamente. El banco nos devuelve el importe reembolsado y nosotros lo añadimos a su vez al saldo de tu cuenta de Stripe. Este proceso puede llevar hasta 30 días desde la solicitud del reembolso.

Si un cliente hace una consulta sobre un reembolso, puede ser útil darle el número de referencia principal correspondiente al reembolso. Para los reembolsos con tarjeta, puede ser un número de referencia del adquirente (ARN), número de auditoría de seguimiento del sistema (STAN) o número de referencia de recuperación (RRN). Un ARN, STAN o RRN es un número de referencia asignado a una transacción con tarjeta durante el flujo de pago. Para los reembolsos con métodos de pago locales, puede ser un número de referencia generado por Stripe o nuestros socios financieros que se propaga a los bancos o instituciones beneficiarios. El cliente puede llevar esta referencia a su banco, que puede proporcionar más información sobre cuándo estará disponible el reembolso. Asimismo, un número de referencia le da más confianza al cliente, pues le indica que el reembolso se ha iniciado.

Las referencias de reembolsos están disponibles bajo las siguientes condiciones:

  • Se aceptan con algunos socios financieros y se marcan como no disponibles en caso contrario.
  • Después del inicio del reembolso, pueden pasar hasta 7 días hábiles hasta recibir el ARN de los socios bancarios involucrados en la transacción.
  • El ARN no está disponible en caso de una anulación porque no se ha procesado el cargo original. Para las redes de tarjetas que no aceptan ARN, intentamos proporcionar otras referencias, como el número de auditoría de seguimiento del sistema (STAN) o el número de referencia de recuperación (RRN).

Para encontrar la referencia de un reembolso usando la API:

  1. Consume el evento refund.updated o recupera el reembolso con la API.
  2. Cuando esté disponible, Stripe mostrará la referencia del reembolso con tarjeta en la siguiente forma de API:
{ id: "re_1234", destination_details: { card: { reference: "123456", reference_status: "available", reference_type: "acquirer_reference_number", type: "refund" }, type: "card", } }

O bien la referencia para los métodos de pago locales elegidos en la siguiente forma de API:

{ id: "pyr_1234", destination_details: { eu_bank_transfer: { reference: "123456", reference_status: "available" }, type: "eu_bank_transfer", } }

Cancelar un pago

Puedes cancelar un pago usando el Dashboard solo cuando su estado sea uncaptured. Para cancelar un pago con otros estados, debes usar la API.

Si ya no tienes intención de cobrar un pago, puedes cancelar un PaymentIntent. Puedes mantener un PaymentIntent en estado incompleto, como requires_confirmation o requires_payment_method, porque los PaymentIntents incompletos son útiles para comprender la tasa de conversión durante el proceso de compra. El siguiente ejemplo de código muestra una solicitud para cancelar un PaymentIntent:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/payment_intents/pi_32AkjQ5H4Bas2eAolX13/cancel \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Solo puedes cancelar un PaymentIntent cuando tengas uno de los siguientes estados:

  • requires_payment_method
  • requires_capture
  • requires_confirmation
  • requires_action
  • processing (solo cuando el método de pago asociado es una cuenta bancaria de EE. UU.)

Un PaymentIntent no se puede cancelar después de haberse completado con éxito. Cuando se cancela un PaymentIntent, ya no puedes usarlo para hacer otros cargos. Cualquier operación que intente realizar tu aplicación sobre un PaymentIntent cancelado dará error.

Eventos de reembolso

Stripe activa eventos cada vez que se crea o cambia un reembolso. Algunas otras acciones, como el cierre de evaluaciones, también desencadenan eventos que son relevantes para los reembolsos.

Asegúrate de que tu integración esté configurada para gestionar eventos. También debes crear una lógica interna para notificar a los clientes o a tu equipo sobre el estado del proceso de reembolso. Como mínimo, Stripe recomienda que escuches el evento refund.created.

La siguiente tabla describe los eventos más comunes relacionados con los reembolsos.

refund.createdSe envía cuando se crea un reembolso.
refund.updatedSe envía cuando se actualiza el reembolso. Entre las actualizaciones se incluye añadir metadatos y proporcionar detalles como el ARN como número de referencia para rastrear reembolsos.
refund.failedSe envía cuando se ha producido un error en el reembolso.
charge.dispute.funds_reinstatedSe envía cuando los fondos se restablecen en tu cuenta después de que se cierre una disputa, incluidos los pagos parcialmente reembolsados.
charge.refundedSe envía cuando se reembolsa un cargo, incluyendo los reembolsos parciales. Escucha refund.created para obtener información sobre el reembolso.
review.closedSe envía cuando se cierra una revisión. Consulta el campo reason para entender el motivo por el que se ha cerrado, que será uno de los siguientes: approved, disputed, canceled, refunded orefunded_as_fraud.
source.refund_attributes_required DeprecatedEnviado cuando la fuente receptora necesita atributos de reembolso para procesar un reembolso o un pago indebido.
charge.refund.updated DeprecatedSe envía cuando se actualiza el reembolso, solo para reembolsos con el cargo correspondiente. En su lugar, escucha refund.updated para obtener información actualizada sobre todos los reembolsos.

Optimización de costes

Si tu empresa procesa un gran volumen de reembolsos cerca del momento de la transacción, te recomendamos que uses la autorización y la captura manuales para reducir los costes de los reembolsos. La autorización y captura manuales te permiten controlar mejor los costes al cancelar los pagos antes de que se capturen o al reducir el importe capturado en lugar de procesar un reembolso.

Véase también

  • Añade fondos a tu saldo de Stripe
  • Añade fondos al saldo de tu plataforma
  • Localiza los precios
¿Te ha sido útil la página?
SíNo
  • ¿Necesitas ayuda? Ponte en contacto con el equipo de soporte.
  • Únete a nuestro programa de acceso anticipado.
  • Echa un vistazo a nuestro registro de cambios.
  • ¿Tienes alguna pregunta? Ponte en contacto con el equipo de ventas.
  • ¿LLM? Lee llms.txt.
  • Con tecnología de Markdoc
Guías relacionadas
Reembolsos de transferencia bancaria
Conversión de divisa de disputas y reembolsos