---
title: "Crear Checkout Session"
method: POST
path: "/checkout-sessions"
tags: ["Customer Portal"]
deprecated: true
---

# Crear Checkout Session

`POST /checkout-sessions`

## Request

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

> **Deprecated.**

Crea una Checkout Session y devuelve la url a la que se debe llevar al Customer.

El campo `type` define el tipo de sesión: `payment` cobra un monto puntual y exige `amount`; `enrollment` inscribe un medio de pago, exige `toku_product` y no admite `amount`.

Si no se envía `expiration_date`, la sesión vence 7 días después de creada; una fecha en el pasado se rechaza con 400.

`notify` solo tiene efecto en las sesiones de tipo `enrollment`: en las de tipo `payment` el valor se fuerza a `false`.

## Request body

- CreateCheckoutSessionPayload: Subclass of BaseModel that handles encryption/decryption of ids to translate external ids to internal ids and vice versa. _models defines which db entity corresponds to each key in the way "key": "db model"
  - `additional_metadata` object
  - `amount` number
  - `creator_id` string: Email of the person that created the checkout session
  - `display_toku_products` TokuProduct[]
  - `expiration_date` string, date-time
  - `external_id` string: EXTERNAL_ID_DESCRIPTION
  - `id_account` integer
  - `id_customer` integer
  - `id_payment_method` string
  - `new_card` boolean
  - `notify` boolean, required
  - `toku_product` 'pac_management' | 'pac_inscription' | 'direct_debit_cl' | 'direct_debit_mx' | 'transfer_cl' | 'transbank_oneclick' | 'transbank_webpay_plus' | 'klap_oneclick' | 'patpass' | 'cash' | 'cash_mx_one_time_psp' | 'cash_mx_one_time_pst' | 'cash_mx_psp' | 'cash_mx_pst' | 'toku_gateways' | 'payment_orchestration' | 'payment_orchestration_onetime' | 'multigateway_onetime' | 'toku_card_on_file' | 'toku_onetime' | 'domiciliation' | 'high_value_transfer' | 'codi' | 'wallet_mx' | 'cards_batch_mx_recurring_pst' | 'atoa_batch_mx_recurring_pst' | 'pix_onetime_pst_br' | 'boleto_br_onetime_pst' | 'boleto_br_recurring_pst' | 'pix_br_onetime_pst' | 'pix_br_onetime_psp' | 'pix_br_recurring_psp' | 'pix_bank_br_automatic_pst' | 'pix_bank_br_automatic_psp' | 'pix_bank_br_onetime_psp' | 'pix_openfinance_br_automatic_psp' | 'boleto_bank_br_onetime_psp' | 'cash_pst_cl' | 'transfer_mx_pst' | 'transfer_mx_psp' | 'transfer_cl_pst' | 'transfer_cl_psp' | 'direct_debit_onetime_cl_pst' | 'direct_debit_onetime_cl_psp' | 'bank_button_cl_pst' | 'bank_button_multiple_cl_pst' | 'bank_button_cl_psp' | 'bank_button_multiple_cl_psp' | 'digital_mandate_cl' | 'transfer_mx' | 'cards_br_recurring_pst' | 'cards_br_onetime_pst' | 'cards_br_recurring_psp' | 'cards_br_onetime_psp' | 'atoa_br_recurring_pst' | 'internal_balance' | 'cards_cl_onetime_pst' | 'cards_cl_recurring_pst' | 'cards_cl_pos_pst' | 'br_automatic_debit_pst' | 'external_collector_cl_pst' | 'referenced_payment_mx_psp' | 'in_app_payment_mx_psp' | 'external_payment' | 'collections_ai_agent' | 'bolepix_br_onetime_pst' | 'bolepix_bank_br_onetime_psp' | 'contacted_end_customers' | 'vcc' | 'atoa_batch_mx_recurring_psp' | 'international_transfer_mx_pst' | 'rat' | 'batch_reconciliations' | 'account_payouts' | 'account_payables' | 'transfer_cl_psp_wallet' | 'wallet_mx_psp': Producto de cobro de Toku: la combinación de método de pago, país y modalidad con que se ejecuta un cobro. El nombre codifica esas tres cosas — por ejemplo `pix_br_recurring_psp` es Pix recurrente en Brasil bajo el modelo PSP, y `cards_cl_onetime_pst` es tarjetas de un solo pago en Chile bajo el modelo PST. Es el valor que decide con qué integración se ejecuta el cobro, así que buena parte de la lógica que depende del país se resuelve a partir de él. Qué productos tiene habilitados una organización es parte de su configuración: este listado es el universo posible, no lo que una organización determinada puede cobrar hoy. `cash`, `cash_mx_one_time_psp`, `cash_mx_one_time_pst` y `transfer_mx` están deprecados y solo sobreviven por compatibilidad con registros históricos.
  - `type` 'ENROLLMENT' | 'PAYMENT', required: Para qué se abre una CheckoutSession: `PAYMENT` para cobrar un monto en la sesión y `ENROLLMENT` para inscribir un medio de pago que quede disponible para cobros posteriores.

## Response `201`

Successful Response

