# Retener fondos de un método de pago Separa la autorización de pago y la captura para crear un cargo ahora y capturar los fondos más tarde. Cuando creas un pago, puedes retener un método de pago que cumpla los requisitos para reservar fondos que puedas capturar más tarde. Por ejemplo, los hoteles a menudo autorizan el pago completo antes de que llegue el huésped y luego capturan el dinero cuando el huésped se va del hotel. Esto a veces se denomina *captura manual* (Manually capture funds separately from an authorization). La autorización de un pago garantiza el importe reteniéndolo en el método de pago del cliente. Si estás usando la API, el atributo [payment_method_details.card.capture_before](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before) en el cargo indica cuándo caduca la autorización. Debes capturar los fondos antes de que caduque la autorización. Si la autorización vence antes de capturar los fondos, estos se liberan y el estado del pago cambia a `canceled`. Obtén más información sobre los [estados de los pagos asíncronos](https://docs.stripe.com/payments/paymentintents/lifecycle.md). ## Plazos de validez de las autorizaciones En las siguientes tablas se describen los intervalos de validez para autorizar diferentes tipos de transacciones. ### Transacciones con tarjeta no presente | Marca de la tarjeta | Período de validez de la autorización de la [transacción iniciada por el comerciante](https://docs.stripe.com/payments/cits-and-mits.md) | Período de validez de la autorización de la [transacción iniciada por el cliente](https://docs.stripe.com/payments/cits-and-mits.md) | | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | | **Visa** | 5 días* | 7 días | | **Mastercard** | 7 días | 7 días | | **American Express** | 7 días | 7 días | | **Discover** | 7 días | 7 días | El período exacto de autorización es de 4 días y 18 horas, para dar tiempo a los procesos de compensación. ### Transacciones con tarjeta presente (pagos en persona) | Marca de la tarjeta | Período de validez de la autorización | | -------------------- | ------------------------------------- | | **Visa** | 5 días* | | **Mastercard** | 2 días | | **American Express** | 2 días | | **Discover** | 2 días | El período exacto de autorización es de 4 días y 18 horas, para dar tiempo a los procesos de compensación. ### Plazos de autorización de 30 días en Japón Si tu cuenta está establecida en Japón, puedes retener transacciones en JPY de Visa, Mastercard, JCB, Diners Club y Discover durante un máximo de 30 días. Las transacciones que no sean JPY y American Express vencen después del plazo estándar de 7 días. > A partir del 14 de abril de 2024, Visa redujo el plazo de autorización para las [transacciones iniciadas por el comerciante](https://docs.stripe.com/payments/cits-and-mits.md) en Internet de 7 a 5 días. Visa también amplió el plazo de autorización para las transacciones en persona (Terminal) de 2 a 5 días. ## Limitaciones de los métodos de pago Antes de la implementación, debes comprender las siguientes limitaciones para autorizar y capturar por separado. - Solo algunos métodos de pago admiten la *captura* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected) y la autorización por separado. Algunos métodos de pago compatibles incluyen tarjetas, Affirm, Afterpay, Cash App Pay, Klarna y PayPal. Algunos métodos de pago que no son compatibles son [ACH](https://docs.stripe.com/payments/ach-direct-debit.md) e [iDEAL](https://docs.stripe.com/payments/ideal.md). Obtén más información sobre la [compatibilidad de funciones de métodos de pago](https://docs.stripe.com/payments/payment-methods/payment-method-support.md). - Más allá de lo que se describe en las tablas anteriores, otros métodos de pago tienen reglas y ventanas de autorización diferentes: - Pagos con tarjeta: El importe suele estar retenido durante 7 días para los pagos en línea y 2 días para los pagos en persona con Terminal (según el tipo de transacción y la red de tarjetas). Puedes solicitar una autorización ampliada para determinadas autorizaciones de pago [en línea](https://docs.stripe.com/payments/extended-authorization.md) y [de Terminal](https://docs.stripe.com/terminal/features/extended-authorizations.md) que cumplen los requisitos para ampliar los períodos de validez. Las redes de tarjetas también pueden restringir autorizaciones de 1 USD que no tengas intención de capturar. - [Affirm](https://docs.stripe.com/payments/affirm/accept-a-payment.md?platform=web#manual-capture): Si Affirm requiere un pago inicial para pedidos de importes muy elevados, cobrará el importe durante la autorización y el reembolso si el pago no se captura. A continuación, tienes 30 días para capturar el saldo del pago. - [Afterpay/Clearpay](https://docs.stripe.com/payments/afterpay-clearpay/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture): Durante la autorización, el cliente paga la primera cuota de devolución. Afterpay reembolsa el pago si nunca se captura. A continuación, tienes 13 días para capturar el saldo del pago. - [Cash App Pay](https://docs.stripe.com/payments/cash-app-pay/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture): las autorizaciones válidas deben capturarse en un plazo de 7 días para completar un pago. - [Klarna](https://docs.stripe.com/payments/klarna/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture): debes capturar el cargo antes de la medianoche del día 28 natural después de la solicitud de cargo; de lo contrario, la autorización caducará. Por ejemplo, tendrías que capturar una solicitud de cargo el 1 de octubre de 2020 a las 14:00 horas UTC para el 29 de octubre de 2020 a las 00:00 horas UTC. - [PayPal](https://docs.stripe.com/payments/paypal/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture): retiene el importe durante 10 días. Stripe intenta automáticamente extender la retención por otros 10 días, hasta un total de 20 días. Tu [preferencia de cobro](https://docs.stripe.com/payments/paypal/choose-settlement-preference.md) puede afectar al período de autorización. Para obtener más información, consulta [separar la autorización y la captura](https://docs.stripe.com/payments/paypal/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture). ## Utilizar el Dashboard para autorizar y capturar Puedes autorizar un pago y capturar fondos por separado sin escribir código. 1. En el Dashboard, [crea un nuevo pago](https://dashboard.stripe.com/test/payments/new). Selecciona **Único**. 1. Cuando introduzcas o selecciones el método de pago, selecciona **Más opciones** y luego **Capturar fondos más tarde**. El pago aparece en tu [página de pagos](https://dashboard.stripe.com/test/payments) como **No capturado**. Para capturar los fondos, dirígete a la página de datos de pago y haz clic en **Capturar**. ## Indicarle a Stripe que autorice solamente #### API Checkout Sessions Para indicar que quieres separar la autorización y la captura, especifica [capture_method](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-capture_method) como `manual` al crear la Checkout Session. Este parámetro le indica a Stripe que debe autorizar el importe, pero no capturarlo en el método de pago del cliente. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price]"="{{PRICE_ID}}" \ -d "line_items[0][quantity]"=2 \ -d mode=payment \ -d ui_mode=custom \ -d "payment_intent_data[capture_method]"=manual ``` Con el enfoque anterior, le dices a Stripe que solo puedes usar «capturar después de» para una Checkout Session con métodos de pago que cumplan con los requisitos. #### API Payment Intents Para indicar que quieres separar la autorización y la captura, especifica [capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) en `manual` al crear el PaymentIntent. Este parámetro le indica a Stripe que debe autorizar el importe, pero no capturarlo en el método de pago del cliente. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d capture_method=manual ``` Con el enfoque anterior, le dices a Stripe que solo puedes usar “capturar después de” para un PaymentIntent con métodos de pago elegibles. Por ejemplo, no puedes aceptar pagos con tarjeta y adeudo directo SEPA (que no admite la captura posterior) para un solo PaymentIntent. Para aceptar métodos de pago en los que es posible que no todos admitan la captura después, puedes configurar capture-after-per-payment-method configurando `capture_method=manual` en el objeto `payment_method_options[]`. Por ejemplo, al configurar `payment_method_options[card][capture_method]=manual`, solo pondrás en espera los pagos con tarjeta. Puedes gestionar los métodos de pago desde el [Dashboard](https://dashboard.stripe.com/settings/payment_methods). Stripe gestiona la lógica para [mostrar dinámicamente](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md) los métodos de pago que cumplen los requisitos más relevantes para cada cliente en función de factores como el importe de la transacción, la divisa y el flujo de pagos. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d "automatic_payment_methods[enabled]"=true \ -d "payment_method_options[card][capture_method]"=manual ``` Como otra opción, puedes enumerar `card` y `sepa_debit` usando [tipos de métodos de pago](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) como en el siguiente ejemplo. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=eur \ -d "payment_method_types[]"=card \ -d "payment_method_types[]"=sepa_debit \ -d "payment_method_options[card][capture_method]"=manual ``` Antes de continuar con la captura, adjunta un método de pago con los datos de la tarjeta al PaymentIntent y autoriza la tarjeta confirmando el PaymentIntent. Puedes hacerlo estableciendo los campos `payment_method` y `confirm` en el PaymentIntent. > #### Autorizaciones ampliadas > > Por lo general, la autorización de un pago con tarjeta en línea es válida durante 7 días. Para aumentar el período de validez, puedes [aplicar una retención ampliada a un pago con tarjeta en línea](https://docs.stripe.com/payments/extended-authorization.md). ## Capturar los fondos > #### Checkout Sessions tiene un ID de PaymentIntent > > Si usas la API de Checkout Sessions, asegúrate de usar el [ID de PaymentIntent](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_intent) que se devuelve en el objeto Checkout Session. Una vez autorizado el método de pago, el [estado](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-status) del PaymentIntent pasa a `requires_capture`. Para capturar los fondos autorizados, realiza una solicitud de [captura](https://docs.stripe.com/api/payment_intents/capture.md) de PaymentIntent. Esto captura el importe total autorizado de forma predeterminada. Para capturar menos o (para ciertos pagos con tarjeta en línea) más que el importe inicial, especifica la opción [amount_to_capture](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-amount_to_capture). Una captura parcial libera automáticamente el importe restante. Si intentas capturar un importe superior al inicial para un pago con tarjeta en línea, consulta la [documentación de sobrecaptura](https://docs.stripe.com/payments/overcapture.md). El siguiente ejemplo muestra cómo capturar 7,50 USD del pago autorizado de 10,99 USD: ```curl curl https://api.stripe.com/v1/payment_intents/pi_123/capture \ -u "<>:" \ -d amount_to_capture=750 ``` Si bien algunos pagos con tarjeta cumplen los requisitos para la [captura múltiple](https://docs.stripe.com/payments/multicapture.md), para la mayoría de los pagos, en un pago autorizado solo se puede realizar una captura. Si capturas parte de un pago, no podrás hacer otra captura por la diferencia. (Como alternativa, considera [guardar los datos del método de pago del cliente para más tarde](https://docs.stripe.com/payments/save-during-payment.md#save-payment-details-for-future-use) y crear pagos futuros según sea necesario). Los extractos de tarjetas de algunos emisores y las interfaces de métodos de pago no siempre distinguen entre autorizaciones y pagos capturados (liquidados), lo que en ocasiones puede resultar confuso para el cliente. Además, cuando un cliente completa el proceso de pago en un PaymentIntent con captura manual, se activa el evento `payment_intent.amount_capturable_updated`. Puedes inspeccionar la propiedad [amount_capturable](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_capturable) del PaymentIntent para ver el importe total que puedes capturar del PaymentIntent. ## Cancelar la autorización Si necesitas cancelar una autorización, puedes [cancelar el PaymentIntent](https://docs.stripe.com/refunds.md#cancel-payment). ## Captura el pago antes de que caduque la autorización (Versión beta privada) Puedes indicar a Stripe que realice automáticamente la captura antes de que expire la autorización, en lugar de activarla manualmente para los métodos de pago con tarjeta. Utiliza la captura automática diferida para asegurarte de no perder ningún pago autorizado. También puedes especificar un periodo de demora personalizado entre la autorización y la captura. Para habilitar la captura automática diferida, establece [captura_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card) como `automatic_delayed` en el PaymentIntent: ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d "payment_method_options[card][capture_method]"=automatic_delayed ``` Con este enfoque, Stripe captura el pago con tarjeta antes de que caduque la autorización, activando la captura aproximadamente 6 horas antes de la hora de caducidad. Esto sirve como proceso de respaldo para garantizar que capturamos los pagos autorizados antes de que caduquen. Aún puedes [capturar](https://docs.stripe.com/api/payment_intents/capture.md) o [cancelar](https://docs.stripe.com/refunds.md#cancel-payment) manualmente el PaymentIntent antes de que se capture automáticamente. You can specify a custom delay period for capture by including the `capture_delay_days` parameter. This parameter indicates the number of days to delay capture after successful authorization: ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d "payment_method_options[card][capture_method]"=automatic_delayed \ -d "payment_method_options[card][capture_delay_days]"=3 ``` En este ejemplo, Stripe captura automáticamente el PaymentIntent 3 días después de la autorización satisfactoria. Esto resulta útil si conoces el tiempo necesario para realizar acciones entre la autorización y la captura, al tiempo que garantizas la captura antes de que caduque la autorización. > With `capture_method=automatic_delayed`, Stripe prioritizes capturing the payment before authorization expiration. If the authorization window is shorter than the specified delay period, we capture the PaymentIntent before expiration, ignoring the delay period. ## See also - [Autorización y captura independientes con Checkout](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted#auth-and-capture) - [Bloquea de forma prolongada un pago con tarjeta en línea](https://docs.stripe.com/payments/extended-authorization.md)