HomeGuíasAPI ReferenceChangelog
Log In
API Reference

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.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
enum
required

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

Allowed:
Body Params

Datos con los que se crea una Checkout Session.

object | null

Datos propios de la organización que se guardan junto a la Checkout Session.

AdditionalQueryParametersRequest | null

Parámetros que se agregan a la URL del checkout.

Indica si el cliente final puede abonar solo una parte del total.

allowed_payment_options
array of objects

Medios de pago que la Checkout Session puede mostrar, uno por botón del checkout (por ejemplo card o transfer_cl); se ocultan los demás. Un botón cubre todos los productos que agrupa. Si ninguno de los botones indicados está en el flujo, la solicitud se rechaza con 400. Vacío o en null no filtra nada. Es el único campo que se aplica cuando se reenvía un unique_external_id ya usado: si trae botones, reemplaza el filtro de la sesión existente mientras siga abierta, siempre que el flow_name sea el de la sesión; si no, responde 400.

allowed_payment_options
billing_data
object
required

Datos de facturación con los que se cobra o se inscribe el medio de pago.

CommunicationEngineStrictChannel | null

Canal por el que se le envía al Customer el enlace de pago: correo (mail), SMS (sms) o WhatsApp (wsp). Cada uno exige su dato de contacto en customer_data: mail necesita mail, y sms y wsp necesitan phone_number. Si falta el dato del canal elegido, la creación se rechaza. Es excluyente con id_template.

CustomerDataRequest | null

Datos con los que se busca o se crea el Customer de la operación.

Fecha y hora, en formato ISO 8601, en la que la Checkout Session expira. Manda por sobre la duración que el flujo configure para sus enlaces de pago. Si se omite, una sesión PAYMENT expira según esa duración. Si el flujo no configura ninguna, o la sesión no es PAYMENT, permanece abierta hasta expirarla manualmente.

length ≤ 128

Identificador que entrega la organización para reconocer después la operación.

Flow con el que se crea la Checkout Session.

object | null

Información no sensible con la que el cliente final completó el formulario.

Plantilla con la que se le envía al Customer el mensaje con el enlace de pago. Debe existir.

InvoiceDataRequest | null

Datos de la deuda que se crea junto con la Checkout Session.

string
enum
required

Qué operación completa el cliente final en la sesión. Se fija al crearla y define qué datos exige y qué deja hecho al completarse. PAYMENT cobra deudas o un monto puntual y termina en un pago, ENROLLMENT inscribe un medio de pago automático para cobrarle después, y SAVE_PAYMENT_INSTRUMENT solo registra una cuenta bancaria del Customer, sin cobrar ni inscribir un medio de pago, y es el único modo que no lleva frecuencia de pago.

Allowed:
PaymentOptionsConfigurationRequest | null

Configuración con la que se muestra y procesa cada medio de pago del checkout.

PriceChangeRequest | null

Ajuste de precio que se aplica solo a esta Checkout Session, disponible en sesiones SaaS de pago único.

RedirectionData | null

URLs a las que se redirige al cliente final al terminar la operación.

Indica si se omite el envío del enlace de pago al Customer.

length ≤ 128

Identificador propio de la organización que hace idempotente la creación: si se vuelve a enviar un valor ya usado, se devuelve la Checkout Session que ya se creó con él, sin crear una nueva.

Headers
date

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.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json