# Rembolsa y cancela pagos Descubre cómo cancelar o rembolsar un pago. Puedes [cancelar un pago](https://docs.stripe.com/refunds.md#cancel-payment) antes de que se complete sin costo alguno. O puedes reembolsar la totalidad o parte de un pago después de que se realice correctamente, lo que podría generar una comisión. Las tarifas de procesamiento de Stripe no se reembolsan a la transacción original. Consulta nuestra [página de tarifas](https://stripe.com/pricing/local-payment-methods) para obtener más información. Los reembolsos utilizan tu saldo disponible de Stripe (sin incluir los montos pendientes). Si tu saldo disponible no cubre el importe del reembolso, Stripe retendrá el reembolso como pendiente para transacciones con tarjeta (fallarán los reembolsos de otros tipos de métodos de pago) hasta que tu saldo de Stripe sea suficiente. Cobra pagos o *recarga* (The act of adding funds to a Stripe account, typically through a transfer from a bank external to Stripe) el saldo de tu cuenta para corregir tu saldo negativo de Stripe. En las regiones donde corresponda, Stripe podría debitar de tus cuentas bancarias de forma automática para recuperar un saldo negativo de Stripe. ## Solicitudes de rembolso 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 exitosos 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 reembolsados en su totalidad. Si se aplican todas las condiciones siguientes, enviaremos un correo electrónico a tu cliente donde le notificaremos acerca del rembolso: - El cargo original se creó en un cliente en tu cuenta de Stripe. - El cliente tiene almacenada una dirección de correo electrónico. - Habilitaste la opción **Enviar a los clientes un correo electrónico sobre rembolsos** en el [Dashboard](https://dashboard.stripe.com/account/emails). Puedes [ver tus pagos rembolsados en el Dashboard](https://dashboard.stripe.com/test/payments?status%5B0%5D=refunded&status%5B1%5D=refund_pending&status%5B2%5D=partially_refunded). ## Emitir rembolsos 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 rembolsar un pago usando el Dashboard: 1. Busca el pago que deseas rembolsar en la página de [Pagos](https://dashboard.stripe.com/payments). 1. Haz click en el menú de contenido adicional (⋯) a la derecha del pago y selecciona **Rembolsar pago**. 1. De forma predeterminada, emitirás un rembolso completo. Para hacer un rembolso parcial, ingresa un importe de rembolso diferente. 1. Selecciona un motivo para el rembolso. Si seleccionas **Otro**, debes agregar una nota donde se explique el motivo del rembolso. Haz click en **Rembolsar**. Como alternativa, puedes hacer clic en un pago específico y emitir un reembolso desde la página de datos. También puedes enviar [recibos de reembolso](https://docs.stripe.com/receipts.md#refund-receipts) de forma automática o manual para cada reembolso. > #### Rembolsos masivos > > El Dashboard admite rembolsos masivos de pagos completos. Selecciona los pagos que deseas rembolsar al marcar el casillero a la izquierda de cada pago, incluso en varias páginas de resultados. Luego, haz click en **Rembolsar** y selecciona un motivo. Solo puedes emitir rembolsos de esta manera si es por el importe total. Los rembolsos parciales deben hacerse uno por uno. #### API Para reembolsar un pago con la API, [crea un reembolso](https://docs.stripe.com/api.md#create_refund) y proporciona el ID del cargo o [PaymentIntent](https://docs.stripe.com/api/payment_intents.md). Cuando usas un PaymentIntent para cobrar un pago, Stripe crea un objeto [charge](https://docs.stripe.com/api/charges/object.md). Para reembolsar un pago después de que el PaymentIntent se haya procesado con éxito, crea un reembolso con el PaymentIntent, que equivale a reembolsar el cargo subyacente. Si utilizas 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 realizar el reembolso solo de una parte de un PaymentIntent especificando un importe. Para ello, proporciona un parámetro `amount` como un número entero en centavos (o la unidad más pequeña de la moneda aceptada). ```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 reembolso un PaymentIntent cuyo estado es `requires_capture`, el proceso de reembolso es diferente. En este caso, el cargo adjunto al PaymentIntent no se capturó y no se puede reembolsar directamente. Debes [cancelar el PaymentIntent](https://docs.stripe.com/api/payment_intents/cancel.md). ### Reembolsos mediante una plataforma Connect El comportamiento de los reembolsos depende del [tipo de cargo de Connect](https://docs.stripe.com/connect/charges.md#refund-creation) que se utiliza en tu integración. - Stripe debita los reembolsos directamente de la cuenta conectada a los pagos con [cargo directo](https://docs.stripe.com/connect/direct-charges.md#issue-refunds). - Stripe realiza débitos en tu plataforma por reembolsos a [cargos a un destino](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`) de pagos. Revierte las transferencias asociadas a estos tipos de cargos para recuperar el importe del reembolso de tus cuentas conectadas. Las plataformas Connect pueden habilitar sus cuentas conectadas para facilitar reembolsos a los clientes desde su sitio mediante el uso de componentes integrados de Connect, como el componente [pagos](https://docs.stripe.com/connect/supported-embedded-components/payments.md) o el componente [datos del pago](https://docs.stripe.com/connect/supported-embedded-components/payment-details.md). ## Destinos de los rembolsos Los rembolsos 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 rembolsos 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 realizar el rembolso al cliente con un método alternativo (por ejemplo, un cheque o un depósito en la cuenta bancaria). En raras ocasiones, un rembolso a una tarjeta puede [fallar](https://docs.stripe.com/refunds.md#failed-refunds). En 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 del reembolso varía según el banco. Si un cliente ya no tiene el 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). ## Administra rembolsos fallidos Un rembolso 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 provocar un error en el rembolso. Cuando esto sucede, el banco nos devuelve el importe reembolsado y nosotros lo agregamos al saldo de tu cuenta de Stripe. Este proceso puede demorar hasta 30 días desde la fecha de imputación. Al usar la API, el estado del objeto [Refund](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 rembolso. Estas razones incluyen: | Motivo del error | Descripción | | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `charge_for_pending_refund_disputed` | Un cliente disputó el cargo mientras el reembolso está pendiente. En este caso, te recomendamos [aceptar o impugnar](https://docs.stripe.com/disputes/responding.md#decide) la disputa en lugar de reembolsarla para evitar reembolsos duplicados al cliente. | | `declined` | Reembolso rechazado por nuestros socios financieros. | | `expired_or_canceled_card` | El cliente cancela el método de pago o el socio lo da por vencido. | | `insufficient_funds` | El rembolso está pendiente debido a insuficiencia de fondos y superó el periodo de vencimiento para rembolsos pendientes. | | `lost_or_stolen_card` | No se realizó el reembolso debido a la pérdida o robo de la tarjeta original. | | `merchant_request` | No se realizó el reembolso a solicitud de la empresa. | | `unknown` | No se realizó el reembolso debido a un motivo desconocido. | Para algunos métodos de pago, el código de pago rechazado proporcionado por nuestros socios financieros, que indica el motivo por el que falló el reembolso, está disponible en el campo `network_decline_code` de `destination_details`: ``` { id: "pyr_1234", destination_details: { blik: { network_decline_code: "decline_code" }, type: 'blik', } } ``` Si excepcionalmente un rembolso falla, te lo notificaremos usando 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 rembolso](https://docs.stripe.com/refunds.md#refund-events)). Si esto ocurre, tendrás que buscar una manera alternativa de hacerle el reembolso al cliente. Si tu plataforma usa [Connect con cargos a un destino](https://docs.stripe.com/connect/destination-charges.md#issue-refunds), los fondos de un reembolso fallido se depositan en el saldo de Stripe de la cuenta de tu 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 por un corto período de tiempo. El reembolso no debe haberse procesado como una reversión de 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 al estado `canceled`. Como las cancelaciones son un tipo de error 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 usa [Connect con cargos a un destino](https://docs.stripe.com/connect/destination-charges.md#issue-refunds), los fondos de un reembolso cancelado se depositan en el saldo de Stripe de la cuenta de tu 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 revocación Algunos rembolsos, aquellos emitidos poco después del cargo original, aparecen como una *anulación* (A reversal is the cancellation of a transaction. Stripe doesn't withhold any fees for payment reversals) en lugar de como un rembolso. En estos casos, el cargo original desaparece del extracto del cliente y no se emite un crédito por 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 ver una diferencia en el costo entre las revocaciones y los reembolsos, ya que las revocaciones generalmente incurren en comisiones de red más bajas. #### Dashboard Para verificar si un reembolso se procesa como una revocación en el Dashboard, haz lo siguiente: 1. Abre la página de datos de pago correspondiente al pago asociado con el reembolso. 1. En el historial, haz clic en **Ver datos** en la entrada del reembolso. 1. Si se trata de una revocación, se muestra el mensaje correspondiente. #### API Para verificar si un reembolso se procesa como una revocación usando la API, haz lo siguiente: 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 revocación, devuelve `destination_details[card][type] = 'reversal'`. ## Rastrea un rembolso Una vez iniciado el rembolso, Stripe envía solicitudes de rembolso al banco o al emisor de la tarjeta del cliente. Según el banco, el cliente verá el rembolso como un crédito aproximadamente 5 a 10 días hábiles más tarde. Es posible que un cliente se ponga en contacto contigo si no ve el rembolso. Un rembolso puede no ser visible para el cliente por varias razones: - Algunos rembolsos emitidos poco después del cargo original aparecen en forma de anulación en lugar de rembolso. En el caso de una anulación, el cargo original desaparece del extracto del cliente y no se emite un crédito por separado. - Un rembolso puede fallar si el banco del cliente o el emisor de la tarjeta no ha podido procesarlo correctamente. El banco nos devuelve el importe rembolsado y nosotros lo agregamos al saldo de tu cuenta de Stripe. Este proceso puede demorar hasta 30 días desde la solicitud del rembolso. Si un cliente pregunta sobre un reembolso, puede ser útil proporcionarle el número de referencia principal correspondiente al reembolso. Para los reembolsos de tarjetas, puede ser un **número de referencia del adquirente (ARN)**, un **número de auditoría de seguimiento del sistema (STAN)** o un **número de referencia de recuperación (RRN)**. Un ARN, un STAN o un RRN es un número de referencia asignado a una transacción de tarjeta a medida que avanza en el flujo de pago. Para los reembolsos por 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 y así obtener más información sobre cuándo el reembolso estará disponible. Tener un número de referencia también puede darle más seguridad a tu cliente de que se inició el reembolso. Las referencias de reembolsos están disponibles bajo las siguientes condiciones: - Se admiten para algunos socios financieros. De lo contrario, están marcadas como no disponibles. - Después del inicio del reembolso, pueden pasar hasta siete días hábiles para recibir el ARN de los socios bancarios involucrados en la transacción. - El ARN no está disponible en caso de una revocación porque no se procesa el cargo original. Para las redes de tarjetas que no admiten los 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, haz lo siguiente: 1. Abre la página de datos de pago correspondiente al pago asociado con el reembolso. 1. En el historial, haz clic en **Ver datos** en la entrada del reembolso. 1. Si alguno de estos números está disponible, Stripe muestra el ARN o el STAN en el portapapeles. #### API Para encontrar la referencia de un reembolso mediante la API, haz lo siguiente: 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 la referencia del reembolso de la tarjeta está disponible, Stripe la muestra en el siguiente formato de respuesta de la API: ``` { id: "re_1234", destination_details: { card: { reference: "123456", reference_status: "available", reference_type: "acquirer_reference_number", type: "refund" }, type: "card", } } ``` O la referencia para los métodos de pago locales seleccionados en el siguiente formato de respuesta de la API: ``` { id: "pyr_1234", destination_details: { eu_bank_transfer: { reference: "123456", reference_status: "available" }, type: "eu_bank_transfer", } } ``` ## Cancela un pago Puedes cancelar un pago a través del Dashboard solo cuando su estado es `uncaptured`. Para cancelar un pago con otros estados, debes usar la API. #### Dashboard Para cancelar pagos no capturados a través del 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 selecciona **Cancelar**. 1. Selecciona el motivo de la cancelación y haz clic en **Sí**. Si seleccionas **Otro**, debes agregar una nota en la que expliques 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` `requires_payment_method`, ya que los PaymentIntents incompletos son útiles para comprender la tasa de conversión durante el proceso de confirmación de compra. En el siguiente ejemplo de código se 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 tenga 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 correctamente. Si cancelas un PaymentIntent, ya no podrás usarlo para hacer otros cargos. Las operaciones intentadas por tu aplicación sobre un PaymentIntent cancelado muestran un mensaje de error. ## Eventos de reembolso Stripe activa [eventos](https://docs.stripe.com/api/events.md#events) cada vez que se crea o modifica un reembolso. Algunas otras acciones, como el cierre de evaluaciones, también desencadenan eventos 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 webhook](https://docs.stripe.com/webhooks.md#verify-events) para confirmar que los eventos entrantes provengan 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. Stripe recomienda que, como mínimo, 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 el reembolso. | | `refund.updated` | Se envía cuando se actualiza el rembolso. Las actualizaciones incluyen agregar metadatos y proporcionar detalles como el [ARN como número de referencia para rastrear los rembolsos](https://docs.stripe.com/refunds.md#tracing-refunds). | | `refund.failed` | Se envía cuando un [reembolso ha fallado](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 del cierre de una disputa e incluye 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, incluidos los reembolsos parciales. Escucha `refund.created` para obtener más información sobre los reembolsos. | | `review.closed` | Se envía cuando se cierra una [revisión](https://docs.stripe.com/api/events/types.md#review_object). Consulta el campo motivo (`reason`) para entender por qué se cerró; puede ser una de las siguientes opciones: aprobado (`approved`), en disputa (`disputed`), cancelado (`canceled`), reembolsado (`refunded`) o reembolsado como fraude (`refunded_as_fraud`). | | `source.refund_attributes_required` (Deprecated) | Se envía cuando la fuente receptora requiere atributos de reembolso para procesar un reembolso o un pago incorrecto. | | `charge.refund.updated` (Deprecated) | Se envía cuando se actualiza el reembolso, solo para reembolsos con un cargo correspondiente. Escucha `refund.updated` para obtener actualizaciones sobre todos los reembolsos. | ## Optimización de costos Si tu empresa procesa un gran volumen de reembolsos cerca del momento de la transacción, te recomendamos que utilices la [autorización y captura manuales](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md) para reducir los costos de tus reembolsos. La autorización y captura manuales te permiten controlar mejor los costos cancelando los pagos antes de que se capturen o reduciendo el importe capturado en lugar de procesar un rembolso. ## See also - [Agrega fondos a tu saldo de Stripe](https://docs.stripe.com/get-started/account/add-funds.md) - [Agrega 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)