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.
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>"Production
Section intitulée « Production »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.0Derniè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êtesGETsû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 scopes | Scopes | Ce qu’ils débloquent | Risque |
|---|---|---|---|
| Account | account.read account.write account.remove | Gestion des entités, membres d’équipe, paramètres, applications | Faible–Moyen |
| Inventory | inventory.read inventory.write inventory.remove | Propriétés, types de chambres, plans tarifaires, tarifs, options, disponibilités, activités, attractions | Faible–Moyen |
| Booking | booking.read booking.write booking.remove | Recherche, consultation, création, annulation et remboursement de réservations ; paiement ; politiques d’annulation | Faible–Moyen |
| Marketing | marketing.read marketing.write marketing.remove | Campagnes, avantages, canaux de vente, WinkLinks, social géré, fidélité | Faible–Moyen |
| Content | content.read content.write content.remove | Descriptions de propriétés, avis, médias, cartes, indice écologique | Faible–Moyen |
| Analytics | analytics.read analytics.write analytics.remove | Rapports et analyses — revenus, classements | Faible–Moyen |
| Integrations | integrations.read integrations.write integrations.remove | Gestionnaires de canaux, systèmes de réservation externes, Google Hotel, points de notification, synchronisation de réservations | Faible–Moyen |
| Payment | payment.read payment.write payment.remove | Traitement des paiements, Stripe, Revolut, paiements, abonnements | Moyen–Élevé |
| Accounting | accounting.read accounting.write accounting.remove | Comptabilité, registre des retraits, rapprochement | Moyen–Élevé |
| MCP | mcp.read mcp.write mcp.remove | Ouvre le transport MCP (/mcp) pour les agents IA | Faible–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.