- On your backend, create a
Checkout Sessionusing your Secret Key - Redirect your customer to complete the payment on the Fintoc-hosted checkout page
- Handle post-payment events

Optional: install the backend SDK
- Python
- Node
If you’re using Python, you can install our Python SDK to make it easier to interact with our API. The SDK automatically handles pagination, lets you easily verify Fintoc’s webhooks, and offers many other helpful features.
Create a session
The Checkout Session object represents your intent to collect a payment from a customer and tracks state changes throughout the payment process. Using your Secret Key, create aCheckout Session from your backend with the required parameters: amount, currency, success_url, and cancel_url, like the example below:
Server
Node
Checkout Session object, including the redirect_url you use to send the customer to the payment:
Business profile (optional)
Send the Business Profile object if you are processing payments for a submerchantYou can also add the
business_profile object when creating a session to customize the name displayed as the “Recipient” on the payment flow.Read here to learn more.Include customer data (optional)
When creating aCheckout Session, you can include customer information by sending a customer_data object (or customer with the id of an existing Customer). This information allows Fintoc to display only the payment methods available for that specific customer. For example, Fintoc hides a bank when the amount exceeds its transaction limit.
Bank specific payment flows for business accounts and high amountsIn Chile, some
bank_transfer payments require banks with special payment flows: Banco Estado, Banco de Chile, and Banco Santander. Fintoc limits the session to these banks when the payment exceeds the transaction limits or the customer has a tax_id.value of a business instead of a natural person. You can test this flow with the alternative payment method test guide.Include a list of items (optional)
When creating aCheckout Session, you can also send the line_items, including information about the items of the session. This enables Fintoc to display this information on the checkout page and show only the payment methods available for specific products.
Each item should have:
The price_data object
The product_data object
The price_data object contains a product_data object with product information:
The example below creates a
Checkout Session with a single line item:
Server
Node
Checkout Session object, echoing the line_items you sent:
Pre-select a payment method (optional)
You can create aCheckout Session without specifying payment methods. In this case, customers can select from all available options on the Fintoc-hosted checkout page, based on the session parameters (amount, customer, currency) and the payment methods you have enabled in Fintoc.
Alternatively, you can explicitly define the payment method type(s) for the session. For example, the request below sets the bank_transfer method and uses payment_method_options to pre-select the institution cl_banco_estado for the customer. In this scenario, the payment flow presented to the customer is limited to this specific method and bank.
Server
Node
Fintoc responds with the created
Checkout Session object, echoing the pre-selected method and institution:

Left: Default view showing all available methods in Chile (bank transfer and cards) when no payment_method_types parameter is set. Center: Pre-selected bank_transfer flow for Banco Estado, displaying the institution-specific payment form directly. Right: Pre-selected card flow.
Using your own Checkout PageWhen you have your own checkout page, you should set the
payment_method_types to redirect customers to the Fintoc-hosted checkout after they’ve already selected their preferred payment method.This skips Fintoc’s payment method selection screen and directs customers straight to the specific payment flow, instead of letting Fintoc manage the full checkout experience.Response when creating a Checkout Session
After you make the request to create the Checkout Session, Fintoc responds with the session object:redirect_url attribute. In the following step, you’ll use this attribute to redirect the customer to complete the payment.
Redirect the customer to complete the payment
Next, redirect customers to the Fintoc-hosted checkout page. After they complete the payment, Fintoc automatically redirects them back to your site: to thesuccess_url after a successful payment, or to the cancel_url if they cancel.
Client
Handle post-payment events
Once aCheckout Session finishes, you handle the payment result in your frontend and complete the payment in your backend. On your backend, use the events that Fintoc sends through webhooks.
Complete the payment on your backend
Fintoc sends acheckout_session.finished and a payment_intent.succeeded event when the session completes and the payment is successful. Follow the webhook guide to receive these events and run actions, such as sending an order confirmation email to your customer, logging the sale in a database, or starting a shipping workflow.
The checkout_session.finished event includes information about the session and the payment_intent:
Handling async payments after the
Checkout Session endsIn some cases, the Checkout Session may finish with a payment that does not yet have a final status, such as requires_action. This can happen, for example, when a bank transfer from a business account requires approval from more than one representative.In these cases, when you receive the payment_intent.requires_action event, inform the customer that the payment is pending approval. Once you receive either the payment_intent.succeeded or payment_intent.failed event, you should notify the customer of the final payment status as soon as it is confirmed.Test your integration
Using your test mode API Secret Key, you can create payments that simulate successful and failed outcomes without moving any money. This lets you validate your full payment flow end-to-end:- Your backend API requests (creating sessions and handling responses)
- The redirect flow from your frontend to the
redirect_urland back to thesuccess_urlorcancel_urlafter the payment - The webhooks for post-payment events
status finished and triggers the checkout_session.finished and payment_intent.succeeded webhooks; a failed one triggers payment_intent.failed. To trigger specific scenarios, use the test credentials and special test values described in our testing guide.