API iClick

Documentación Completa de la API REST para Servicios de la Plataforma iClick

📋 Descripción General de la API

URL Base: https://api.iclick.cl

URL Base DEV: https://api-iclick.upcode.cl

Versión: v1

Autenticación: Token JWT Bearer (Autenticación OAuth)

La API de iClick proporciona acceso completo al procesamiento de pagos, datos de países, monitoreo de salud y servicios de autenticación OAuth.

🔐 Guía de Autenticación

Flujo OAuth

La API de iClick utiliza OAuth para autenticación. Sigue estos pasos para autenticarte:

Paso 1: Abrir la URL de Autorización

# Abrir esta URL en el navegador https://api.iclick.cl/api/v1/oauth-url # Después del login, se le mostrara una página con un código

Paso 2: Intercambiar Código por Token JWT

# Intercambiar código de autorización por tokens JWT GET https://api.iclick.cl/api/v1/oauth-jwt/{codigo_autorizacion} # Respuesta: { "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "token_actualizacion_aqui", "scope": "openid profile email" }

Paso 3: Usar Token JWT en Solicitudes de la API

# Incluir token JWT en el encabezado de Autorización curl -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." \ https://api.iclick.cl/api/v1/countries

Paso 4: Actualizar Token Cuando Expire

# Usar token de actualización para obtener nuevo JWT GET https://api.iclick.cl/api/v1/oauth-refresh-jwt/{token_actualizacion}
🔐
Autenticación OAuth
GET /api/v1/oauth-url
Redirige a la URL de autorización OAuth para iniciar el flujo de autenticación.
🌐 Endpoint público (no requiere autenticación)
GET /api/v1/oauth-jwt/{code}
Intercambia el código de autorización por tokens JWT (token de acceso, token de actualización).
🌐 Endpoint público (no requiere autenticación)
GET /api/v1/oauth-refresh-jwt/{refresh_token}
Actualiza los tokens JWT usando un token de actualización válido.
🌐 Endpoint público (no requiere autenticación)
💳
Procesamiento de Pagos (WebPay)
POST /api/v1/payment/create
Crea una nueva transacción de pago con WebPay y retorna la URL de redirección para completar el pago.
🔒 Requiere Autenticación
PUT /api/v1/payment/commit
Confirma una transacción de pago usando el token de transacción recibido de WebPay.
🔒 Requiere Autenticación
GET /api/v1/payment/status/{token}
Obtiene el estado actual de una transacción de pago usando el token de transacción.
🔒 Requiere Autenticación
POST /api/v1/payment/refund
Crea un reembolso para una transacción de pago. Soporta reembolsos parciales y totales.
🔒 Requiere Autenticación
🌍
Datos y Nomencladores
GET /api/v1/countries
Retorna una lista de países con pares de ID y nombre para listas desplegables y formularios.
🔒 Requiere Autenticación
💚
Estado de Salud y Monitoreo
GET /health
Estado completo de verificación de salud incluyendo conectividad de base de datos y todos los servicios.
🌐 Endpoint público (no requiere autenticación)
GET /health/live
Sonda de supervivencia - verifica si la API está ejecutándose y responde.
🌐 Endpoint público (no requiere autenticación)
GET /health/ready
Sonda de preparación - verifica si la API está lista para manejar solicitudes (conectividad de base de datos).
🌐 Endpoint público (no requiere autenticación)
GET /health-ui
Panel interactivo de verificaciones de salud con monitoreo en tiempo real y datos históricos.
🌐 Endpoint público (no requiere autenticación)

💳 Ejemplos de Procesamiento de Pagos

Crear Transacción de Pago

POST https://api.iclick.cl/api/v1/payment/create Content-Type: application/json Authorization: Bearer {tu_token_jwt} { "buyOrder": "ORDEN-12345", "sessionId": "SESION-67890", "amount": 25000, "returnUrl": "https://tuapp.com/payment/callback" } # Respuesta: { "token": "token_transaccion_webpay_aqui" "url": "https://url.para.pagar" }

Verificar Estado del Pago

GET https://api.iclick.cl/api/v1/payment/status/{token_transaccion} Authorization: Bearer {tu_token_jwt} # Respuesta: { "status": "AUTHORIZED", "amount": 25000, "buyOrder": "ORDEN-12345", "authorizationCode": "123456", "transactionDate": "2024-01-15T10:30:00Z" }
200 OK
Éxito
400 Bad Request
Error de Validación
401 Unauthorized
Autenticación Requerida
404 Not Found
Recurso No Encontrado
500 Server Error
Error Interno del Servidor

🌍 Ejemplos de Acceso a Datos

Obtener Lista de Países

GET https://api.iclick.cl/api/v1/countries Authorization: Bearer {tu_token_jwt} # Respuesta: { "entities": [ { "id": 1, "name": "Chile" }, { "id": 2, "name": "Argentina" } ], "totalCount": 2 }
200 OK
Éxito
400 Bad Request
Error de Validación
401 Unauthorized
Autenticación Requerida
404 Not Found
Recurso No Encontrado
500 Server Error
Error Interno del Servidor

🛡️ Seguridad y Mejores Prácticas