# Reembolsar y cancelar pagos Descubre cómo cancelar o reembolsar un pago. Puedes [ cancelar un pago](https://docs.stripe.com/refunds.md#cancel-payment) antes de completarse sin coste alguno. O puedes devolverte el reembolso total o parcial de un pago después de que tenga éxito, lo que podría conllevar una comisión. Las comisiones de procesamiento de Stripe de la transacción original no se devuelven. Ve a nuestra[ página de precios](https://stripe.com/pricing/local-payment-methods) para 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* (The act of adding funds to a Stripe account, typically through a transfer from a bank external to Stripe) 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 en Stripe. ## Solicitudes de reembolso Enviamos solicitudes de reembolso al banco de tu cliente o al *emisor de la tarjeta* (The entity that issued a payment card to a cardholder. This could be a bank, such as with the Visa or Mastercard network, or it could be the card network itself, such as with American Express). 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](https://dashboard.stripe.com/account/emails). Puedes [ver tus pagos reembolsados en el Dashboard](https://dashboard.stripe.com/test/payments?status%5B0%5D=refunded&status%5B1%5D=refund_pending&status%5B2%5D=partially_refunded). ## Emitir reembolsos Puedes emitir reembolsos usando la [API Refunds](https://docs.stripe.com/api/refunds.md) o el [Dashboard](https://dashboard.stripe.com/test/payments). Puedes emitir más de un reembolso por un cargo, pero no puedes reembolsar un total mayor que el importe del cargo original. #### Dashboard Para reembolsar un pago usando el Dashboard: 1. Busca el pago que deseas reembolsar en la página de [Pagos](https://dashboard.stripe.com/payments). 1. Haz clic en el menú de desbordamiento (⋯) a la derecha del pago y selecciona **Reembolsar pago**. 1. De forma predeterminada, emitirás un reembolso completo. Para hacer un reembolso parcial, ingresa su importe. 1. Selecciona el motivo del reembolso. Si seleccionas **Otro**, debes agregar una nota que explique el motivo del reembolso. Haz clic en **Reembolsar**. También puedes hacer clic en un pago específico y emitir un reembolso desde su página de detalles. También puedes enviar [recibos de reembolso](https://docs.stripe.com/receipts.md#refund-receipts) de forma automática o manual para cada reembolso. > #### Reembolsos masivos > > El Dashboard admite el reembolso masivo de los pagos completos. Selecciona los pagos que quieres reembolsar marcando la casilla situada a la izquierda de cada pago, incluso en varias páginas de resultados. A continuación, haz clic en **Reembolsar** y selecciona un motivo. Con este método solo puedes emitir reembolsos completos; los reembolsos parciales deben emitirse individualmente. #### API Para reembolsar un pago con la API, [crea un reembolso](https://docs.stripe.com/api.md#create_refund) indicando el ID del cobro o [PaymentIntent](https://docs.stripe.com/api/payment_intents.md). Cuando usas un PaymentIntent para cobrar un pago, Stripe crea un objeto de [cargo](https://docs.stripe.com/api/charges/object.md). 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. Si usas las API de Stripe Tax para registrar las ventas, debes [registrar los reembolsos](https://docs.stripe.com/tax/custom.md#reversals). ```curl curl https://api.stripe.com/v1/refunds \ -u "<>:" \ -d payment_intent=pi_Aabcxyz01aDfoo ``` También puedes reembolsar solo una parte de un PaymentIntent especificando un importe. Para ello, proporciona un parámetro `amount` como número entero en céntimos (o la unidad monetaria más pequeña de la divisa de cobro). ```curl curl https://api.stripe.com/v1/refunds \ -u "<>:" \ -d payment_intent=pi_Aabcxyz01aDfoo \ -d amount=1000 ``` Si quieres separar la [autorización y captura](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md) 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](https://docs.stripe.com/api/payment_intents/cancel.md). ### Reembolsos a través de una plataforma Connect El comportamiento de los reembolsos depende del [tipo de cargo de Connect](https://docs.stripe.com/connect/charges.md#refund-creation) utilizado en tu integración. - Stripe carga directamente en la cuenta conectada los reembolsos de los pagos con [cargo directo](https://docs.stripe.com/connect/direct-charges.md#issue-refunds). - Stripe carga en tu plataforma los reembolsos a [cargos indirectos](https://docs.stripe.com/connect/destination-charges.md#issue-refunds) o[cargos y transferencias separados](https://docs.stripe.com/connect/separate-charges-and-transfers.md#issue-refunds) (con o sin`on_behalf_of`) pagos. Puedes revertir las transferencias asociadas a estos tipos de aceptación de pagos para recuperar el importe del reembolso de tus cuentas conectadas. Connect platforms can enable their connected accounts to provide refunds to customers from their site by using Connect embedded components such as the [payments](https://docs.stripe.com/connect/supported-embedded-components/payments.md) or the [payment details](https://docs.stripe.com/connect/supported-embedded-components/payment-details.md) component. ## 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](https://docs.stripe.com/refunds.md#failed-refunds). En el caso de otros métodos de pago, como [ACH](https://docs.stripe.com/payments/ach-direct-debit.md) e [iDEAL](https://docs.stripe.com/payments/ideal.md), 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](https://docs.stripe.com/refunds.md#failed-refunds). ## 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](https://docs.stripe.com/api.md#refund_object) pasa a `failed` e incluye estos atributos: - `failure_balance_transaction`: el ID de la [transacción de saldo](https://docs.stripe.com/api.md#balance_transaction_object) 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 error | Descripción | | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `charge_for_pending_refund_disputed` | Un cliente disputó el cargo mientras el reembolso está pendiente. En este caso, recomendamos [aceptar o refutar](https://docs.stripe.com/disputes/responding.md#decide) la disputa en lugar de reembolsarla para evitar reembolsos duplicados al cliente. | | `declined` | Nuestros socios financieros han rechazado el reembolso. | | `expired_or_canceled_card` | El método de pago es cancelado por un cliente o caducado por el socio. | | `insufficient_funds` | El reembolso está pendiente debido a la insuficiencia de fondos y ha superado el plazo de caducidad del reembolso pendiente. | | `lost_or_stolen_card` | El reembolso ha fallado debido a la pérdida o robo de la tarjeta original. | | `merchant_request` | El reembolso ha fallado por petición de la empresa. | | `unknown` | Ha 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* (A tool to send events to your application via webhook or directly to your cloud infrastructure) `refund.failed` (consulta [todos los eventos relacionados con el reembolso](https://docs.stripe.com/refunds.md#refund-events)). Si esto ocurre, debes buscar una forma alternativa de proporcionar un reembolso a tu cliente. Si tu plataforma utiliza [Connect con cargos indirectos](https://docs.stripe.com/connect/destination-charges.md#issue-refunds), 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](https://docs.stripe.com/payments/bank-transfers.md#refunds), 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 estatus `cancelado`. Como las cancelaciones son un tipo de fallo de reembolso, los atributos `failure_reason` y `failure_balance_transaction` se incluyen en el [reembolso](https://docs.stripe.com/api.md#refund_object). Si tu plataforma utiliza [Connect con cargos indirectos](https://docs.stripe.com/connect/destination-charges.md#issue-refunds), transfiere los fondos de un depósito de reembolso cancelado al saldo de Stripe de tu cuenta de la plataforma. To cancel a refund using the Dashboard: 1. Find the payment associated with the refund in the [Payments](https://dashboard.stripe.com/payments) page. 1. Click the overflow menu (⋯) to the right of the payment, then select **Cancel refund**. 1. If there are multiple partial refunds, select the correct refund in the dropdown. 1. Confirm the refund cancellation by selecting **Yes, cancel refund**. Alternatively, you can click a specific payment and cancel the refund from its details page. ## Reembolso y anulación Algunos reembolsos (aquellos emitidos poco después del cargo original) aparecen como *anulación* (A reversal is the cancellation of a transaction. Stripe doesn't withhold any fees for payment reversals) 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+* (A pricing plan where businesses pay the variable network cost for each transaction plus the Stripe fee rather than a flat rate for all transactions. This pricing model provides more visibility into payments costs) pueden observar una diferencia en el coste entre las anulaciones y los reembolsos porque las anulaciones generalmente tienen tarifas de red más bajas. #### Dashboard Para verificar si un reembolso se procesa como una anulación en el Dashboard: 1. Abre la página de detalles del pago asociado al reembolso. 1. En el Cronograma, haz clic en **Ver detalles** en la entrada del reembolso. 1. Si se trata de una anulación, se muestra el mensaje correspondiente. #### API Para verificar si un reembolso se procesa como una anulación usando la API: 1. Consume el [evento](https://docs.stripe.com/refunds.md#refund-events) `refund.updated` o [recupera el reembolso](https://docs.stripe.com/api/refunds/retrieve.md) con la API. 1. Si se trata de una anulación, devuelve `destination_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). #### Dashboard Para encontrar la referencia de un reembolso usando el Dashboard: 1. Abre la página de detalles del pago asociado al reembolso. 1. En el Cronograma, haz clic en **Ver detalles** en la entrada del reembolso. 1. Cuando estén disponibles, Stripe mostrará el ARN o STAN en el portapapeles. #### API Para encontrar la referencia de un reembolso usando la API: 1. Consume el [evento](https://docs.stripe.com/refunds.md#refund-events) `refund.updated` o [recupera el reembolso](https://docs.stripe.com/api/refunds/retrieve.md) con la API. 1. Cuando esté disponible, Stripe mostrará la referencia del reembolso con tarjeta en el siguiente formato de respuesta 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 el siguiente formato de respuesta 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. #### Dashboard Para cancelar pagos no capturados usando el Dashboard: 1. Busca el pago que deseas cancelar en la página de [Pagos](https://dashboard.stripe.com/payments). 1. Haz clic en el pago y, a continuación, selecciona **Cancelar**. 1. Selecciona el motivo de la cancelación y haz clic en **Sí**. Si seleccionas **Otro**, debes agregar una nota que explique el motivo de la cancelación del pago. #### API Si ya no tienes intención de cobrar un pago, puedes [cancelar un PaymentIntent](https://docs.stripe.com/api/payment_intents/cancel.md). 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: ```curl curl -X POST https://api.stripe.com/v1/payment_intents/pi_32AkjQ5H4Bas2eAolX13/cancel \ -u "<>:" ``` 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](https://docs.stripe.com/api/events.md#events) 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](https://docs.stripe.com/webhooks/handling-payment-events.md) y de [verificar las firmas de los webhooks](https://docs.stripe.com/webhooks.md#verify-events) para confirmar que los eventos entrantes provienen de Stripe. 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 te recomienda que escuches el evento `refund.created`. La siguiente tabla describe los eventos más comunes relacionados con los reembolsos. | Evento | Descripción | | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `refund.created` | Se envía cuando se crea un reembolso. | | `refund.updated` | Se 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](https://docs.stripe.com/refunds.md#tracing-refunds). | | `refund.failed` | Se envía cuando se ha producido un [error en el reembolso](https://docs.stripe.com/refunds.md#failed-refunds). | | `charge.dispute.funds_reinstated` | Se envía cuando los fondos se restablecen en tu cuenta después de que se cierre una disputa, incluidos los [pagos parcialmente reembolsados](https://docs.stripe.com/disputes/best-practices.md#partial-refund-bp). | | `charge.refunded` | Se envía cuando se reembolsa un cargo, incluyendo los reembolsos parciales. Escucha `refund.created` para obtener información sobre el reembolso. | | `review.closed` | Se envía cuando se cierra una [revisión](https://docs.stripe.com/api/events/types.md#review_object). Consulta el campo `reason` para entender el motivo por el que se cerró, que será uno de los siguientes: `approved`, `disputed`, `canceled`, `refunded` o `refunded_as_fraud`. | | `source.refund_attributes_required` (Deprecated) | Enviado cuando la fuente receptora necesita atributos de reembolso para procesar un reembolso o un pago indebido. | | `charge.refund.updated` (Deprecated) | Se 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](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md) 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. ## See also - [Añade fondos a tu saldo de Stripe](https://docs.stripe.com/get-started/account/add-funds.md) - [Añade fondos al saldo de tu plataforma](https://docs.stripe.com/connect/top-ups.md) - [Localiza los precios](https://docs.stripe.com/payments/currencies/localize-prices.md)