Pagos

Guía de pago con tarjeta

Arma un pago con tarjeta paso a paso, tokenizado o con datos en crudo.

Elige el flujo que corresponde a tu integración y arma la petición en vivo. La mayoría de los negocios usa tarjeta tokenizada.

🇲🇽 🇨🇱 México y Chile usan exactamente el mismo flujo. No cambian los endpoints, ni los headers, ni la forma de tokenizar. Lo único que cambia es currency: "MXN" para México, "CLP" para Chile.

Vas a convertir los datos reales de la tarjeta en códigos aleatorios llamados tokens, para nunca guardar ni enviar el número real desde tu servidor. Tonder tokeniza cada campo por separado: recibes 5 tokens distintos, uno por campo, no uno solo para toda la tarjeta.

1Obtén un access token (JWT)

Antes de tokenizar, Tonder necesita confirmar que eres tú. Con tu llave API pides un permiso temporal —un JWT de corta duración— para que no pueda reusarse indefinidamente si se filtra.

GET
curl -X GET "https://stage.tonder.io/api/v1/tokenization/auth/" \
  -H "Authorization: Token YOUR_TONDER_API_KEY"

La respuesta trae el JWT que usarás en el paso 2:

{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }
2Tokeniza los datos de la tarjeta

Mandas los datos reales al servicio de tokenización, autorizado con el access_token del paso 1 (header X-Skyflow-Authorization). Te devuelve un código aleatorio por campo; ese código no significa nada por sí solo, solo Tonder sabe traducirlo de vuelta al procesar el pago.

El route_id de la ruta es distinto por ambiente. El servicio vive en un dominio propio (token-sandbox.tonder.io / token.tonder.io), no bajo /api/v1/ de Tonder.

POST
curl -X POST "https://token-sandbox.tonder.io/v1/gateway/inboundRoutes/YOUR_ROUTE_ID/token" \
  -H "Authorization: Token YOUR_TONDER_API_KEY" \
  -H "X-Skyflow-Authorization: YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "card_number": "4000000000000077",
    "cardholder_name": "Ozzy Osbourne",
    "cvv": "123",
    "expiration_month": "07",
    "expiration_year": "26"
  }'

El servicio responde con un token individual por campo. No son intercambiables entre campos.

3Envía el pago a /process/

Arma el pago como cualquier otro, pero en lugar del número real usa los tokens del paso 2. Tonder los destokeniza del lado del servidor para cobrarle a la tarjeta real.

POST
curl -X POST "https://stage.tonder.io/api/v1/process/" \
  -H "Authorization: Token YOUR_TONDER_API_KEY" \
  -H "X-Request-Id: 550e8400-e29b-41d4-a716-446655440000" \
  -H "Content-Type: application/json" \
  -d '{
    "operation_type": "payment",
    "amount": 150.00,
    "currency": "MXN",
    "customer": {
      "name": "Ozzy Osbourne",
      "email": "ozzy@testuser.com"
    },
    "payment_method": {
      "type": "CARD",
      "card_number": "9230-0892-4469-1474",
      "cardholder_name": "c05d89b2-299c-4f93-b49a-42be00d3b64b",
      "cvv": "d31f0da3-0ed3-4ad8-8b68-14c2669a99a7",
      "expiration_month": "e401a32e-4174-424f-9688-727005f6a80e",
      "expiration_year": "bd9ccc23-3d00-4109-9626-fc6581389063"
    },
    "client_reference": "ORD-001",
    "return_url": "https://tonder.io"
  }'

Valida siempre tanto id (guárdalo) como status. Nunca confíes solo en el código HTTP — verifica el estado final en GET /api/v1/transactions/{id}/.

Siguientes pasos

¿Te resultó útil esta página?

En esta página