Aller au contenu

Authentification

Une application vous fournit un Client ID et une Secret Key dont vous avez besoin pour créer une session OAuth2 authentifiée que vous pouvez utiliser pour communiquer avec les API Wink et TripPay.

Voici les étapes pour créer une session authentifiée.

Étape 1. Récupérez un jeton d’accès en staging ou dans notre environnement de production :

Vous utiliserez très probablement une bibliothèque OAuth2 robuste pour votre langage, qui fera tout le travail lourd pour vous. Nos exemples montreront l’utilisation la plus basique depuis la ligne de commande avec curl.

Fenêtre 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>"
Fenêtre 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>"

Cela renverra un jeton d’accès, ainsi que d’autres données de réponse OAuth2 :

{
"access_token": "abc123"
}

Lorsque vous effectuez un appel à l’un de nos points de terminaison, incluez ce qui suit dans l’en-tête :

  • Wink-Version = 2.0 Dernière version - Consultez notre documentation API pour les autres versions disponibles.
  • Authorization = Bearer ${access_token} Insérez votre jeton d’accès.

Un scope est une permission que porte votre jeton d’accès. Lorsque vous demandez un jeton, vous passez une liste d’espaces délimités de scopes dans le paramètre scope, et le jeton ne peut accéder qu’aux zones couvertes par ces scopes. Avec le grant client_credentials, vous définissez les scopes lors de votre demande de jeton — voir les exemples curl ci-dessus et le tutoriel Postman.

Les scopes sont nommés section.action, où l’action est l’une des suivantes :

  • read — consulter les ressources (requêtes GET sûres)
  • write — créer et mettre à jour des ressources (POST / PUT / PATCH)
  • remove — supprimer des ressources (DELETE)

Wink regroupe les permissions par domaine fonctionnel. Demandez uniquement les scopes dont votre intégration a besoin :

Groupe de scopesScopesCe qu’ils débloquentRisque
Accountaccount.read account.write account.removeGestion des entités, membres d’équipe, paramètres, applicationsFaible–Moyen
Inventoryinventory.read inventory.write inventory.removePropriétés, types de chambres, plans tarifaires, tarifs, options, disponibilités, activités, attractionsFaible–Moyen
Bookingbooking.read booking.write booking.removeRecherche, consultation, création, annulation et remboursement de réservations ; paiement ; politiques d’annulationFaible–Moyen
Marketingmarketing.read marketing.write marketing.removeCampagnes, avantages, canaux de vente, WinkLinks, social géré, fidélitéFaible–Moyen
Contentcontent.read content.write content.removeDescriptions de propriétés, avis, médias, cartes, indice écologiqueFaible–Moyen
Analyticsanalytics.read analytics.write analytics.removeRapports et analyses — revenus, classementsFaible–Moyen
Integrationsintegrations.read integrations.write integrations.removeGestionnaires de canaux, systèmes de réservation externes, Google Hotel, points de notification, synchronisation de réservationsFaible–Moyen
Paymentpayment.read payment.write payment.removeTraitement des paiements, Stripe, Revolut, paiements, abonnementsMoyen–Élevé
Accountingaccounting.read accounting.write accounting.removeComptabilité, registre des retraits, rapprochementMoyen–Élevé
MCPmcp.read mcp.write mcp.removeOuvre le transport MCP (/mcp) pour les agents IAFaible–Moyen

Quelques points à garder en tête :

  • Demandez le minimum. Ne demandez que les scopes que votre intégration utilise réellement — un jeton émis avec un accès plus large que nécessaire a un rayon d’impact plus grand en cas de fuite.
  • Les scopes inconnus sont rejetés. Demander un scope pour lequel votre application n’est pas enregistrée, ou qui n’existe pas, échoue lors de l’émission du jeton.
  • mcp.* est réservé aux clients agents IA. Vous en avez besoin pour ouvrir le transport MCP ; ce n’est pas requis pour les appels REST API classiques. Voir Model Context Protocol.