- En tu backend, crea un
Checkout Sessionusando tu Secret Key - Redirige a tu usuario para completar el pago en la página de checkout alojada por Fintoc
- Maneja los eventos posteriores al pago

Opcional: instala nuestro SDK del backend
- Python
- Node
Si usas Python, puedes instalar nuestro SDK de Python para interactuar con nuestra API de manera más sencilla. El SDK maneja automáticamente la paginación, te permite verificar fácilmente los webhooks de Fintoc y ofrece muchas otras funciones útiles.
Crea una sesión
El objeto Checkout Session representa tu intención de cobrar un pago a un cliente y rastrea los cambios de estado a lo largo del proceso de pago. Usando tu Secret Key, crea unCheckout Session desde tu backend con los parámetros requeridos: amount, currency, success_url y cancel_url, como el ejemplo a continuación:
Node
Envía el objeto Business Profile si estás procesando pagos para un submerchantTambién puedes agregar el objeto
business_profile al crear una sesión para personalizar el nombre mostrado como “Destinatario” en el flujo de pago.Lee aquí para aprender más.Incluir datos del cliente (Opcional)
Al crear unCheckout Session, puedes incluir información del cliente. Esto permite que Fintoc muestre solo los métodos de pago disponibles para ese cliente específico, como verificar si el monto excede el límite de transacción para un banco seleccionado en el método de iniciación de pago.
Preseleccionar un método de pago (Opcional)
Puedes crear unCheckout Session sin especificar métodos de pago. En este caso, los usuarios pueden seleccionar entre todas las opciones disponibles en la página de checkout alojada por Fintoc, según los parámetros de la sesión (amount, customer, currency) y los métodos de pago que hayas habilitado en Fintoc.
Alternativamente, puedes definir explícitamente el método o métodos de pago para la sesión. Por ejemplo, en la solicitud a continuación, se establece el método payment_initiation, combinado con payment_method_options, donde la institución cl_banco_estado está preseleccionada para el usuario. En este escenario, el flujo de pago presentado al usuario se limitará a este método y banco específicos.
Node

