Ir al contenido

Autenticación

Una aplicación te proporciona un Client ID y una Secret Key que necesitas para crear una sesión OAuth2 autenticada que puedas 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 OAuth2 robusta para tu lenguaje, que hará todo el trabajo pesado por vos. Nuestros ejemplos mostrarán el uso más básico desde la línea de comandos usando curl.

Ventana de terminal
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>"
Ventana de terminal
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 solicitás un token, pasás una lista de scopes separados 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 establecés los scopes en tu solicitud de token — mirá 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 seguras GET)
  • write — crear y actualizar recursos (POST / PUT / PATCH)
  • remove — eliminar recursos (DELETE)

Wink agrupa permisos por área funcional. Solicitá solo los scopes que tu integración necesita:

Grupo de scopesScopesLo que desbloqueanRiesgo
Accountaccount.read account.write account.removeGestión de entidades, miembros del equipo, configuraciones, aplicacionesBajo–Medio
Inventoryinventory.read inventory.write inventory.removePropiedades, tipos de habitación, planes tarifarios, tarifas, add-ons, disponibilidad, actividades, atraccionesBajo–Medio
Bookingbooking.read booking.write booking.removeBuscar, ver, crear, cancelar y reembolsar reservas; checkout; políticas de cancelaciónBajo–Medio
Marketingmarketing.read marketing.write marketing.removeCampañas, beneficios, canales de venta, WinkLinks, social gestionado, fidelidadBajo–Medio
Contentcontent.read content.write content.removeDescripciones de propiedades, reseñas, medios, mapas, índice verdeBajo–Medio
Analyticsanalytics.read analytics.write analytics.removeReportes y análisis — ingresos, rankingsBajo–Medio
Integrationsintegrations.read integrations.write integrations.removeChannel managers, sistemas externos de reservas, Google Hotel, endpoints de notificación, sincronización de reservasBajo–Medio
Paymentpayment.read payment.write payment.removeProcesamiento de pagos, Stripe, Revolut, pagos, suscripcionesMedio–Alto
Accountingaccounting.read accounting.write accounting.removeContabilidad, libro de retiros, conciliaciónMedio–Alto
MCPmcp.read mcp.write mcp.removeAbre el transporte MCP (/mcp) para agentes de IABajo–Medio

Algunas cosas para tener en cuenta:

  • Solicitá lo mínimo. Pedí 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 que no existe, falla al emitir el token.
  • mcp.* es solo para clientes agentes de IA. Lo necesitás para abrir el transporte MCP; no es requerido para llamadas REST API regulares. Ver Model Context Protocol.