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

# Objeto Checkout Session

## Objeto Checkout Session

El objeto `CheckoutSession` representa el flujo de pago que tu cliente completa para pagarte. Creas un objeto `CheckoutSession` para iniciar un pago, una suscripción o la configuración de un método de pago. Fintoc devuelve el objeto con el monto, la moneda, la configuración del método de pago y las URL de redirección. La sesión pasa por los estados `created`, `in_progress`, `finished` y `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",
  "line_items": null,
  "metadata": {},
  "mode": "test",
  "payment_method": null,
  "payment_method_options": {
    "bank_transfer": {
      "recipient_account": {
        "holder_id": "111111111",
        "institution_id": "cl_banco_de_chile",
        "number": "0000000000",
        "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": "0000000000",
        "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"
}
```

| Atributo                 | Tipo              | Descripción                                                                                                                                                                                                                                                                                                                                                       |
| :----------------------- | :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                     | `string`          | Identificador único de la sesión de checkout.                                                                                                                                                                                                                                                                                                                     |
| `object`                 | `string`          | Tipo del objeto. Siempre `checkout_session`.                                                                                                                                                                                                                                                                                                                      |
| `amount`                 | `integer \| null` | Monto que la sesión cobra a tu cliente, en la unidad más pequeña de `currency` (CLP no tiene decimales; MXN usa centavos). `null` para sesiones con flujo `setup`, que no cobran a tu cliente.                                                                                                                                                                    |
| `business_profile`       | `object \| null`  | Negocio en cuyo nombre cobras el pago, para agregadores de pagos. `null` cuando la sesión no tiene perfil de negocio. Consulta la tabla del objeto Business profile más abajo.                                                                                                                                                                                    |
| `cancel_url`             | `string \| null`  | URL a la que Fintoc redirige a tu cliente cuando el pago no se completa. `null` cuando la sesión fue creada sin URLs de redirección.                                                                                                                                                                                                                              |
| `created_at`             | `string`          | Marca de tiempo ISO 8601 en UTC de cuándo se creó la sesión.                                                                                                                                                                                                                                                                                                      |
| `currency`               | `string`          | Código de moneda ISO 4217 de tres letras, en mayúsculas. Uno de `CLP` o `MXN`.                                                                                                                                                                                                                                                                                    |
| `customer`               | `object \| null`  | Cliente al que pertenece la sesión. `null` cuando la sesión no tiene cliente. Consulta la tabla del objeto Customer más abajo.                                                                                                                                                                                                                                    |
| `customer_email`         | `string \| null`  | Correo electrónico de tu cliente, usado para enviar el comprobante de pago. `null` cuando no se proporciona.                                                                                                                                                                                                                                                      |
| `expires_at`             | `string`          | Marca de tiempo ISO 8601 en UTC de cuándo expira la sesión. Después de este momento tu cliente ya no puede pagar la sesión.                                                                                                                                                                                                                                       |
| `flow`                   | `string`          | Flujo que ejecuta la sesión. Uno de `payment` (pago único), `subscription` (suscripción recurrente) o `setup` (guardar un método de pago para pagos futuros).                                                                                                                                                                                                     |
| `line_items`             | `array \| null`   | Ítems que la sesión cobra. `null` cuando la sesión fue creada sin `line_items`.                                                                                                                                                                                                                                                                                   |
| `metadata`               | `object`          | Conjunto de pares clave-valor que adjuntaste a la sesión.                                                                                                                                                                                                                                                                                                         |
| `mode`                   | `string`          | Modo del objeto. `live` usa datos reales de la institución; `test` usa datos falsos para pruebas de integración.                                                                                                                                                                                                                                                  |
| `payment_method`         | `string \| null`  | `id` del método de pago guardado que paga la sesión. `null` cuando la sesión no se paga con un método de pago guardado.                                                                                                                                                                                                                                           |
| `payment_method_options` | `object`          | Configuración de los métodos de pago de la sesión, indexada por tipo de método de pago. Cada clave coincide con uno de `payment_method_types`. Para `bank_transfer` y `pac`, define un `recipient_account`, un `sender_account`, o ambos. Para `card`, define `types` en el flujo `payment` o `kinds` (`credit`, `debit`) en los flujos `setup` y `subscription`. |
| `payment_method_types`   | `array`           | Tipos de métodos de pago que tu cliente puede usar para pagar la sesión. Admite `bank_transfer` (transferencia bancaria única), `installments` (pago en cuotas), `card` (tarjeta de crédito o débito), y `pac` (débito bancario recurrente automático).                                                                                                           |
| `payment_resource`       | `object \| null`  | Pago generado por la sesión. `null` hasta que tu cliente inicia un intento de pago. Contiene un `payment_intent`; consulta el [objeto Payment intent](/es/api/payments-api/payment-intents/payment-intents-object).                                                                                                                                               |
| `redirect_url`           | `string \| null`  | URL de la página de checkout alojada por Fintoc donde tu cliente completa el pago. `null` para sesiones pagadas a través del widget de Fintoc.                                                                                                                                                                                                                    |
| `save_payment_method`    | `string \| null`  | Opción para guardar el método de pago de tu cliente para pagos futuros. Uno de `enabled` o `disabled`. Fintoc solo devuelve este campo para sesiones con flujo `payment`; es `null` cuando no está configurado.                                                                                                                                                   |
| `session_token`          | `string \| null`  | Token usado para inicializar el widget de Fintoc para pagar la sesión. `null` para flujos `subscription` y `setup` y para pagos completados fuera del widget.                                                                                                                                                                                                     |
| `setup_intent`           | `string \| null`  | `id` del setup intent que crean las sesiones con flujo `setup` y `subscription`. `null` para otros flujos y hasta que Fintoc intenta configurar el método de pago. Consulta el [objeto Setup Intent](/es/api/payments-api/setup-intents/setup-intent-object) para conocer sus campos de estado y error.                                                           |
| `status`                 | `string`          | Estado del ciclo de vida de la sesión. Uno de `created` (tu cliente no ha comenzado a pagar), `in_progress` (Fintoc está procesando el pago), `finished` (la sesión fue exitosa) o `expired`.                                                                                                                                                                     |
| `subscription`           | `string \| null`  | Identificador de la suscripción asociada con la sesión. Para un flujo `subscription`, contiene la suscripción que inicia la sesión o `null` hasta que Fintoc la crea. Para un flujo `setup` creado con `subscription`, contiene la suscripción cuyo método de pago actualiza la sesión; es `null` en los demás casos.                                             |
| `success_url`            | `string \| null`  | URL a la que Fintoc redirige a tu cliente después de un pago exitoso. `null` cuando la sesión fue creada sin URLs de redirección.                                                                                                                                                                                                                                 |
| `ui_mode`                | `string`          | Interfaz de usuario que usa el checkout. Uno de `hosted` (página alojada por Fintoc) o `embedded` (botones integrados, como [Apple Pay](/es/guides/payments/accept-a-payment/accept-a-one-click-payment-with-apple-pay)).                                                                                                                                         |

