---
title: "Crear Checkout Session"
method: POST
path: "/{country_code}/checkout-sessions"
tags: ["Checkout Session"]
---

# Crear Checkout Session

`POST /{country_code}/checkout-sessions`

## Request

- Base URL: `https://api.trytoku.com`
- URL: `https://api.trytoku.com/{country_code}/checkout-sessions`
- Auth: API key in header `x-api-key`

Crea una Checkout Session y devuelve su representación completa, incluida la `url` a la que se deriva al cliente final para pagar o inscribir un medio de pago.

El campo `mode` fija qué hace la sesión: `PAYMENT` cobra deudas o un monto, `ENROLLMENT` inscribe un medio de pago automático y `SAVE_PAYMENT_INSTRUMENT` guarda una cuenta bancaria sin cobrar.

Si se envía `customer_data` sin `billing_data.id_customer`, el Customer se crea o se actualiza con esos datos. Si se envía `invoice_data`, se crea una deuda nueva y la sesión queda asociada a ella.

`expiration_datetime` se interpreta en formato ISO 8601 (sin zona horaria se asume UTC) y no puede quedar en el pasado. Cuando se envía, la sesión se expira de forma automática en esa fecha. Si se omite, la sesión expira según la duración que configure el flujo, sin importar su `mode`. Si el flujo no configura ninguna, permanece abierta hasta expirarla manualmente.

Cuando la sesión queda asociada a un Customer y no se envía `skip_message_trigger`, se le manda el enlace de pago por el canal indicado en `communication_channel`. El envío es best-effort: si falla, la Checkout Session se crea igual. Si en cambio se envía `id_template`, la plantilla debe existir: si no, la solicitud se rechaza con 400 y la sesión no se crea.

`unique_external_id` hace la creación idempotente: si la organización vuelve a enviar un valor que ya usó, se devuelve la Checkout Session que ya se creó con él, en el estado en que esté, sin crear una nueva — ni la sesión, ni el Customer, ni la deuda — ni volver a enviarle el enlace al cliente. Sirve para que un reintento por timeout reciba la `url` de la sesión que sí se creó en vez de generar una segunda. El reintento se valida igual que una creación nueva: si con esos datos ya no se podría crear la sesión, responde el mismo error. El resto de sus campos se ignora, con una sola excepción: un `allowed_payment_options` con botones reemplaza el filtro de la sesión si sigue abierta y el `flow_name` es el mismo de la sesión.

`allowed_payment_options` limita los botones de medio de pago que muestra el checkout.

`id_checkout` elige el checkout cuya configuración usa la sesión: el de la cuenta en el flujo `flow_name` o el Default de ese flujo. Un checkout que no sea ninguno de los dos se rechaza con
404. Si se omite, se usa el checkout de la cuenta en el flujo.

## Path parameters

- `country_code` 'cl' | 'mx' | 'br', required

## Headers

- `x-api-version` string, date: Versión del API para esta petición, como cualquier fecha `YYYY-MM-DD`. Fija el contrato de la respuesta; si se omite, se deriva de la fecha de creación de la organización.

## Request body

