Checkout session object

The Checkout Session object

The CheckoutSession object represents the payment flow your customer completes to pay you. You create one to start a payment, a subscription, or a payment method setup, and Fintoc returns the CheckoutSession object. It holds the amount, currency, payment method configuration, and the redirect URLs your customer uses to complete the session. The session tracks its status through created, in_progress, finished, and expired.

{
  "id": "cs_li5531onlFDi235",
  "object": "checkout_session",
  "amount": 350000,
  "business_profile": null,
  "cancel_url": "https://merchant.com/cancel",
  "created_at": "2026-01-13T18:48:25Z",
  "currency": "CLP",
  "customer": {
    "id": "cus_8anq0lFDi2359An",
    "object": "customer",
    "address": null,
    "created_at": "2026-01-13T18:40:00Z",
    "email": "[email protected]",
    "metadata": {},
    "mode": "test",
    "name": "Test Customer 1",
    "phone": null,
    "tax_id": {
      "type": "cl_rut",
      "value": "111111111"
    }
  },
  "customer_email": "[email protected]",
  "expires_at": "2026-01-14T18:48:25Z",
  "flow": "payment",
  "metadata": {},
  "mode": "test",
  "payment_method": null,
  "payment_method_options": {
    "bank_transfer": {
      "recipient_account": {
        "holder_id": "111111111",
        "institution_id": "cl_banco_de_chile",
        "number": "123456789",
        "type": "checking_account"
      }
    }
  },
  "payment_method_types": [
    "bank_transfer"
  ],
  "payment_resource": {
    "payment_intent": {
      "id": "pi_BO381oEATXonG6bj",
      "object": "payment_intent",
      "amount": 350000,
      "business_profile": null,
      "created_at": "2026-01-13T18:48:31Z",
      "currency": "CLP",
      "customer": null,
      "customer_email": "[email protected]",
      "error_reason": null,
      "expires_at": "2026-01-14T18:48:25Z",
      "metadata": {},
      "mode": "test",
      "next_action": null,
      "payment_method": null,
      "payment_type": "bank_transfer",
      "payment_type_options": {},
      "recipient_account": null,
      "reference_id": null,
      "sender_account": {
        "holder_id": "111111111",
        "institution_id": "cl_banco_falabella",
        "number": "123456789",
        "type": "checking_account"
      },
      "status": "succeeded",
      "subscription": null,
      "transaction_date": "2026-01-13T18:50:25Z",
      "widget_token": null
    }
  },
  "redirect_url": "https://checkout.fintoc.com/payment?checkout_session=cs_li5531onlFDi235",
  "save_payment_method": null,
  "session_token": null,
  "setup_intent": null,
  "status": "finished",
  "subscription": null,
  "success_url": "https://merchant.com/success",
  "ui_mode": "hosted"
}
AttributeTypeDescription
idstringUnique identifier of the checkout session.
objectstringType of the object. Always checkout_session.
amountinteger or nullAmount the session charges your customer, in the smallest unit of currency. CLP has no decimals, so 5000 means 5000 pesos; MXN uses centavos, so 5000 means 50.00 pesos. null for setup flow sessions, which do not charge your customer.
business_profileobject or nullBusiness on whose behalf you collect the payment, for payment aggregators. null when the session has no business profile. See the Business profile object table below.
cancel_urlstring or nullURL Fintoc redirects your customer to when the payment is not completed. null when the session was created without redirect URLs.
created_atstringISO 8601 timestamp of when the session was created.
currencystringThree-letter ISO 4217 currency code, in uppercase. One of CLP or MXN.
customerobject or nullCustomer the session belongs to. null when the session has no customer. See the Customer object table below.
customer_emailstring or nullEmail of your customer, used to send the payment receipt. null when not provided.
expires_atstringISO 8601 timestamp of when the session expires. After this time your customer can no longer pay the session.
flowstringFlow the session runs. One of payment (one-time payment), subscription (recurring subscription), or setup (save a payment method for future payments).
line_itemsarray or nullItems the session charges for. null when the session was created without line items.
metadataobjectSet of key-value pairs you attached to the session.
modestringMode of the object. live uses real institution data; test uses fake data for integration testing.
payment_methodstring or nullid of the saved payment method that pays the session. null when the session is not paid with a saved payment method.
payment_method_optionsobjectConfiguration of the session's payment methods, keyed by payment method type. Each key matches one of payment_method_types. For bank_transfer and pac, set a recipient_account, a sender_account, or both, described below. For card, set types in payment flow sessions or kinds (credit, debit) in setup and subscription flow sessions.
payment_method_typesarrayPayment method types your customer can use to pay the session. One or more of bank_transfer (one-time bank transfer), installments (pay in installments), card (credit or debit card), and pac (automatic recurring bank debit).
payment_resourceobject or nullPayment generated by the session. null until your customer starts a payment attempt. Holds a payment_intent; see the Payment Intent object.
redirect_urlstring or nullURL of the Fintoc-hosted checkout page where your customer completes the payment. null for sessions paid through the Fintoc widget.
save_payment_methodstring or nullWhether the session lets your customer save their payment method. One of enabled or disabled. Only returned for payment flow sessions; null when not configured.
session_tokenstring or nullToken used to initialize the Fintoc widget to pay the session. null for subscription and setup flows and for payments completed outside the widget.
setup_intentstring or nullid of the setup intent created by setup and subscription flow sessions. null for other flows and until Fintoc attempts a setup. See the Setup Intent object for the setup intent's status and error fields.
statusstringLifecycle status of the session. One of created (your customer has not started paying), in_progress (Fintoc is processing the payment), finished (the session succeeded), or expired.
subscriptionstring or nullid of the subscription started by a subscription flow session. null until the subscription is created, and for other flows.
success_urlstring or nullURL Fintoc redirects your customer to after a successful payment. null when the session was created without redirect URLs.
ui_modestringUser interface the checkout uses. One of hosted (Fintoc-hosted page) or embedded (embedded buttons such as Apple Pay).

