Tilføj din Channel Manager
Denne guide fører channel manager- og PMS-udviklere gennem hele processen med at integrere med Wink — fra oprettelse af dine konti til kortlægning af inventar og kørsel af din første end-to-end test.
Miljøer
Sektion kaldt “Miljøer”Channel Manager (Integrations) API er tilgængelig i to miljøer. Brug staging til al udvikling og certificering; skift til produktion først ved go-live.
| Miljø | Base URL |
|---|---|
| Produktion | https://integrations.wink.travel |
| Staging | https://staging-integrations.wink.travel |
API-reference
Sektion kaldt “API-reference”Channel Manager API følger OTA-protokolstandarder (SOAP/XML) for kompatibilitet med eksisterende hospitality-systemer. Start med at gennemgå partner-endpoint-dokumentationen:
Channel Manager API — Partner endpoints
Integrations trin
Sektion kaldt “Integrations trin”-
Opret en Wink-brugerkonto
Tilmeld dig på staging-app.wink.travel. Alle trin nedenfor bruger staging — du vil gentage hele processen i produktion før go-live.
-
Opret din Affiliate / Channel Manager-konto
Under din nye bruger opret en konto og vælg kontotypen Affiliate / Channel Manager. Dette er den konto, din integration vil autentificere som.
-
Registrer en applikation og udsted dit første token
Opret en Application og bind den til channel manager-kontoen fra trin 2. Vælg MACHINE_2_MACHINE som klienttype — dette er en server-til-server integration uden en slutbruger at omdirigere. Kopiér straks Client ID og Secret Key; secret key vises kun én gang og kan ikke hentes igen.
Applikationen er den, der udsteder bearer-tokenet, som alle kald i denne guide bærer som
Authorization: Bearer <access_token>. Byt dine legitimationsoplysninger til et token ved hjælp afclient_credentialsgrant modhttps://staging-iam.wink.travel/oauth2/token, og anmod omintegrations.read integrations.writescopes. Gør dette før du går videre — du kan ikke slå konti op eller tilgå nogen Channel Manager-endpoint uden et token. Se Authentication for hele flowet, produktionshosten og det komplette scope-katalog. -
Opret en Hotel-konto
Under samme bruger opret en anden konto og vælg kontotypen Hotel. Dette giver dig en ejendom, du kan bruge til test uden at involvere et rigtigt hotel.
-
Bekræft at begge konti er godkendt
Ingen af kontiene kan bruges, før de er godkendt: en ikke-godkendt channel manager-konto vises ikke i nogen hotels channel manager-liste, og et ikke-godkendt hotel returneres ikke af API’en.
- Staging — godkendelse er automatisk. Begge konti kan bruges, så snart du opretter dem, og der er intet at anmode om.
- Produktion — godkendelse er manuel. Send dine Wink integrationskontakter navnene på begge konti og den bruger, de ligger under, og vent på bekræftelse før du fortsætter.
-
Forbind de to konti
Log ind på Hotel-kontoen og naviger til Extranet → Distribution → Channel Manager. Vælg din channel manager-konto fra listen — dette linker ejendommen til din integration. Hvis din konto ikke er på listen, er den endnu ikke godkendt; se trin 5.
-
Opret en grundlæggende værelsestype og rateplan
Inde i Hotel-kontoen opret mindst én værelsestype og én rateplan. Disse er nødvendige, før din integration kan skubbe priser og tilgængelighed eller hente bookinger.
-
Kortlæg og test
I dit eget system kortlæg værelsestype- og rateplan-identifikatorerne, som API’en returnerer. Skub en prisopdatering og en tilgængelighedsopdatering, lav derefter en testbooking og bekræft, at booking-hentnings-endpointet returnerer den korrekt.
Find dine kontoidentifikatorer
Sektion kaldt “Find dine kontoidentifikatorer”Hver Channel Manager API-sti er scoped til din egen konto:
/api/managing-entity/{managingEntityIdentifier}/channel-manager/...{managingEntityIdentifier} er konto-ID’et (en UUID) for din channel manager-konto — ikke hotellets. Hent det sammen med ID og nuværende status for alle andre konti, din bruger ejer, fra Platform API:
curl -s -X GET \ "https://staging-api.wink.travel/api/managing-entity/list" \ -H "Authorization: Bearer <access_token>" \ -H "Wink-Version: 2.0" \ -H "Accept: application/json"Svaret er et array af de konti, du ejer:
[ { "id": "3f1c8e42-7b90-4d55-a1e2-6c8d09b4f731", "type": "CHANNEL_MANAGER", "name": "Din Channel Manager", "status": "ACTIVE" }, { "id": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69", "type": "HOTEL", "name": "Din Test Ejendom", "urlName": "your-test-property", "status": "ACTIVE" }]idfor channel manager-posten er din{managingEntityIdentifier}.idforHOTEL-posten er din{propertyIdentifier}.statuser hvor du bekræfter, at hver konto er godkendt — mest nyttigt i produktion, hvor godkendelse er manuel. Hotellet skal læseACTIVEfør det kan bookes eller ses af Channel Manager API. Din channel manager konto vil fortsat læsePENDING_APPROVALindtil du gennemfører Certificering; det er forventet og blokerer ikke udvikling.
Certificering
Sektion kaldt “Certificering”Certificering er, hvordan du beviser — og hvordan Wink bekræfter — at din integration korrekt kortlægger inventar, skubber priser og tilgængelighed, og modtager bookinger end-to-end. Det er designet til at være selvbetjent: du styrer hvert trin fra dit eget system, og du indsender en enkelt evidenspakke til sidst. Wink gennemgår pakken og, ved bestået, promoverer din Affiliate / Channel Manager-konto fra PENDING_APPROVAL til ACTIVE.
Certificering foregår udelukkende mod staging-miljøet
(https://staging-integrations.wink.travel). Intet i denne sektion berører produktion.
Hvad du skal bevise
Sektion kaldt “Hvad du skal bevise”-
Autentifikation. Din OAuth2-klient kan opnå et access token og kalde
/pingendpointet mod din Affiliate / Channel Manager-konto med succes. -
Inventarkortlægning. Du kan liste hotellet/hotellerne tilknyttet din konto, hente masterraten (værelsestype × rateplan), som du har konfigureret, og korrekt identificere
masterRateIdentifier, som dit system vil målrette mod. -
Pris- og tilgængelighedsskub. Du kan opdatere alle syv dage i en certificeringsuge uafhængigt — en forskellig kombination af beløb, antal, close-on-arrival / close-on-departure flag og min/max opholdslængde på hver dag — og læse de præcise værdier tilbage fra Wink.
-
Booking-hentning. Du kan hente en rigtig staging-booking lavet mod din testejendom, vise den i dit eget PMS/CM UI med korrekt værelsesophold, gæst og total, og derefter afspejle en annullering, når Wink markerer bookingen som annulleret.
Forudsætninger
Sektion kaldt “Forudsætninger”Før du begynder certificering, gennemfør trin 1–7 i Integrations trin, så du har:
- En Wink-bruger på staging med en Affiliate / Channel Manager konto og en Hotel konto tilknyttet (Extranet → Distribution → Channel Manager). Staging-konti godkendes automatisk, så der er intet at anmode om her.
- Mindst én værelsestype og én rateplan oprettet inde i Hotel-kontoen. Publicer hotellet,
så det kan bookes på
https://staging-book.wink.travel/hotel/<your-slug>. - En registreret applikation under din Affiliate / Channel Manager-konto med en Client ID,
Secret Key og
integrations.read integrations.writescopes (se Authentication). managingEntityIdentifierfor din Affiliate / Channel Manager-konto ogpropertyIdentifierfor din Hotel-konto (begge er UUID’er — se Find dine kontoidentifikatorer).
Almindelige anmodningskonventioner
Sektion kaldt “Almindelige anmodningskonventioner”Hver anmodning i denne sektion bruger disse headers:
Authorization: Bearer <access_token>Wink-Version: 2.0Accept: application/json<access_token>kommer fraclient_credentialsgrant modhttps://staging-iam.wink.travel/oauth2/token— se Authentication.Wink-Versionheaderen er påkrævet; udeladelse vil ikke rute til v2 JSON API.Content-Type: application/jsontilføjes påPUT-anmodninger, der indeholder en body.
I eksemplerne nedenfor svarer pladsholderne til de værdier, du har samlet i Forudsætninger:
| Pladsholder | Betydning |
|---|---|
{managingEntityIdentifier} | Din Affiliate / Channel Manager konto-ID (UUID) — se Find dine kontoidentifikatorer. |
{propertyIdentifier} | Hotelkontoens (ejendommens) ID, som du har tilknyttet CM-kontoen. |
{masterRateIdentifier} | Masterraten (værelsestype × rateplan), som du vil certificere mod. |
{bookingIdentifier} | Staging booking-ID returneret af bookingliste-kaldet. |
Trin A — Ping
Sektion kaldt “Trin A — Ping”Bekræft at dine legitimationsoplysninger peger på den Affiliate / Channel Manager-konto, du forventer.
curl -s -X GET \ "https://staging-integrations.wink.travel/api/managing-entity/{managingEntityIdentifier}/channel-manager/ping" \ -H "Authorization: Bearer <access_token>" \ -H "Wink-Version: 2.0" \ -H "Accept: application/json"Forventet svar:
{ "apiVersion": "2.0", "name": "Navnet på din Channel Manager-konto", "status": "PENDING_APPROVAL"}Et 200 svar med et matchende name er signalet om, at autentifikation og kontoopslag
er korrekte. status vil læse PENDING_APPROVAL indtil Wink certificerer dig.
Trin B — Liste ejendomme
Sektion kaldt “Trin B — Liste ejendomme”Hent den paginerede liste over hoteller tilknyttet din konto og bekræft, at din testejendom er til stede.
curl -s -X GET \ "https://staging-integrations.wink.travel/api/managing-entity/{managingEntityIdentifier}/channel-manager/property/list?page=0&size=25" \ -H "Authorization: Bearer <access_token>" \ -H "Wink-Version: 2.0" \ -H "Accept: application/json"Svaret er en Spring Page af ChannelManagerProperty-poster. Find posten, hvis
identifier matcher dit {propertyIdentifier}, og noter dens currencyCode — du får brug for den
til fortolkning af prisopdateringerne i Trin D.
Trin C — Hent masterrater
Sektion kaldt “Trin C — Hent masterrater”Hent ejendommen sammen med alle masterrater (værelsestype × rateplan-kombinationer), den
publicerer. Vælg den, du agter at certificere mod, og noter dens identifier som din
{masterRateIdentifier}.
curl -s -X GET \ "https://staging-integrations.wink.travel/api/managing-entity/{managingEntityIdentifier}/channel-manager/property/{propertyIdentifier}" \ -H "Authorization: Bearer <access_token>" \ -H "Wink-Version: 2.0" \ -H "Accept: application/json"Svarpakken er PropertyWithRoomRateList: en property blok plus et rooms array af
PropertyRoomRate-poster. Hver post viser værelsestype, rateplan, belægningsgrænser, basispris
og de prisændringer, du skal bevare, når du skubber daglige priser.
Trin D — Indlæs certificeringsugen
Sektion kaldt “Trin D — Indlæs certificeringsugen”Indlæs en syv-dages pris-kalender, der dækker de første syv kalenderdage i måneden efter den måned, hvor du begynder certificering. For eksempel, hvis du starter certificering den 21. august, målret 1. september til 7. september.
Du sender syv separate PUT kald — ét per dag — hvor startDate == endDate. Hver dag
har en bevidst forskellig kombination af beløb, antal, restriktionsflag og opholdslængdegrænser,
så hvert skrivbart felt bliver testet mindst én gang. Værdier er i ejendommens valuta (noteret i Trin B);
udelad currencyCode og det vil blive sat korrekt som standard.
| Dag | Beløb | Antal | closedOnArrival | closedOnDeparture | minLengthOfStay | maxLengthOfStay | Hvad det beviser |
|---|---|---|---|---|---|---|---|
| 1 | 100,00 | 5 | false | false | 1 | 30 | Baseline dag. |
| 2 | 125,00 | 4 | false | false | 1 | 14 | Beløb + antal + maxLengthOfStay ændring. |
| 3 | 150,00 | 3 | true | false | 1 | 30 | closedOnArrival flip. |
| 4 | 175,00 | 2 | false | true | 2 | 7 | closedOnDeparture flip + strammere LOS-vindue. |
| 5 | 200,00 | 0 | false | false | 1 | 30 | Udsolgt antal. |
| 6 | 225,00 | 5 | false | false | 3 | 5 | Restriktivt LOS-vindue. |
| 7 | 250,00 | 1 | false | false | 1 | 30 | Sidste-værelse tilgængelighed. |
Request-body for Dag 1 ser således ud. Gentag, juster startDate / endDate / værdier per
række, for Dag 2 til 7.
curl -s -X PUT \ "https://staging-integrations.wink.travel/api/managing-entity/{managingEntityIdentifier}/channel-manager/property/{propertyIdentifier}/master-rate/{masterRateIdentifier}" \ -H "Authorization: Bearer <access_token>" \ -H "Wink-Version: 2.0" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "startDate": "2026-09-01", "endDate": "2026-09-01", "amount": 100.00, "master": true, "closedOnArrival": false, "closedOnDeparture": false, "quantity": 5, "minLengthOfStay": 1, "maxLengthOfStay": 30 }'Hver PUT svarer med 200 og et array af opdaterede PropertyRate-poster for det interval, du sendte
(én post når startDate == endDate). Gem det svar — det vil være en del af din evidens.
Trin E — Læs certificeringsugen tilbage
Sektion kaldt “Trin E — Læs certificeringsugen tilbage”Hent hele ugen i et enkelt kald og bekræft, at hver dags lagrede værdier matcher rækken, du sendte i Trin D — inklusive boolske flag og opholdslængdevinduet.
curl -s -X GET \ "https://staging-integrations.wink.travel/api/managing-entity/{managingEntityIdentifier}/channel-manager/property/{propertyIdentifier}/master-rate/{masterRateIdentifier}?startDate=2026-09-01&endDate=2026-09-07" \ -H "Authorization: Bearer <access_token>" \ -H "Wink-Version: 2.0" \ -H "Accept: application/json"Svaret er en PropertyRoomRateWithRateList. Dens rates array skal indeholde syv poster,
én per dag, hver med amount, quantity, closedOnArrival, closedOnDeparture,
minLengthOfStay og maxLengthOfStay, som du indlæste. En uoverensstemmelse på et hvilket som helst felt betyder, at det tilsvarende
PUT i Trin D ikke blev gemt som forventet — ret det og verificer igen før du går videre.
Trin F — Lav en testbooking
Sektion kaldt “Trin F — Lav en testbooking”Åbn følgende URL i en browser, og erstat <your-slug> med sluggen for Hotel-kontoen, du
publicerede i Forudsætninger:
https://staging-book.wink.travel/hotel/<your-slug>Vælg en ankomst- og afrejsedato, der falder helt inden for din certificeringsuge, vælg den værelsestype + rateplan-kombination, du certificerede, og gennemfør bookingen. Staging bruger en test betalingsvej — der trækkes ikke noget på et rigtigt kort.
Når bekræftelsessiden vises, noter den bookingkode (format WNKxxxxx), som vises for gæsten.
Trin G — Hent bookingen
Sektion kaldt “Trin G — Hent bookingen”Hent alle bookinger oprettet for din testejendom inden for et tidsrum, der dækker bookingens tidsstempel.
curl -s -X GET \ "https://staging-integrations.wink.travel/api/managing-entity/{managingEntityIdentifier}/channel-manager/property/{propertyIdentifier}/booking/list?startDate=2026-09-01T00:00:00&endDate=2026-09-08T00:00:00" \ -H "Authorization: Bearer <access_token>" \ -H "Wink-Version: 2.0" \ -H "Accept: application/json"Find posten, hvis bookingCode matcher den kode, du noterede i Trin F. Noter dens
bookingIdentifier. Hent derefter den enkelte booking:
curl -s -X GET \ "https://staging-integrations.wink.travel/api/managing-entity/{managingEntityIdentifier}/channel-manager/property/{propertyIdentifier}/booking/{bookingIdentifier}" \ -H "Authorization: Bearer <access_token>" \ -H "Wink-Version: 2.0" \ -H "Accept: application/json"Svaret er en PropertyBooking. Importer den i dit eget PMS / channel manager UI og bekræft,
at alle følgende vises korrekt for en operatør:
bookingCode,bookingIdentifier,createdDate- Gæst:
firstName,lastName,email totalAmount+currencyCode(det netto beløb, hotellet modtager for alle værelser)paymentMethodType,paymentMethodStatus,salesChannelName- Hver post i
roomStays:guestRoomName,ratePlanName,adults,children,startDate,endDateog per-værelseamount
Tag et screenshot af bookingen, som den vises i dit UI — det screenshot er et af de påkrævede evidensartefakter.
Trin H — Annuller bookingen og bekræft
Sektion kaldt “Trin H — Annuller bookingen og bekræft”Bed Wink-teamet om at annullere certificeringsbookingen på dine vegne (eller annuller den selv fra Hotel-kontoens Extranet, hvis du har den tilladelse). Hent derefter den samme booking igen med kaldet fra Trin G.
Bekræft, at svaret nu viser:
cancelled: true- Et udfyldt
cancelDatetidsstempel - En
paymentMethodStatus, der afspejler annulleringslivscyklussen (CANCELLED,PARTIALLY_REFUNDED, ellerFULLY_REFUNDEDafhængigt af refunderingspolitik)
Importer den opdaterede booking i dit UI og bekræft, at annulleringen er synlig for operatøren — status, annullerings-tidsstempel og eventuel refundindikator, som dit UI understøtter. Tag et andet screenshot af den annullerede booking i dit UI. Dette er det sidste evidensartefakt.
Trin I — Indsend din evidenspakke
Sektion kaldt “Trin I — Indsend din evidenspakke”Pak følgende i et enkelt arkiv (.zip) med navnet
wink-cert-<your-channel-manager-name>-<yyyy-mm-dd>.zip:
-
API-transkript. For hver anmodning, du har sendt i Trin A til H, fang hele HTTP-anmodningen (metode, URL, anmodningsheaders med
Authorization-værdien redigeret ud, og JSON-body forPUTkald) og hele HTTP-svaret (statuskode, svarheaders og JSON-body). Strukturér transkriptet, så hvert anmodnings-/svarpar tydeligt er mærket med det trin, det tilhører (step-a-ping.json,step-d-day-3-put.json,step-g-list-bookings.json, osv.). Almindelige tekst.httpfiler eller en enkelt.hareksport er begge acceptable formater. -
UI screenshot: aktiv booking. Screenshot fra Trin G, der viser certificeringsbookingen vist i dit eget PMS / channel manager UI, med gæst, datoer, værelsestype, rateplan og total tydeligt læseligt.
-
UI screenshot: annulleret booking. Screenshot fra Trin H, der viser den samme booking i dit UI efter annullering, med annulleringsstatus og tidsstempel tydeligt læseligt.
-
Certificeringsoversigt. En kort
README.mdinde i arkivet, der lister:- Navn og version på din channel manager / PMS.
managingEntityIdentifier,propertyIdentifier,masterRateIdentifierogbookingIdentifier, du brugte.- Staging hotel slug (det
<your-slug>ihttps://staging-book.wink.travel/hotel/<your-slug>). - Dato-intervallet for certificeringsugen (Dag 1 → Dag 7 i ISO-8601).
- Navn og email på den ingeniør, der gennemførte certificeringen.
Send arkivet til din Wink integrationskontakt. Wink vil gennemgå, følge op på eventuelle
afvigelser og — ved bestået — ændre status for din Affiliate / Channel Manager-konto fra
PENDING_APPROVAL til ACTIVE. Din integration er derefter berettiget til onboarding i produktion.
Webhook-notifikationer
Sektion kaldt “Webhook-notifikationer”Du kan abonnere på channel manager webhook-events for at modtage realtidsnotifikationer:
channel-manager.update.rate— Prisopdatering modtaget.channel-manager.update.availability— Tilgængelighedsopdatering modtaget.channel-manager.update— Generel channel manager opdatering.
Se Webhook Events Catalog for detaljer.
Yderligere læsning
Sektion kaldt “Yderligere læsning”- Channel Manager API — Fuld API-endpoint dokumentation.
- Rate Providers — Administration af rate providers i Extranet.
- Webhook Events Catalog — Alle abonnérbare events.
- Build on Wink — Platformoversigt for udviklere.