- CheckoutSessionRequestV2Decryption: Datos con los que se crea una Checkout Session.
  - `additional_metadata` object, nullable: Datos propios de la organización que se guardan junto a la Checkout Session.
  - `additional_query_parameters` AdditionalQueryParametersRequest: Datos con los que se agregan parámetros adicionales a la Checkout Session.
    - `access_source` string, nullable
    - `redirection` string, nullable
  - `allow_partial_payment` boolean, nullable: Indica si el cliente final puede abonar solo una parte del total.
  - `allowed_payment_options` PaymentOptionFormType[]: Medios de pago que la Checkout Session puede mostrar, uno por botón del checkout (por ejemplo `card` o `transfer_cl`); se ocultan los demás. Un botón cubre todos los productos que agrupa. Si ninguno de los botones indicados está en el flujo, la solicitud se rechaza con 400. Vacío o en `null` no filtra nada. Es el único campo que se aplica cuando se reenvía un `unique_external_id` ya usado: si trae botones, reemplaza el filtro de la sesión existente mientras siga abierta, siempre que el `flow_name` sea el de la sesión; si no, responde 400.
  - `billing_data` BillingDataRequestV2Decryption, required: Datos de facturación de la solicitud.
    - `amount` number, nullable: Monto que se cobra en la Checkout Session.
    - `currency` 'CLP' | 'CLF' | 'MXN' | 'BRL' | 'USD': Moneda, en código [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). Cubre las monedas de los países donde Toku opera —`CLP` (peso chileno), `MXN` (peso mexicano) y `BRL` (real)— más `USD` y `CLF`, la Unidad de Fomento chilena. La moneda determina cuántos decimales admiten los montos: `CLP` no admite decimales, `MXN`, `BRL` y `USD` admiten dos, y `CLF` cuatro.
    - `id_account` string, encrypted-id, nullable: Identificador de la Account.
    - `id_customer` string, encrypted-id, nullable: Identificador del Customer.
    - `id_subscription` string, encrypted-id, nullable: Identificador de la Subscription. Se conserva por compatibilidad: para inscribir varias se usa `ids_subscription`.
    - `ids_invoice` string[], nullable: Identificadores de las deudas que se cobran en la Checkout Session.
    - `ids_subscription` string[], nullable: Identificadores de las Subscriptions cuando la inscripción cubre varias. Se mantiene consistente con el campo singular id_subscription.
  - `communication_channel` 'mail' | 'sms' | 'wsp': Canal del motor de comunicaciones.
  - `customer_data` CustomerDataRequest: Datos con los que se busca o se crea el Customer de la Checkout Session.
    - `external_id` string, nullable
    - `government_id` string, nullable
    - `mail` string, nullable
    - `name` string, nullable
    - `phone_number` string, nullable
  - `expiration_datetime` string, nullable: Fecha y hora, en formato ISO 8601, en la que la Checkout Session expira. Manda por sobre la duración que el flujo configure para sus enlaces de pago. Si se omite, una sesión `PAYMENT` expira según esa duración. Si el flujo no configura ninguna, o la sesión no es `PAYMENT`, permanece abierta hasta expirarla manualmente.
  - `external_id` string, nullable: Identificador que entrega la organización para reconocer después la operación.
  - `flow_name` string, nullable: Flow con el que se crea la Checkout Session.
  - `form_information` object, nullable: Información no sensible con la que el cliente final completó el formulario.
  - `id_checkout` string, encrypted-id, nullable: Checkout cuya configuración usa la sesión. Debe ser el checkout de la cuenta en el flow `flow_name` o el Default de ese flow. Si no se envía, se usa el checkout de la cuenta en el flow.
  - `id_template` string, encrypted-id, nullable: Plantilla con la que se le envía al Customer el mensaje con el enlace de pago. Debe existir.
  - `invoice_data` InvoiceDataRequest: Datos con los que se crea la Invoice de la Checkout Session.
    - `amount` number, required: Monto total de la deuda que se cobra en la sesión.
    - `currency_code` 'CLP' | 'CLF' | 'MXN' | 'BRL' | 'USD', required: Moneda, en código [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). Cubre las monedas de los países donde Toku opera —`CLP` (peso chileno), `MXN` (peso mexicano) y `BRL` (real)— más `USD` y `CLF`, la Unidad de Fomento chilena. La moneda determina cuántos decimales admiten los montos: `CLP` no admite decimales, `MXN`, `BRL` y `USD` admiten dos, y `CLF` cuatro.
    - `disable_automatic_payment` boolean, nullable: Indica si la deuda queda excluida de los cobros automáticos, de modo que solo se pague desde este checkout.
    - `due_date` string, nullable
    - `expiration_action` 'EXPIRE' | 'VOID' | 'DELETE': Acción que se ejecuta sobre una Invoice cuando expira: marcarla como expirada (`EXPIRE`), anularla (`VOID`) o eliminarla (`DELETE`). `EXPIRE` es legado: se mantiene por compatibilidad, pero deja la Invoice en el estado `EXPIRED`, que está deprecado. Para nuevas integraciones usa `VOID` o `DELETE`.
    - `expiration_date` string, nullable: Fecha en la que la deuda expira, en formato ISO 8601.
    - `invoice_external_id` string, nullable: Identificador de la deuda en los sistemas de la organización, para poder conciliarla.
    - `max_collection_attempts` integer, nullable: Cantidad máxima de intentos de cobro automático de la deuda.
    - `metadata` object, nullable: Datos propios de la organización que se guardan junto a la deuda y no afectan el cobro.
    - `product_id` string, required: Identificador del producto o servicio que se está cobrando, definido por la organización.
    - `will_expire` boolean, nullable: Indica si la deuda expira al llegar su fecha de expiración.
  - `mode` 'ENROLLMENT' | 'PAYMENT' | 'SAVE_PAYMENT_INSTRUMENT', required: Modo de una Checkout Session.
  - `payment_options_configuration` PaymentOptionsConfigurationRequest: Configuración de los medios de pago.
    - `pac` PacConfigurationRequest: Configuración del medio de pago pac.
      - `mandate_id` string, required: Identificador del mandato de PAC asociado a la inscripción.
    - `transfer_cl` TransferClConfigurationRequest: Configuración del medio de pago transfer-cl.
      - `available_institutions` string[], required: Instituciones financieras desde las que el cliente final puede transferir.
  - `price_change` PriceChangeRequest: Ajuste de precio con alcance a esta Checkout Session que se aplica al crearla. El monto es con signo y se guarda tal cual. Solo se admiten `flat` (diferencia en la moneda) y `percentage` (tasa, por ejemplo -10 = 10% de descuento); `flat_uf` no tiene soporte de aplicación en los procesos posteriores. En `percentage`, un valor negativo reduce el cobro y uno positivo lo aumenta.
    - `amount` number, required: Monto del ajuste: positivo aumenta el total a pagar y negativo lo reduce.
    - `type` 'percentage' | 'flat' | 'flat_uf', required: Cómo se expresa un ajuste sobre el precio: `percentage` es un porcentaje del monto original, `flat` un monto fijo en la moneda del cobro y `flat_uf` un monto fijo expresado en Unidades de Fomento.
  - `redirection_data` RedirectionData: Datos necesarios para crear una redirección.
    - `activation_url` string, nullable: URL a la que se redirige al cliente final cuando queda inscrito el medio de pago.
    - `failure_url` string, nullable: URL a la que se redirige al cliente final cuando la operación falla.
    - `success_url` string, nullable: URL a la que se redirige al cliente final cuando la operación resulta exitosa.
  - `skip_message_trigger` boolean, nullable: Indica si se omite el envío del enlace de pago al Customer.
  - `unique_external_id` string, nullable: Identificador propio de la organización que hace idempotente la creación: si se vuelve a enviar un valor ya usado, se devuelve la Checkout Session que ya se creó con él, sin crear una nueva.

## Response `201`

La Checkout Session quedó creada y abierta. Si el `unique_external_id` ya se había usado, es la Checkout Session que ya se creó con él, en el estado en que esté.

