Pagos

Raw Card Processing

El endpoint `/raw-data` para comercios con PCI DSS Nivel 1.

Procesa un pago enviando los datos de la tarjeta sin tokenizar. Vive en un dominio propio y en una ruta distinta a /process/, y solo se habilita a negocios certificados.

Requiere PCI DSS Nivel 1. Debes tener la certificación vigente y compartir tu Attestation of Compliance (AOC) con Tonder antes de que se active el acceso en producción. Si no la tienes, usa el flujo tokenizado — cubre el mismo caso de uso con alcance PCI reducido (SAQ A / SAQ A-EP).

Endpoint

AmbienteURL
SandboxPOST https://process-sandbox.tonder.io/raw-data
ProducciónPOST https://process.tonder.io/raw-data

No está bajo /api/v1/ de Tonder y no acepta llamadas desde el navegador. Pruébalo desde tu terminal, Postman o tu backend.

Headers

HeaderDescripción
AuthorizationTu llave API, con el prefijo Token.
X-Skyflow-AuthorizationEl access_token (JWT) de GET /api/v1/tokenization/auth/. Es de corta duración: pídelo justo antes de procesar.
Content-Typeapplication/json.

Cuerpo de la petición

CampoTipoDescripción
operation_typestring"payment" para procesar un pago.
amountnumberMonto en formato decimal (p. ej. 150.00).
currencystringMXN, CLP o USD. México y Chile usan el mismo flujo; solo cambia este valor.
customerobjectname y email del cliente.
payment_methodobjecttype: "CARD" más card_number, cardholder_name, cvv, expiration_month, expiration_year en crudo.
client_referencestringTu referencia única para esta transacción.
return_urlstringA dónde regresa el cliente al terminar (por ejemplo, tras un reto 3DS).

Ejemplo

POST
curl -X POST "https://process-sandbox.tonder.io/raw-data" \
  -H "Authorization: Token YOUR_TONDER_API_KEY" \
  -H "X-Skyflow-Authorization: YOUR_ACCESS_TOKEN" \
  -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": "4000000000000077",
      "cardholder_name": "Ozzy Osbourne",
      "cvv": "123",
      "expiration_month": "07",
      "expiration_year": "26"
    },
    "client_reference": "ORD-001",
    "return_url": "https://tonder.io"
  }'

Respuesta

Mismo formato que un pago normal por /process/: id, status, amount, currency, client_reference y los timestamps.

Verifica siempre el estado final en GET /api/v1/transactions/{id}/ — es la fuente de verdad. No confíes solo en el código HTTP ni en la respuesta inicial.

Siguientes pasos

¿Te resultó útil esta página?

En esta página