AAPDÓrdenes
Crear una orden
POST /orders para iniciar una transacción AAPD.
POST /orders
Authorization: Bearer {client_secret}
Content-Type: application/jsonLa primera llamada en cualquier flujo AAPD. Tu backend crea una orden con la credencial server-side (client_secret), después pasa el hash retornado (el order_token) al widget para que el paciente complete el pago.
Cuerpo de la request
{
"reference": "CLINIC-ORDER-12345",
"total_amount": "100000",
"customer": {
"rut": "12345678-9",
"first_name": "María",
"last_name": "González",
"email": "maria@example.com",
"phone_number": "+56912345678"
}
}| Campo | Obligatorio | Notas |
|---|---|---|
reference | sí | Tu ID de orden interno. Vuelve en los webhooks para correlación. |
total_amount | sí | Monto total en CLP, como string sin decimales. |
customer.rut | sí | RUT chileno, normalizado (XXXXXXXX-X). |
customer.first_name, last_name, email, phone_number | sí | Datos del paciente. Usados para notificaciones. |
Respuesta (201 Created)
{
"hash": "ord_abc123",
"status": "pending",
"reference": "CLINIC-ORDER-12345",
"total_amount": "100000",
"paid_amount": "0",
"customer": { "rut": "12345678-9", "first_name": "María", "last_name": "González", "email": "...", "phone_number": "..." },
"plan": { "name": "plan_30_70", "installments": [...] },
"created_at": "2026-04-15T10:00:00Z"
}El campo hash es el order_token que pasas al widget. Guárdalo — tu frontend lo va a necesitar.
Errores
| Status | Causa | Recuperación |
|---|---|---|
| 401 | client_secret faltante o inválida | Confirma la credencial. Asegúrate de que sea client_secret, no client_id. |
| 400 | Error de validación (RUT mal formado, monto negativo, campos faltantes) | Arregla el body. |
| 409 | Ya existe una orden activa con la misma reference | Usa una reference única por intento. |
Ejemplo
curl -X POST "https://pay.getskip.ai/orders" \
-H "Authorization: Bearer $SKIPPAY_CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"reference": "CLINIC-ORDER-12345",
"total_amount": "100000",
"customer": {
"rut": "12345678-9",
"first_name": "María",
"last_name": "González",
"email": "maria@example.com",
"phone_number": "+56912345678"
}
}'Después de esto, mintea un widget token con el hash retornado como order_token. Ver Construir la URL del widget.