cauril/Docs

Crear una sesión de checkout

post/v1/checkout/sessions

Crea una sesión de checkout embebido. Llamala desde tu server con sk_. Devuelve un client_secret (una sola vez) que pasás al drop-in @cauril/checkout-js en el browser para cobrar sin tocar datos de tarjeta (PCI SAQ-A). Requiere el header Idempotency-Key.

Request

BASH
curl -X POST https://api.cauril.com/v1/checkout/sessions \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000,
    "currency": "USD",
    "success_url": "string",
    "cancel_url": "string",
    "allowed_methods": [
      "card"
    ],
    "return_url": "string",
    "customer_email": "string",
    "locale": "es",
    "provider": "stripe",
    "routing_hint": {
      "country": "BR"
    },
    "appearance": {},
    "metadata": {}
  }'

Parámetros

Idempotency-KeyheaderreqstringClave única por operación (ej. un UUID). Reintentar con la misma key replica la respuesta original.

Cuerpo CreateCheckoutSession

amountreqMoney
currencyreqCurrency
success_urlreqstring · uriA dónde vuelve el comprador tras pagar. Debe estar en el allowlist de redirección de la organización.
cancel_urlreqstring · uriA dónde vuelve el comprador si cancela.
allowed_methodsarraynullMétodos a ofrecer. Si se omite, se usan los del PSP resuelto.
return_urlstring · uri
customer_emailstring · email
localestring
providerstringForzar un PSP. Si se omite, se resuelve por routing (con routing_hint).
routing_hintobjectPistas para resolver el PSP (ej. país del comprador).
appearanceobjectEstilo del drop-in (colores, bordes).
metadataobject

Respuestas

201Sesión creada (incluye `client_secret`)CheckoutSession
400ErrorError
401ErrorError
409ErrorError
422ErrorError

Ejemplo de respuesta · 201

JSON
{
  "object": "checkout.session",
  "id": "cs_01J...",
  "status": "open",
  "amount": 5000,
  "currency": "USD",
  "client_secret": "cs_01J..._secret_aGVsbG8",
  "ui": {
    "provider": "stripe",
    "publishable_key": null,
    "methods": [
      "card"
    ]
  },
  "allowed_methods": null,
  "success_url": "string",
  "cancel_url": "string",
  "return_url": null,
  "locale": null,
  "customer_email": null,
  "metadata": {},
  "payment_id": null,
  "payment": null,
  "expires_at": "2026-06-01T12:00:00Z",
  "created_at": "2026-06-01T12:00:00Z",
  "updated_at": "2026-06-01T12:00:00Z",
  "livemode": true
}