- CheckoutSessionResponse: The response to send the requested checkout session.
  - `additional_metadata` string
  - `amount` number
  - `configuration` object
  - `creator_id` string: Email of the person that created the checkout session
  - `display_toku_products` TokuProduct[]
  - `expiration_date` string, date-time
  - `external_id` string: External ID associated to the checkout session
  - `id` string, required
  - `id_account` string
  - `id_customer` string
  - `id_payment_method` string
  - `id_transaction` string
  - `journey_id` string
  - `new_card` boolean
  - `notify` boolean
  - `status` 'INITIALIZED' | 'EXPIRED' | 'DONE', required: Estado de una CheckoutSession. `INITIALIZED` es la sesión abierta, que el pagador todavía puede completar; `DONE` es la que terminó su flujo, y `EXPIRED` la que venció antes de completarse.
  - `toku_product` 'pac_management' | 'pac_inscription' | 'direct_debit_cl' | 'direct_debit_mx' | 'transfer_cl' | 'transbank_oneclick' | 'transbank_webpay_plus' | 'klap_oneclick' | 'patpass' | 'cash' | 'cash_mx_one_time_psp' | 'cash_mx_one_time_pst' | 'cash_mx_psp' | 'cash_mx_pst' | 'toku_gateways' | 'payment_orchestration' | 'payment_orchestration_onetime' | 'multigateway_onetime' | 'toku_card_on_file' | 'toku_onetime' | 'domiciliation' | 'high_value_transfer' | 'codi' | 'wallet_mx' | 'cards_batch_mx_recurring_pst' | 'atoa_batch_mx_recurring_pst' | 'pix_onetime_pst_br' | 'boleto_br_onetime_pst' | 'boleto_br_recurring_pst' | 'pix_br_onetime_pst' | 'pix_br_onetime_psp' | 'pix_br_recurring_psp' | 'pix_bank_br_automatic_pst' | 'pix_bank_br_automatic_psp' | 'pix_bank_br_onetime_psp' | 'pix_openfinance_br_automatic_psp' | 'boleto_bank_br_onetime_psp' | 'cash_pst_cl' | 'transfer_mx_pst' | 'transfer_mx_psp' | 'transfer_cl_pst' | 'transfer_cl_psp' | 'direct_debit_onetime_cl_pst' | 'direct_debit_onetime_cl_psp' | 'bank_button_cl_pst' | 'bank_button_multiple_cl_pst' | 'bank_button_cl_psp' | 'bank_button_multiple_cl_psp' | 'digital_mandate_cl' | 'transfer_mx' | 'cards_br_recurring_pst' | 'cards_br_onetime_pst' | 'cards_br_recurring_psp' | 'cards_br_onetime_psp' | 'atoa_br_recurring_pst' | 'internal_balance' | 'cards_cl_onetime_pst' | 'cards_cl_recurring_pst' | 'cards_cl_pos_pst' | 'br_automatic_debit_pst' | 'external_collector_cl_pst' | 'referenced_payment_mx_psp' | 'in_app_payment_mx_psp' | 'external_payment' | 'collections_ai_agent' | 'bolepix_br_onetime_pst' | 'bolepix_bank_br_onetime_psp' | 'contacted_end_customers' | 'vcc' | 'atoa_batch_mx_recurring_psp' | 'international_transfer_mx_pst' | 'rat' | 'batch_reconciliations' | 'account_payouts' | 'account_payables' | 'transfer_cl_psp_wallet' | 'wallet_mx_psp': Producto de cobro de Toku: la combinación de método de pago, país y modalidad con que se ejecuta un cobro. El nombre codifica esas tres cosas — por ejemplo `pix_br_recurring_psp` es Pix recurrente en Brasil bajo el modelo PSP, y `cards_cl_onetime_pst` es tarjetas de un solo pago en Chile bajo el modelo PST. Es el valor que decide con qué integración se ejecuta el cobro, así que buena parte de la lógica que depende del país se resuelve a partir de él. Qué productos tiene habilitados una organización es parte de su configuración: este listado es el universo posible, no lo que una organización determinada puede cobrar hoy. `cash`, `cash_mx_one_time_psp`, `cash_mx_one_time_pst` y `transfer_mx` están deprecados y solo sobreviven por compatibilidad con registros históricos.
  - `type` 'ENROLLMENT' | 'PAYMENT', required: Para qué se abre una CheckoutSession: `PAYMENT` para cobrar un monto en la sesión y `ENROLLMENT` para inscribir un medio de pago que quede disponible para cobros posteriores.
  - `url` string, required: Deeplink to the payment portal associated to the checkout session

## Other responses

- `400`: La fecha de expiración está en el pasado o mal formada, o falta configuración necesaria para armar la sesión.
- `401`: El Account indicado no pertenece a la organización.
- `404`: No existe un Account con el id indicado.
- `409`: La Checkout Session ya existe.
- `422`: Validation Error
- `500`: La organización no tiene una configuración de portal utilizable.

## Changes

- **2026-11-03** `a6ef070075b1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/trytoku/apis/toku-api/changes/checkout-sessions/post.md)

---

[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)
