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 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 OAuth2 robusta para tu lenguaje, que 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.

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 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 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. Solicita 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, complementos, 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, tablas de clasificaciónBajo–Medio
Integrationsintegrations.read integrations.write integrations.removeGestores de canales, 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 a 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 REST API regulares. Consulta Model Context Protocol.