Skip to main content
POST
Create a checkout session
v2 · Base URL https://api.fintoc.com/v2

Authorizations

Authorization
string
header
required

Body

application/json
currency
enum<string>
required

Three-letter ISO 4217 currency code, in uppercase. One of CLP or MXN.

Available options:
CLP,
MXN
Example:

"CLP"

amount
integer

Amount to charge your customer, in the smallest unit of currency. For payment flow sessions, provide either amount or line_items. Omit for subscription and setup flow sessions, where amount does not apply.

Example:

350000

business_profile
object

Business on whose behalf you collect the payment, for payment aggregators.

cancel_url
string

URL Fintoc redirects your customer to when the payment is not completed.

Example:

"https://merchant.com/cancel"

customer
string

id of an existing customer to attach to the session. Cannot be combined with customer_data.

Example:

"cus_xK9mPq2RkV3WnDQG"

customer_data
object

Data of a new customer to create and attach to the session. Cannot be combined with customer. You must provide either email or a complete tax_id (both type and value).

customer_email
string

Email of your customer, used to send the payment receipt.

Example:

"customer@example.com"

expires_at
string<date-time>

ISO 8601 datetime, in UTC, of when the session expires. Must be at least 10 minutes in the future. Defaults to 24 hours after creation when omitted.

Example:

"2026-01-14T18:48:25Z"

flow
enum<string>

Flow the session runs. One of payment (collects a one-time payment), subscription (starts a recurring subscription), or setup (saves a payment method for future payments). Defaults to payment.

Available options:
payment,
subscription,
setup
Example:

"payment"

line_items
object[]

Items to charge for. Required for subscription flow sessions. For payment flow sessions, provide either amount or line_items.

metadata
object

Set of key-value pairs to attach to the session.

payment_method
string

id of a saved payment method to pay the session with. Requires customer and payment_method_types of ["bank_transfer"].

Example:

"pm_xL9mPq2RkV3WnDQG"

subscription
string

id of an existing subscription whose payment method this session updates once the customer completes it. Only for setup flow sessions.

Example:

"sub_xL9mPq2RkV3WnDQG"

payment_method_options
object

Additional configuration of the session's payment methods, keyed by payment method type. Each key is one of your payment_method_types.

payment_method_types
enum<string>[]

Payment method types your customer can use to pay the session. Valid values depend on the flow: payment accepts card, bank_transfer, and installments; subscription accepts card and pac (automatic recurring bank debit); setup accepts card, bank_transfer, and pac. In MXN sessions, subscription and setup flows accept only card. Defaults to the types your organization has enabled for the flow.

Available options:
bank_transfer,
installments,
card,
pac
save_payment_method
enum<string>

Whether to offer your customer the option to save their payment method for future payments. One of enabled or disabled. Only valid for payment flow sessions. When enabled, you must also provide customer or customer_data.

Available options:
disabled,
enabled
Example:

"enabled"

success_url
string

URL Fintoc redirects your customer to after a successful payment.

Example:

"https://merchant.com/success"

ui_mode
enum<string>

UI mode for payment flow sessions. Set to embedded to initialize the Fintoc widget with the session's session_token instead of redirecting your customer. When embedded, you can omit both success_url and cancel_url.

Available options:
embedded
Example:

"embedded"

Response

The created checkout session.

id
string
required

Unique identifier of the checkout session.

Example:

"cs_li5531onlFDi235"

object
any
required

Type of the object. Always checkout_session.

amount
integer | null
required

Amount the session charges your customer, in the smallest unit of currency. For CLP the smallest unit is one peso (CLP has no decimals), so 350000 means $350,000 CLP. For MXN the smallest unit is one centavo, so 350000 means $3,500.00 MXN. null for setup and subscription flow sessions, which do not carry a single amount.

Example:

350000

business_profile
object | null
required

Business on whose behalf you collect the payment, for payment aggregators. null when the session was created without a business profile.

cancel_url
string | null
required

URL Fintoc redirects your customer to when the payment is not completed. null when the session was created without redirect URLs.

Example:

"https://merchant.com/cancel"

created_at
string<date-time>
required

ISO 8601 timestamp of when the checkout session was created.

Example:

"2026-01-13T18:48:25Z"

currency
enum<string>
required

Three-letter ISO 4217 currency code, in uppercase. One of CLP or MXN.

Available options:
CLP,
MXN
Example:

"CLP"

customer_email
string | null
required

Email of your customer, used to send the payment receipt. null when not provided.

Example:

"customer@example.com"

expires_at
string<date-time>
required

ISO 8601 timestamp of when the checkout session expires. After this time your customer can no longer pay the session.

Example:

"2026-01-14T18:48:25Z"

flow
enum<string>
required

Flow the session runs. One of payment (collects a one-time payment), subscription (starts a recurring subscription), or setup (saves a payment method for future payments).

Available options:
payment,
subscription,
setup
Example:

"payment"

line_items
object[] | null
required

Items the session charges for. null when the session was created without line items.

metadata
object
required

Set of key-value pairs you attached to the session.

mode
enum<string>
required

Mode of the object. live objects use real institution data, test objects use fake data for integration testing.

Available options:
test,
live
Example:

"live"

payment_method
string | null
required

id of the saved payment method that pays the session. null when the session is not paid with a previously saved payment method.

Example:

"pm_xL9mPq2RkV3WnDQG"

payment_method_options
object
required

Configuration of the session's payment methods, keyed by payment method type. Each key matches one of payment_method_types and holds the options you set when creating the session, such as the recipient_account for bank_transfer or the kinds for card. See POST /v2/checkout_sessions for the full shape.

payment_method_types
enum<string>[]
required

Payment method types your customer can use to pay the session. One or more of card, bank_transfer, installments, and pac (automatic recurring bank debit).

Available options:
bank_transfer,
installments,
card,
pac
payment_resource
object | null
required

Payment generated by the session. null until your customer starts a payment attempt.

redirect_url
string | null
required

URL of the Fintoc-hosted checkout page where your customer completes the payment. Redirect your customer to this URL after creating the session. null for sessions paid through the Fintoc widget instead of a redirect.

Example:

"https://pay.fintoc.com/cs_li5531onlFDi235"

session_token
string | null
required

Token used to initialize the Fintoc widget to pay the session. null for subscription and setup flow sessions and for payments completed outside the widget, like non-embedded card payments.

Example:

"eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImNzX2xpNTUzMSJ9.iV2qAVrqYLuqxF4"

setup_intent
string | null
required

Unique identifier for the setup intent created by setup and subscription flow sessions. null for other flows and until Fintoc attempts a setup. Retrieve the setup intent's status and error with the setup intent endpoint.

Example:

"seti_xL9mPq2RkV3WnDQG"

status
enum<string>
required

Lifecycle status of the session. created until your customer starts paying, in_progress while Fintoc processes the payment, and finished or expired once the session succeeds or expires.

Available options:
created,
in_progress,
expired,
finished
Example:

"created"

subscription
string | null
required

id of the subscription started by a subscription flow session. null until the subscription is created and for other flows.

Example:

"sub_xL9mPq2RkV3WnDQG"

success_url
string | null
required

URL Fintoc redirects your customer to after a successful payment. null when the session was created without redirect URLs.

Example:

"https://merchant.com/success"

customer
object

Customer the session belongs to. This key is omitted (not null) when the session has no customer.

save_payment_method
enum<string> | null

Whether the session offers your customer the option to save their payment method for future payments. One of enabled or disabled. Only returned for payment flow sessions; null when not configured.

Available options:
disabled,
enabled,
null
Example:

"enabled"