The Customer object (within the Checkout Session object)

The customer the session belongs to, when you attach one on creation.

AttributeTypeDescription
idstringUnique identifier of the customer.
objectstringType of the object. Always customer.
addressobject or nullAddress of the customer. null when not provided. See the Address object table below.
created_atstringISO 8601 timestamp of when the customer was created.
emailstring or nullEmail of the customer. null when not provided.
metadataobjectSet of key-value pairs attached to the customer.
modestringMode of the object. live uses real institution data; test uses fake data for integration testing.
namestring or nullName of the customer. null when not provided.
phonestring or nullPhone number of the customer. null when not provided.
tax_idobject or nullTax identifier of the customer. null when not provided. See the Tax ID object table below.

The Address object (within the Customer object)

AttributeTypeDescription
citystringCity of the address.
countrystringCountry of the address, as a two-letter ISO 3166-1 code.
line1stringFirst line of the address.
line2stringSecond line of the address.
postal_codestringPostal code of the address.
statestringState or region of the address.

The Tax ID object (within the Customer object)

AttributeTypeDescription
typestringType of the tax identifier, for example cl_rut.
valuestringValue of the tax identifier.

The Payment method options object (within the Checkout Session object)

Use payment_method_options to configure payment methods in the session. For bank_transfer, set a recipient_account and, optionally, a sender_account. For pac, set a sender_account. For card, the Create checkout session endpoint defines types for payment flow sessions and kinds (credit, debit) for setup and subscription flow sessions.

AttributeTypeDescription
recipient_accountobjectAccount that receives the payment. See the Recipient account object table below. If you collect through Fintoc, omit it for better stability.
sender_accountobjectAccount your customer pays from. See the Sender account object table below. In final payment notifications it may be null if your customer abandoned the payment before choosing one.

The Recipient account object (within the Payment method options object)

The Recipient account object describes the bank account that receives the funds, returned in the recipient_account field.

AttributeTypeDescription
holder_idstringTax ID of the account holder. In Chile, a Chilean tax ID (RUT = Chilean tax ID); in Mexico, a Mexican tax ID (RFC = Mexican tax ID) or a Mexican personal ID (CURP).
institution_idstringIdentifier of the account's institution. See Chile institution codes.
numberstringAccount number, without hyphens or leading zeros.
typestringType of the account. One of checking_account or sight_account.

The Sender account object (within the Payment method options object)

The Sender account object describes the customer's bank account that the funds are paid from, returned in the sender_account field.

AttributeTypeDescription
holder_idstringTax ID of the account holder. In Chile, a Chilean tax ID (RUT); in Mexico, a Mexican tax ID (RFC) or a Mexican personal ID (CURP). Without a holder_id, Fintoc skips new contact validations.
institution_idstringIdentifier of the account's institution. See Chile institution codes.
numberstringAccount number, without hyphens or leading zeros.
typestringType of the account. One of checking_account or sight_account.

The Business profile object (within the Checkout Session object)

The Business profile object identifies the enrolled merchant receiving the payment, returned in the business_profile field of the Checkout Session.

AttributeTypeDescription
categorystringSix-character merchant category code (MCC) of the business. In Chile, it corresponds to an SII activity code.
namestringName of the business. If set, it appears as the recipient on the successful payment screen.
tax_idstringChilean tax ID (RUT) of the business.