{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/toku/json-schema/toku-public-checkout-session-response-schema.json",
  "title": "PublicCheckoutSessionResponse",
  "description": "Sesión de pago que Toku aloja para que un cliente final pague una deuda o inscriba un medio de pago automático.\n\nLa organización la crea desde la API y Toku responde con la dirección a la que hay que llevar al cliente final, sea redirigiéndolo o incrustando el portal de pago en su propio sitio.\n\nLa sesión no exige un Customer identificado: quien tenga el enlace puede operar sobre ella.",
  "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/PublicCheckoutSessionResponse",
  "properties": {
    "allow_partial_payment": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "Indica si el cliente final puede abonar solo una parte del total en lugar de pagarlo completo.",
      "title": "Allow Partial Payment"
    },
    "available_payment_methods": {
      "description": "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.",
      "items": {
        "$ref": "#/$defs/AvailablePaymentMethod"
      },
      "readOnly": true,
      "title": "Available Payment Methods",
      "type": "array"
    },
    "available_saved_cards": {
      "description": "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.",
      "items": {
        "$ref": "#/$defs/AvailableSavedCard"
      },
      "readOnly": true,
      "title": "Available Saved Cards",
      "type": "array"
    },
    "available_saved_clabes": {
      "description": "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.",
      "items": {
        "$ref": "#/$defs/AvailableSavedClabe"
      },
      "readOnly": true,
      "title": "Available Saved Clabes",
      "type": "array"
    },
    "billing_data": {
      "description": "Información necesaria para cobrar una deuda o para inscribir un medio de pago: monto, moneda, deudas, Subscriptions, Customer y Account involucrados.",
      "oneOf": [
        {
          "$ref": "#/$defs/SaaSMultipleCustomersOnetimeDetailsResponse"
        },
        {
          "$ref": "#/$defs/SaaSOnetimeDetailsResponse"
        },
        {
          "$ref": "#/$defs/SaaSRecurringDetailsResponse"
        },
        {
          "$ref": "#/$defs/OnDemandOnetimeDetailsResponse"
        },
        {
          "$ref": "#/$defs/OnDemandRecurringDetailsResponse"
        },
        {
          "$ref": "#/$defs/SavePaymentInstrumentDetailsResponse"
        },
        {
          "$ref": "#/$defs/SaaSUnrestrictedAmountOnetimeDetailsResponse"
        }
      ],
      "title": "Billing Data"
    },
    "card_flow_config": {
      "anyOf": [
        {
          "additionalProperties": true,
          "description": "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.",
          "readOnly": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "description": "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.",
      "readOnly": true,
      "title": "Card Flow Config"
    },
    "checkout_config": {
      "anyOf": [
        {
          "$ref": "#/$defs/CheckoutPresentationConfig"
        },
        {
          "type": "null"
        }
      ],
      "description": "Ajustes de presentación del checkout para esta sesión. Es nulo cuando la sesión no tiene configuración de pago único. Solo de lectura. Toku lo resuelve en cada lectura a partir de la configuración de checkout de la organización.",
      "readOnly": true,
      "title": "Checkout Config"
    },
    "combine_active": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "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.",
      "readOnly": true,
      "title": "Combine Active"
    },
    "combine_enabled": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "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.",
      "readOnly": true,
      "title": "Combine Enabled"
    },
    "customer_pii_masked": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "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.",
      "readOnly": true,
      "title": "Customer Pii Masked"
    },
    "disable_oneclick_checkout": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "Indica si en esta Checkout Session se desactiva el pago con un medio ya guardado, aunque la organización lo tenga habilitado.",
      "title": "Disable Oneclick Checkout"
    },
    "expiration_datetime": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Fecha y hora, en formato ISO 8601, en la que la Checkout Session expira.",
      "title": "Expiration Datetime"
    },
    "external_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Identificador que entrega la organización para reconocer después los pagos o inscripciones hechos con esta Checkout Session.",
      "title": "External Id"
    },
    "flow_name": {
      "description": "Flow con el que se creó la Checkout Session.",
      "title": "Flow Name",
      "type": "string"
    },
    "id_checkout_session": {
      "description": "Identificador único de la Checkout Session. Solo de lectura. Toku lo genera al crear la sesión.",
      "readOnly": true,
      "title": "Id Checkout Session",
      "type": "string"
    },
    "invoice_data": {
      "anyOf": [
        {
          "$ref": "#/$defs/InvoiceData"
        },
        {
          "type": "null"
        }
      ],
      "description": "Datos de la deuda que se creó junto con la Checkout Session, cuando la sesión cobra una deuda nueva.",
      "title": "Invoice Data"
    },
    "is_receipt_redirection_disabled": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "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.",
      "readOnly": true,
      "title": "Is Receipt Redirection Disabled"
    },
    "mode": {
      "anyOf": [
        {
          "$ref": "#/$defs/CheckoutSessionMode"
        },
        {
          "type": "null"
        }
      ],
      "description": "Qué operación completa el cliente final en la sesión: `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."
    },
    "operation_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "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.",
      "readOnly": true,
      "title": "Operation Id"
    },
    "pac_inscription_config": {
      "anyOf": [
        {
          "$ref": "#/$defs/PacInscriptionPresentationConfig"
        },
        {
          "type": "null"
        }
      ],
      "description": "Configuración de la inscripción de PAC para esta sesión. Es nulo cuando la sesión no define exclusiones de instituciones. Solo de lectura. Toku la resuelve en cada lectura a partir de la configuración de checkout de la organización.",
      "readOnly": true,
      "title": "Pac Inscription Config"
    },
    "payment_options": {
      "description": "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ó.",
      "items": {
        "anyOf": [
          {
            "$ref": "#/$defs/InternalPaymentOption"
          },
          {
            "$ref": "#/$defs/ExternalPaymentOption"
          },
          {
            "$ref": "#/$defs/SyntheticPaymentOption"
          }
        ]
      },
      "readOnly": true,
      "title": "Payment Options",
      "type": "array"
    },
    "payment_options_configuration": {
      "anyOf": [
        {
          "$ref": "#/$defs/PaymentOptionsConfigurationResponse"
        },
        {
          "type": "null"
        }
      ],
      "description": "Configuración con la que se muestra y procesa cada medio de pago del checkout.",
      "title": "Payment Options Configuration"
    },
    "redirection": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "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.",
      "readOnly": true,
      "title": "Redirection"
    },
    "selected_saved_card": {
      "anyOf": [
        {
          "$ref": "#/$defs/AvailableSavedCard"
        },
        {
          "type": "null"
        }
      ],
      "description": "Tarjeta guardada que queda preseleccionada, de modo que el cliente final no deba elegirla. Solo de lectura. Toku la resuelve en cada lectura a partir de `payment_options_configuration.card.selected_card`, que es el campo que sí se envía al crear la sesión. Es nula si esa tarjeta dejó de estar vigente o si la organización no tiene habilitado el pago con un medio ya guardado.",
      "readOnly": true,
      "title": "Selected Saved Card"
    },
    "session_price_change_origin": {
      "anyOf": [
        {
          "$ref": "#/$defs/PriceChangeOrigin"
        },
        {
          "type": "null"
        }
      ],
      "description": "Origen del ajuste de precio de la sesión: `adjustment_document` cuando se desprende de un saldo a favor del Customer y `specified_at_creation` cuando se envió en el cuerpo con el que se creó la sesión. Los dos son excluyentes. Es nulo cuando no hay ajustes. Solo de lectura. Toku lo determina junto con `session_price_changes_total`.",
      "readOnly": true
    },
    "session_price_changes_total": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "description": "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.",
      "readOnly": true,
      "title": "Session Price Changes Total"
    },
    "state": {
      "description": "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.",
      "readOnly": true,
      "title": "State",
      "type": "string"
    },
    "url": {
      "description": "Dirección que se le entrega al cliente final para pagar o inscribir el medio de pago.",
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "payment_options",
    "billing_data",
    "flow_name",
    "id_checkout_session",
    "state",
    "url"
  ],
  "type": "object",
  "$defs": {
    "AccountDetailsResponse": {
      "description": "Datos de la Account para la que se creó la Checkout Session.",
      "properties": {
        "id_account": {
          "description": "Identificador de la Account.",
          "format": "encrypted-id",
          "title": "Id Account",
          "type": "string"
        },
        "is_direct_debit": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "Indica si la Account cobra por domiciliación bancaria.",
          "title": "Is Direct Debit"
        },
        "is_main": {
          "description": "Indica si es la Account principal de la organización.",
          "title": "Is Main",
          "type": "boolean"
        },
        "name": {
          "description": "Nombre de la Account.",
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "name",
        "is_main",
        "id_account"
      ],
      "title": "AccountDetailsResponse",
      "type": "object"
    },
    "AccountMXFormSchema": {
      "description": "Formulario de cuenta MX.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "account_mx",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "AccountMXFormSchema",
      "type": "object"
    },
    "AccountTypeCL": {
      "description": "Account types used in payout_data_cl",
      "enum": [
        "checking_account",
        "rut_account",
        "sight_account"
      ],
      "title": "AccountTypeCL",
      "type": "string"
    },
    "ApplePayConfig": {
      "description": "Disponibilidad de Apple Pay para el medio de pago con tarjeta, resuelta por Toku al crear la sesión.",
      "properties": {
        "enabled": {
          "default": false,
          "title": "Enabled",
          "type": "boolean"
        },
        "partner_internal_merchant_identifier": {
          "title": "Partner Internal Merchant Identifier",
          "type": "string"
        },
        "supported_countries": {
          "items": {
            "type": "string"
          },
          "title": "Supported Countries",
          "type": "array"
        },
        "supported_networks": {
          "default": [],
          "items": {
            "type": "string"
          },
          "title": "Supported Networks",
          "type": "array"
        },
        "supported_types": {
          "items": {
            "type": "string"
          },
          "title": "Supported Types",
          "type": "array"
        },
        "token_notification_url": {
          "title": "Token Notification Url",
          "type": "string"
        }
      },
      "title": "ApplePayConfig",
      "type": "object"
    },
    "AvailablePaymentMethod": {
      "description": "Medio de pago vigente del Customer que se puede asociar al producto de una sesión de inscripción, sin volver a pedirle los datos ni generar un cobro.",
      "properties": {
        "brand": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Marca de la tarjeta o red del medio de pago, por ejemplo `visa`.",
          "title": "Brand"
        },
        "cardholder_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Nombre del titular de la tarjeta o cuenta.",
          "title": "Cardholder Name"
        },
        "id_payment_method": {
          "description": "Identificador del medio de pago.",
          "format": "encrypted-id",
          "title": "Id Payment Method",
          "type": "string"
        },
        "institution_name": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Institución financiera del medio de pago, cuando corresponde.",
          "title": "Institution Name"
        },
        "last_4_digits": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Últimos 4 dígitos de la tarjeta o cuenta, para que el cliente la reconozca.",
          "title": "Last 4 Digits"
        },
        "type": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Tipo de medio de pago, por ejemplo tarjeta o cuenta bancaria.",
          "title": "Type"
        }
      },
      "required": [
        "id_payment_method"
      ],
      "title": "AvailablePaymentMethod",
      "type": "object"
    },
    "AvailableSavedCard": {
      "description": "Tarjeta que el Customer ya tiene guardada y puede reutilizar para pagar sin volver a ingresarla.",
      "properties": {
        "bank_country": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "País del banco emisor, para resolver el recargo de tarjeta internacional.",
          "title": "Bank Country"
        },
        "card_brand": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Marca de la tarjeta, por ejemplo `visa` o `mastercard`.",
          "title": "Card Brand"
        },
        "card_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Tipo de tarjeta (`credit`, `debit`, `prepaid`), para resolver el recargo que corresponde cobrar.",
          "title": "Card Type"
        },
        "cardholder_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Nombre del titular registrado en la tarjeta.",
          "title": "Cardholder Name"
        },
        "last_4_digits": {
          "description": "Últimos 4 dígitos de la tarjeta, para que el cliente la reconozca.",
          "title": "Last 4 Digits",
          "type": "string"
        },
        "payment_instrument_card_id": {
          "description": "Identificador de la tarjeta guardada.",
          "format": "encrypted-id",
          "title": "Payment Instrument Card Id",
          "type": "string"
        }
      },
      "required": [
        "payment_instrument_card_id",
        "last_4_digits"
      ],
      "title": "AvailableSavedCard",
      "type": "object"
    },
    "AvailableSavedClabe": {
      "description": "Cuenta CLABE que el Customer ya tiene guardada y puede reutilizar para pagar sin volver a ingresarla.",
      "properties": {
        "bank_account_type": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Tipo de cuenta bancaria, por ejemplo `CUENTA_CLABE`.",
          "title": "Bank Account Type"
        },
        "bank_id": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Código de la institución financiera, por ejemplo `044`.",
          "title": "Bank Id"
        },
        "bank_name": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Nombre de la institución financiera de la cuenta.",
          "title": "Bank Name"
        },
        "id_payment_instrument": {
          "description": "Identificador de la cuenta guardada.",
          "format": "encrypted-id",
          "title": "Id Payment Instrument",
          "type": "string"
        },
        "last_4_digits": {
          "description": "Últimos 4 dígitos de la cuenta CLABE, para que el cliente la reconozca.",
          "title": "Last 4 Digits",
          "type": "string"
        },
        "last_used_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Fecha y hora, en formato ISO 8601, en que la cuenta se usó por última vez.",
          "title": "Last Used At"
        },
        "source": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Producto de Toku con el que se guardó la cuenta.",
          "title": "Source"
        },
        "status": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Estado de la cuenta guardada, que define si se puede cobrar con ella.",
          "title": "Status"
        }
      },
      "required": [
        "id_payment_instrument",
        "last_4_digits"
      ],
      "title": "AvailableSavedClabe",
      "type": "object"
    },
    "BoletoFormSchema": {
      "description": "Formulario de Boleto.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "boleto",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "BoletoFormSchema",
      "type": "object"
    },
    "CardConfigurationResponse": {
      "description": "Configuración con la que se muestra y se procesa el pago con tarjeta en el checkout.",
      "properties": {
        "combine_payment_methods": {
          "anyOf": [
            {
              "$ref": "#/$defs/CombinePaymentMethodsConfigurationResponse"
            },
            {
              "type": "null"
            }
          ]
        },
        "enable_toggle_switch": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "Indica si el checkout ofrece al cliente final guardar la tarjeta para próximos pagos.",
          "title": "Enable Toggle Switch"
        },
        "external_processors": {
          "anyOf": [
            {
              "$ref": "#/$defs/ExternalProcessorsEnabled"
            },
            {
              "type": "null"
            }
          ],
          "description": "Billeteras externas habilitadas para pagar con tarjeta en esta sesión.",
          "title": "External Processors"
        },
        "force_3ds": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "Indica si el cobro exige siempre la autenticación 3-D Secure del emisor de la tarjeta.",
          "title": "Force 3Ds"
        },
        "id_orchestration_tree": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "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.",
          "title": "Id Orchestration Tree"
        },
        "installments_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "description": "Reglas de cuotas ofrecidas al cliente final, como el máximo de cuotas y el monto mínimo por cuota.",
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "description": "Reglas de cuotas ofrecidas al cliente final, como el máximo de cuotas y el monto mínimo por cuota.",
          "title": "Installments Configuration"
        },
        "selected_card": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Tarjeta ya guardada que el checkout deja preseleccionada.",
          "title": "Selected Card"
        }
      },
      "title": "CardConfigurationResponse",
      "type": "object"
    },
    "CardFormSchema": {
      "description": "Formulario de tarjeta.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "card",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "CardFormSchema",
      "type": "object"
    },
    "CashMXFormSchema": {
      "description": "Formulario de efectivo MX.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "cash_mx",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "CashMXFormSchema",
      "type": "object"
    },
    "CheckoutApi_TokuProductConfiguration": {
      "description": "Configuración para procesar el pago con productos de Toku.",
      "properties": {
        "main_toku_product": {
          "description": "Producto de Toku principal con el que se procesa el pago",
          "title": "Main Toku Product",
          "type": "string"
        },
        "payment_processing_type": {
          "const": "toku_product",
          "title": "Payment Processing Type",
          "type": "string"
        },
        "price_changes": {
          "anyOf": [
            {
              "additionalProperties": {
                "items": {
                  "$ref": "#/$defs/PriceChangeDTO"
                },
                "type": "array"
              },
              "description": "Ajustes de precio opcionales para los productos de Toku",
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "description": "Ajustes de precio opcionales para los productos de Toku",
          "title": "Price Changes"
        },
        "toku_products": {
          "description": "Lista de productos de Toku con los que se procesa el pago",
          "items": {
            "type": "string"
          },
          "title": "Toku Products",
          "type": "array"
        }
      },
      "required": [
        "payment_processing_type",
        "main_toku_product"
      ],
      "title": "CheckoutApi_TokuProductConfiguration",
      "type": "object"
    },
    "CheckoutPresentationConfig": {
      "description": "Ajustes de presentación del checkout para una Checkout Session.\n\nCada campo es nulo cuando la configuración de la sesión no lo define.",
      "properties": {
        "disable_back_button_deep_link": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "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.",
          "title": "Disable Back Button Deep Link"
        },
        "go_back_to_commerce_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "URL del comercio a la que vuelve el cliente al salir del checkout.",
          "title": "Go Back To Commerce Url"
        },
        "show_checkout_invoice_breakdown": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "Indica si el detalle de la deuda se muestra desglosado por ítem.",
          "title": "Show Checkout Invoice Breakdown"
        },
        "show_pci_compliance_badge": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "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.",
          "title": "Show Pci Compliance Badge"
        },
        "show_session_countdown": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "Indica si el checkout muestra la cuenta regresiva con el tiempo que le queda a la Checkout Session antes de expirar. ",
          "title": "Show Session Countdown"
        },
        "show_wallet_discount": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "Indica si se muestra el descuento por pagar con billetera.",
          "title": "Show Wallet Discount"
        }
      },
      "title": "CheckoutPresentationConfig",
      "type": "object"
    },
    "CheckoutSessionMode": {
      "description": "Modo de una Checkout Session.",
      "enum": [
        "ENROLLMENT",
        "PAYMENT",
        "SAVE_PAYMENT_INSTRUMENT"
      ],
      "title": "CheckoutSessionMode",
      "type": "string"
    },
    "CoDiFormSchema": {
      "description": "Formulario de CoDi.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "codi",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "CoDiFormSchema",
      "type": "object"
    },
    "CombinePaymentMethodsConfigurationResponse": {
      "description": "Reglas con las que el cliente final puede pagar el total repartido en varios pagos.",
      "properties": {
        "enabled": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "Indica si esta Checkout Session admite pagar el total en varios pagos.",
          "title": "Enabled"
        },
        "max_payments": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Cantidad máxima de pagos con los que se puede cubrir el total.",
          "title": "Max Payments"
        },
        "min_amount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Monto mínimo de cada pago, en la unidad mínima de la moneda de la sesión (por ejemplo, centavos).",
          "title": "Min Amount"
        },
        "ttl_refund_minutes": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Minutos que se esperan desde el primer pago antes de devolver lo ya cobrado si la combinación no se completa.",
          "title": "Ttl Refund Minutes"
        }
      },
      "title": "CombinePaymentMethodsConfigurationResponse",
      "type": "object"
    },
    "CurrencyDetails": {
      "description": "Moneda en la que se expresan los montos de la operación.",
      "properties": {
        "code": {
          "description": "Código de la moneda, por ejemplo `CLP` o `MXN`.",
          "title": "Code",
          "type": "string"
        },
        "decimal_separator": {
          "description": "Separador decimal con el que se muestran los montos.",
          "minLength": 0,
          "title": "Decimal Separator",
          "type": "string"
        },
        "decimals": {
          "description": "Cantidad de decimales con la que se expresan los montos de la moneda.",
          "title": "Decimals",
          "type": "integer"
        },
        "id_currency": {
          "description": "Identificador de la moneda.",
          "format": "encrypted-id",
          "title": "Id Currency",
          "type": "string"
        },
        "name": {
          "description": "Nombre de la moneda.",
          "title": "Name",
          "type": "string"
        },
        "symbol": {
          "description": "Símbolo con el que se muestran los montos de la moneda.",
          "title": "Symbol",
          "type": "string"
        },
        "thousands_separator": {
          "description": "Separador de miles con el que se muestran los montos.",
          "minLength": 0,
          "title": "Thousands Separator",
          "type": "string"
        }
      },
      "required": [
        "id_currency",
        "name",
        "code",
        "symbol",
        "decimals",
        "decimal_separator",
        "thousands_separator"
      ],
      "title": "CurrencyDetails",
      "type": "object"
    },
    "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"
    },
    "CustomerDetailsResponse": {
      "description": "Datos del Customer que realiza la operación.",
      "properties": {
        "external_id": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Identificador del Customer en los sistemas de la organización.",
          "title": "External Id"
        },
        "government_id": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Documento de identidad del Customer.",
          "title": "Government Id"
        },
        "id_customer": {
          "description": "Identificador del Customer.",
          "format": "encrypted-id",
          "title": "Id Customer",
          "type": "string"
        },
        "mail": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Correo electrónico del Customer.",
          "title": "Mail"
        },
        "name": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Nombre del Customer.",
          "title": "Name"
        },
        "phone_number": {
          "anyOf": [
            {
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Número de teléfono del Customer.",
          "title": "Phone Number"
        }
      },
      "required": [
        "id_customer"
      ],
      "title": "CustomerDetailsResponse",
      "type": "object"
    },
    "DirectDebitCLFormSchema": {
      "description": "Formulario de débito directo CL.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "direct_debit_cl",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "DirectDebitCLFormSchema",
      "type": "object"
    },
    "ExternalCollectorsCLFormSchema": {
      "description": "Formulario de recaudadores externos CL.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "external_collector_cl_pst",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "ExternalCollectorsCLFormSchema",
      "type": "object"
    },
    "ExternalPaymentOption": {
      "description": "Medio de pago que se completa fuera del checkout, en un sitio al que se redirige al cliente final.",
      "properties": {
        "display": {
          "description": "Cómo se presenta el medio de pago: a la vista o dentro de una sección desplegable.",
          "enum": [
            "main_view",
            "expandable"
          ],
          "title": "Display",
          "type": "string"
        },
        "label": {
          "description": "Texto con el que se identifica el medio de pago en el checkout.",
          "title": "Label",
          "type": "string"
        },
        "link": {
          "description": "Enlace externo al que se redirige al cliente final para pagar.",
          "title": "Link",
          "type": "string"
        },
        "payment_option_type": {
          "const": "external",
          "description": "Tipo de medio de pago, que determina cómo se completa el pago.",
          "title": "Payment Option Type",
          "type": "string"
        },
        "priority": {
          "description": "Orden en que se muestra el medio de pago frente a los demás.",
          "title": "Priority",
          "type": "integer"
        }
      },
      "required": [
        "payment_option_type",
        "display",
        "priority",
        "link",
        "label"
      ],
      "title": "ExternalPaymentOption",
      "type": "object"
    },
    "ExternalProcessorsEnabled": {
      "description": "Procesadores externos de tarjeta habilitados para la sesión.",
      "properties": {
        "apple_pay": {
          "$ref": "#/$defs/ApplePayConfig"
        },
        "google_pay": {
          "$ref": "#/$defs/GooglePayConfig"
        }
      },
      "title": "ExternalProcessorsEnabled",
      "type": "object"
    },
    "GooglePayConfig": {
      "description": "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``.",
      "properties": {
        "allow_credit_cards": {
          "default": true,
          "title": "Allow Credit Cards",
          "type": "boolean"
        },
        "allow_prepaid_cards": {
          "default": true,
          "title": "Allow Prepaid Cards",
          "type": "boolean"
        },
        "allowed_card_networks": {
          "items": {
            "type": "string"
          },
          "title": "Allowed Card Networks",
          "type": "array"
        },
        "auth_jwt": {
          "description": "JWT firmado por Toku que autoriza el botón de Google Pay en `merchant_origin` ",
          "title": "Auth Jwt",
          "type": "string"
        },
        "blocked_issuer_country_codes": {
          "items": {
            "type": "string"
          },
          "title": "Blocked Issuer Country Codes",
          "type": "array"
        },
        "enabled": {
          "default": false,
          "title": "Enabled",
          "type": "boolean"
        },
        "gateway": {
          "default": "toku",
          "title": "Gateway",
          "type": "string"
        },
        "gateway_merchant_id": {
          "default": "toku",
          "title": "Gateway Merchant Id",
          "type": "string"
        },
        "merchant_id": {
          "title": "Merchant Id",
          "type": "string"
        },
        "merchant_origin": {
          "description": "FQDN desde el que el checkout invoca la API de Google Pay ",
          "title": "Merchant Origin",
          "type": "string"
        },
        "tokenized_processing_available": {
          "default": false,
          "title": "Tokenized Processing Available",
          "type": "boolean"
        }
      },
      "title": "GooglePayConfig",
      "type": "object"
    },
    "InternalPaymentOption": {
      "description": "Medio de pago que el cliente final completa dentro del checkout de Toku.",
      "properties": {
        "display": {
          "description": "Cómo se presenta el medio de pago: a la vista o dentro de una sección desplegable.",
          "enum": [
            "main_view",
            "expandable"
          ],
          "title": "Display",
          "type": "string"
        },
        "form": {
          "oneOf": [
            {
              "$ref": "#/$defs/CardFormSchema"
            },
            {
              "$ref": "#/$defs/AccountMXFormSchema"
            },
            {
              "$ref": "#/$defs/TransferCLFormSchema"
            },
            {
              "$ref": "#/$defs/TransferMXFormSchema"
            },
            {
              "$ref": "#/$defs/CashMXFormSchema"
            },
            {
              "$ref": "#/$defs/CoDiFormSchema"
            },
            {
              "$ref": "#/$defs/BoletoFormSchema"
            },
            {
              "$ref": "#/$defs/DirectDebitCLFormSchema"
            },
            {
              "$ref": "#/$defs/PacInscriptionFormSchema"
            },
            {
              "$ref": "#/$defs/PixBankingFormSchema"
            },
            {
              "$ref": "#/$defs/PixBankingAutomaticFormSchema"
            },
            {
              "$ref": "#/$defs/PixOpenfinanceOnetimeFormSchema"
            },
            {
              "$ref": "#/$defs/PixOpenfinanceRecurringFormSchema"
            },
            {
              "$ref": "#/$defs/TransbankWebpayPlusFormSchema"
            },
            {
              "$ref": "#/$defs/TransbankOneclickFormSchema"
            },
            {
              "$ref": "#/$defs/WalletMXFormSchema"
            },
            {
              "$ref": "#/$defs/WalletMXPSPFormSchema"
            },
            {
              "$ref": "#/$defs/ExternalCollectorsCLFormSchema"
            },
            {
              "$ref": "#/$defs/PosCLFormSchema"
            }
          ],
          "title": "Form"
        },
        "payment_option_type": {
          "const": "internal",
          "description": "Tipo de medio de pago, que determina cómo se completa el pago.",
          "title": "Payment Option Type",
          "type": "string"
        },
        "priority": {
          "description": "Orden en que se muestra el medio de pago frente a los demás.",
          "title": "Priority",
          "type": "integer"
        }
      },
      "required": [
        "payment_option_type",
        "display",
        "priority",
        "form"
      ],
      "title": "InternalPaymentOption",
      "type": "object"
    },
    "InvoiceData": {
      "description": "Datos de la deuda que se crea junto con la Checkout Session, incluida su fecha de vencimiento.",
      "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": {
          "default": true,
          "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",
          "type": "boolean"
        },
        "due_date": {
          "description": "Fecha de vencimiento de la deuda, en formato ISO 8601.",
          "title": "Due Date",
          "type": "string"
        },
        "expiration_action": {
          "allOf": [
            {
              "$ref": "#/$defs/InvoiceExpirationAction"
            }
          ],
          "description": "Qué se hace con la deuda cuando llega su fecha de expiración."
        },
        "expiration_date": {
          "description": "Fecha en la que la deuda expira, en formato ISO 8601.",
          "title": "Expiration Date",
          "type": "string"
        },
        "invoice_external_id": {
          "description": "Identificador de la deuda en los sistemas de la organización, para poder conciliarla.",
          "title": "Invoice External Id",
          "type": "string"
        },
        "max_collection_attempts": {
          "description": "Cantidad máxima de intentos de cobro automático de la deuda.",
          "title": "Max Collection Attempts",
          "type": "integer"
        },
        "metadata": {
          "description": "Datos propios de la organización que se guardan junto a la deuda y no afectan el cobro.",
          "title": "Metadata",
          "type": "object"
        },
        "product_id": {
          "description": "Identificador del producto o servicio que se está cobrando, definido por la organización.",
          "title": "Product Id",
          "type": "string"
        },
        "will_expire": {
          "default": true,
          "description": "Indica si la deuda expira al llegar su fecha de expiración.",
          "title": "Will Expire",
          "type": "boolean"
        }
      },
      "required": [
        "product_id",
        "amount",
        "currency_code",
        "due_date"
      ],
      "title": "InvoiceData",
      "type": "object"
    },
    "InvoiceDetailsResponse": {
      "description": "Datos de una deuda que se cobra en la Checkout Session.",
      "properties": {
        "amount": {
          "description": "Monto de la deuda.",
          "title": "Amount",
          "type": "number"
        },
        "currency_code": {
          "description": "Código de la moneda, por ejemplo `CLP` o `MXN`.",
          "title": "Currency Code",
          "type": "string"
        },
        "id_invoice": {
          "description": "Identificador de la deuda.",
          "format": "encrypted-id",
          "title": "Id Invoice",
          "type": "string"
        },
        "id_subscription": {
          "description": "Identificador de la Subscription.",
          "format": "encrypted-id",
          "title": "Id Subscription",
          "type": "string"
        },
        "is_paid": {
          "description": "Indica si la deuda ya está pagada.",
          "title": "Is Paid",
          "type": "boolean"
        },
        "product_id": {
          "description": "Identificador del producto o servicio asociado, definido por la organización.",
          "title": "Product Id",
          "type": "string"
        },
        "product_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Nombre del producto a mostrar",
          "title": "Product Name"
        }
      },
      "required": [
        "amount",
        "currency_code",
        "is_paid",
        "product_id",
        "id_invoice",
        "id_subscription"
      ],
      "title": "InvoiceDetailsResponse",
      "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"
    },
    "OnDemandOnetimeDetailsResponse": {
      "description": "Datos de facturación de una operación on-demand de pago único.",
      "properties": {
        "account": {
          "allOf": [
            {
              "$ref": "#/$defs/AccountDetailsResponse"
            }
          ],
          "description": "Datos de la Account para la que se creó la Checkout Session.",
          "title": "Account"
        },
        "amount": {
          "description": "Monto que se cobra en la Checkout Session.",
          "title": "Amount",
          "type": "number"
        },
        "currency": {
          "allOf": [
            {
              "$ref": "#/$defs/CurrencyDetails"
            }
          ],
          "description": "Moneda en la que se expresan los montos de la operación.",
          "title": "Currency"
        },
        "customer": {
          "anyOf": [
            {
              "$ref": "#/$defs/CustomerDetailsResponse"
            },
            {
              "type": "null"
            }
          ],
          "description": "Datos del Customer, cuando la operación tiene uno asociado.",
          "title": "Customer"
        },
        "payment_engine": {
          "const": "on_demand",
          "description": "Motor con el que Toku procesa la operación.",
          "title": "Payment Engine",
          "type": "string"
        },
        "payment_frequency": {
          "const": "onetime",
          "description": "Frecuencia del pago; en esta variante siempre es un pago único.",
          "title": "Payment Frequency",
          "type": "string"
        }
      },
      "required": [
        "amount",
        "currency",
        "payment_engine",
        "payment_frequency",
        "account"
      ],
      "title": "OnDemandOnetimeDetailsResponse",
      "type": "object"
    },
    "OnDemandRecurringDetailsResponse": {
      "description": "Datos de facturación de una operación on-demand de pago recurrente.",
      "properties": {
        "account": {
          "allOf": [
            {
              "$ref": "#/$defs/AccountDetailsResponse"
            }
          ],
          "description": "Datos de la Account para la que se creó la Checkout Session.",
          "title": "Account"
        },
        "currency": {
          "allOf": [
            {
              "$ref": "#/$defs/CurrencyDetails"
            }
          ],
          "description": "Moneda en la que se expresan los montos de la operación.",
          "title": "Currency"
        },
        "customer": {
          "anyOf": [
            {
              "$ref": "#/$defs/CustomerDetailsResponse"
            },
            {
              "type": "null"
            }
          ],
          "description": "Datos del Customer, cuando la operación tiene uno asociado.",
          "title": "Customer"
        },
        "payment_engine": {
          "const": "on_demand",
          "description": "Motor con el que Toku procesa la operación.",
          "title": "Payment Engine",
          "type": "string"
        },
        "payment_frequency": {
          "const": "recurring",
          "description": "Frecuencia del pago; en esta variante siempre es un pago recurrente.",
          "title": "Payment Frequency",
          "type": "string"
        },
        "should_trigger_automatic_payment": {
          "description": "Indica si el cobro automático debe iniciarse una vez que la inscripción queda registrada.",
          "title": "Should Trigger Automatic Payment",
          "type": "boolean"
        }
      },
      "required": [
        "currency",
        "payment_engine",
        "payment_frequency",
        "account",
        "should_trigger_automatic_payment"
      ],
      "title": "OnDemandRecurringDetailsResponse",
      "type": "object"
    },
    "OrchestrationTreeConfiguration": {
      "description": "Configuración para procesar el pago con un árbol de orquestación base.",
      "properties": {
        "id_base_orchestration_tree": {
          "description": "Identificador del árbol de orquestación base con el que se procesa el pago",
          "title": "Id Base Orchestration Tree",
          "type": "string"
        },
        "payment_processing_type": {
          "const": "id_base_orchestration_tree",
          "title": "Payment Processing Type",
          "type": "string"
        }
      },
      "required": [
        "payment_processing_type",
        "id_base_orchestration_tree"
      ],
      "title": "OrchestrationTreeConfiguration",
      "type": "object"
    },
    "PacConfigurationResponse": {
      "description": "Configuración con la que se muestra la inscripción de un mandato en PAC.",
      "properties": {
        "mandate_id": {
          "description": "Identificador del mandato de PAC asociado a la inscripción.",
          "title": "Mandate Id",
          "type": "string"
        }
      },
      "required": [
        "mandate_id"
      ],
      "title": "PacConfigurationResponse",
      "type": "object"
    },
    "PacInscriptionFormSchema": {
      "description": "Formulario de PAC.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "pac_inscription",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "PacInscriptionFormSchema",
      "type": "object"
    },
    "PacInscriptionInstitutionAccountTypes": {
      "description": "Tipos de cuenta aceptados para inscribir un PAC en una institución bancaria.",
      "properties": {
        "accepted_account_types": {
          "description": "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).",
          "items": {
            "$ref": "#/$defs/AccountTypeCL"
          },
          "type": "array"
        },
        "institution": {
          "description": "Institución bancaria a la que aplica la restricción de tipos de cuenta.",
          "title": "Institution",
          "type": "string"
        }
      },
      "required": [
        "institution",
        "accepted_account_types"
      ],
      "title": "PacInscriptionInstitutionAccountTypes",
      "type": "object"
    },
    "PacInscriptionPresentationConfig": {
      "description": "Configuración de la inscripción de PAC para una Checkout Session.\n\nEl 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.",
      "properties": {
        "accepted_account_types_by_institution": {
          "description": "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.",
          "items": {
            "$ref": "#/$defs/PacInscriptionInstitutionAccountTypes"
          },
          "title": "Accepted Account Types By Institution",
          "type": "array"
        },
        "excluded_institutions": {
          "description": "Instituciones bancarias que no se ofrecen al cliente al inscribir un PAC en esta Checkout Session.",
          "items": {
            "type": "string"
          },
          "title": "Excluded Institutions",
          "type": "array"
        }
      },
      "title": "PacInscriptionPresentationConfig",
      "type": "object"
    },
    "PaymentOptionsConfigurationResponse": {
      "description": "Configuración con la que se muestra y procesa cada medio de pago del checkout.",
      "properties": {
        "card": {
          "anyOf": [
            {
              "$ref": "#/$defs/CardConfigurationResponse"
            },
            {
              "type": "null"
            }
          ]
        },
        "pac": {
          "anyOf": [
            {
              "$ref": "#/$defs/PacConfigurationResponse"
            },
            {
              "type": "null"
            }
          ]
        },
        "transfer_cl": {
          "anyOf": [
            {
              "$ref": "#/$defs/TransferClConfigurationResponse"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "title": "PaymentOptionsConfigurationResponse",
      "type": "object"
    },
    "PixBankingAutomaticFormSchema": {
      "description": "Formulario de Pix Banking Automatic.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "pix_banking_automatic",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "PixBankingAutomaticFormSchema",
      "type": "object"
    },
    "PixBankingFormSchema": {
      "description": "Formulario de Pix Banking.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "pix_banking",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "PixBankingFormSchema",
      "type": "object"
    },
    "PixOpenfinanceAvailableBankSchema": {
      "description": "Banco disponible en el formulario de Pix Openfinance.",
      "properties": {
        "display_name": {
          "description": "Nombre del banco a mostrar.",
          "title": "Display Name",
          "type": "string"
        },
        "ispb": {
          "description": "Código ISPB del banco.",
          "title": "Ispb",
          "type": "string"
        },
        "legal_entity_name": {
          "description": "Razón social del banco.",
          "title": "Legal Entity Name",
          "type": "string"
        },
        "logo_url": {
          "description": "URL del logo del banco.",
          "title": "Logo Url",
          "type": "string"
        }
      },
      "required": [
        "ispb",
        "display_name",
        "legal_entity_name",
        "logo_url"
      ],
      "title": "PixOpenfinanceAvailableBankSchema",
      "type": "object"
    },
    "PixOpenfinanceOnetimeFormConfigSchema": {
      "description": "Configuración del formulario de Pix Openfinance.",
      "properties": {
        "available_banks": {
          "description": "Lista de bancos disponibles en el formulario de Pix Openfinance.",
          "items": {
            "$ref": "#/$defs/PixOpenfinanceAvailableBankSchema"
          },
          "title": "Available Banks",
          "type": "array"
        },
        "confirm_cpf_enabled": {
          "description": "Indica si está habilitada la confirmación del CPF.",
          "title": "Confirm Cpf Enabled",
          "type": "boolean"
        },
        "enabled_gateways": {
          "description": "Lista de procesadores de pago habilitados en el formulario de Pix Openfinance.",
          "items": {
            "type": "string"
          },
          "title": "Enabled Gateways",
          "type": "array"
        },
        "is_demo": {
          "description": "Indica si el formulario de Pix Openfinance está en modo demo.",
          "title": "Is Demo",
          "type": "boolean"
        }
      },
      "required": [
        "available_banks",
        "enabled_gateways",
        "confirm_cpf_enabled",
        "is_demo"
      ],
      "title": "PixOpenfinanceOnetimeFormConfigSchema",
      "type": "object"
    },
    "PixOpenfinanceOnetimeFormSchema": {
      "description": "Formulario de Pix Openfinance para pago único.",
      "properties": {
        "form_configuration": {
          "allOf": [
            {
              "$ref": "#/$defs/PixOpenfinanceOnetimeFormConfigSchema"
            }
          ],
          "description": "Configuración del formulario de Pix Openfinance.",
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "pix_openfinance_onetime",
          "description": "Tipo de formulario para Pix Openfinance de pago único.",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type",
        "form_configuration"
      ],
      "title": "PixOpenfinanceOnetimeFormSchema",
      "type": "object"
    },
    "PixOpenfinanceRecurringFormConfigSchema": {
      "description": "Configuración del formulario de Pix Openfinance.",
      "properties": {
        "available_banks": {
          "description": "Lista de bancos disponibles en el formulario de Pix Openfinance.",
          "items": {
            "$ref": "#/$defs/PixOpenfinanceAvailableBankSchema"
          },
          "title": "Available Banks",
          "type": "array"
        },
        "confirm_cpf_enabled": {
          "description": "Indica si está habilitada la confirmación del CPF.",
          "title": "Confirm Cpf Enabled",
          "type": "boolean"
        },
        "enabled_gateways": {
          "description": "Lista de procesadores de pago habilitados en el formulario de Pix Openfinance.",
          "items": {
            "type": "string"
          },
          "title": "Enabled Gateways",
          "type": "array"
        },
        "is_demo": {
          "description": "Indica si el formulario de Pix Openfinance está en modo demo.",
          "title": "Is Demo",
          "type": "boolean"
        }
      },
      "required": [
        "available_banks",
        "enabled_gateways",
        "confirm_cpf_enabled",
        "is_demo"
      ],
      "title": "PixOpenfinanceRecurringFormConfigSchema",
      "type": "object"
    },
    "PixOpenfinanceRecurringFormSchema": {
      "description": "Formulario de Pix Openfinance para pago recurrente.",
      "properties": {
        "form_configuration": {
          "allOf": [
            {
              "$ref": "#/$defs/PixOpenfinanceRecurringFormConfigSchema"
            }
          ],
          "description": "Configuración del formulario de Pix Openfinance.",
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "pix_openfinance_recurring",
          "description": "Tipo de formulario para Pix Openfinance recurrente.",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type",
        "form_configuration"
      ],
      "title": "PixOpenfinanceRecurringFormSchema",
      "type": "object"
    },
    "PosCLFormSchema": {
      "description": "Formulario de POS CL.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "pos_cl",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "PosCLFormSchema",
      "type": "object"
    },
    "PriceChangeDTO": {
      "properties": {
        "additional_criteria": {
          "title": "Additional Criteria",
          "type": "string"
        },
        "amount": {
          "title": "Amount",
          "type": "number"
        },
        "type": {
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "type",
        "amount",
        "additional_criteria"
      ],
      "title": "PriceChangeDTO",
      "type": "object"
    },
    "PriceChangeOrigin": {
      "description": "Where a checkout session's price change came from, for portal labelling.",
      "enum": [
        "adjustment_document",
        "specified_at_creation"
      ],
      "title": "PriceChangeOrigin",
      "type": "string"
    },
    "SaaSMultipleCustomersOnetimeDetailsResponse": {
      "description": "Datos de facturación de una operación SaaS con varios Customers y pago único.",
      "properties": {
        "account": {
          "allOf": [
            {
              "$ref": "#/$defs/AccountDetailsResponse"
            }
          ],
          "description": "Datos de la Account para la que se creó la Checkout Session.",
          "title": "Account"
        },
        "currency": {
          "allOf": [
            {
              "$ref": "#/$defs/CurrencyDetails"
            }
          ],
          "description": "Moneda en la que se expresan los montos de la operación.",
          "title": "Currency"
        },
        "customers": {
          "description": "Customers cuyas deudas se cobran en esta Checkout Session.",
          "items": {
            "$ref": "#/$defs/CustomerDetailsResponse"
          },
          "title": "Customers",
          "type": "array"
        },
        "invoices": {
          "description": "Deudas que se cobran en esta Checkout Session.",
          "items": {
            "$ref": "#/$defs/InvoiceDetailsResponse"
          },
          "title": "Invoices",
          "type": "array"
        },
        "payment_engine": {
          "const": "saas_multiple_customers",
          "description": "Motor con el que Toku procesa la operación.",
          "title": "Payment Engine",
          "type": "string"
        },
        "payment_frequency": {
          "const": "onetime",
          "description": "Frecuencia del pago; en esta variante siempre es un pago único.",
          "title": "Payment Frequency",
          "type": "string"
        }
      },
      "required": [
        "payment_engine",
        "payment_frequency",
        "currency",
        "invoices",
        "customers",
        "account"
      ],
      "title": "SaaSMultipleCustomersOnetimeDetailsResponse",
      "type": "object"
    },
    "SaaSOnetimeDetailsResponse": {
      "description": "Datos de facturación de una operación SaaS de pago único.",
      "properties": {
        "account": {
          "allOf": [
            {
              "$ref": "#/$defs/AccountDetailsResponse"
            }
          ],
          "description": "Datos de la Account para la que se creó la Checkout Session.",
          "title": "Account"
        },
        "currency": {
          "allOf": [
            {
              "$ref": "#/$defs/CurrencyDetails"
            }
          ],
          "description": "Moneda en la que se expresan los montos de la operación.",
          "title": "Currency"
        },
        "customer": {
          "allOf": [
            {
              "$ref": "#/$defs/CustomerDetailsResponse"
            }
          ],
          "description": "Datos del Customer que realiza la operación.",
          "title": "Customer"
        },
        "invoices": {
          "description": "Deudas que se cobran en esta Checkout Session.",
          "items": {
            "$ref": "#/$defs/InvoiceDetailsResponse"
          },
          "title": "Invoices",
          "type": "array"
        },
        "payment_engine": {
          "const": "saas",
          "description": "Motor con el que Toku procesa la operación.",
          "title": "Payment Engine",
          "type": "string"
        },
        "payment_frequency": {
          "const": "onetime",
          "description": "Frecuencia del pago; en esta variante siempre es un pago único.",
          "title": "Payment Frequency",
          "type": "string"
        }
      },
      "required": [
        "payment_engine",
        "payment_frequency",
        "currency",
        "invoices",
        "customer",
        "account"
      ],
      "title": "SaaSOnetimeDetailsResponse",
      "type": "object"
    },
    "SaaSRecurringDetailsResponse": {
      "description": "Datos de facturación de una operación SaaS de pago recurrente.",
      "properties": {
        "account": {
          "allOf": [
            {
              "$ref": "#/$defs/AccountDetailsResponse"
            }
          ],
          "description": "Datos de la Account para la que se creó la Checkout Session.",
          "title": "Account"
        },
        "currency": {
          "allOf": [
            {
              "$ref": "#/$defs/CurrencyDetails"
            }
          ],
          "description": "Moneda en la que se expresan los montos de la operación.",
          "title": "Currency"
        },
        "customer": {
          "allOf": [
            {
              "$ref": "#/$defs/CustomerDetailsResponse"
            }
          ],
          "description": "Datos del Customer que realiza la operación.",
          "title": "Customer"
        },
        "invoices": {
          "description": "Deudas que se cobran en esta Checkout Session.",
          "items": {
            "$ref": "#/$defs/InvoiceDetailsResponse"
          },
          "title": "Invoices",
          "type": "array"
        },
        "payment_engine": {
          "const": "saas",
          "description": "Motor con el que Toku procesa la operación.",
          "title": "Payment Engine",
          "type": "string"
        },
        "payment_frequency": {
          "const": "recurring",
          "description": "Frecuencia del pago; en esta variante siempre es un pago recurrente.",
          "title": "Payment Frequency",
          "type": "string"
        },
        "should_trigger_automatic_payment": {
          "description": "Indica si el cobro automático debe iniciarse una vez que la inscripción queda registrada.",
          "title": "Should Trigger Automatic Payment",
          "type": "boolean"
        },
        "subscription": {
          "anyOf": [
            {
              "$ref": "#/$defs/SubscriptionDetailsResponse"
            },
            {
              "type": "null"
            }
          ],
          "description": "Datos de la Subscription que se está inscribiendo.",
          "title": "Subscription"
        },
        "subscriptions": {
          "description": "Datos de las Subscriptions cuando la inscripción cubre varias.",
          "items": {
            "$ref": "#/$defs/SubscriptionDetailsResponse"
          },
          "title": "Subscriptions",
          "type": "array"
        }
      },
      "required": [
        "payment_engine",
        "payment_frequency",
        "currency",
        "customer",
        "account",
        "invoices",
        "should_trigger_automatic_payment"
      ],
      "title": "SaaSRecurringDetailsResponse",
      "type": "object"
    },
    "SaaSUnrestrictedAmountOnetimeDetailsResponse": {
      "description": "Datos de facturación de una operación SaaS de monto sin restricción y pago único.",
      "properties": {
        "account": {
          "allOf": [
            {
              "$ref": "#/$defs/AccountDetailsResponse"
            }
          ],
          "description": "Datos de la Account para la que se creó la Checkout Session.",
          "title": "Account"
        },
        "amount": {
          "description": "Monto que se cobra en la Checkout Session.",
          "exclusiveMinimum": 0,
          "title": "Amount",
          "type": "number"
        },
        "currency": {
          "allOf": [
            {
              "$ref": "#/$defs/CurrencyDetails"
            }
          ],
          "description": "Moneda en la que se expresan los montos de la operación.",
          "title": "Currency"
        },
        "customer": {
          "allOf": [
            {
              "$ref": "#/$defs/CustomerDetailsResponse"
            }
          ],
          "description": "Datos del Customer que realiza la operación.",
          "title": "Customer"
        },
        "invoices": {
          "description": "Deudas que se cobran en esta Checkout Session.",
          "items": {
            "$ref": "#/$defs/InvoiceDetailsResponse"
          },
          "title": "Invoices",
          "type": "array"
        },
        "payment_engine": {
          "const": "saas_unrestricted_amount",
          "description": "Motor con el que Toku procesa la operación.",
          "title": "Payment Engine",
          "type": "string"
        },
        "payment_frequency": {
          "const": "onetime",
          "description": "Frecuencia del pago; en esta variante siempre es un pago único.",
          "title": "Payment Frequency",
          "type": "string"
        }
      },
      "required": [
        "payment_engine",
        "payment_frequency",
        "customer",
        "invoices",
        "account",
        "currency",
        "amount"
      ],
      "title": "SaaSUnrestrictedAmountOnetimeDetailsResponse",
      "type": "object"
    },
    "SavePaymentInstrumentDetailsResponse": {
      "description": "Datos de una operación que solo guarda un medio de pago.",
      "properties": {
        "account": {
          "allOf": [
            {
              "$ref": "#/$defs/AccountDetailsResponse"
            }
          ],
          "description": "Datos de la Account para la que se creó la Checkout Session.",
          "title": "Account"
        },
        "amount": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "description": "Monto asociado a la Checkout Session, si tiene uno. En este modo no se cobra.",
          "title": "Amount"
        },
        "currency": {
          "anyOf": [
            {
              "$ref": "#/$defs/CurrencyDetails"
            },
            {
              "type": "null"
            }
          ],
          "description": "Moneda en la que se expresan los montos de la operación.",
          "title": "Currency"
        },
        "customer": {
          "anyOf": [
            {
              "$ref": "#/$defs/CustomerDetailsResponse"
            },
            {
              "type": "null"
            }
          ],
          "description": "Datos del Customer, cuando la operación tiene uno asociado.",
          "title": "Customer"
        },
        "payment_engine": {
          "description": "No aplica: en este modo no se procesa un cobro, así que no hay motor de pago.",
          "title": "Payment Engine",
          "type": "null"
        },
        "payment_frequency": {
          "description": "No aplica: una sesión que solo guarda un medio de pago no tiene frecuencia de pago.",
          "title": "Payment Frequency",
          "type": "null"
        }
      },
      "required": [
        "account"
      ],
      "title": "SavePaymentInstrumentDetailsResponse",
      "type": "object"
    },
    "SubscriptionDetailsResponse": {
      "description": "Datos de una Subscription asociada a la Checkout Session.",
      "properties": {
        "additional_metadata": {
          "anyOf": [
            {
              "additionalProperties": true,
              "description": "Datos propios de la organización asociados a la Subscription.",
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "description": "Datos propios de la organización asociados a la Subscription.",
          "title": "Additional Metadata"
        },
        "currency_code": {
          "description": "Código de la moneda, por ejemplo `CLP` o `MXN`.",
          "title": "Currency Code",
          "type": "string"
        },
        "id_subscription": {
          "description": "Identificador de la Subscription.",
          "format": "encrypted-id",
          "title": "Id Subscription",
          "type": "string"
        },
        "product_id": {
          "description": "Identificador del producto o servicio asociado, definido por la organización.",
          "title": "Product Id",
          "type": "string"
        },
        "product_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Nombre a mostrar del producto",
          "title": "Product Name"
        }
      },
      "required": [
        "product_id",
        "currency_code",
        "id_subscription"
      ],
      "title": "SubscriptionDetailsResponse",
      "type": "object"
    },
    "SyntheticPaymentOption": {
      "description": "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.",
      "properties": {
        "display": {
          "description": "Cómo se presenta el medio de pago: a la vista o dentro de una sección desplegable.",
          "enum": [
            "main_view",
            "expandable"
          ],
          "title": "Display",
          "type": "string"
        },
        "payment_option_type": {
          "const": "synthetic",
          "description": "Tipo de medio de pago, que determina cómo se completa el pago.",
          "title": "Payment Option Type",
          "type": "string"
        },
        "priority": {
          "description": "Orden en que se muestra el medio de pago frente a los demás.",
          "title": "Priority",
          "type": "integer"
        },
        "synthetic_type": {
          "description": "Flujo que abre la opción, por ejemplo pagar el total en varios pagos.",
          "title": "Synthetic Type",
          "type": "string"
        }
      },
      "required": [
        "payment_option_type",
        "display",
        "priority",
        "synthetic_type"
      ],
      "title": "SyntheticPaymentOption",
      "type": "object"
    },
    "TransbankOneclickFormSchema": {
      "description": "Formulario de Transbank Oneclick.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "transbank_oneclick",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "TransbankOneclickFormSchema",
      "type": "object"
    },
    "TransbankWebpayPlusFormSchema": {
      "description": "Formulario de Transbank Webpay Plus.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "transbank_webpay_plus",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "TransbankWebpayPlusFormSchema",
      "type": "object"
    },
    "TransferCLFormSchema": {
      "description": "Formulario de transferencia CL.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "transfer_cl",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "TransferCLFormSchema",
      "type": "object"
    },
    "TransferClConfigurationResponse": {
      "description": "Configuración con la que se muestra el pago por transferencia bancaria en el checkout.",
      "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": "TransferClConfigurationResponse",
      "type": "object"
    },
    "TransferMXFormSchema": {
      "description": "Formulario de transferencia MX.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "transfer_mx",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "TransferMXFormSchema",
      "type": "object"
    },
    "WalletMXFormConfiguration": {
      "description": "Configuración del formulario de wallet MX.",
      "properties": {
        "enabled_gateways": {
          "description": "Lista de procesadores de pago habilitados en el formulario de wallet MX.",
          "items": {
            "type": "string"
          },
          "title": "Enabled Gateways",
          "type": "array"
        },
        "gateways": {
          "description": "Procesadores de pago",
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/WalletMXMercadoPagoGatewaySchema"
              },
              {
                "$ref": "#/$defs/WalletMXPaypalGatewaySchema"
              }
            ]
          },
          "title": "Gateways",
          "type": "array"
        },
        "is_demo": {
          "description": "Indica si el formulario de wallet MX está en modo demo.",
          "title": "Is Demo",
          "type": "boolean"
        }
      },
      "required": [
        "gateways",
        "enabled_gateways",
        "is_demo"
      ],
      "title": "WalletMXFormConfiguration",
      "type": "object"
    },
    "WalletMXFormSchema": {
      "description": "Formulario de wallet MX.",
      "properties": {
        "form_configuration": {
          "$ref": "#/$defs/WalletMXFormConfiguration"
        },
        "form_type": {
          "const": "wallet_mx",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type",
        "form_configuration"
      ],
      "title": "WalletMXFormSchema",
      "type": "object"
    },
    "WalletMXMercadoPagoConfigurationSchema": {
      "description": "Datos adicionales del formulario de wallet MX.",
      "properties": {
        "public_key": {
          "description": "Llave pública de Mercadopago",
          "title": "Public Key",
          "type": "string"
        }
      },
      "required": [
        "public_key"
      ],
      "title": "WalletMXMercadoPagoConfigurationSchema",
      "type": "object"
    },
    "WalletMXMercadoPagoGatewaySchema": {
      "description": "Datos adicionales del formulario de wallet MX.",
      "properties": {
        "configuration": {
          "allOf": [
            {
              "$ref": "#/$defs/WalletMXMercadoPagoConfigurationSchema"
            }
          ],
          "description": "Configuración del procesador de pago",
          "title": "Configuration"
        },
        "name": {
          "const": "mercadopago",
          "description": "Nombre del procesador de pago",
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "name",
        "configuration"
      ],
      "title": "WalletMXMercadoPagoGatewaySchema",
      "type": "object"
    },
    "WalletMXPSPFormSchema": {
      "description": "Wallet MX PSP option; the portal uses it to send the payer to the product page. Requires no configuration.",
      "properties": {
        "form_configuration": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Form Configuration"
        },
        "form_type": {
          "const": "wallet_mx_psp",
          "title": "Form Type",
          "type": "string"
        },
        "intention": {
          "description": "Propósito del formulario",
          "title": "Intention",
          "type": "string"
        },
        "payment_processing_configuration": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckoutApi_TokuProductConfiguration"
            },
            {
              "$ref": "#/$defs/OrchestrationTreeConfiguration"
            }
          ],
          "description": "Configuración con la que se procesa el pago",
          "title": "Payment Processing Configuration"
        }
      },
      "required": [
        "intention",
        "payment_processing_configuration",
        "form_type"
      ],
      "title": "WalletMXPSPFormSchema",
      "type": "object"
    },
    "WalletMXPaypalConfigurationSchema": {
      "description": "Datos adicionales del formulario de wallet MX.",
      "properties": {
        "client_id": {
          "description": "Client ID de Paypal",
          "title": "Client Id",
          "type": "string"
        }
      },
      "required": [
        "client_id"
      ],
      "title": "WalletMXPaypalConfigurationSchema",
      "type": "object"
    },
    "WalletMXPaypalGatewaySchema": {
      "description": "Datos adicionales del formulario de wallet MX.",
      "properties": {
        "configuration": {
          "allOf": [
            {
              "$ref": "#/$defs/WalletMXPaypalConfigurationSchema"
            }
          ],
          "description": "Configuración del procesador de pago",
          "title": "Configuration"
        },
        "name": {
          "const": "paypal",
          "description": "Nombre del procesador de pago",
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "name",
        "configuration"
      ],
      "title": "WalletMXPaypalGatewaySchema",
      "type": "object"
    }
  }
}