AAPD
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 entero (sin decimales). Se acepta también como string numérico. |
customer.rut | sí | RUT chileno. Se acepta con o sin puntos. |
customer.first_name, last_name, email, phone_number | sí | Datos del paciente. Usados para notificaciones. |
Respuesta (201 Created)
{
"hash": "2f88b330-f3ed-5521-aa1f-9d15af1fce8d",
"status": "pending",
"reference": "CLINIC-ORDER-12345",
"total_amount": 100000,
"paid_amount": 0,
"pending_amount": 100000,
"customer": { "rut": "12345678-9", "first_name": "María", "last_name": "González", "email": "...", "phone_number": "..." },
"plan": { "name": "plan_30_70", "data": { "installments": [...], "commission": { ... } } },
"created_at": "2026-04-15T10:00:00Z"
}El campo hash es el order_token que pasas al widget — un UUID. Guárdalo, tu frontend lo va a necesitar. La respuesta trae campos adicionales (montos, comisión, pagos); trátala como no exhaustiva y lee solo los que necesites.
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 / 422 | Error de validación (RUT mal formado, monto negativo, campos faltantes) | Arregla el body. Los errores de esquema devuelven 422; los de negocio, 400. |
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.