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
| Ambiente | URL |
|---|---|
| Sandbox | POST https://process-sandbox.tonder.io/raw-data |
| Producción | POST 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
| Header | Descripción |
|---|---|
Authorization | Tu llave API, con el prefijo Token. |
X-Skyflow-Authorization | El access_token (JWT) de GET /api/v1/tokenization/auth/. Es de corta duración: pídelo justo antes de procesar. |
Content-Type | application/json. |
Cuerpo de la petición
| Campo | Tipo | Descripción |
|---|---|---|
operation_type | string | "payment" para procesar un pago. |
amount | number | Monto en formato decimal (p. ej. 150.00). |
currency | string | MXN, CLP o USD. México y Chile usan el mismo flujo; solo cambia este valor. |
customer | object | name y email del cliente. |
payment_method | object | type: "CARD" más card_number, cardholder_name, cvv, expiration_month, expiration_year en crudo. |
client_reference | string | Tu referencia única para esta transacción. |
return_url | string | A dónde regresa el cliente al terminar (por ejemplo, tras un reto 3DS). |
Ejemplo
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.
