Cómo retener un importe en una tarjetaAPI Charges
API heredada
El contenido de esta sección se refiere a una función heredada. En su lugar, usa la API Payment Intents.
La API Charges no admite las siguientes funciones, muchas de las cuales son necesarias para cumplir con la normativa de las tarjetas de crédito:
Usa la API Charges para autorizar un pago ahora y capturar los fondos más tarde.
Precaución
Desde septiembre de 2019, la normativa denominada autenticación reforzada de clientes (SCA) exige que las empresas europeas soliciten una autenticación adicional para los pagos por Internet. Las empresas establecidas en el Espacio Económico Europeo (EEE) con clientes del EEE deben seguir la guía sobre cómo aceptar un pago para utilizar la API Payment Intents y cumplir así con la normativa.
Stripe admite los pagos con tarjeta en dos pasos, de modo que primero puedes autorizar un cargo y luego esperar a liquidarlo (capturarlo) más tarde. Cuando se autoriza un cargo, el emisor de la tarjeta garantiza los fondos y retiene el importe en la tarjeta del cliente durante, por lo general, hasta 7 días o 2 días para los pagos presenciales con Terminal. El atributo payment_method_details.card.capture_before en el cargo indica el momento en que caduca la autorización.
Si el cargo no se captura dentro de este período, la autorización se cancela y los fondos se liberan.
Autoriza un pago
Para autorizar un pago sin capturarlo, haz una solicitud de cargo que también incluya el parámetro capture
cuyo valor sea falso. Esto le indica a Stripe que solo debe autorizar el importe en la tarjeta del cliente.
Precaución
Solo algunos métodos de pago admiten la autorización y la captura por separado. Por ejemplo, los pagos con tarjeta, Afterpay y Klarna admiten la separación de estos pasos. Con los métodos de pago que no admiten esta funcionalidad, como ACH o iDEAL, no puedes realizar capturas manualmente. Consulta la lista completa de métodos de pago que admiten la captura manual.
Si necesitas cancelar una autorización, puedes liberarla reembolsando el objeto Charge
correspondiente.
Captura los fondos
Para liquidar un cargo autorizado, solicita la captura del cargo. De forma predeterminada, se captura el importe total autorizado, y no puedes capturar más. Para capturar un importe inferior al inicial (por ejemplo, 8 USD de una autorización de 10 USD), especifica el parámetro amount
. La captura de una parte del cargo libera automáticamente el importe restante.
Los extractos de tarjetas de algunos emisores no distinguen entre autorizaciones y cargos capturados (liquidados), lo que puede generar confusión entre los clientes. Además, los cargos autorizados solo pueden capturarse una vez. Si capturas parte de un cargo, no podrás hacer otra captura por la diferencia. En función de lo que necesites, puede que te resulte mejor guardar los datos de la tarjeta del cliente para más tarde y crear cargos según sea necesario.