Autenticación
Una aplicación te proporciona un Client ID y una Secret Key que necesitas para crear una sesión OAuth2 autenticada que puedes usar para comunicarte con las APIs de Wink y TripPay.
Aquí están los pasos para crear una sesión autenticada.
Paso 1. Obtén un token de acceso en staging o en nuestro entorno de producción:
Lo más probable es que trabajes con una biblioteca robusta de OAuth2 para tu lenguaje, la cual hará todo el trabajo pesado por ti.
Nuestros ejemplos mostrarán el uso más básico desde la línea de comandos usando curl.
Staging
Sección titulada «Staging»curl -X POST https://staging-iam.wink.travel/oauth2/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials" \ -d "client_id=<YOUR_CLIENT_ID>" \ -d "client_secret=<YOUR_SECRET_KEY>"Producción
Sección titulada «Producción»curl -X POST https://iam.wink.travel/oauth2/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials" \ -d "client_id=<YOUR_CLIENT_ID>" \ -d "client_secret=<YOUR_SECRET_KEY>"Esto devolverá un token de acceso, junto con otros datos de respuesta OAuth2:
{ "access_token": "abc123"}Cuando hagas una llamada a cualquiera de nuestros endpoints, incluye lo siguiente en el encabezado:
Wink-Version=2.0Última - Consulta nuestra documentación de API para otras versiones disponibles.Authorization=Bearer ${access_token}Inserta tu token de acceso.
Un scope es un permiso que lleva tu token de acceso. Cuando solicitas un token, pasas una
lista de scopes delimitada por espacios en el parámetro scope, y el token solo puede acceder a las áreas
que esos scopes cubren. Con el grant client_credentials estableces los scopes en tu solicitud de token —
consulta los ejemplos de curl arriba y el recorrido en Postman.
Los scopes se nombran como section.action, donde la acción es una de:
read— ver recursos (solicitudes segurasGET)write— crear y actualizar recursos (POST/PUT/PATCH)remove— eliminar recursos (DELETE)
Wink agrupa permisos por área funcional. Solicita solo los scopes que tu integración necesita:
| Grupo de scopes | Scopes | Lo que desbloquean | Riesgo |
|---|---|---|---|
| Account | account.read account.write account.remove | Gestión de entidades, miembros del equipo, configuraciones, aplicaciones | Bajo–Medio |
| Inventory | inventory.read inventory.write inventory.remove | Propiedades, tipos de habitación, planes de tarifas, tarifas, complementos, disponibilidad, actividades, atracciones | Bajo–Medio |
| Booking | booking.read booking.write booking.remove | Buscar, ver, crear, cancelar y reembolsar reservaciones; checkout; políticas de cancelación | Bajo–Medio |
| Marketing | marketing.read marketing.write marketing.remove | Campañas, beneficios, canales de venta, WinkLinks, social gestionado, lealtad | Bajo–Medio |
| Content | content.read content.write content.remove | Descripciones de propiedades, reseñas, medios, mapas, índice verde | Bajo–Medio |
| Analytics | analytics.read analytics.write analytics.remove | Reportes y análisis — ingresos, tablas de líderes | Bajo–Medio |
| Integrations | integrations.read integrations.write integrations.remove | Channel managers, sistemas externos de reservaciones, Google Hotel, endpoints de notificación, sincronización de reservaciones | Bajo–Medio |
| Payment | payment.read payment.write payment.remove | Procesamiento de pagos, Stripe, Revolut, pagos, suscripciones | Medio–Alto |
| Accounting | accounting.read accounting.write accounting.remove | Contabilidad, libro de retiros, conciliación | Medio–Alto |
| MCP | mcp.read mcp.write mcp.remove | Abre el transporte MCP (/mcp) para agentes de IA | Bajo–Medio |
Algunas cosas para tener en cuenta:
- Solicita lo mínimo. Pide solo los scopes que tu integración realmente usa — un token emitido con acceso más amplio del necesario tiene un mayor impacto si se filtra.
- Los scopes desconocidos son rechazados. Solicitar un scope para el que tu aplicación no está registrada, o uno que no existe, falla en la emisión del token.
mcp.*es solo para clientes agentes de IA. Lo necesitas para abrir el transporte MCP; no es requerido para llamadas regulares a la API REST. Consulta Model Context Protocol.