Crear Checkout Session
Crea una Checkout Session y devuelve su representación completa, incluida la url a la que se deriva al cliente final para pagar o inscribir un medio de pago.
El campo mode fija qué hace la sesión: PAYMENT cobra deudas o un monto, ENROLLMENT inscribe un medio de pago automático y SAVE_PAYMENT_INSTRUMENT guarda una cuenta bancaria sin cobrar.
Si se envía customer_data sin billing_data.id_customer, el Customer se crea o se actualiza con esos datos. Si se envía invoice_data, se crea una deuda nueva y la sesión queda asociada a ella.
expiration_datetime se interpreta en formato ISO 8601 (sin zona horaria se asume UTC) y no puede quedar en el pasado. Cuando se envía, la sesión se expira de forma automática en esa fecha. Si se omite, la sesión expira según la duración que configure el flujo, sin importar su mode. Si el flujo no configura ninguna, permanece abierta hasta expirarla manualmente.
Cuando la sesión queda asociada a un Customer y no se envía skip_message_trigger, se le manda el enlace de pago por el canal indicado en communication_channel. El envío es best-effort: si falla, la Checkout Session se crea igual. Si en cambio se envía id_template, la plantilla debe existir: si no, la solicitud se rechaza con 400 y la sesión no se crea.
unique_external_id hace la creación idempotente: si la organización vuelve a enviar un valor que ya usó, se devuelve la Checkout Session que ya se creó con él, en el estado en que esté, sin crear una nueva — ni la sesión, ni el Customer, ni la deuda — ni volver a enviarle el enlace al cliente. Sirve para que un reintento por timeout reciba la url de la sesión que sí se creó en vez de generar una segunda. El reintento se valida igual que una creación nueva: si con esos datos ya no se podría crear la sesión, responde el mismo error. El resto de sus campos se ignora, con una sola excepción: un allowed_payment_options con botones reemplaza el filtro de la sesión si sigue abierta y el flow_name es el mismo de la sesión.
allowed_payment_options limita los botones de medio de pago que muestra el checkout.
id_checkout elige el checkout cuya configuración usa la sesión: el de la cuenta en el flujo flow_name o el Default de ese flujo. Un checkout que no sea ninguno de los dos se rechaza con 404. Si se omite, se usa el checkout de la cuenta en el flujo.
Request
- Base URLhttps://api.trytoku.com
- URLhttps://api.trytoku.com/{country_code}/checkout-sessions
- AuthAPI key in header x-api-key
Path parameters
País de la organización sobre la que se opera, como primer segmento de la ruta: cl (Chile), mx (México) o br (Brasil).
Headers
Versión del API para esta petición, como cualquier fecha YYYY-MM-DD. Fija el contrato de la respuesta; si se omite, se deriva de la fecha de creación de la organización.
Request body
Example request
{
"billing_data": {
"id_account": "acc_123abc",
"id_customer": "cus_123abc",
"id_subscription": "sub_123abc"
},
"id_checkout": "chk_123abc",
"id_template": "tem_123abc"
}Response
La Checkout Session quedó creada y abierta. Si el unique_external_id ya se había usado, es la Checkout Session que ya se creó con él, en el estado en que esté.
Changes
No recorded changes to this operation across all 2 revisions of this API.