## Objeto Customer

El objeto Customer representa al cliente que adjuntas cuando creas la sesión.

| Atributo     | Tipo             | Descripción                                                                                                           |
| :----------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------- |
| `id`         | `string`         | Identificador único del cliente.                                                                                      |
| `object`     | `string`         | Tipo del objeto. Siempre `customer`.                                                                                  |
| `address`    | `object \| null` | Dirección del cliente. `null` cuando no se proporciona. Consulta la tabla del objeto Address más abajo.               |
| `created_at` | `string`         | Marca de tiempo ISO 8601 en UTC de cuándo se creó el cliente.                                                         |
| `email`      | `string \| null` | Correo electrónico del cliente. `null` cuando no se proporciona.                                                      |
| `metadata`   | `object`         | Conjunto de pares clave-valor adjuntos al cliente.                                                                    |
| `mode`       | `string`         | Modo del objeto. `live` usa datos reales de la institución; `test` usa datos falsos para pruebas de integración.      |
| `name`       | `string \| null` | Nombre del cliente. `null` cuando no se proporciona.                                                                  |
| `phone`      | `string \| null` | Número de teléfono del cliente. `null` cuando no se proporciona.                                                      |
| `tax_id`     | `object \| null` | Identificador tributario del cliente. `null` cuando no se proporciona. Consulta la tabla del objeto Tax ID más abajo. |

## Objeto Address

