Recibe pagos y luego transfiere
En esta guía, se explica cómo aceptar pagos y transferir fondos a las cuentas bancarias de los proveedores de servicios o vendedores. A efectos de hacer una demostración, crearemos un marketplace de alquiler de viviendas que conecte a los propietarios con los posibles inquilinos. También te mostraremos cómo aceptar pagos de los inquilinos (clientes) y hacer transferencias a los propietarios (los usuarios de tu plataforma).
Prerrequisitos
- Registra tu plataforma.
- Agrega datos de la empresa para activar tu cuenta.
- Completa el perfil de tu plataforma.
- Customize your brand settings. Add a business name, icon, and brand color.
Configura StripeLado del servidor
Instala las bibliotecas oficiales de Stripe para acceder a la API desde tu aplicación:
Crea una cuenta conectada
Cuando un usuario (vendedor o proveedor de servicios) crea una cuenta en tu marketplace, tienes que crear la Account de usuario correspondiente (llamado cuenta conectada). No puedes aceptar pagos ni transferir fondos a la cuenta bancaria del usuario sin tener una cuenta conectada. Las cuentas conectadas representan a los usuarios en la API de Stripe y recopilan la información necesaria para verificar la identidad del usuario. En nuestro ejemplo de alquiler de vivienda, la cuenta conectada representa al propietario de la vivienda.
Crear una cuenta conectada y completar la información automáticamente
Utiliza la API /v1/accounts
para crear una cuenta conectada. Puedes crear la cuenta conectada especificando las propiedades de la cuenta conectada o especificando el tipo de cuenta.
Si ya recopilaste información para tus cuentas conectadas, puedes completar automáticamente esa información en el objeto Account. Puedes completar automáticamente todo tipo de información de la cuenta, por ejemplo, los datos personales y de la empresa, la información externa de la cuenta y más.
El onboarding de Connect no solicita la información que se completó automáticamente. Sin embargo, sí le pide al titular de la cuenta que confirme esta información antes de aceptar el contrato de servicio de Connect.
Cuando pruebes la integración, completa automáticamente la información de la cuenta con los datos de prueba.
Crea un enlace de cuenta
Para crear un enlace de cuenta, llama a la API Account Links con los siguientes parámetros:
account
refresh_url
return_url
type
=account_onboarding
Redirige al usuario a la URL del enlace de cuenta
La respuesta a tu solicitud de Account Links incluye un valor para la clave url
. Redirige a tu usuario a este enlace para enviarlo al flujo. Las direcciones URL desde la API Account Links son temporales y solo se pueden utilizar una vez, ya que otorgan acceso a los datos personales del usuario de la cuenta conectada. Autentica a los usuarios en tu aplicación antes de redirigirlos a esta URL. Si quieres completar los datos automáticamente, debes hacerlo antes de generar el enlace de cuenta. Después de haber creado el enlacede la cuenta, no podrás leer ni escribir información para la cuenta conectada.
Consejo de seguridad
No envíes por correo electrónico, ni por mensaje de texto ni por ningún otro medio las URL del enlace de la cuenta fuera de la aplicación de la plataforma. En lugar de eso, envíalas al titular de la cuenta autenticado dentro de tu aplicación.
Gestiona el caso de un usuario que vuelve a la plataforma
El onboarding de Connect requiere que especifiques una return_url
y una refresh_url
para gestionar todos los casos en los que se redirige al usuario a tu plataforma. Es importante implementarlas correctamente para que el usuario tenga la mejor experiencia.
Nota
Puedes usar HTTP en las direcciones return_url
y refresh_url
si estás en modo de prueba (por ejemplo, para probar con localhost), pero en modo activo solo se acepta HTTPS. Asegúrate de cambiar las URL de prueba por direcciones URL HTTPS antes de pasar a modo activo.
return_url
Stripe redirige al usuario a esta URL cuando dicho usuario completa el flujo de onboarding de Connect. Esto no implica que se haya recopilado toda la información ni que no haya requisitos pendientes en la cuenta. Solo significa que se entró y se salió del flujo correctamente.
No se especifica ningún estado a través de esta URL. Después de redirigir al usuario a tu return_url
, verifica el estado del parámetro details_submitted
en su cuenta por medio de uno de los siguientes métodos:
- Escucha los webhooks
account.updated
. - Llama a la API Accounts e inspecciona el objeto devuelto.
refresh_url
Stripe redirige a tu usuario a la refresh_url
en los siguientes casos:
- Se venció el enlace (pasaron algunos minutos desde que se creó).
- El usuario ya visitó la URL (el usuario actualizó la página o se desplazó de página en el navegador).
- Tu plataforma ya no puede acceder a la cuenta.
- Se rechazó la cuenta.
La refresh_url
debería activar un método en tu servidor para volver a llamar a Account Links con los mismos parámetros y redirigir al usuario al flujo de onboarding de Connect para que la experiencia sea fluida.
Gestiona los casos de usuarios que no hayan completado el onboarding
Es posible que un usuario redirigido a tu return_url
no haya completado el proceso de onboarding. Usa el punto de conexión /v1/accounts
para recuperar la cuenta del usuario y comprueba si hay charges_enabled
. Si la cuenta no ha finalizado todo el proceso de onboarding, proporciona indicaciones de interfaz de usuario para que el usuario pueda continuarlo más tarde. Podrá completar la activación de su cuenta con un nuevo enlace de cuenta (generado por tu integración). Puedes verificar el estado del parámetro details_submitted
en su cuenta para ver si se completó el proceso de onboarding.
Habilita métodos de pago
Visualiza la configuración de métodos de pago y habilita los que quieras admitir. Los pagos con tarjeta, Google Pay y Apple Pay están habilitados de forma predeterminada, pero puedes habilitar y deshabilitar los métodos de pago según sea necesario.
Antes de que se abra el formulario de pago, Stripe evalúa la moneda, las restricciones de los métodos de pago y otros parámetros para determinar la lista de métodos de pago admitidos. Se les da prioridad a los métodos de pago que aumentan la conversión y guardan mayor relación con la moneda y la ubicación del cliente. Los métodos de pago menos prioritarios se ocultan en un menú de contenido adicional.
Acepta un pago
Usa Stripe Checkout para aceptar pagos. Checkout admite varios métodos de pago y muestra automáticamente aquellos que se adaptan mejor a tu cliente. Puedes aceptar pagos con Checkout mediante una página alojada por Stripe o agregar un formulario de pago prediseñado integrable directamente en tu sitio web. También puedes crear un flujo personalizado (con Payment Element) para aceptar varios métodos de pago con una sola integración del front-end.
Pruebas
Para probar el flujo de creación de cuentas, crea cuentas y usa OAuth.
Consulta Pruebas para obtener información adicional para probar tu integración.
Disputas
As the settlement merchant on charges, your platform is responsible for disputes. Make sure you understand the best practices for responding to disputes.
Payouts
By default, any funds that you transfer to a connected account accumulate in the connected account’s Stripe balance and are paid out on a daily rolling basis. You can change the payout frequency by going into the connected account’s detail page, clicking the right-most button in the Balance section, and selecting Edit payout schedule.
Refunds
Para emitir reembolsos, dirígete a la página de pagos. Selecciona pagos individuales haciendo click en la casilla que se encuentra a la izquierda de los pagos que quieras reembolsar. Luego de seleccionar un pago, Stripe mostrará un botón de Reembolsar en la esquina superior derecha de la página. Haz click en el botón Reembolsar para emitir un reembolso de todos los pagos que has seleccionado para el cliente.
Nota
Las cuentas conectadas no pueden iniciar rembolsos por pagos desde el Dashboard de Express. Si tus cuentas conectadas usan el Dashboard de Express, debes procesar los rembolsos correspondientes.