Toku · Schema
CheckoutSessionRequestV2Decryption
Datos con los que se crea una Checkout Session.
FinTechPaymentsB2BAutomationChile
Properties
| Name | Type | Description |
|---|---|---|
| additional_metadata | object | Datos propios de la organización que se guardan junto a la Checkout Session. |
| additional_query_parameters | object | Parámetros que se agregan a la URL del checkout. |
| allow_partial_payment | object | Indica si el cliente final puede abonar solo una parte del total. |
| allowed_payment_options | array | 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 d |
| billing_data | object | Datos de facturación con los que se cobra o se inscribe el medio de pago. |
| communication_channel | object | Canal por el que se le envía al Customer el enlace de pago: correo (`mail`), SMS (`sms`) o WhatsApp (`wsp`). Cada uno exige su dato de contacto en `customer_data`: `mail` necesita `mail`, y `sms` y `w |
| customer_data | object | Datos con los que se busca o se crea el Customer de la operación. |
| expiration_datetime | object | 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 |
| external_id | object | Identificador que entrega la organización para reconocer después la operación. |
| flow_name | object | Flow con el que se crea la Checkout Session. |
| form_information | object | Información no sensible con la que el cliente final completó el formulario. |
| id_checkout | object | 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 | object | Plantilla con la que se le envía al Customer el mensaje con el enlace de pago. Debe existir. |
| invoice_data | object | Datos de la deuda que se crea junto con la Checkout Session. |
| mode | object | Qué operación completa el cliente final en la sesión. Se fija al crearla y define qué datos exige y qué deja hecho al completarse. `PAYMENT` cobra deudas o un monto puntual y termina en un pago, `ENRO |
| payment_options_configuration | object | Configuración con la que se muestra y procesa cada medio de pago del checkout. |
| price_change | object | Ajuste de precio que se aplica solo a esta Checkout Session, disponible en sesiones SaaS de pago único. |
| redirection_data | object | URLs a las que se redirige al cliente final al terminar la operación. |
| skip_message_trigger | object | Indica si se omite el envío del enlace de pago al Customer. |
| unique_external_id | object | 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. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/toku/json-schema/toku-checkout-session-request-v2-decryption-schema.json",
"title": "CheckoutSessionRequestV2Decryption",
"description": "Datos con los que se crea una Checkout Session.",
"x-generated": "2026-10-29",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/toku-recursos-secundarios-api-openapi.yml#/components/schemas/CheckoutSessionRequestV2Decryption",
"properties": {
"additional_metadata": {
"anyOf": [
{
"additionalProperties": true,
"description": "Datos propios de la organización que se guardan junto a la Checkout Session.",
"type": "object"
},
{
"type": "null"
}
],
"description": "Datos propios de la organización que se guardan junto a la Checkout Session.",
"title": "Additional Metadata"
},
"additional_query_parameters": {
"anyOf": [
{
"$ref": "#/$defs/AdditionalQueryParametersRequest"
},
{
"type": "null"
}
],
"description": "Parámetros que se agregan a la URL del checkout.",
"title": "Additional Query Parameters"
},
"allow_partial_payment": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Indica si el cliente final puede abonar solo una parte del total.",
"title": "Allow Partial Payment"
},
"allowed_payment_options": {
"description": "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.",
"items": {
"$ref": "#/$defs/PaymentOptionFormType"
},
"type": "array"
},
"billing_data": {
"allOf": [
{
"$ref": "#/$defs/BillingDataRequestV2Decryption"
}
],
"description": "Datos de facturación con los que se cobra o se inscribe el medio de pago.",
"title": "Billing Data"
},
"communication_channel": {
"anyOf": [
{
"$ref": "#/$defs/CommunicationEngineStrictChannel"
},
{
"type": "null"
}
],
"description": "Canal por el que se le envía al Customer el enlace de pago: correo (`mail`), SMS (`sms`) o WhatsApp (`wsp`). Cada uno exige su dato de contacto en `customer_data`: `mail` necesita `mail`, y `sms` y `wsp` necesitan `phone_number`. Si falta el dato del canal elegido, la creación se rechaza. Es excluyente con `id_template`."
},
"customer_data": {
"anyOf": [
{
"$ref": "#/$defs/CustomerDataRequest"
},
{
"type": "null"
}
],
"description": "Datos con los que se busca o se crea el Customer de la operación.",
"title": "Customer Data"
},
"expiration_datetime": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "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.",
"title": "Expiration Datetime"
},
"external_id": {
"anyOf": [
{
"maxLength": 128,
"type": "string"
},
{
"type": "null"
}
],
"description": "Identificador que entrega la organización para reconocer después la operación.",
"title": "External Id"
},
"flow_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Flow con el que se crea la Checkout Session.",
"title": "Flow Name"
},
"form_information": {
"anyOf": [
{
"additionalProperties": true,
"description": "Información no sensible con la que el cliente final completó el formulario.",
"type": "object"
},
{
"type": "null"
}
],
"description": "Información no sensible con la que el cliente final completó el formulario.",
"title": "Form Information"
},
"id_checkout": {
"anyOf": [
{
"format": "encrypted-id",
"type": "string"
},
{
"type": "null"
}
],
"description": "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.",
"title": "Id Checkout"
},
"id_template": {
"anyOf": [
{
"format": "encrypted-id",
"type": "string"
},
{
"type": "null"
}
],
"description": "Plantilla con la que se le envía al Customer el mensaje con el enlace de pago. Debe existir.",
"title": "Id Template"
},
"invoice_data": {
"anyOf": [
{
"$ref": "#/$defs/InvoiceDataRequest"
},
{
"type": "null"
}
],
"description": "Datos de la deuda que se crea junto con la Checkout Session.",
"title": "Invoice Data"
},
"mode": {
"allOf": [
{
"$ref": "#/$defs/CheckoutSessionMode"
}
],
"description": "Qué operación completa el cliente final en la sesión. Se fija al crearla y define qué datos exige y qué deja hecho al completarse. `PAYMENT` cobra deudas o un monto puntual y termina en un pago, `ENROLLMENT` inscribe un medio de pago automático para cobrarle después, y `SAVE_PAYMENT_INSTRUMENT` solo registra una cuenta bancaria del Customer, sin cobrar ni inscribir un medio de pago, y es el único modo que no lleva frecuencia de pago."
},
"payment_options_configuration": {
"anyOf": [
{
"$ref": "#/$defs/PaymentOptionsConfigurationRequest"
},
{
"type": "null"
}
],
"description": "Configuración con la que se muestra y procesa cada medio de pago del checkout.",
"title": "Payment Options Configuration"
},
"price_change": {
"anyOf": [
{
"$ref": "#/$defs/PriceChangeRequest"
},
{
"type": "null"
}
],
"description": "Ajuste de precio que se aplica solo a esta Checkout Session, disponible en sesiones SaaS de pago único.",
"title": "Price Change"
},
"redirection_data": {
"anyOf": [
{
"$ref": "#/$defs/RedirectionData"
},
{
"type": "null"
}
],
"description": "URLs a las que se redirige al cliente final al terminar la operación.",
"title": "Redirection Data"
},
"skip_message_trigger": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Indica si se omite el envío del enlace de pago al Customer.",
"title": "Skip Message Trigger"
},
"unique_external_id": {
"anyOf": [
{
"maxLength": 128,
"type": "string"
},
{
"type": "null"
}
],
"description": "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.",
"title": "Unique External Id"
}
},
"required": [
"billing_data",
"mode"
],
"type": "object",
"$defs": {
"AdditionalQueryParametersRequest": {
"description": "Datos con los que se agregan parámetros adicionales a la Checkout Session.",
"properties": {
"access_source": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Access Source"
},
"redirection": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Redirection"
}
},
"title": "AdditionalQueryParametersRequest",
"type": "object"
},
"BillingDataRequestV2Decryption": {
"description": "Datos de facturación de la solicitud.",
"properties": {
"amount": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Monto que se cobra en la Checkout Session.",
"title": "Amount"
},
"currency": {
"anyOf": [
{
"$ref": "#/$defs/CurrencyIso"
},
{
"type": "null"
}
],
"description": "Moneda en la que se expresan los montos de la operación."
},
"id_account": {
"anyOf": [
{
"format": "encrypted-id",
"type": "string"
},
{
"type": "null"
}
],
"description": "Identificador de la Account.",
"title": "Id Account"
},
"id_customer": {
"anyOf": [
{
"format": "encrypted-id",
"type": "string"
},
{
"type": "null"
}
],
"description": "Identificador del Customer.",
"title": "Id Customer"
},
"id_subscription": {
"anyOf": [
{
"format": "encrypted-id",
"type": "string"
},
{
"type": "null"
}
],
"description": "Identificador de la Subscription. Se conserva por compatibilidad: para inscribir varias se usa `ids_subscription`.",
"title": "Id Subscription"
},
"ids_invoice": {
"anyOf": [
{
"items": {
"format": "encrypted-id",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Identificadores de las deudas que se cobran en la Checkout Session.",
"title": "Ids Invoice"
},
"ids_subscription": {
"anyOf": [
{
"items": {
"format": "encrypted-id",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Identificadores de las Subscriptions cuando la inscripción cubre varias. Se mantiene consistente con el campo singular id_subscription.",
"title": "Ids Subscription"
}
},
"title": "BillingDataRequestV2Decryption",
"type": "object"
},
"CheckoutSessionMode": {
"description": "Modo de una Checkout Session.",
"enum": [
"ENROLLMENT",
"PAYMENT",
"SAVE_PAYMENT_INSTRUMENT"
],
"title": "CheckoutSessionMode",
"type": "string"
},
"CommunicationEngineStrictChannel": {
"description": "Canal del motor de comunicaciones.",
"enum": [
"mail",
"sms",
"wsp"
],
"title": "CommunicationEngineStrictChannel",
"type": "string"
},
"CurrencyIso": {
"description": "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.",
"enum": [
"CLP",
"CLF",
"MXN",
"BRL",
"USD"
],
"title": "CurrencyIso",
"type": "string"
},
"CustomerDataRequest": {
"description": "Datos con los que se busca o se crea el Customer de la Checkout Session.",
"properties": {
"external_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "External Id"
},
"government_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Government Id"
},
"mail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Mail"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Name"
},
"phone_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Phone Number"
}
},
"title": "CustomerDataRequest",
"type": "object"
},
"InvoiceDataRequest": {
"description": "Datos con los que se crea la Invoice de la Checkout Session.",
"properties": {
"amount": {
"description": "Monto total de la deuda que se cobra en la sesión.",
"title": "Amount",
"type": "number"
},
"currency_code": {
"allOf": [
{
"$ref": "#/$defs/CurrencyIso"
}
],
"description": "Moneda en la que está expresado el monto de la deuda."
},
"disable_automatic_payment": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Indica si la deuda queda excluida de los cobros automáticos, de modo que solo se pague desde este checkout.",
"title": "Disable Automatic Payment"
},
"due_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Due Date"
},
"expiration_action": {
"anyOf": [
{
"$ref": "#/$defs/InvoiceExpirationAction"
},
{
"type": "null"
}
],
"description": "Qué se hace con la deuda cuando llega su fecha de expiración."
},
"expiration_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Fecha en la que la deuda expira, en formato ISO 8601.",
"title": "Expiration Date"
},
"invoice_external_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Identificador de la deuda en los sistemas de la organización, para poder conciliarla.",
"title": "Invoice External Id"
},
"max_collection_attempts": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Cantidad máxima de intentos de cobro automático de la deuda.",
"title": "Max Collection Attempts"
},
"metadata": {
"anyOf": [
{
"additionalProperties": true,
"description": "Datos propios de la organización que se guardan junto a la deuda y no afectan el cobro.",
"type": "object"
},
{
"type": "null"
}
],
"description": "Datos propios de la organización que se guardan junto a la deuda y no afectan el cobro.",
"title": "Metadata"
},
"product_id": {
"description": "Identificador del producto o servicio que se está cobrando, definido por la organización.",
"title": "Product Id",
"type": "string"
},
"will_expire": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Indica si la deuda expira al llegar su fecha de expiración.",
"title": "Will Expire"
}
},
"required": [
"product_id",
"amount",
"currency_code"
],
"title": "InvoiceDataRequest",
"type": "object"
},
"InvoiceExpirationAction": {
"description": "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`.",
"enum": [
"EXPIRE",
"VOID",
"DELETE"
],
"title": "InvoiceExpirationAction",
"type": "string"
},
"PacConfigurationRequest": {
"description": "Configuración del medio de pago pac.",
"properties": {
"mandate_id": {
"description": "Identificador del mandato de PAC asociado a la inscripción.",
"title": "Mandate Id",
"type": "string"
}
},
"required": [
"mandate_id"
],
"title": "PacConfigurationRequest",
"type": "object"
},
"PaymentOptionFormType": {
"description": "A checkout button: every toku product of one form type renders as a single payment option.",
"enum": [
"external_collector_cl_pst",
"boleto",
"card",
"account_mx",
"cash_mx",
"codi",
"direct_debit_cl",
"pac_inscription",
"pix_banking",
"pix_openfinance_onetime",
"pix_openfinance_recurring",
"transbank_oneclick",
"transbank_webpay_plus",
"transfer_cl",
"transfer_mx",
"pix_banking_automatic",
"wallet_mx",
"wallet_mx_psp",
"pos_cl"
],
"title": "PaymentOptionFormType",
"type": "string"
},
"PaymentOptionsConfigurationRequest": {
"description": "Configuración de los medios de pago.",
"properties": {
"pac": {
"anyOf": [
{
"$ref": "#/$defs/PacConfigurationRequest"
},
{
"type": "null"
}
]
},
"transfer_cl": {
"anyOf": [
{
"$ref": "#/$defs/TransferClConfigurationRequest"
},
{
"type": "null"
}
]
}
},
"title": "PaymentOptionsConfigurationRequest",
"type": "object"
},
"PriceChangeRequest": {
"description": "Ajuste de precio con alcance a esta Checkout Session que se aplica al crearla. El monto es con signo y se guarda tal cual.\n\nSolo 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.",
"properties": {
"amount": {
"description": "Monto del ajuste: positivo aumenta el total a pagar y negativo lo reduce.",
"title": "Amount",
"type": "number"
},
"type": {
"allOf": [
{
"$ref": "#/$defs/PriceChangeType"
}
],
"description": "Tipo de ajuste de precio: monto fijo o porcentaje."
}
},
"required": [
"type",
"amount"
],
"title": "PriceChangeRequest",
"type": "object"
},
"PriceChangeType": {
"description": "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.",
"enum": [
"percentage",
"flat",
"flat_uf"
],
"title": "PriceChangeType",
"type": "string"
},
"RedirectionData": {
"description": "Datos necesarios para crear una redirección.",
"properties": {
"activation_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "URL a la que se redirige al cliente final cuando queda inscrito el medio de pago.",
"title": "Activation Url"
},
"failure_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "URL a la que se redirige al cliente final cuando la operación falla.",
"title": "Failure Url"
},
"success_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "URL a la que se redirige al cliente final cuando la operación resulta exitosa.",
"title": "Success Url"
}
},
"title": "RedirectionData",
"type": "object"
},
"TransferClConfigurationRequest": {
"description": "Configuración del medio de pago transfer-cl.",
"properties": {
"available_institutions": {
"description": "Instituciones financieras desde las que el cliente final puede transferir.",
"items": {
"type": "string"
},
"title": "Available Institutions",
"type": "array"
}
},
"required": [
"available_institutions"
],
"title": "TransferClConfigurationRequest",
"type": "object"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/toku-checkout-session-request-v2-decryption"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.