| Atributo      | Tipo     | Descripción                                                    |
| :------------ | :------- | :------------------------------------------------------------- |
| `city`        | `string` | Ciudad de la dirección.                                        |
| `country`     | `string` | País de la dirección, como un código ISO 3166-1 de dos letras. |
| `line1`       | `string` | Primera línea de la dirección.                                 |
| `line2`       | `string` | Segunda línea de la dirección.                                 |
| `postal_code` | `string` | Código postal de la dirección.                                 |
| `state`       | `string` | Estado o región de la dirección.                               |

## Objeto Tax ID

| Atributo | Tipo     | Descripción                                              |
| :------- | :------- | :------------------------------------------------------- |
| `type`   | `string` | Tipo del identificador tributario, por ejemplo `cl_rut`. |
| `value`  | `string` | Valor del identificador tributario.                      |

## Opciones de método de pago

Usa `payment_method_options` para configurar los métodos de pago de la sesión. Para `bank_transfer`, define un `recipient_account` y, opcionalmente, un `sender_account`. Para `pac`, define un `sender_account`. Para `card`, consulta el endpoint [Crear checkout session](/es/api/payments-api/checkout-sessions/checkout-sessions-create). Este endpoint define `types` para el flujo `payment` y `kinds` (`credit`, `debit`) para los flujos `setup` y `subscription`.

| Atributo            | Tipo     | Descripción                                                                                                                                                                                               |
| :------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `recipient_account` | `object` | Cuenta que recibe el pago. Consulta la tabla del objeto Recipient account más abajo. Si cobras a través de Fintoc, omite este campo.                                                                      |
| `sender_account`    | `object` | Cuenta desde la que paga tu cliente. Consulta la tabla del objeto Sender account más abajo. En notificaciones finales de pago puede ser `null` si tu cliente abandonó el pago antes de elegir una cuenta. |

## Objeto Recipient account

El objeto Recipient account describe la cuenta bancaria que recibe los fondos. Fintoc lo devuelve en el campo `recipient_account`.

| Atributo         | Tipo     | Descripción                                                                                                                                                                                                                                |
| :--------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `holder_id`      | `string` | Identificador tributario del titular de la cuenta. En Chile, corresponde al identificador tributario chileno (RUT). En México, corresponde al Registro Federal de Contribuyentes (RFC) o a la Clave Única de Registro de Población (CURP). |
| `institution_id` | `string` | Identificador de la institución de la cuenta. Consulta los [códigos de instituciones de Chile](/es/guides/payments/overview-payment-initiation/payment-initiation-countries-and-institutions).                                             |
| `number`         | `string` | Número de cuenta, sin guiones ni ceros iniciales.                                                                                                                                                                                          |
| `type`           | `string` | Tipo de la cuenta. Uno de `checking_account` o `sight_account`.                                                                                                                                                                            |

## Objeto Sender account

El objeto Sender account describe la cuenta bancaria desde la que paga tu cliente. Fintoc lo devuelve en el campo `sender_account`.

| Atributo         | Tipo     | Descripción                                                                                                                                                                                        |
| :--------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `holder_id`      | `string` | Identificador tributario del titular de la cuenta. En Chile, corresponde al RUT. En México, corresponde al RFC o a la CURP. Sin un `holder_id`, Fintoc omite las validaciones de nuevos contactos. |
| `institution_id` | `string` | Identificador de la institución de la cuenta. Consulta los [códigos de instituciones de Chile](/es/guides/payments/overview-payment-initiation/payment-initiation-countries-and-institutions).     |
| `number`         | `string` | Número de cuenta, sin guiones ni ceros iniciales.                                                                                                                                                  |
| `type`           | `string` | Tipo de la cuenta. Uno de `checking_account` o `sight_account`.                                                                                                                                    |

## Objeto Business profile

El objeto Business profile identifica al comercio registrado que recibe el pago. Fintoc lo devuelve en el campo `business_profile` de la sesión de checkout.

| Atributo   | Tipo     | Descripción                                                                                                                                                                                                                             |
| :--------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `category` | `string` | Código de categoría de comercio (MCC) de seis caracteres del negocio. En Chile, corresponde a un [código de actividad del Servicio de Impuestos Internos (SII)](https://www.sii.cl/ayudas/ayudas_por_servicios/1956-codigos-1959.html). |
| `name`     | `string` | Nombre del negocio. Si se define, aparece como el destinatario en la pantalla de pago exitoso.                                                                                                                                          |
| `tax_id`   | `string` | ID tributario chileno (RUT) del negocio.                                                                                                                                                                                                |