- CreatedCheckoutSessionResponse: Checkout Session recién creada.
  - `allow_partial_payment` boolean, nullable: Indica si el cliente final puede abonar solo una parte del total en lugar de pagarlo completo.
  - `available_payment_methods` AvailablePaymentMethod[]: Medios de pago vigentes del Customer que se pueden asociar al producto en una sesión de inscripción, sin volver a pedirle los datos. Se distinguen de las tarjetas guardadas, que se reutilizan para pagar. Solo de lectura. Toku los resuelve en cada lectura a partir de los medios de pago vigentes del Customer; no se envían al crear la sesión.
    - `brand` string, nullable: Marca de la tarjeta o red del medio de pago, por ejemplo `visa`.
    - `cardholder_name` string, nullable: Nombre del titular de la tarjeta o cuenta.
    - `id_payment_method` string, encrypted-id, required: Identificador del medio de pago.
    - `institution_name` string, nullable: Institución financiera del medio de pago, cuando corresponde.
    - `last_4_digits` string, nullable: Últimos 4 dígitos de la tarjeta o cuenta, para que el cliente la reconozca.
    - `type` string, nullable: Tipo de medio de pago, por ejemplo tarjeta o cuenta bancaria.
  - `available_saved_cards` AvailableSavedCard[]: Tarjetas que el Customer ya tiene guardadas y puede reutilizar para pagar. Solo de lectura. Toku las resuelve en cada lectura a partir de las tarjetas vigentes del Customer; no se envían al crear la sesión.
    - `bank_country` string, nullable: País del banco emisor, para resolver el recargo de tarjeta internacional.
    - `card_brand` string, nullable: Marca de la tarjeta, por ejemplo `visa` o `mastercard`.
    - `card_type` string, nullable: Tipo de tarjeta (`credit`, `debit`, `prepaid`), para resolver el recargo que corresponde cobrar.
    - `cardholder_name` string, nullable: Nombre del titular registrado en la tarjeta.
    - `last_4_digits` string, required: Últimos 4 dígitos de la tarjeta, para que el cliente la reconozca.
    - `payment_instrument_card_id` string, encrypted-id, required: Identificador de la tarjeta guardada.
  - `available_saved_clabes` AvailableSavedClabe[]: Cuentas CLABE que el Customer ya tiene guardadas y puede reutilizar para pagar. Solo de lectura. Toku las resuelve en cada lectura a partir de las cuentas vigentes del Customer; no se envían al crear la sesión.
    - `bank_account_type` string, nullable: Tipo de cuenta bancaria, por ejemplo `CUENTA_CLABE`.
    - `bank_id` string, nullable: Código de la institución financiera, por ejemplo `044`.
    - `bank_name` string, nullable: Nombre de la institución financiera de la cuenta.
    - `id_payment_instrument` string, encrypted-id, required: Identificador de la cuenta guardada.
    - `last_4_digits` string, required: Últimos 4 dígitos de la cuenta CLABE, para que el cliente la reconozca.
    - `last_used_at` string, nullable: Fecha y hora, en formato ISO 8601, en que la cuenta se usó por última vez.
    - `source` string, nullable: Producto de Toku con el que se guardó la cuenta.
    - `status` string, nullable: Estado de la cuenta guardada, que define si se puede cobrar con ella.
  - `billing_data` union, required: Información necesaria para cobrar una deuda o para inscribir un medio de pago: monto, moneda, deudas, Subscriptions, Customer y Account involucrados.
    - SaaSMultipleCustomersOnetimeDetailsResponse: Datos de facturación de una operación SaaS con varios Customers y pago único.
      - `account` AccountDetailsResponse, required: Datos de la Account para la que se creó la Checkout Session.
        - `id_account` string, encrypted-id, required: Identificador de la Account.
        - `is_direct_debit` boolean, nullable: Indica si la Account cobra por domiciliación bancaria.
        - `is_main` boolean, required: Indica si es la Account principal de la organización.
        - `name` string, required: Nombre de la Account.
      - `currency` CurrencyDetails, required: Moneda en la que se expresan los montos de la operación.
        - `code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `decimal_separator` string, required: Separador decimal con el que se muestran los montos.
        - `decimals` integer, required: Cantidad de decimales con la que se expresan los montos de la moneda.
        - `id_currency` string, encrypted-id, required: Identificador de la moneda.
        - `name` string, required: Nombre de la moneda.
        - `symbol` string, required: Símbolo con el que se muestran los montos de la moneda.
        - `thousands_separator` string, required: Separador de miles con el que se muestran los montos.
      - `customers` CustomerDetailsResponse[], required: Customers cuyas deudas se cobran en esta Checkout Session.
        - `external_id` string, nullable: Identificador del Customer en los sistemas de la organización.
        - `government_id` string, nullable: Documento de identidad del Customer.
        - `id_customer` string, encrypted-id, required: Identificador del Customer.
        - `mail` string, nullable: Correo electrónico del Customer.
        - `name` string, nullable: Nombre del Customer.
        - `phone_number` string, nullable: Número de teléfono del Customer.
      - `invoices` InvoiceDetailsResponse[], required: Deudas que se cobran en esta Checkout Session.
        - `amount` number, required: Monto de la deuda.
        - `currency_code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `id_invoice` string, encrypted-id, required: Identificador de la deuda.
        - `id_subscription` string, encrypted-id, required: Identificador de la Subscription.
        - `is_paid` boolean, required: Indica si la deuda ya está pagada.
        - `product_id` string, required: Identificador del producto o servicio asociado, definido por la organización.
        - `product_name` string, nullable: Nombre del producto a mostrar
      - `payment_engine` 'saas_multiple_customers', required: Motor con el que Toku procesa la operación.
      - `payment_frequency` 'onetime', required: Frecuencia del pago; en esta variante siempre es un pago único.
    - SaaSOnetimeDetailsResponse: Datos de facturación de una operación SaaS de pago único.
      - `account` AccountDetailsResponse, required: Datos de la Account para la que se creó la Checkout Session.
        - `id_account` string, encrypted-id, required: Identificador de la Account.
        - `is_direct_debit` boolean, nullable: Indica si la Account cobra por domiciliación bancaria.
        - `is_main` boolean, required: Indica si es la Account principal de la organización.
        - `name` string, required: Nombre de la Account.
      - `currency` CurrencyDetails, required: Moneda en la que se expresan los montos de la operación.
        - `code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `decimal_separator` string, required: Separador decimal con el que se muestran los montos.
        - `decimals` integer, required: Cantidad de decimales con la que se expresan los montos de la moneda.
        - `id_currency` string, encrypted-id, required: Identificador de la moneda.
        - `name` string, required: Nombre de la moneda.
        - `symbol` string, required: Símbolo con el que se muestran los montos de la moneda.
        - `thousands_separator` string, required: Separador de miles con el que se muestran los montos.
      - `customer` CustomerDetailsResponse, required: Datos del Customer que realiza la operación.
        - `external_id` string, nullable: Identificador del Customer en los sistemas de la organización.
        - `government_id` string, nullable: Documento de identidad del Customer.
        - `id_customer` string, encrypted-id, required: Identificador del Customer.
        - `mail` string, nullable: Correo electrónico del Customer.
        - `name` string, nullable: Nombre del Customer.
        - `phone_number` string, nullable: Número de teléfono del Customer.
      - `invoices` InvoiceDetailsResponse[], required: Deudas que se cobran en esta Checkout Session.
        - `amount` number, required: Monto de la deuda.
        - `currency_code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `id_invoice` string, encrypted-id, required: Identificador de la deuda.
        - `id_subscription` string, encrypted-id, required: Identificador de la Subscription.
        - `is_paid` boolean, required: Indica si la deuda ya está pagada.
        - `product_id` string, required: Identificador del producto o servicio asociado, definido por la organización.
        - `product_name` string, nullable: Nombre del producto a mostrar
      - `payment_engine` 'saas', required: Motor con el que Toku procesa la operación.
      - `payment_frequency` 'onetime', required: Frecuencia del pago; en esta variante siempre es un pago único.
    - SaaSRecurringDetailsResponse: Datos de facturación de una operación SaaS de pago recurrente.
      - `account` AccountDetailsResponse, required: Datos de la Account para la que se creó la Checkout Session.
        - `id_account` string, encrypted-id, required: Identificador de la Account.
        - `is_direct_debit` boolean, nullable: Indica si la Account cobra por domiciliación bancaria.
        - `is_main` boolean, required: Indica si es la Account principal de la organización.
        - `name` string, required: Nombre de la Account.
      - `currency` CurrencyDetails, required: Moneda en la que se expresan los montos de la operación.
        - `code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `decimal_separator` string, required: Separador decimal con el que se muestran los montos.
        - `decimals` integer, required: Cantidad de decimales con la que se expresan los montos de la moneda.
        - `id_currency` string, encrypted-id, required: Identificador de la moneda.
        - `name` string, required: Nombre de la moneda.
        - `symbol` string, required: Símbolo con el que se muestran los montos de la moneda.
        - `thousands_separator` string, required: Separador de miles con el que se muestran los montos.
      - `customer` CustomerDetailsResponse, required: Datos del Customer que realiza la operación.
        - `external_id` string, nullable: Identificador del Customer en los sistemas de la organización.
        - `government_id` string, nullable: Documento de identidad del Customer.
        - `id_customer` string, encrypted-id, required: Identificador del Customer.
        - `mail` string, nullable: Correo electrónico del Customer.
        - `name` string, nullable: Nombre del Customer.
        - `phone_number` string, nullable: Número de teléfono del Customer.
      - `invoices` InvoiceDetailsResponse[], required: Deudas que se cobran en esta Checkout Session.
        - `amount` number, required: Monto de la deuda.
        - `currency_code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `id_invoice` string, encrypted-id, required: Identificador de la deuda.
        - `id_subscription` string, encrypted-id, required: Identificador de la Subscription.
        - `is_paid` boolean, required: Indica si la deuda ya está pagada.
        - `product_id` string, required: Identificador del producto o servicio asociado, definido por la organización.
        - `product_name` string, nullable: Nombre del producto a mostrar
      - `payment_engine` 'saas', required: Motor con el que Toku procesa la operación.
      - `payment_frequency` 'recurring', required: Frecuencia del pago; en esta variante siempre es un pago recurrente.
      - `should_trigger_automatic_payment` boolean, required: Indica si el cobro automático debe iniciarse una vez que la inscripción queda registrada.
      - `subscription` SubscriptionDetailsResponse: Datos de una Subscription asociada a la Checkout Session.
        - `additional_metadata` object, nullable: Datos propios de la organización asociados a la Subscription.
        - `currency_code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `id_subscription` string, encrypted-id, required: Identificador de la Subscription.
        - `product_id` string, required: Identificador del producto o servicio asociado, definido por la organización.
        - `product_name` string, nullable: Nombre a mostrar del producto
      - `subscriptions` SubscriptionDetailsResponse[]: Datos de las Subscriptions cuando la inscripción cubre varias.
        - `additional_metadata` object, nullable: Datos propios de la organización asociados a la Subscription.
        - `currency_code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `id_subscription` string, encrypted-id, required: Identificador de la Subscription.
        - `product_id` string, required: Identificador del producto o servicio asociado, definido por la organización.
        - `product_name` string, nullable: Nombre a mostrar del producto
    - OnDemandOnetimeDetailsResponse: Datos de facturación de una operación on-demand de pago único.
      - `account` AccountDetailsResponse, required: Datos de la Account para la que se creó la Checkout Session.
        - `id_account` string, encrypted-id, required: Identificador de la Account.
        - `is_direct_debit` boolean, nullable: Indica si la Account cobra por domiciliación bancaria.
        - `is_main` boolean, required: Indica si es la Account principal de la organización.
        - `name` string, required: Nombre de la Account.
      - `amount` number, required: Monto que se cobra en la Checkout Session.
      - `currency` CurrencyDetails, required: Moneda en la que se expresan los montos de la operación.
        - `code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `decimal_separator` string, required: Separador decimal con el que se muestran los montos.
        - `decimals` integer, required: Cantidad de decimales con la que se expresan los montos de la moneda.
        - `id_currency` string, encrypted-id, required: Identificador de la moneda.
        - `name` string, required: Nombre de la moneda.
        - `symbol` string, required: Símbolo con el que se muestran los montos de la moneda.
        - `thousands_separator` string, required: Separador de miles con el que se muestran los montos.
      - `customer` CustomerDetailsResponse: Datos del Customer que realiza la operación.
        - `external_id` string, nullable: Identificador del Customer en los sistemas de la organización.
        - `government_id` string, nullable: Documento de identidad del Customer.
        - `id_customer` string, encrypted-id, required: Identificador del Customer.
        - `mail` string, nullable: Correo electrónico del Customer.
        - `name` string, nullable: Nombre del Customer.
        - `phone_number` string, nullable: Número de teléfono del Customer.
      - `payment_engine` 'on_demand', required: Motor con el que Toku procesa la operación.
      - `payment_frequency` 'onetime', required: Frecuencia del pago; en esta variante siempre es un pago único.
    - OnDemandRecurringDetailsResponse: Datos de facturación de una operación on-demand de pago recurrente.
      - `account` AccountDetailsResponse, required: Datos de la Account para la que se creó la Checkout Session.
        - `id_account` string, encrypted-id, required: Identificador de la Account.
        - `is_direct_debit` boolean, nullable: Indica si la Account cobra por domiciliación bancaria.
        - `is_main` boolean, required: Indica si es la Account principal de la organización.
        - `name` string, required: Nombre de la Account.
      - `currency` CurrencyDetails, required: Moneda en la que se expresan los montos de la operación.
        - `code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `decimal_separator` string, required: Separador decimal con el que se muestran los montos.
        - `decimals` integer, required: Cantidad de decimales con la que se expresan los montos de la moneda.
        - `id_currency` string, encrypted-id, required: Identificador de la moneda.
        - `name` string, required: Nombre de la moneda.
        - `symbol` string, required: Símbolo con el que se muestran los montos de la moneda.
        - `thousands_separator` string, required: Separador de miles con el que se muestran los montos.
      - `customer` CustomerDetailsResponse: Datos del Customer que realiza la operación.
        - `external_id` string, nullable: Identificador del Customer en los sistemas de la organización.
        - `government_id` string, nullable: Documento de identidad del Customer.
        - `id_customer` string, encrypted-id, required: Identificador del Customer.
        - `mail` string, nullable: Correo electrónico del Customer.
        - `name` string, nullable: Nombre del Customer.
        - `phone_number` string, nullable: Número de teléfono del Customer.
      - `payment_engine` 'on_demand', required: Motor con el que Toku procesa la operación.
      - `payment_frequency` 'recurring', required: Frecuencia del pago; en esta variante siempre es un pago recurrente.
      - `should_trigger_automatic_payment` boolean, required: Indica si el cobro automático debe iniciarse una vez que la inscripción queda registrada.
    - SavePaymentInstrumentDetailsResponse: Datos de una operación que solo guarda un medio de pago.
      - `account` AccountDetailsResponse, required: Datos de la Account para la que se creó la Checkout Session.
        - `id_account` string, encrypted-id, required: Identificador de la Account.
        - `is_direct_debit` boolean, nullable: Indica si la Account cobra por domiciliación bancaria.
        - `is_main` boolean, required: Indica si es la Account principal de la organización.
        - `name` string, required: Nombre de la Account.
      - `amount` number, nullable: Monto asociado a la Checkout Session, si tiene uno. En este modo no se cobra.
      - `currency` CurrencyDetails: Moneda en la que se expresan los montos de la operación.
        - `code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `decimal_separator` string, required: Separador decimal con el que se muestran los montos.
        - `decimals` integer, required: Cantidad de decimales con la que se expresan los montos de la moneda.
        - `id_currency` string, encrypted-id, required: Identificador de la moneda.
        - `name` string, required: Nombre de la moneda.
        - `symbol` string, required: Símbolo con el que se muestran los montos de la moneda.
        - `thousands_separator` string, required: Separador de miles con el que se muestran los montos.
      - `customer` CustomerDetailsResponse: Datos del Customer que realiza la operación.
        - `external_id` string, nullable: Identificador del Customer en los sistemas de la organización.
        - `government_id` string, nullable: Documento de identidad del Customer.
        - `id_customer` string, encrypted-id, required: Identificador del Customer.
        - `mail` string, nullable: Correo electrónico del Customer.
        - `name` string, nullable: Nombre del Customer.
        - `phone_number` string, nullable: Número de teléfono del Customer.
      - `payment_engine` unknown
      - `payment_frequency` unknown
    - SaaSUnrestrictedAmountOnetimeDetailsResponse: Datos de facturación de una operación SaaS de monto sin restricción y pago único.
      - `account` AccountDetailsResponse, required: Datos de la Account para la que se creó la Checkout Session.
        - `id_account` string, encrypted-id, required: Identificador de la Account.
        - `is_direct_debit` boolean, nullable: Indica si la Account cobra por domiciliación bancaria.
        - `is_main` boolean, required: Indica si es la Account principal de la organización.
        - `name` string, required: Nombre de la Account.
      - `amount` number, required: Monto que se cobra en la Checkout Session.
      - `currency` CurrencyDetails, required: Moneda en la que se expresan los montos de la operación.
        - `code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `decimal_separator` string, required: Separador decimal con el que se muestran los montos.
        - `decimals` integer, required: Cantidad de decimales con la que se expresan los montos de la moneda.
        - `id_currency` string, encrypted-id, required: Identificador de la moneda.
        - `name` string, required: Nombre de la moneda.
        - `symbol` string, required: Símbolo con el que se muestran los montos de la moneda.
        - `thousands_separator` string, required: Separador de miles con el que se muestran los montos.
      - `customer` CustomerDetailsResponse, required: Datos del Customer que realiza la operación.
        - `external_id` string, nullable: Identificador del Customer en los sistemas de la organización.
        - `government_id` string, nullable: Documento de identidad del Customer.
        - `id_customer` string, encrypted-id, required: Identificador del Customer.
        - `mail` string, nullable: Correo electrónico del Customer.
        - `name` string, nullable: Nombre del Customer.
        - `phone_number` string, nullable: Número de teléfono del Customer.
      - `invoices` InvoiceDetailsResponse[], required: Deudas que se cobran en esta Checkout Session.
        - `amount` number, required: Monto de la deuda.
        - `currency_code` string, required: Código de la moneda, por ejemplo `CLP` o `MXN`.
        - `id_invoice` string, encrypted-id, required: Identificador de la deuda.
        - `id_subscription` string, encrypted-id, required: Identificador de la Subscription.
        - `is_paid` boolean, required: Indica si la deuda ya está pagada.
        - `product_id` string, required: Identificador del producto o servicio asociado, definido por la organización.
        - `product_name` string, nullable: Nombre del producto a mostrar
      - `payment_engine` 'saas_unrestricted_amount', required: Motor con el que Toku procesa la operación.
      - `payment_frequency` 'onetime', required: Frecuencia del pago; en esta variante siempre es un pago único.
  - `card_flow_config` object, nullable: Configuración resuelta para el pago con tarjeta de esta sesión: por qué procesador se cobra, restricciones de tarjetas aceptadas, autenticación 3-D Secure y cuotas. Corresponde al tipo de sesión: un pago único lleva la configuración de pago único, y una inscripción o el guardado de un medio de pago llevan la recurrente. Es nulo cuando no aplica ninguna configuración. Solo de lectura. Toku la resuelve en cada lectura a partir de la configuración de tarjeta de la organización y del `mode` de la sesión.
  - `checkout_config` CheckoutPresentationConfig: Ajustes de presentación del checkout para una Checkout Session. Cada campo es nulo cuando la configuración de la sesión no lo define.
    - `disable_back_button_deep_link` boolean, nullable: Indica si el botón de volver al comercio está deshabilitado. Es la polaridad inversa de la configuración de origen, que declara cuándo *mostrar* el botón.
    - `go_back_to_commerce_url` string, nullable: URL del comercio a la que vuelve el cliente al salir del checkout.
    - `show_checkout_invoice_breakdown` boolean, nullable: Indica si el detalle de la deuda se muestra desglosado por ítem.
    - `show_pci_compliance_badge` boolean, nullable: Indica si el checkout muestra la insignia PCI DSS Compliant que emitió nuestro QSA. Sólo puede mostrarse esa insignia: el logo del PCI SSC y las insignias no oficiales están prohibidos por su guía de marca.
    - `show_session_countdown` boolean, nullable: Indica si el checkout muestra la cuenta regresiva con el tiempo que le queda a la Checkout Session antes de expirar.
    - `show_wallet_discount` boolean, nullable: Indica si se muestra el descuento por pagar con billetera.
  - `combine_active` boolean, nullable: Indica si esta Checkout Session tiene una combinación de pagos en curso: ya hay al menos un pago, falta saldo, la sesión sigue abierta y no se cumplió el plazo para devolver lo cobrado. Solo de lectura. Toku lo calcula en cada lectura a partir de los pagos ya hechos sobre la sesión.
  - `combine_enabled` boolean, nullable: Indica si se le puede ofrecer al cliente final pagar el total en varios pagos. Deja de ser verdadero una vez que hay un pago parcial hecho: para una combinación en curso se usa `combine_active`. Solo de lectura. Toku lo calcula en cada lectura a partir de la configuración de la organización y del estado de la sesión.
  - `customer_pii_masked` boolean, nullable: Indica si los datos personales del Customer (`name`, `mail`, `phone_number`, `government_id` y `external_id`) vienen enmascarados. Cuando es `true` los valores no son utilizables: hay que pedirlos de nuevo antes de enviarlos. Solo de lectura. Toku lo resuelve en cada lectura según la configuración de la organización.
  - `disable_oneclick_checkout` boolean, nullable: Indica si en esta Checkout Session se desactiva el pago con un medio ya guardado, aunque la organización lo tenga habilitado.
  - `expiration_datetime` string, nullable: Fecha y hora, en formato ISO 8601, en la que la Checkout Session expira.
  - `external_id` string, nullable: Identificador que entrega la organización para reconocer después los pagos o inscripciones hechos con esta Checkout Session.
  - `flow_name` string, required: Flow con el que se creó la Checkout Session.
  - `id_checkout_session` string, required: Identificador único de la Checkout Session. Solo de lectura. Toku lo genera al crear la sesión.
  - `invoice_data` InvoiceData: Datos de la deuda que se crea junto con la Checkout Session, incluida su fecha de vencimiento.
    - `amount` number, required: Monto total de la deuda que se cobra en la sesión.
    - `currency_code` 'CLP' | 'CLF' | 'MXN' | 'BRL' | 'USD', required: Moneda, en código [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). Cubre las monedas de los países donde Toku opera —`CLP` (peso chileno), `MXN` (peso mexicano) y `BRL` (real)— más `USD` y `CLF`, la Unidad de Fomento chilena. La moneda determina cuántos decimales admiten los montos: `CLP` no admite decimales, `MXN`, `BRL` y `USD` admiten dos, y `CLF` cuatro.
    - `disable_automatic_payment` boolean: Indica si la deuda queda excluida de los cobros automáticos, de modo que solo se pague desde este checkout.
    - `due_date` string, required: Fecha de vencimiento de la deuda, en formato ISO 8601.
    - `expiration_action` 'EXPIRE' | 'VOID' | 'DELETE': Acción que se ejecuta sobre una Invoice cuando expira: marcarla como expirada (`EXPIRE`), anularla (`VOID`) o eliminarla (`DELETE`). `EXPIRE` es legado: se mantiene por compatibilidad, pero deja la Invoice en el estado `EXPIRED`, que está deprecado. Para nuevas integraciones usa `VOID` o `DELETE`.
    - `expiration_date` string: Fecha en la que la deuda expira, en formato ISO 8601.
    - `invoice_external_id` string: Identificador de la deuda en los sistemas de la organización, para poder conciliarla.
    - `max_collection_attempts` integer: Cantidad máxima de intentos de cobro automático de la deuda.
    - `metadata` object: Datos propios de la organización que se guardan junto a la deuda y no afectan el cobro.
    - `product_id` string, required: Identificador del producto o servicio que se está cobrando, definido por la organización.
    - `will_expire` boolean: Indica si la deuda expira al llegar su fecha de expiración.
  - `is_receipt_redirection_disabled` boolean, nullable: Indica si el comprobante no redirige al cliente final. El comprobante se muestra igual: lo que se desactiva es la redirección que sale desde él una vez terminada la operación. Solo de lectura. Toku lo calcula en cada lectura: es verdadero mientras la sesión cobre un monto o deudas con un medio de pago que cobra de forma diferida y todavía no tenga un pago exitoso, porque hasta entonces no hay un resultado que mostrar al otro lado.
  - `mode` 'ENROLLMENT' | 'PAYMENT' | 'SAVE_PAYMENT_INSTRUMENT': Modo de una Checkout Session.
  - `operation_id` string, nullable: Identificador de la operación con la que se completó la Checkout Session. Solo de lectura. Toku lo estampa al completar la sesión; es nulo mientras siga abierta.
  - `pac_inscription_config` PacInscriptionPresentationConfig: Configuración de la inscripción de PAC para una Checkout Session. El bloque completo es nulo cuando la configuración de la sesión no define exclusiones de instituciones ni restricciones de tipos de cuenta para la inscripción de PAC.
    - `accepted_account_types_by_institution` PacInscriptionInstitutionAccountTypes[]: Restricción de tipos de cuenta aceptados por institución al inscribir un PAC. Una institución sin entrada acepta todos los tipos de cuenta.
      - `accepted_account_types` AccountTypeCL[], required: Tipos de cuenta aceptados para inscribir un PAC en esta institución: `checking_account` (cuenta corriente), `sight_account` (cuenta vista; la chequera electrónica cuenta como cuenta vista) o `rut_account` (CuentaRUT).
      - `institution` string, required: Institución bancaria a la que aplica la restricción de tipos de cuenta.
    - `excluded_institutions` string[]: Instituciones bancarias que no se ofrecen al cliente al inscribir un PAC en esta Checkout Session.
  - `payment_options` union[], required: Medios de pago que se le ofrecen al cliente final en esta Checkout Session. Solo de lectura. Toku los arma en cada lectura a partir del `flow_name` de la sesión, su `mode` y la `payment_options_configuration` con la que se creó.
    - union
      - InternalPaymentOption: Medio de pago que el cliente final completa dentro del checkout de Toku.
        - `display` 'main_view' | 'expandable', required: Cómo se presenta el medio de pago: a la vista o dentro de una sección desplegable.
        - `form` union, required
          - CardFormSchema: Formulario de tarjeta.
            - `form_configuration` object, nullable
            - `form_type` 'card', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - AccountMXFormSchema: Formulario de cuenta MX.
            - `form_configuration` object, nullable
            - `form_type` 'account_mx', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - TransferCLFormSchema: Formulario de transferencia CL.
            - `form_configuration` object, nullable
            - `form_type` 'transfer_cl', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - TransferMXFormSchema: Formulario de transferencia MX.
            - `form_configuration` object, nullable
            - `form_type` 'transfer_mx', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - CashMXFormSchema: Formulario de efectivo MX.
            - `form_configuration` object, nullable
            - `form_type` 'cash_mx', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - CoDiFormSchema: Formulario de CoDi.
            - `form_configuration` object, nullable
            - `form_type` 'codi', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - BoletoFormSchema: Formulario de Boleto.
            - `form_configuration` object, nullable
            - `form_type` 'boleto', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - DirectDebitCLFormSchema: Formulario de débito directo CL.
            - `form_configuration` object, nullable
            - `form_type` 'direct_debit_cl', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - PacInscriptionFormSchema: Formulario de PAC.
            - `form_configuration` object, nullable
            - `form_type` 'pac_inscription', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - PixBankingFormSchema: Formulario de Pix Banking.
            - `form_configuration` object, nullable
            - `form_type` 'pix_banking', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - PixBankingAutomaticFormSchema: Formulario de Pix Banking Automatic.
            - `form_configuration` object, nullable
            - `form_type` 'pix_banking_automatic', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - PixOpenfinanceOnetimeFormSchema: Formulario de Pix Openfinance para pago único.
            - `form_configuration` PixOpenfinanceOnetimeFormConfigSchema, required: Configuración del formulario de Pix Openfinance.
              - …
            - `form_type` 'pix_openfinance_onetime', required: Tipo de formulario para Pix Openfinance de pago único.
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - PixOpenfinanceRecurringFormSchema: Formulario de Pix Openfinance para pago recurrente.
            - `form_configuration` PixOpenfinanceRecurringFormConfigSchema, required: Configuración del formulario de Pix Openfinance.
              - …
            - `form_type` 'pix_openfinance_recurring', required: Tipo de formulario para Pix Openfinance recurrente.
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - TransbankWebpayPlusFormSchema: Formulario de Transbank Webpay Plus.
            - `form_configuration` object, nullable
            - `form_type` 'transbank_webpay_plus', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - TransbankOneclickFormSchema: Formulario de Transbank Oneclick.
            - `form_configuration` object, nullable
            - `form_type` 'transbank_oneclick', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - WalletMXFormSchema: Formulario de wallet MX.
            - `form_configuration` WalletMXFormConfiguration, required: Configuración del formulario de wallet MX.
              - …
            - `form_type` 'wallet_mx', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - WalletMXPSPFormSchema: Wallet MX PSP option; the portal uses it to send the payer to the product page. Requires no configuration.
            - `form_configuration` object, nullable
            - `form_type` 'wallet_mx_psp', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - ExternalCollectorsCLFormSchema: Formulario de recaudadores externos CL.
            - `form_configuration` object, nullable
            - `form_type` 'external_collector_cl_pst', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
          - PosCLFormSchema: Formulario de POS CL.
            - `form_configuration` object, nullable
            - `form_type` 'pos_cl', required
            - `intention` string, required: Propósito del formulario
            - `payment_processing_configuration` union, required: Configuración con la que se procesa el pago
              - …
        - `payment_option_type` 'internal', required: Tipo de medio de pago, que determina cómo se completa el pago.
        - `priority` integer, required: Orden en que se muestra el medio de pago frente a los demás.
      - ExternalPaymentOption: Medio de pago que se completa fuera del checkout, en un sitio al que se redirige al cliente final.
        - `display` 'main_view' | 'expandable', required: Cómo se presenta el medio de pago: a la vista o dentro de una sección desplegable.
        - `label` string, required: Texto con el que se identifica el medio de pago en el checkout.
        - `link` string, required: Enlace externo al que se redirige al cliente final para pagar.
        - `payment_option_type` 'external', required: Tipo de medio de pago, que determina cómo se completa el pago.
        - `priority` integer, required: Orden en que se muestra el medio de pago frente a los demás.
      - SyntheticPaymentOption: Opción que el checkout muestra como si fuera un medio de pago, pero que en realidad abre otro flujo, como pagar el total en varios pagos.
        - `display` 'main_view' | 'expandable', required: Cómo se presenta el medio de pago: a la vista o dentro de una sección desplegable.
        - `payment_option_type` 'synthetic', required: Tipo de medio de pago, que determina cómo se completa el pago.
        - `priority` integer, required: Orden en que se muestra el medio de pago frente a los demás.
        - `synthetic_type` string, required: Flujo que abre la opción, por ejemplo pagar el total en varios pagos.
  - `payment_options_configuration` PaymentOptionsConfigurationResponse: Configuración con la que se muestra y procesa cada medio de pago del checkout.
    - `card` CardConfigurationResponse: Configuración con la que se muestra y se procesa el pago con tarjeta en el checkout.
      - `combine_payment_methods` CombinePaymentMethodsConfigurationResponse: Reglas con las que el cliente final puede pagar el total repartido en varios pagos.
        - `enabled` boolean, nullable: Indica si esta Checkout Session admite pagar el total en varios pagos.
        - `max_payments` integer, nullable: Cantidad máxima de pagos con los que se puede cubrir el total.
        - `min_amount` integer, nullable: Monto mínimo de cada pago, en la unidad mínima de la moneda de la sesión (por ejemplo, centavos).
        - `ttl_refund_minutes` integer, nullable: Minutos que se esperan desde el primer pago antes de devolver lo ya cobrado si la combinación no se completa.
      - `enable_toggle_switch` boolean, nullable: Indica si el checkout ofrece al cliente final guardar la tarjeta para próximos pagos.
      - `external_processors` ExternalProcessorsEnabled: Procesadores externos de tarjeta habilitados para la sesión.
        - `apple_pay` ApplePayConfig: Disponibilidad de Apple Pay para el medio de pago con tarjeta, resuelta por Toku al crear la sesión.
          - `enabled` boolean
          - `partner_internal_merchant_identifier` string
          - `supported_countries` string[]
          - `supported_networks` string[]
          - `supported_types` string[]
          - `token_notification_url` string
        - `google_pay` GooglePayConfig: Disponibilidad y configuración de Google Pay para el medio de pago con tarjeta, resuelta por Toku al crear la sesión. ``enabled`` es la habilitación del comercio; ``tokenized_processing_available`` es si además queda un gateway capaz de procesar el token de la tarjeta, y de él depende que el checkout pida ``CRYPTOGRAM_3DS``. El resto es lo que el checkout necesita para armar el ``PaymentDataRequest``.
          - `allow_credit_cards` boolean
          - `allow_prepaid_cards` boolean
          - `allowed_card_networks` string[]
          - `auth_jwt` string: JWT firmado por Toku que autoriza el botón de Google Pay en `merchant_origin`
          - `blocked_issuer_country_codes` string[]
          - `enabled` boolean
          - `gateway` string
          - `gateway_merchant_id` string
          - `merchant_id` string
          - `merchant_origin` string: FQDN desde el que el checkout invoca la API de Google Pay
          - `tokenized_processing_available` boolean
      - `force_3ds` boolean, nullable: Indica si el cobro exige siempre la autenticación 3-D Secure del emisor de la tarjeta.
      - `id_orchestration_tree` string, nullable: Identificador de la configuración con la que Toku resuelve por qué procesador se cobra la tarjeta. Debiera utilizarse solo para orquestaciones custom y complejas.
      - `installments_configuration` object, nullable: Reglas de cuotas ofrecidas al cliente final, como el máximo de cuotas y el monto mínimo por cuota.
      - `selected_card` string, nullable: Tarjeta ya guardada que el checkout deja preseleccionada.
    - `pac` PacConfigurationResponse: Configuración con la que se muestra la inscripción de un mandato en PAC.
      - `mandate_id` string, required: Identificador del mandato de PAC asociado a la inscripción.
    - `transfer_cl` TransferClConfigurationResponse: Configuración con la que se muestra el pago por transferencia bancaria en el checkout.
      - `available_institutions` string[], required: Instituciones financieras desde las que el cliente final puede transferir.
  - `redirection` string, nullable: Identificador de la redirección a la que se envía al cliente final al terminar. Solo de lectura. Toku la crea al crear la sesión, a partir del `redirection_data` de la petición.
  - `selected_saved_card` AvailableSavedCard: Tarjeta que el Customer ya tiene guardada y puede reutilizar para pagar sin volver a ingresarla.
    - `bank_country` string, nullable: País del banco emisor, para resolver el recargo de tarjeta internacional.
    - `card_brand` string, nullable: Marca de la tarjeta, por ejemplo `visa` o `mastercard`.
    - `card_type` string, nullable: Tipo de tarjeta (`credit`, `debit`, `prepaid`), para resolver el recargo que corresponde cobrar.
    - `cardholder_name` string, nullable: Nombre del titular registrado en la tarjeta.
    - `last_4_digits` string, required: Últimos 4 dígitos de la tarjeta, para que el cliente la reconozca.
    - `payment_instrument_card_id` string, encrypted-id, required: Identificador de la tarjeta guardada.
  - `session_price_change_origin` 'adjustment_document' | 'specified_at_creation': Where a checkout session's price change came from, for portal labelling.
  - `session_price_changes_total` number, nullable: Suma de los ajustes de precio aplicados solo a esta Checkout Session. Un valor negativo reduce el total a pagar, por ejemplo un crédito a favor; es cero cuando no hay ajustes. Solo de lectura. Toku lo calcula en cada lectura a partir del `price_change` con el que se creó la sesión y de los saldos a favor del Customer.
  - `state` string, required: Estado de la Checkout Session: `OPEN` mientras se puede pagar, `COMPLETED` o `EXPIRED` al cerrarse. Solo de lectura. Lo maneja Toku: la sesión nace `OPEN` y pasa a `COMPLETED` cuando se completa la operación o a `EXPIRED` cuando vence.
  - `unique_external_id` string, nullable: Identificador único con el que la organización registró esta Checkout Session. `null` si no se envió.
  - `url` string, required: Dirección que se le entrega al cliente final para pagar o inscribir el medio de pago.

## Other responses

- `400`: `expiration_datetime` quedó en el pasado, el flow indicado no existe o no tiene medios de pago válidos, el canal de comunicación no está activado para la organización, o el `id_template` indicado no existe, fue eliminado o pertenece a otra organización.
- `409`: Los datos de facturación no son coherentes: las deudas no pertenecen a la Account, Subscription o Customer indicados.
- `422`: Validation Error

---

[API](https://skmtc.dev/trytoku/apis/toku-api.md) - [All operations](https://skmtc.dev/trytoku/apis/toku-api/llms.txt) - [OpenAPI document](https://skmtc.dev/trytoku/apis/toku-api/revisions/a6ef070075b1?raw)