Izquierda: Vista predeterminada que muestra todos los métodos disponibles (transferencia bancaria y tarjetas) cuando no se establece el parámetro payment_method. Derecha: Flujo transferencia bancaria preseleccionado para Banco Estado, mostrando directamente el formulario de pago específico de la institución.
Uso de tu propia página de CheckoutCuando tienes tu propia página de checkout, debes establecer el payment_method para redirigir a los usuarios al Checkout de Fintoc después de que ya hayan seleccionado su método de pago preferido.Esto omite la pantalla de selección de método de pago de Fintoc y dirige a los usuarios directamente al flujo de pago específico, en lugar de dejar que Fintoc gestione la experiencia de checkout completa.
Respuesta al crear una Checkout Session
Después de hacer la solicitud para crear la Checkout Session, Fintoc debería responder con algo como esto:redirect_url. En el siguiente paso, usarás este atributo para redirigir al usuario a completar el pago.
Elige cómo abrir el widget de Fintoc
El Widget de Fintoc es el componente del lado del cliente con el que tus clientes interactuarán para hacer pagos usando Fintoc. Maneja la validación de credenciales, autenticación multifactor y manejo de errores para todas las instituciones financieras soportadas. Tienes dos opciones para abrir el widget:Opción 1: abrir el widget en tu frontend
Si quieres mostrar el Widget de Fintoc directamente en tu página de checkout (sin redirigir al usuario), usa elsession_token devuelto en la respuesta de la API al crear una Checkout Session.
Usa tu Public Key y el Session Token para configurar el widget.
country en mx.
Para más opciones de configuración y uso avanzado, consulta la guía del Widget.
Usa nuestro Widget Webview si estás creando una app móvilSi estás integrando Fintoc en una aplicación iOS o Android, puedes usar nuestra integración Webview.
Opción 2: abrir el widget vía Redirect Page
Alternativamente, puedes redirigir a los usuarios a una página de pago alojada por Fintoc. Después de completar el pago, serán redirigidos automáticamente de vuelta a tu sitio. Para usar este método, incluye tanto los parámetrossuccess_url como cancel_url al crear la Checkout Session. La respuesta de la API incluirá un redirect_url que puedes usar para enviar al usuario a la página de pago.
Según el resultado del pago, el usuario será redirigido al URL de éxito o cancelación.
Para más detalles, consulta la guía de integración con Redirect Page.
Maneja los eventos posteriores al pago
Una vez que una Checkout Session finaliza, manejas el resultado del pago en tu frontend y completas el pago en tu backend. Para tu frontend usarás el callback del widget, y para tu backend usarás los eventos enviados por webhooks.Usa eventos de webhooks para completar pagosTu cliente podría cerrar la ventana del navegador o salir de la app antes de que se ejecute el callback
onSuccess del widget. Por esta razón, siempre debes usar el evento checkout_session.finished para manejar acciones posteriores al pago como enviar un correo de confirmación de orden a tu cliente, registrar la venta en una base de datos o iniciar un flujo de envío.Maneja el resultado del pago en tu frontend
Una vez que un pago asociado a la Checkout Session finaliza exitosamente, el widget ejecuta el callbackonSuccess. Necesitas pasar esta función al widget al momento de crearlo.
Con este callback, puedes decidir qué hacer con el frontend de tu usuario una vez que el pago esté completo, por ejemplo:
- Redirigir al usuario a una vista post-venta o post-pago
- Mostrar al usuario una pantalla de éxito.
No uses este callback como confirmación de pagoNo deberías confiar en el callback
onSuccess como confirmación de un pago exitoso, ya que el frontend es un entorno inseguro y un tercero malicioso podría ejecutar una función JavaScript que simule que la transferencia se ejecutó exitosamente.Para un mecanismo de validación más completo, recomendamos encarecidamente integrar webhooks y suscribirte al evento checkout_session.finished. Al implementar webhooks, puedes asegurar actualizaciones oportunas y precisas sobre los estados de pago, mejorando la seguridad y confiabilidad generales de tu proceso de confirmación de pago.Maneja errores
No solo necesitas manejar pagos exitosos porque los pagos también pueden fallar. Por ejemplo, que tu cliente no tenga fondos en su cuenta bancaria para completar el pago. Cuando un pago falla o es rechazado por tu cliente, el widget ejecuta el callbackonExit. Con este callback, puedes manejar errores en tu frontend. Por ejemplo, puedes invitar a tu cliente a usar otro método de pago.
Completa el pago en tu backend
Fintoc envía un eventocheckout_session.finished cuando el pago se completa. Usa la guía de webhooks para recibir estos eventos y ejecutar acciones, como enviar un correo de confirmación de orden a tu cliente, registrar la venta en una base de datos o iniciar un flujo de envío.
El evento checkout_session.finished incluye información sobre el pago relacionado y se ve así:
Redirige al usuario para completar el pago
A continuación, redirigirás a los usuarios a la página de checkout alojada por Fintoc. Después de completar el pago, serán redirigidos automáticamente de vuelta a tu sitio. Según el resultado del pago, el usuario será redirigido al URL de éxito o cancelación.Maneja los eventos posteriores al pago
Una vez que una Checkout Session finaliza, manejas el resultado del pago en tu frontend y completas el pago en tu backend. Para tu backend, usarás los eventos enviados por webhooks.Completa el pago en tu backend
Fintoc envía un eventocheckout_session.finished y un payment_intent.succeeded cuando la sesión se completa y el pago es exitoso. Usa la guía de webhooks para recibir estos eventos y ejecutar acciones, como enviar un correo de confirmación de orden a tu cliente, registrar la venta en una base de datos o iniciar un flujo de envío.
El evento checkout_session.finished incluye información sobre la sesión y el id y status del payment_intent:
Manejo de pagos asíncronos después de que termina la Checkout SessionEn algunos casos, la Checkout Session puede finalizar con un pago que aún no tiene un estado final, como
requires_action. Esto puede ocurrir, por ejemplo, cuando una transferencia bancaria desde una cuenta empresarial requiere aprobación de más de un representante.En estos casos, debes informar al usuario que el pago está pendiente de aprobación. Una vez que recibas el evento payment_intent.succeeded o payment_intent.failed, debes notificar al usuario del estado final del pago tan pronto como se confirme.