Acepta un pago con cargos y envíos de fondos separados.
Utiliza cargos y envíos de fondos separados para aceptar pagos.
Crea cargos y envíos de fondos separados para transferir fondos de un pago a varias cuentas conectadas, o cuando se desconoce a un usuario específico en el momento del pago. El cargo en tu cuenta plataforma se desvincula de las transferencias a tus cuentas conectadas. Con este tipo de cargo:
- Creas un cargo en la cuenta de tu plataforma y también transfieres fondos a tus cuentas conectadas. El pago aparece como un cargo en tu cuenta y también hay transferencias a cuentas conectadas (por un importe determinado por ti), que se extraen del saldo de tu cuenta.
- Puedes transferir fondos a varias cuentas conectadas.
- Eres el comerciante registrado y el costo de las comisiones, los reembolsos y los contracargos de Stripe se debita del saldo de tu cuenta.
Este tipo de cargo ayuda a los marketplaces a dividir los pagos entre varias partes, por ejemplo, una plataforma de entrega de restaurantes que divide los pagos entre el restaurante y el repartidor.
Nota
Segregación de fondos es una versión preliminar de una funcionalidad privada que mantiene los fondos de los pagos en un estado de tenencia protegido antes de enviarlos a fondos a cuentas conectadas. Esto evita que los fondos asignados se utilicen para operaciones de plataforma no relacionadas. Ponte en contacto con tu gestor de cuentas de Stripe para solicitar acceso.
Crea una Checkout SessionLado del servidor
Una sesión de Checkout controla lo que tu cliente puede ver en el formulario de pago, como las partidas, el importe y la moneda del pedido, así como los métodos de pago aceptados. Agrega un botón de pago en tu sitio web que llame a un punto de conexión del lado del servidor para crear una sesión de Checkout.
En tu servidor, crea una Checkout Session y redirige a tu cliente a la URL que se devuelve en la respuesta.
| Parámetro | Valor | ¿Obligatorio? | Descripción |
|---|---|---|---|
| partidas | Una lista de las partidas que compra el cliente. | Obligatorio condicionalmente | Este atributo representa las partidas que el cliente está comprando. Las partidas se muestran en la página de proceso de compra alojada en Stripe. |
| payment_intent_data[transfer_group] | Una cadena única que identifica un pago como parte de un grupo. | Sí | Cuando Stripe crea automáticamente un cargo para un PaymentIntent con un valor de transfer_, asigna el mismo valor al transfer_ del cargo. |
| success_url | Una URL válida | Sí | Stripe redirige al cliente a la URL de éxito después de que complete un pago y reemplaza la cadena {CHECKOUT_ con el ID de la sesión de Checkout. Úsalo para recuperar la sesión de Checkout e inspecciona el estado para decidir qué mostrarás a tu cliente. También puedes adjuntar tus propios parámetros de consulta, que se mantendrán durante el proceso de redireccionamiento. Consulta Personalizar el comportamiento de redireccionamiento en una página alojada en Stripe para obtener más información. |
Administra eventos posteriores al pago para cargos y envíos de fondos separados.Lado del servidor
Stripe envía un evento checkout.session.completed cuando se completa el pago. Utiliza un webhook para recibir estos eventos y ejecutar acciones, como enviar un correo electrónico de confirmación del pedido a tu cliente, registrar la venta en una base de datos o iniciar el flujo de tareas para un envío.
Presta atención a estos eventos en lugar de esperar una devolución de llamada del cliente. De su lado, el cliente puede cerrar la ventana del navegador o salir de la aplicación antes de que se ejecute la devolución de llamada. Algunos métodos de pago tardan entre 2 y 14 días en confirmar el pago. Si configuras tu integración para identificar eventos asincrónicos, podrás aceptar varios métodos de pago con una sola integración.
Administra los siguientes eventos al cobrar pagos con Checkout:
| Evento | Descripción | Próximos pasos |
|---|---|---|
| checkout.session.completed | Mediante el envío del formulario de Checkout, el cliente ha autorizado correctamente el pago. | Espera hasta saber si el pago se concreta o no. |
| checkout.session.async_payment_succeeded | El pago del cliente se efectuó correctamente. | Entrega los bienes o servicios comprados. |
| checkout.session.async_payment_failed | El pago se rechazó o falló por algún otro motivo. | Comunícate con el cliente por correo electrónico y solicítale que haga un nuevo pedido. |
Todos estos eventos incluyen el objeto Checkout Session. Una vez que el pago se efectúa correctamente, el estado del PaymentIntent subyacente cambia de processing a succeeded o a un estado de falla.
Crear una transferenciaLado del servidor
En tu servidor, envía fondos desde tu cuenta a una cuenta conectada creando un envío de fondos y especificando el transfer_ utilizado.
Los importes de transferencia y cargo no tienen que coincidir. Puedes dividir un solo cargo entre varias transferencias o incluir varios cargos en una sola transferencia. En el siguiente ejemplo se crea una transferencia adicional asociada con el mismo transfer_.
Opciones de envíos de fondo
Puedes asignar cualquier valor a la cadena transfer_, pero debes representar una sola acción comercial. También puedes realizar una transferencia sin un cargo asociado ni un transfer_, por ejemplo, cuando debes pagar a un proveedor pero no hay un pago de cliente asociado.
Nota
El transfer_ solo identifica los objetos asociados. No afecta a ninguna funcionalidad estándar. Para evitar que se ejecute una transferencia antes de que estén disponibles los fondos del cargo asociado, usa el atributo source_ de la transferencia.
De forma predeterminada, una solicitud de envío de fondos falla cuando el monto excede el saldo disponible de la cuenta de la plataforma Stripe no reintenta automáticamente las solicitudes de envío de fondos fallidas.
Puedes evitar que se produzcan errores en las solicitudes de envío de fondos asociados a cargos. Cuando especificas el cargo asociado como source_transaction del envío de fondos, la solicitud de envío de fondos se efectúa automáticamente. Sin embargo, no ejecutamos dicho envío hasta que los fondos de ese cargo estén disponibles en la cuenta de la plataforma.
Nota
Si utilizas cargos y envíos de fondos separados, tenlo en cuenta al planificar tu calendario de transferencias. Las transferencias automáticas pueden interferir con las transferencias que no tienen una source_ definida.
Disponibilidad geográfica
Stripe acepta cargos y transferencias separados en las siguientes regiones:
En la mayoría de los casos, tu plataforma y cualquier cuenta conectada deben estar en la misma región. Intentar transferir fondos a través de una frontera no permitida devuelve un error. Para obtener información sobre soporte transregional, consulta transferencias transfronterizas. Solo debes usar transferencias en combinación con los casos de uso permitidos para cargos, recargas y comisiones. Usa cargos y envíos de fondos separados para cuentas conectadas que tienen acceso al Dashboard de Express o no tienen acceso al Dashboard.
Próximos pasos
A continuación, aprende a cobrar comisiones de la plataforma desde tus cuentas conectadas.