Ga naar inhoud

Authenticatie

Een applicatie verstrekt je een Client ID en Secret Key die je nodig hebt om een geauthenticeerde OAuth2-sessie te creëren waarmee je kunt communiceren met de Wink- en TripPay-API’s.

Hier zijn de stappen om een geauthenticeerde sessie te creëren.

Stap 1. Verkrijg een access token op staging of in onze productieomgeving:

Je zult waarschijnlijk werken met een robuuste OAuth2-bibliotheek voor jouw programmeertaal, die al het zware werk voor je doet. Onze voorbeelden tonen het meest basale gebruik vanaf de commandoregel met curl.

Terminal window
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>"
Terminal window
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>"

Dit retourneert een access token, samen met andere OAuth2-responsgegevens:

{
"access_token": "abc123"
}

Wanneer je een oproep doet naar een van onze eindpunten, voeg dan het volgende toe in de header:

  • Wink-Version = 2.0 Laatste - Zie onze API-documentatie voor andere beschikbare versies.
  • Authorization = Bearer ${access_token} Voeg je access token in.

Een scope is een toestemming die je access token draagt. Wanneer je een token aanvraagt, geef je een door spaties gescheiden lijst van scopes mee in de scope parameter, en het token kan alleen de gebieden bereiken die door die scopes worden gedekt. Bij de client_credentials grant stel je de scopes in op je tokenaanvraag — zie de curl voorbeelden hierboven en de Postman walkthrough.

Scopes zijn benoemd als section.action, waarbij de actie een van de volgende is:

  • read — resources bekijken (veilige GET-verzoeken)
  • write — resources aanmaken en bijwerken (POST / PUT / PATCH)
  • remove — resources verwijderen (DELETE)

Wink groepeert permissies per functioneel gebied. Vraag alleen de scopes aan die jouw integratie nodig heeft:

ScopegroepScopesWat ze ontgrendelenRisico
Accountaccount.read account.write account.removeBeheren van entiteiten, teamleden, instellingen, applicatiesLaag–Middel
Inventoryinventory.read inventory.write inventory.removeEigendommen, kamertypes, tariefplannen, tarieven, extra’s, beschikbaarheid, activiteiten, attractiesLaag–Middel
Bookingbooking.read booking.write booking.removeZoeken, bekijken, aanmaken, annuleren en terugbetalen van boekingen; afrekenen; annuleringsvoorwaardenLaag–Middel
Marketingmarketing.read marketing.write marketing.removeCampagnes, voordelen, verkoopkanalen, WinkLinks, beheerde social media, loyaliteitLaag–Middel
Contentcontent.read content.write content.removeEigenschapsbeschrijvingen, beoordelingen, media, kaarten, groene indexLaag–Middel
Analyticsanalytics.read analytics.write analytics.removeRapportage en analyse — omzet, ranglijstenLaag–Middel
Integrationsintegrations.read integrations.write integrations.removeChannel managers, externe boekingssystemen, Google Hotel, notificatie-eindpunten, boekingssyncLaag–Middel
Paymentpayment.read payment.write payment.removeBetalingsverwerking, Stripe, Revolut, uitbetalingen, abonnementenMiddel–Hoog
Accountingaccounting.read accounting.write accounting.removeBoekhouding, uitbetalingsboek, reconciliatieMiddel–Hoog
MCPmcp.read mcp.write mcp.removeOpent de MCP transport (/mcp) voor AI-agentsLaag–Middel

Een paar dingen om in gedachten te houden:

  • Vraag het minimum aan. Vraag alleen de scopes aan die jouw integratie daadwerkelijk gebruikt — een token met bredere toegang dan nodig is, vergroot de impact bij een lek.
  • Onbekende scopes worden geweigerd. Het aanvragen van een scope waarvoor je applicatie niet geregistreerd is, of die niet bestaat, mislukt bij het uitgeven van het token.
  • mcp.* is alleen voor AI-agent clients. Je hebt het nodig om de MCP transport te openen; het is niet vereist voor reguliere REST API-aanroepen. Zie Model Context Protocol.