---
title: "Create a Checkout Session"
method: POST
path: "/{country_iso}/checkout-sessions"
---

# Create a Checkout Session

`POST /{country_iso}/checkout-sessions`

Crea una Checkout Session

## Path parameters

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

## Headers

- `x-api-key` string, required

## Request body

- object
  - `redirection_data` object — Información para redirección
    - `success_url` string — Url de redirección en caso de éxito
    - `failure_url` string — Url de redirección en caso de fallo
    - `activation_url` string — Url de redirección para activación
  - `flow_name` string, required — Nombre del flow de checkout
  - `billing_data` object — Datos de facturación
    - `amount` number — Monto a cobrar
    - `currency` string — Moneda a utilizar en la operación
    - `id_customer` string — Identificador único del Customer
    - `id_subscription` string — Identificador único de la Subscription
    - `ids_invoice` string[] — Identificadores únicos de las Invoice (NO incluir si se enviará el campo invoice_data)
    - `id_account` string — Identificador único de la Account
  - `expiration_datetime` string — Fecha de expiración de la Checkout Session en formato ISO.
  - `external_id` string, required — Identificador único externo. Largo máximo de 128 caracteres
  - `mode` 'ENROLLMENT' | 'PAYMENT' | 'SAVE_PAYMENT_INSTRUMENT', required — Modo de la Checkout Session
  - `additional_query_parameters` object — Parametros adicionales para añadir en la url
    - `redirection` string — Identificador único de redirección
    - `access_source` string — Identificador de acceso
  - `form_information` object — Información obtenida del formulario
  - `customer_data` object — Información del Customer al que se le está creando la Checkout Session
    - `name` string — Nombre del Customer
    - `mail` string — Mail del Customer
    - `phone_number` string — Número de teléfono de Customer
    - `government_id` string — Identificado único nacional del Customer
    - `external_id` string — External id customizable por la organizacion
  - `payment_options_configuration` object — Configuraciones extra por formulario de pago o inscripción
    - `transfer_cl` object — Configuraciones de transferencias Chile
    - `card` object — Configuraciones de tarjetas
      - `installments_configuration` object — Configuracion de cuotas
        - `options` integer[] — Opciones diponibles
    - `pac` object — Configuraciones de inscripción PAC
      - `mandate_id` string — Id de mandato al cual inscribir el PAC
  - `communication_channel` 'mail' | 'sms' | 'wsp' — Sets the channel that the messaging will use for delivering the checkout url
  - `additional_metadata` object — Información adicional para asociar en las transacciones e inscripciones de metodos de pagos realizados con una Checkout Session.
    - `example_of_attribute` string
  - `allow_partial_payment` boolean — Señala si la Checkout Session puede habilitar abonos parciales.
  - `invoice_data` object — Permite crear una invoice al mismo tiempo que la checkout session (NO se puede incluir si se incluye billing_data.ids_invoice)
    - `product_id` string, required — Identificador interno del producto que genera la invoice. Puede ser un contrato o un número de propuesta.
    - `amount` number, required — Monto a cobrar en la moneda local
    - `currency_code` 'CLP' | 'CLF' | 'MXN' | 'BRL' | 'USD', required — Moneda a utilizar en la operación
    - `due_date` string — Fecha de expiración de la invoice, en formato YYYY-MM-DD. Si no se especifica será el mismo día que la creación de la deuda.
    - `metadata` string, json — Información adicional y específica a la deuda. Es tratada como texto y no debe superar los 256 caracteres. Debe estar configurada en Toku webapp antes de poder ser usada aquí.
    - `disable_automatic_payment` boolean — Desactiva la funcionalidad de pago automático aun cuando el customer tenga un método de pago automático asociado.
    - `invoice_external_id` string — Identificador único. Permite diferenciar dos deudas con igual fecha de expiración. Si no se manda se utiliza "product_id-due_date".
    - `max_collection_attempts` integer
    - `will_expire` boolean — Indica si una invoice debe expirar. Por defecto configura la expiration_action a EXPIRE y la expiration_date para la fecha de la due_date.
    - `expiration_action` 'VOID' | 'DELETE'
    - `expiration_date` string — Por defecto será la misma fecha que la due_date. Si se desea usar otra fecha específica esta debe ser después de la fecha de expiración y en formato YYYY-MM-DD 00:00:00
  - `id_template` string — ID publico de el template que se quiere enviar por mensajería si la secuencia de creación de checkout session existe y está activa.
  - `checkout_override` object
    - `onetime` object
      - `card_flow_config` object
        - `gateway_orchestration` object
          - `available_gateways` object[]
            - `gateway` string
            - `configuration` object
              - …
  - `price_change` object — Comisión o descuento a aplicar sobre el monto a cobrar. Solo puede especificar si existen invoices.
    - `type` 'percentage' | 'flat', required — Tipo de comisión o descuento. Si es percentage, se aplicará porcentual al monto. Si es flat, se aplicará un monto fijo
    - `amount` number, required — Monto a aplicar

## Response `200`

- object
  - `id` string, required — Identificador único de la Checkout Session
  - `billing_data` object
    - `amount` string — Monto de la Checkout Session
    - `currency` string — Moneda del monto
    - `ids_invoice` string[] — Identificadores únicos de las deudas
    - `id_subscription` string — Identificadores únicos de una subscripción
    - `payment_engine` string, required — Motor utilizado para el procesamiento del cobro o inscripción
    - `payment_frecuency` string, required — Frecuencia utilizada para el metodo de pago o inscripción
    - `account` object, required
      - `id` string, required — Identificador único de la Account
      - `name` string, required — Nombre de la Account
      - `is_main` boolean — Atributo que indica si la Account es la principal o no
    - `customer` object
      - `id` string — Identificador único del Customer
      - `name` string — Nombre de Customer
      - `email` string — Email del customer
      - `external_id` string — Identificador externo del Customer
      - `phone_number` string — Número de teléfono del Customer
      - `government_id` string — Identificador personal del Customer según su nacionalidad
  - `flow_name` string — Nombre del flow con el cual se creó la Checkout Session
  - `url` string — Url que dirige directamente a la sesión de pago
  - `state` 'open' | 'expired' | 'completed' — Estado de la Checkout Session
  - `id_organization` string — Identificador único de la organización
  - `expiration_datetime` string — Fecha y hora en formato ISO en la cual la Checkout Session expirará
  - `mode` 'PAYMENT' | 'ENROLLMENT' | 'SAVE_PAYMENT_INSTRUMENT' — Modo de la Checkout Session
  - `payment_options_configuration` object
    - `card` object
      - `name` object — installments_configuration
        - `options` integer[]
    - `transfer_cl` object
      - `available_institutions` string[]
  - `form_information` object
  - `external_id` string — Identificador entregado por la organización para poder identificar las transacciones o inscripciones realizadas con una Checkout Session.
  - `additional_query_parameters` string — Parámetros adicionales para agregar en la url de una Checkout Session.
  - `legacy_creation_parameters` string — Parámetros adicionales utilizados por antiguas checkout sessions.
  - `transactions` object
  - `payment_methods` object[]
  - `payment_instrument` object

## Other responses

- `400` — Bad Request
- `409` — Conflict
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/trytoku/apis/toku-api.md) · [All operations](https://skmtc.net/trytoku/apis/toku-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/trytoku/toku-api/versions/30699b13e0d0/schema)
