> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fintoc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 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`.

```json Checkout Session Object theme={null}
{
  "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": "name@example.com",
    "metadata": {},
    "mode": "test",
    "name": "Test Customer 1",
    "phone": null,
    "tax_id": {
      "type": "cl_rut",
      "value": "111111111"
    }
  },
  "customer_email": "name@example.com",
  "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": "name@example.com",
      "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"
}
```

| Attribute                | Type                | Description                                                                                                                                                                                                                                                                                                                                                          |
| :----------------------- | :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                     | `string`            | Unique identifier of the checkout session.                                                                                                                                                                                                                                                                                                                           |
| `object`                 | `string`            | Type of the object. Always `checkout_session`.                                                                                                                                                                                                                                                                                                                       |
| `amount`                 | `integer` or `null` | Amount 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_profile`       | `object` or `null`  | Business 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_url`             | `string` or `null`  | URL Fintoc redirects your customer to when the payment is not completed. `null` when the session was created without redirect URLs.                                                                                                                                                                                                                                  |
| `created_at`             | `string`            | ISO 8601 timestamp of when the session was created.                                                                                                                                                                                                                                                                                                                  |
| `currency`               | `string`            | Three-letter ISO 4217 currency code, in uppercase. One of `CLP` or `MXN`.                                                                                                                                                                                                                                                                                            |
| `customer`               | `object` or `null`  | Customer the session belongs to. `null` when the session has no customer. See the Customer object table below.                                                                                                                                                                                                                                                       |
| `customer_email`         | `string` or `null`  | Email of your customer, used to send the payment receipt. `null` when not provided.                                                                                                                                                                                                                                                                                  |
| `expires_at`             | `string`            | ISO 8601 timestamp of when the session expires. After this time your customer can no longer pay the session.                                                                                                                                                                                                                                                         |
| `flow`                   | `string`            | Flow the session runs. One of `payment` (one-time payment), `subscription` (recurring subscription), or `setup` (save a payment method for future payments).                                                                                                                                                                                                         |
| `line_items`             | `array` or `null`   | Items the session charges for. `null` when the session was created without line items.                                                                                                                                                                                                                                                                               |
| `metadata`               | `object`            | Set of key-value pairs you attached to the session.                                                                                                                                                                                                                                                                                                                  |
| `mode`                   | `string`            | Mode of the object. `live` uses real institution data; `test` uses fake data for integration testing.                                                                                                                                                                                                                                                                |
| `payment_method`         | `string` or `null`  | `id` of the saved payment method that pays the session. `null` when the session is not paid with a saved payment method.                                                                                                                                                                                                                                             |
| `payment_method_options` | `object`            | Configuration 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_types`   | `array`             | Payment 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_resource`       | `object` or `null`  | Payment generated by the session. `null` until your customer starts a payment attempt. Holds a `payment_intent`; see the [Payment Intent object](/reference/payments-api/payment-intents/payment-intents-object).                                                                                                                                                    |
| `redirect_url`           | `string` or `null`  | URL of the Fintoc-hosted checkout page where your customer completes the payment. `null` for sessions paid through the Fintoc widget.                                                                                                                                                                                                                                |
| `save_payment_method`    | `string` or `null`  | Whether 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_token`          | `string` or `null`  | Token used to initialize the Fintoc widget to pay the session. `null` for `subscription` and `setup` flows and for payments completed outside the widget.                                                                                                                                                                                                            |
| `setup_intent`           | `string` or `null`  | `id` 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](/reference/payments-api/setup-intents/setup-intent-object) for the setup intent's status and error fields.                                                                                     |
| `status`                 | `string`            | Lifecycle 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`.                                                                                                                                                                        |
| `subscription`           | `string` or `null`  | Identifier for the subscription associated with the session. For a `subscription` flow, the value is the subscription the session starts, or `null` until Fintoc creates the subscription. For a `setup` flow created with `subscription`, the value is the existing subscription whose payment method the session updates; otherwise, `null`.                       |
| `success_url`            | `string` or `null`  | URL Fintoc redirects your customer to after a successful payment. `null` when the session was created without redirect URLs.                                                                                                                                                                                                                                         |
| `ui_mode`                | `string`            | User interface the checkout uses. One of `hosted` (Fintoc-hosted page) or `embedded` (embedded buttons such as [Apple Pay](/docs/payments/accept-a-payment/accept-a-one-click-payment-with-apple-pay)).                                                                                                                                                              |

## Customer object

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

| Attribute    | Type               | Description                                                                                           |
| :----------- | :----------------- | :---------------------------------------------------------------------------------------------------- |
| `id`         | `string`           | Unique identifier of the customer.                                                                    |
| `object`     | `string`           | Type of the object. Always `customer`.                                                                |
| `address`    | `object` or `null` | Address of the customer. `null` when not provided. See the Address object table below.                |
| `created_at` | `string`           | ISO 8601 timestamp of when the customer was created.                                                  |
| `email`      | `string` or `null` | Email of the customer. `null` when not provided.                                                      |
| `metadata`   | `object`           | Set of key-value pairs attached to the customer.                                                      |
| `mode`       | `string`           | Mode of the object. `live` uses real institution data; `test` uses fake data for integration testing. |
| `name`       | `string` or `null` | Name of the customer. `null` when not provided.                                                       |
| `phone`      | `string` or `null` | Phone number of the customer. `null` when not provided.                                               |
| `tax_id`     | `object` or `null` | Tax identifier of the customer. `null` when not provided. See the Tax ID object table below.          |

## Address object

| Attribute     | Type     | Description                                              |
| :------------ | :------- | :------------------------------------------------------- |
| `city`        | `string` | City of the address.                                     |
| `country`     | `string` | Country of the address, as a two-letter ISO 3166-1 code. |
| `line1`       | `string` | First line of the address.                               |
| `line2`       | `string` | Second line of the address.                              |
| `postal_code` | `string` | Postal code of the address.                              |
| `state`       | `string` | State or region of the address.                          |

## Tax ID object

| Attribute | Type     | Description                                       |
| :-------- | :------- | :------------------------------------------------ |
| `type`    | `string` | Type of the tax identifier, for example `cl_rut`. |
| `value`   | `string` | Value of the tax identifier.                      |

## Payment method options

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](/reference/payments-api/checkout-sessions/checkout-sessions-create) endpoint defines `types` for `payment` flow sessions and `kinds` (`credit`, `debit`) for `setup` and `subscription` flow sessions.

| Attribute           | Type     | Description                                                                                                                                                                             |
| :------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `recipient_account` | `object` | Account that receives the payment. See the Recipient account object table below. If you collect through Fintoc, omit it for better stability.                                           |
| `sender_account`    | `object` | Account 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. |

## Recipient account object

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

| Attribute        | Type     | Description                                                                                                                                                          |
| :--------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `holder_id`      | `string` | Tax 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_id` | `string` | Identifier of the account's institution. See [Chile institution codes](/docs/payments/overview-payment-initiation/payment-initiation-countries-and-institutions).    |
| `number`         | `string` | Account number, without hyphens or leading zeros.                                                                                                                    |
| `type`           | `string` | Type of the account. One of `checking_account` or `sight_account`.                                                                                                   |

## Sender account object

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

| Attribute        | Type     | Description                                                                                                                                                                                     |
| :--------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `holder_id`      | `string` | Tax 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_id` | `string` | Identifier of the account's institution. See [Chile institution codes](/docs/payments/overview-payment-initiation/payment-initiation-countries-and-institutions).                               |
| `number`         | `string` | Account number, without hyphens or leading zeros.                                                                                                                                               |
| `type`           | `string` | Type of the account. One of `checking_account` or `sight_account`.                                                                                                                              |

## Business profile object

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

| Attribute  | Type     | Description                                                                                                                                                                            |
| :--------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `category` | `string` | Six-character merchant category code (MCC) of the business. In Chile, it corresponds to an [SII activity code](https://www.sii.cl/ayudas/ayudas_por_servicios/1956-codigos-1959.html). |
| `name`     | `string` | Name of the business. If set, it appears as the recipient on the successful payment screen.                                                                                            |
| `tax_id`   | `string` | Chilean tax ID (RUT) of the business.                                                                                                                                                  |
