Invoice por el monto que tu cliente debe. Después Fintoc la cobra, o la deja abierta para que la cobres tú. La suscripción programa el cobro; la invoice es el cobro. Los intentos, los reintentos y los links de pago viven en la invoice. Maneja los eventos invoice.* como parte de la integración, no como un agregado. Consulta Gestionar invoices.
Puedes crear una suscripción de dos formas:
- Con un
Checkout Session. Tu cliente inscribe un método de pago en la página de checkout alojada por Fintoc, y Fintoc crea la suscripción con ese método de pago asociado. Úsalo cuando tu cliente tiene que autorizar el método de pago. - Con la API de Subscriptions. Creas la suscripción en tu backend, sin checkout y sin interacción del cliente. Úsalo cuando tu cliente ya tiene un método de pago inscrito, o cuando piensas emitir invoices sin cobrar. Consulta Crear una suscripción con la API.
Checkout Session, completas cuatro pasos:
- En tu backend, crea un
Checkout Sessionconflow: subscription. - Redirige al cliente para completar el registro en la página de checkout alojada por Fintoc.
- Maneja los eventos posteriores al registro y de pagos recurrentes (webhooks).
- Maneja las invoices que la suscripción emite en cada ciclo de facturación.
Los endpoints v2 de
Checkout Session requieren la versión de API 2026-02-01 o posterior. Fintoc fija tu cuenta en la versión vigente al momento de tu primera solicitud. Si tu cuenta está fijada en una versión anterior, envía el header Fintoc-Version: 2026-02-01 en las solicitudes de checkout session. Así puedes probarlas sin afectar el resto de tu integración. Consulta Autenticación para más detalles.
Crea una Checkout Session
El objeto Checkout Session representa tu intención de registrar un método de pago para cobros recurrentes y de crear una suscripción con un monto y periodicidad fijos. Usando tu Secret Key, crea unCheckout Session en tu backend con flow en subscription.
Servidor
Node
id y redirect_url para continuar el flujo:
redirect_url. En el siguiente paso, redirige al cliente a esta ubicación para completar la suscripción.
La siguiente tabla describe los parámetros que envías al crear un Checkout Session:
Incluir datos del cliente (requerido para suscripciones)
Al crear unCheckout Session con flow: subscription, debes incluir información del cliente. Puedes hacerlo ya sea referenciando un ID de customer existente (customer) o enviando customer_data para crear uno en línea:
Incluir una lista de ítems (requerido para suscripciones)
Al crear unCheckout Session con flow: subscription, debes incluir los ítems a los que se suscribe el cliente. Esta información permite a Fintoc mostrar los ítems en la página de checkout y mostrar solo los métodos de pago disponibles para productos específicos.
Cada ítem en
line_items debe incluir price_data.
Objeto price_data
Objeto product_data
Redirige al cliente para completar el registro
A continuación, redirige al cliente a la página de checkout alojada por Fintoc usando elredirect_url. Después de que el cliente complete el registro, Fintoc lo redirige de vuelta a tu sitio: al success_url en caso de éxito, o al cancel_url si cancela.
Cliente
Maneja los eventos posteriores a la sesión
Una vez que unCheckout Session finaliza, manejas el resultado en tu frontend y completas la suscripción en tu backend. Para tu backend, usas los eventos que Fintoc envía a través de webhooks.
Completa la suscripción en tu backend
Fintoc envía un eventocheckout_session.finished cuando la sesión se completa.
En un flujo de suscripción, este evento incluye información sobre la sesión y referencias a la subscription y al payment_method creados durante el registro.
Crear una suscripción con la API
Cuando tu cliente no necesita inscribir un método de pago en un checkout, crea la suscripción directamente con Crear una suscripción. Necesitas uncustomer existente y los items que la suscripción cobra en cada ciclo.
El collection_method decide cómo Fintoc cobra cada invoice que genera la suscripción:
charge_automatically, el valor por defecto, cobra unpayment_methoden cada ciclo de facturación. El método de pago es requerido.send_invoicedeja cada invoiceopenpara que la cobres tú. El método de pago es opcional.
Cobra automáticamente contra un método de pago
Envía elpayment_method que Fintoc cobra en cada ciclo de facturación. Debe pertenecer al customer, estar active y ser pac o card. Las suscripciones no soportan bank_transfer.
Servidor
Node
Fintoc responde con la suscripción creada:
incomplete, no active. Fintoc finaliza la invoice inicial durante la creación de la suscripción y cobra el método de pago. La suscripción pasa a active cuando ese primer pago tiene éxito. Sigue el resultado con los eventos invoice.* descritos en Gestionar invoices.
Emite invoices sin cobrar
Pon elcollection_method en send_invoice y no envíes payment_method. Fintoc emite una invoice por ciclo de facturación y deja cada una open, así que la suscripción nunca le cobra a nadie por su cuenta.
Servidor
active al crearla, y la invoice inicial queda open. active no significa que tu cliente haya pagado. Con send_invoice no hay cobro que esperar, así que Fintoc se salta el estado incomplete. Sigue el status de cada invoice para saber qué te debe tu cliente.
Puedes asociar un método de pago después con Actualizar una suscripción, lo que te permite cobrar las invoices abiertas bajo demanda. Para las formas de saldar una invoice abierta, consulta Cobrar las invoices tú mismo en vez de cobrar automáticamente.
Prueba tu integración
Para confirmar que tu integración funciona correctamente, puedes simular suscripciones y pagos recurrentes programados sin mover dinero.1) Crea una Checkout Session de suscripción usando credenciales de usuario de prueba
Usando tu Secret Key de modo de prueba, crea unCheckout Session con flow: subscription en tu backend. Luego completa el registro en la página de checkout alojada por Fintoc con las siguientes credenciales:
Credenciales de prueba
- Usuario (RUT):
11.111.111-1 - Contraseña:
jonsnow
2) Maneja pagos programados simulados de la suscripción
En modo de prueba, Fintoc simula los pagos programados de la suscripción para que puedas verificar el manejo del éxito y de la falla sin mover dinero. Los pagos simulados los manejas a través de los mismos eventosinvoice.* y payment_intent.* descritos en Gestionar invoices. Un cargo exitoso emite invoice.payment_succeeded, invoice.paid y payment_intent.succeeded. Un cargo fallido emite invoice.payment_failed y payment_intent.failed.
El modo de prueba aún no está disponible para pagos recurrentes en México.