Agentic Payments
Je kunt via je AI-agent zoeken naar een hotel, een kamer kiezen en je boeking afronden. Verbind deze met Wink en een betaalportemonnee, en vertel waar je wilt verblijven. Wink gebruikt het Machine Payments Protocol (MPP) om de betaling van de portemonnee te accepteren en je boekingsbevestiging terug te geven.
1. Verbind de MCP-servers
Section titled “1. Verbind de MCP-servers”Voor de volledige boekingsflow heeft je agent Wink Booking Engine en een betaalportemonnee nodig.
| Verbinding | Wat het doet | Hoe toe te voegen |
|---|---|---|
| Wink Booking Engine — vereist | Vindt bestemmingen, zoekt hotels en kamertarieven, geeft offertes en bevestigt boekingen, en haalt je boekingen en bonnetjes op. | Voeg https://api.wink.travel/mcp/booking-engine toe als een externe HTTP MCP-server. |
| Betaalportemonnee — vereist om te betalen | Levert betaalgegevens nadat je de aankoop hebt goedgekeurd. | Verbind een portemonnee die Stripe Shared Payment Tokens ondersteunt. Zie het Link-voorbeeld hieronder. |
| Wink Reference — optioneel | Zoekt landen, valuta en andere referentiegegevens op. | https://api.wink.travel/mcp/reference |
| Wink Docs — optioneel | Helpt je agent documentatie en API-contracten te lezen. | https://docs.mcp.wink.travel/mcp |
De Booking Engine MCP bevat al de benodigde tools voor de reiziger-boekingsflow, wanneer agentic booking en betaling voor die omgeving zijn ingeschakeld. De aparte Payment MCP van Wink is bedoeld voor financiële operaties zoals grootboeken en opnames; deze is niet nodig om een kamer te betalen.
Aanmelden en machtigingen kiezen
Section titled “Aanmelden en machtigingen kiezen”- Open de MCP- of connectorinstellingen van je agent en voeg de Booking Engine-URL hierboven toe. Geef het een naam zoals Wink Booking.
- Je agent opent de Wink-aanmeldpagina in je browser. Meld je aan met het Wink-account waaronder je wilt boeken.
- Kies op het toestemmingsscherm de machtigingen die je agent nodig heeft en keur de verbinding goed.
- Keer terug naar je agent. Deze laadt de beschikbare tools en beheert authenticatie voor volgende MCP-aanroepen.
Selecteer voor deze flow:
| Machtiging | Waarom nodig |
|---|---|
AI-agent toegang (mcp.read) | Hiermee kan je agent verbinding maken met Wink MCP. |
Marketing lezen (marketing.read) | Hiermee kan de agent de boekingsconfiguratie van je account vinden, een zogenaamde customization. Je account moet ook toegang hebben tot die configuratie. |
Betaling schrijven (payment.write) | Hiermee kan de agent betalen voor de offerte en de boeking bevestigen. |
Bewaar de machtigingen die door de verbinding worden gevraagd. Je MCP-client regelt toegangstokens; je hoeft geen token in de chat te kopiëren of request-headers in te stellen. Als je een benodigde machtiging hebt overgeslagen, maak dan opnieuw verbinding via de aanmeldflow van je client en keur deze goed.
Verbind een betaalportemonnee
Section titled “Verbind een betaalportemonnee”Voor Stripe-betalingen is een optie Link’s agent wallet. Als je client lokale MCP-servers ondersteunt en Node.js is geïnstalleerd, voeg dan deze invoer toe aan de MCP-configuratie:
{ "mcpServers": { "link": { "command": "npx", "args": ["@stripe/link-cli", "--mcp"] } }}Vraag je agent om je Link-account te verbinden, volg dan de verificatielink die het geeft en keur de verbinding goed. Link levert de Shared Payment Token die wordt gebruikt om de boeking te betalen. Link ondersteunt momenteel alleen Amerikaanse accounts; controleer de bestedingslimieten voordat je boekt. Zie Link’s setup guide en MCP configuration.
Als je agent al een compatibele portemonnee heeft verbonden, gebruik dan die verbinding. Het instellen van de portemonnee en het goedkeuren van betalingen zijn los van het aanmelden bij Wink.
2. Vraag je agent een kamer te vinden
Section titled “2. Vraag je agent een kamer te vinden”Bijvoorbeeld:
Zoek een kamer in Bangkok voor twee volwassenen van 15 tot 17 januari 2027. Laat me de beschikbare opties, totale prijs en annuleringsvoorwaarden zien voordat ik kies.
Je agent kan je toegankelijke Wink-accounts en hun boekingsconfiguraties vinden. Als je er meerdere hebt, vertel dan welke te gebruiken. Als je boekt via een meegeleverde boekingslink of configuratie, geef die dan aan de agent.
De agent bepaalt vervolgens je bestemming, controleert beschikbare hotels en laadt kamertarieven voor je data. Kies een kamer en vraag om een offerte.
Deze betalingsflow ondersteunt momenteel één kamer, geprijsd in USD, alleen voor volwassenen. Een offerte heeft een vervaltijd. Het aanvragen ervan brengt geen kosten in rekening en bevestigt geen boeking.
3. Controleer en keur betaling goed
Section titled “3. Controleer en keur betaling goed”Controleer het hotel, de kamer, data, gasten, annuleringsvoorwaarden en het geoffreerde totaalbedrag. Als je klaar bent, vraag je agent om te boeken en voltooi je eventuele goedkeuring die je portemonnee vraagt.
De portemonnee levert een Stripe Shared Payment Token om de offerte te betalen.
Tempo stablecoin-betalingen komen binnenkort.
Na een geslaagde betaling geeft je agent je een boekingsbevestigingscode. Het kan ook de boekingsgegevens en het bonnetje ophalen via de Booking Engine MCP.
Als de betaling nog verwerkt wordt of het antwoord verloren is gegaan, laat de agent dan de zelfde betalingspoging controleren. Deze moet de offerte en betaalgegevens hergebruiken in plaats van een tweede betaling te starten. Als de betaling wordt geweigerd, vraag dan een nieuwe offerte aan en controleer deze voordat je het opnieuw probeert.
Toolreferentie voor agents en ontwikkelaars
Section titled “Toolreferentie voor agents en ontwikkelaars”Alle Wink-tools hieronder zijn beschikbaar via de Booking Engine MCP. De MCP-client stuurt authenticatie automatisch mee met de tijdens het aanmelden goedgekeurde machtigingen.
| Stap | Tools en gedrag |
|---|---|
| Selecteer boekingscontext | managing_entity_list, daarna customization_get_primary of customization_search voor het geselecteerde account. Gebruik een meegeleverde customization als die al bekend is. |
| Zoek een bestemming | destination_lookup_search_suggestions en destination_lookup_get. |
| Zoek hotels en kamers | inventory_search_city of inventory_search_geo, daarna property_inventory_get voor tarieven en beschikbaarheid. |
| Offerte voor geselecteerde kamer | agentic_booking_quote. Geef kamergegevens mee in het request-argument. |
| Betalen en bevestigen | Verkrijg een Shared Payment Token van de verbonden portemonnee, roep dan agentic_booking_pay aan met request.quoteId en request.spt. Gebruik dezelfde aangemelde Wink-gebruiker voor offerte en betaling. |
| Haal boeking en bonnetje op | Gebruik booking_search of booking_search_list om de bevestigde boeking te vinden, daarna booking_get en booking_receipt_get met het boekings-ID. |
De offerteaanvraag heeft hotelIdentifier, roomRateIdentifier, checkIn, checkOut, adults, children en customizationIdentifier nodig. Data gebruiken YYYY-MM-DD; checkOut moet na checkIn liggen. Zet adults op minimaal 1 en children op 0.
De offerte retourneert quoteId, amountUsdCents, currency, expiresAt en mppChallenges. Toon USD-cents als dollars: 10000 betekent $100,00.
| Betaalresultaat | Volgende stap |
|---|---|
PAYMENT_SUCCEEDED | Sla bookingConfirmationCode en chargeReference op. |
IN_PROGRESS | Wacht even en probeer dezelfde offerte en betaalgegevens opnieuw. |
DECLINED | Vraag een nieuwe offerte aan en controleer deze voordat je opnieuw betaalt. |
Een succesvolle herhaling retourneert de bestaande boeking zonder opnieuw kosten in rekening te brengen. Behandel een time-out als een onbekende uitkomst en probeer dezelfde betaling opnieuw. Als het probleem blijft, neem dan contact op met support met het offerte-ID.
Betalingsbewuste MCP-clients
Section titled “Betalingsbewuste MCP-clients”Betalingsbewuste MCP-clients kunnen agentic_booking_book gebruiken met de kamer velden direct in arguments. De eerste oproep retourneert fout -32042 met betalingsuitdagingen. Probeer dezelfde oproep opnieuw met de portemonnee-credential in params._meta["org.paymentauth/credential"]; succes bevat result._meta["org.paymentauth/receipt"]. Fout -32043 bevat een betalingsfout en uitdaging: een definitieve afwijzing vereist een nieuwe offerte, terwijl een onvolledige betalingspayload opnieuw kan proberen met dezelfde uitdaging. Voor -32603 betekent een data.failure.reason van payment-in-progress of already-consumed dat dezelfde credential opnieuw geprobeerd moet worden; de foutcode alleen is niet voldoende.
Boeken via REST
Section titled “Boeken via REST”Gebruik REST bij het bouwen van een integratie die Wink direct via HTTP aanroept. Zowel de offerte als betaling gebruiken POST https://api.wink.travel/api/mpp/booking.
Je applicatie heeft een Wink user access token nodig met payment.write-machtiging om te betalen. Gebruik dezelfde gebruiker voor beide oproepen. Stuur het token in Wink-Authorization, zodat Authorization beschikbaar blijft voor de betaalcredential van de portemonnee. Deze headers gelden voor REST; een MCP-client regelt zijn eigen authenticatie.
1. Vraag een offerte aan
Section titled “1. Vraag een offerte aan”Sla de geselecteerde kamer op als booking.json, vervang de voorbeeld-ID’s en data door je eigen selectie. De kamer velden gaan direct in de JSON-body, zonder een request-wrapper.
{ "hotelIdentifier": "YOUR_HOTEL_ID", "roomRateIdentifier": "YOUR_ROOM_RATE_ID", "checkIn": "2027-01-15", "checkOut": "2027-01-17", "adults": 2, "children": 0, "customizationIdentifier": "YOUR_CUSTOMIZATION_ID"}Stel WINK_ACCESS_TOKEN in op het toegangstoken van de gebruiker en verstuur het verzoek:
curl -i https://api.wink.travel/api/mpp/booking \ -H "Wink-Authorization: Bearer $WINK_ACCESS_TOKEN" \ -H 'Content-Type: application/json' \ --data-binary @booking.jsonWink retourneert 402 Payment Required met een WWW-Authenticate: Payment ...-uitdaging voor elke aangeboden methode. De JSON-body bevat quoteId, amount, currency, expiresAt en methods. Hier is amount een string in USD-cents: "10000" betekent $100,00. Controleer de offerte vóór de vervaldatum; er is nog geen betaling gedaan.
2. Betalen en bevestigen
Section titled “2. Betalen en bevestigen”Laat de portemonnee de teruggegeven Stripe-uitdaging vervullen door een Shared Payment Token te leveren in payload.spt. Gebruik de betalingsgegevens uit die uitdaging.
Stel MPP_CREDENTIAL in op de gecodeerde MPP-credential van de portemonnee, die de uitdaging en betalingspayload bevat. Probeer dezelfde request body opnieuw, met de identity-header:
curl -i https://api.wink.travel/api/mpp/booking \ -H "Wink-Authorization: Bearer $WINK_ACCESS_TOKEN" \ -H "Authorization: Payment $MPP_CREDENTIAL" \ -H 'Content-Type: application/json' \ --data-binary @booking.jsonBij succes retourneert Wink 200 OK, een JSON-body met bookingConfirmationCode en een Payment-Receipt-header. Sla de bevestiging en het bonnetje op. Een succesvolle herhaling retourneert de bestaande boeking zonder opnieuw kosten in rekening te brengen.
Verwerk reacties en herhalingen
Section titled “Verwerk reacties en herhalingen”| Reactie | Wat te doen |
|---|---|
400 | Corrigeer ongeldige kamergegevens of een onjuiste credential. |
401 / 403 | Controleer de authenticatie en betaalmachtiging van de gebruiker. |
402 | Bekijk het geretourneerde probleem en de uitdaging. Een definitieve betalingsafwijzing vereist een nieuwe offerte; een onvolledige betalingspayload hergebruikt de originele uitdaging. Controleer de prijs vóór betaling. |
409 | De betalingsuitkomst is onduidelijk. Wacht even en probeer dezelfde body en credential opnieuw bij de boekingsendpoint. |
429 | Wacht het aantal seconden in Retry-After en probeer opnieuw. |
Een 409-reactie heeft een application/problem+json-body. Vergelijk het type met deze exacte URL’s:
| Probleemtype | Betekenis |
|---|---|
| https://api.wink.travel/problems/payment-in-progress | Een betalingspoging is nog bezig of afwikkeling kan nog niet worden bevestigd. |
| https://api.wink.travel/problems/already-consumed | De uitdaging of betalingsbewijs is al gebruikt door een mogelijk succesvolle poging. Dit bevestigt de boeking niet op zichzelf. |
Beide betekenen probeer dezelfde betaling opnieuw; betaal geen nieuwe offerte. De URL’s identificeren en documenteren het probleem; het zijn geen betalings- of pollingendpoints. Probeer POST /api/mpp/booking opnieuw en gebruik het probleem-type in plaats van de vrije tekst detail om te beslissen wat te doen. Zie de problem-type referentie voor alle Wink-betaalproblemen.
Een time-out, verloren reactie of serverfout na het indienen van de betaling kan ook de uitkomst onbekend laten. Probeer dezelfde betalingsaanvraag opnieuw. Als de uitkomst onopgelost blijft, neem dan contact op met support met het offerte-ID voordat je een nieuwe betaling start.
