Hosted Checkout

Crear una sesión de pago

El cuerpo de la petición que crea una sesión de pago, campo por campo, y la URL que devuelve.

Este es el endpoint principal para iniciar un pago con Hosted Checkout. Crea una nueva sesión de pago y devuelve una URL segura donde tu cliente completa su pago.

POST https://api-stage.tonder.io/checkout/v1/sessions   # Sandbox
POST https://api.tonder.io/checkout/v1/sessions          # Producción

Cómo funciona

  1. Tu servidor llama a este endpoint con los datos del pago (monto, artículos, datos del cliente).
  2. Tonder crea una sesión segura y devuelve una URL de checkout.
  3. Rediriges a tu cliente a esa URL.
  4. El cliente completa el pago en la página alojada de Tonder.
  5. El cliente es redirigido de vuelta a tu success_url o return_url.

Incluye el header x-idempotency-key para evitar sesiones duplicadas (consulta Idempotencia) y el objeto ui_config para personalizar la página (consulta Personalizar el checkout).

El campo payment_method_types por defecto es ["card"]. Valores aceptados: card, mercadopago, oxxopay, spei, safetypayCash, safetypayTransfer, neosurf.

Referencia de la API

POST
/checkout/v1/sessions

Autorización

Authorization
Authorization<token>

Tu API key con prefijo Token , p. ej. Token <API_KEY>

In: header

Cuerpo de la petición

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Cuerpo de la respuesta

application/json

curl -X POST "https://example.com/checkout/v1/sessions" \  -H "Content-Type: application/json" \  -d '{    "customer": {      "first_name": "John",      "last_name": "Doe",      "email": "john.doe@example.com"    },    "amount_total": 350,    "currency": "MXN",    "line_items": [      {        "name": "Product 1",        "quantity": 1,        "unit_price": 150,        "product_id": "prod-001"      },      {        "name": "Product 2",        "quantity": 2,        "unit_price": 100,        "product_id": "prod-002"      }    ],    "return_url": "https://my-store.com/checkout/complete",    "external_id": "ORD-12345"  }'
{
  "id": "cs_97_41521_d11ba771527b4056c7f85786cfbb980bc105efaf42af113d",
  "url": "https://stage-payflow.tonder.io/checkout/cs_97_41521_d11ba771527b4056c7f85786cfbb980bc105efaf42af113d",
  "status": "pending",
  "payment_id": 41521,
  "amount_total": 350,
  "currency": "MXN",
  "expires_at": 1751564943,
  "external_id": "ORD-12345",
  "session_type": "payment",
  "checkout_type": "hosted",
  "return_url": "https://my-store.com/checkout/complete",
  "metadata": {},
  "payment_method_types": [
    "card"
  ],
  "ui_config": {},
  "ui_config_version": "V1",
  "created_at": 1751478543567,
  "modified_at": 1751478543567,
  "customer": {
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@example.com"
  },
  "line_items": [
    {
      "name": "Product 1",
      "quantity": 1,
      "unit_price": 150,
      "product_id": "prod-001"
    }
  ],
  "transaction_status": "Pending",
  "provider": "tonder"
}

La sesión empieza en pending y avanza a un estado final. Consulta los valores completos en la Referencia.

Siguientes pasos

¿Te resultó útil esta página?

En esta página