Přidejte svého Channel Managera
Tento průvodce provede vývojáře channel managerů a PMS celým procesem integrace s Winkem — od vytvoření účtů přes mapování inventáře až po spuštění prvního end-to-end testu.
Prostředí
Sekce “Prostředí”Channel Manager (Integrations) API je dostupné ve dvou prostředích. Pro veškerý vývoj a certifikaci používejte staging; přepněte na produkci až při spuštění.
| Prostředí | Základní URL |
|---|---|
| Produkce | https://integrations.wink.travel |
| Staging | https://staging-integrations.wink.travel |
API reference
Sekce “API reference”Channel Manager API dodržuje standardy OTA protokolu (SOAP/XML) pro kompatibilitu se stávajícími systémy v pohostinství. Začněte prohlédnutím dokumentace partner endpointů:
Channel Manager API — Partner endpoints
Kroky integrace
Sekce “Kroky integrace”-
Vytvořte uživatelský účet Wink
Zaregistrujte se na staging-app.wink.travel. Všechny níže uvedené kroky probíhají na stagingu — celý proces zopakujete i v produkci před spuštěním.
-
Vytvořte si účet Affiliate / Channel Manager
Pod svým novým uživatelem vytvořte účet a vyberte typ účtu Affiliate / Channel Manager. Tento účet bude sloužit k autentizaci vaší integrace.
-
Zaregistrujte aplikaci a vygenerujte první token
Vytvořte Aplikaci a přiřaďte ji k účtu channel managera z kroku 2. Vyberte typ klienta MACHINE_2_MACHINE — jde o server-to-server integraci bez přesměrování koncového uživatele. Okamžitě si zkopírujte Client ID a Secret Key; tajný klíč je zobrazen pouze jednou a nelze jej znovu získat.
Aplikace generuje bearer token, který každý požadavek v tomto průvodci nese jako
Authorization: Bearer <access_token>. Vyměňte své přihlašovací údaje za token pomocíclient_credentialsgrant nahttps://staging-iam.wink.travel/oauth2/tokens požadavkem na scopeintegrations.read integrations.write. Udělejte to před pokračováním — bez tokenu nemůžete získat identifikátory účtů ani volat žádný Channel Manager endpoint. Kompletní postup najdete v Authentication, včetně produkčního hostitele a katalogu scope. -
Vytvořte hotelový účet
Pod stejným uživatelem vytvořte druhý účet a vyberte typ Hotel. Tento účet vám poskytne nemovitost pro testování bez nutnosti zapojení skutečného hotelu.
-
Potvrďte schválení obou účtů
Žádný účet nelze používat, dokud není schválen: neschválený channel manager účet se nezobrazí v seznamu channel managerů hotelu a neschválený hotel není vracen API.
- Staging — schválení je automatické. Oba účty jsou použitelné ihned po vytvoření, není třeba nic žádat.
- Produkce — schválení je manuální. Pošlete svému kontaktnímu Wink integrací jména obou účtů a uživatele, pod kterým jsou vedeny, a počkejte na potvrzení před pokračováním.
-
Propojte oba účty
Přihlaste se do hotelového účtu a přejděte na Extranet → Distribution → Channel Manager. Vyberte svůj channel manager účet ze seznamu — tím propojujete nemovitost s vaší integrací. Pokud váš účet v seznamu není, ještě nebyl schválen; viz krok 5.
-
Vytvořte základní typ pokoje a tarifní plán
V hotelovém účtu vytvořte alespoň jeden typ pokoje a jeden tarifní plán. Tyto položky jsou nutné, než vaše integrace bude moci posílat ceny a dostupnost nebo stahovat rezervace.
-
Mapujte a testujte
Ve svém systému namapujte identifikátory typu pokoje a tarifního plánu vrácené API. Odešlete aktualizaci ceny a dostupnosti, poté proveďte testovací rezervaci a ověřte, že endpoint pro získání rezervace ji správně vrací.
Jak najít identifikátory svých účtů
Sekce “Jak najít identifikátory svých účtů”Každá cesta Channel Manager API je omezena na váš vlastní účet:
/api/managing-entity/{managingEntityIdentifier}/channel-manager/...{managingEntityIdentifier} je ID účtu (UUID) vašeho channel manager účtu — nikoli hotelu. Získejte jej spolu s ID a aktuálním stavem všech ostatních účtů, které váš uživatel vlastní, z 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"Odpověď je pole účtů, které vlastníte:
[ { "id": "3f1c8e42-7b90-4d55-a1e2-6c8d09b4f731", "type": "CHANNEL_MANAGER", "name": "Your Channel Manager", "status": "ACTIVE" }, { "id": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69", "type": "HOTEL", "name": "Your Test Property", "urlName": "your-test-property", "status": "ACTIVE" }]idzáznamu channel managera je vaše{managingEntityIdentifier}.idzáznamuHOTELje vaše{propertyIdentifier}.statusslouží k ověření, že je každý účet schválen — nejvíce užitečné v produkci, kde je schválení manuální. Hotel musí mít stavACTIVE, aby byl rezervovatelný nebo viditelný v Channel Manager API. Váš channel manager účet bude mít stavPENDING_APPROVALaž do dokončení certifikace; to je očekávané a neblokuje vývoj.
Certifikace
Sekce “Certifikace”Certifikace je způsob, jak prokázat — a jak Wink ověřuje — že vaše integrace správně mapuje inventář, posílá ceny a dostupnost a přijímá rezervace end-to-end. Je navržena jako samoobslužná: každý krok provedete ze svého systému a na konci předložíte jeden balíček důkazů. Wink balíček zkontroluje a po úspěchu změní stav vašeho Affiliate / Channel Manager účtu z PENDING_APPROVAL na ACTIVE.
Certifikace probíhá výhradně na stagingovém prostředí
(https://staging-integrations.wink.travel). Nic v této sekci se netýká produkce.
Co prokážete
Sekce “Co prokážete”-
Autentizace. Váš OAuth2 klient získá access token a úspěšně zavolá endpoint
/pingproti vašemu Affiliate / Channel Manager účtu. -
Mapování inventáře. Dokážete vypsat hotel(y) připojené k vašemu účtu, získat hlavní tarif (kombinace typu pokoje × tarifního plánu), který jste nastavili, a správně identifikovat
masterRateIdentifier, na který váš systém cílí. -
Odeslání cen a dostupnosti. Dokážete nezávisle aktualizovat všech sedm dní certifikačního týdne — s různými kombinacemi ceny, množství, příznaků uzavření při příjezdu/odjezdu a minimální/délky pobytu pro každý den — a přečíst si přesné hodnoty zpět od Winku.
-
Stažení rezervace. Dokážete stáhnout skutečnou stagingovou rezervaci vytvořenou na vaši testovací nemovitost, zobrazit ji ve svém PMS/CM UI se správným pokojem, hostem a celkovou částkou, a poté reflektovat zrušení, jakmile Wink označí rezervaci za zrušenou.
Předpoklady
Sekce “Předpoklady”Před zahájením certifikace dokončete kroky 1–7 z Kroků integrace, abyste měli:
- Wink uživatele na stagingu s účtem Affiliate / Channel Manager a připojeným účtem Hotel (Extranet → Distribution → Channel Manager). Stagingové účty jsou schváleny automaticky, není třeba nic žádat.
- V hotelovém účtu vytvořen alespoň jeden typ pokoje a jeden tarifní plán. Hotel publikujte, aby byl rezervovatelný na
https://staging-book.wink.travel/hotel/<your-slug>. - Registrovanou aplikaci pod svým Affiliate / Channel Manager účtem s Client ID, Secret Key a scope
integrations.read integrations.write(viz Authentication). managingEntityIdentifiervašeho Affiliate / Channel Manager účtu apropertyIdentifierhotelového účtu (oba jsou UUID — viz Jak najít identifikátory svých účtů).
Běžné konvence požadavků
Sekce “Běžné konvence požadavků”Každý požadavek v této sekci používá tyto hlavičky:
Authorization: Bearer <access_token>Wink-Version: 2.0Accept: application/json<access_token>pochází zclient_credentialsgrantu nahttps://staging-iam.wink.travel/oauth2/token— viz Authentication.- Hlavička
Wink-Versionje povinná; její vynechání neprovede směrování na v2 JSON API. Content-Type: application/jsonse přidává uPUTpožadavků s tělem.
V příkladech níže nahraďte zástupné hodnoty hodnotami získanými v Předpokladech:
| Zástupný symbol | Význam |
|---|---|
{managingEntityIdentifier} | ID vašeho Affiliate / Channel Manager účtu (UUID) — viz Jak najít identifikátory svých účtů. |
{propertyIdentifier} | ID hotelového účtu (nemovitosti) připojeného k CM účtu. |
{masterRateIdentifier} | Hlavní tarif (kombinace typu pokoje × tarifního plánu), který certifikujete. |
{bookingIdentifier} | ID stagingové rezervace vrácené voláním seznamu rezervací. |
Krok A — Ping
Sekce “Krok A — Ping”Ověřte, že vaše přihlašovací údaje odpovídají očekávanému Affiliate / Channel Manager účtu.
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"Očekávaná odpověď:
{ "apiVersion": "2.0", "name": "Your Channel Manager Account Name", "status": "PENDING_APPROVAL"}Odpověď 200 s odpovídajícím name znamená, že autentizace a rozlišení účtu jsou správné. status bude číst PENDING_APPROVAL až do certifikace Winkem.
Krok B — Výpis nemovitostí
Sekce “Krok B — Výpis nemovitostí”Získejte stránkovaný seznam hotelů připojených k vašemu účtu a ověřte, že je v něm vaše testovací nemovitost.
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"Odpověď je Spring Page záznamů ChannelManagerProperty. Najděte záznam, jehož identifier odpovídá vašemu {propertyIdentifier}, a zaznamenejte si jeho currencyCode — bude potřeba pro interpretaci aktualizací cen v Kroku D.
Krok C — Získání hlavních tarifů
Sekce “Krok C — Získání hlavních tarifů”Získejte nemovitost spolu se všemi hlavními tarify (kombinace typu pokoje × tarifního plánu), které publikuje. Vyberte ten, proti kterému chcete certifikovat, a zaznamenejte jeho identifier jako {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"Odpověď je obálka PropertyWithRoomRateList: blok property plus pole rooms záznamů PropertyRoomRate. Každý záznam obsahuje typ pokoje, tarifní plán, limity obsazenosti, základní cenu a modifikátory cen, které zachováte při odesílání denních cen.
Krok D — Nahrání certifikačního týdne
Sekce “Krok D — Nahrání certifikačního týdne”Nahrajte sedmidenní kalendář cen pokrývající prvních sedm kalendářních dnů měsíce následujícího po měsíci, ve kterém začínáte certifikaci. Například pokud začnete certifikaci 21. srpna, cílem je 1. až 7. září.
Pošlete sedm samostatných PUT volání — jedno pro každý den — kde startDate == endDate. Každý den má záměrně jinou kombinaci ceny, množství, příznaků uzavření při příjezdu/odjezdu a minimální/maximální délky pobytu, aby bylo otestováno každé zapisovatelné pole alespoň jednou. Hodnoty jsou v měně nemovitosti (zaznamenané v Kroku B); vynechání currencyCode způsobí správný výchozí stav.
| Den | Cena | Množství | closedOnArrival | closedOnDeparture | minLengthOfStay | maxLengthOfStay | Co dokazuje |
|---|---|---|---|---|---|---|---|
| 1 | 100.00 | 5 | false | false | 1 | 30 | Výchozí den. |
| 2 | 125.00 | 4 | false | false | 1 | 14 | Změna ceny + množství + maxLengthOfStay. |
| 3 | 150.00 | 3 | true | false | 1 | 30 | Přepnutí closedOnArrival. |
| 4 | 175.00 | 2 | false | true | 2 | 7 | Přepnutí closedOnDeparture + užší délka pobytu. |
| 5 | 200.00 | 0 | false | false | 1 | 30 | Vyprodáno (množství 0). |
| 6 | 225.00 | 5 | false | false | 3 | 5 | Restriktivní délka pobytu. |
| 7 | 250.00 | 1 | false | false | 1 | 30 | Dostupnost posledního pokoje. |
Tělo požadavku pro den 1 vypadá takto. Opakujte s úpravou startDate / endDate / hodnot podle tabulky pro dny 2 až 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 }'Každý PUT vrací 200 s polem aktualizovaných záznamů PropertyRate pro zaslané období (jeden záznam, pokud startDate == endDate). Uložte si tuto odpověď — bude součástí vašich důkazů.
Krok E — Načtení certifikačního týdne
Sekce “Krok E — Načtení certifikačního týdne”Získejte celý týden v jednom volání a ověřte, že uložené hodnoty pro každý den odpovídají hodnotám z Kroku D — včetně boolean příznaků a délky pobytu.
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"Odpověď je PropertyRoomRateWithRateList. Její pole rates musí obsahovat sedm záznamů, po jednom na každý den, každý s hodnotami amount, quantity, closedOnArrival, closedOnDeparture, minLengthOfStay a maxLengthOfStay, které jste nahráli. Jakýkoli nesoulad znamená, že odpovídající PUT z Kroku D neproběhl správně — opravte to a znovu ověřte před pokračováním.
Krok F — Proveďte testovací rezervaci
Sekce “Krok F — Proveďte testovací rezervaci”Otevřete v prohlížeči následující URL, přičemž <your-slug> nahraďte slugem hotelového účtu, který jste publikovali v Předpokladech:
https://staging-book.wink.travel/hotel/<your-slug>Vyberte datum příjezdu a odjezdu, které spadají zcela do certifikačního týdne, zvolte kombinaci typu pokoje + tarifního plánu, kterou jste certifikovali, a dokončete rezervaci. Staging používá testovací platební cestu — žádná skutečná karta není zatížena.
Po zobrazení potvrzovací stránky si zaznamenejte kód rezervace (formát WNKxxxxx), který je hostovi zobrazen.
Krok G — Stáhněte rezervaci
Sekce “Krok G — Stáhněte rezervaci”Získejte všechny rezervace vytvořené pro vaši testovací nemovitost v časovém okně pokrývajícím čas rezervace.
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"Najděte záznam, jehož bookingCode odpovídá kódu z Kroku F. Zaznamenejte si jeho bookingIdentifier. Poté stáhněte tu jedinou rezervaci:
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"Odpověď je PropertyBooking. Importujte ji do svého PMS / channel-manager UI a ověřte, že operátorovi správně zobrazí:
bookingCode,bookingIdentifier,createdDate- Host:
firstName,lastName,email totalAmount+currencyCode(čistá částka, kterou hotel obdrží za všechny pokoje)paymentMethodType,paymentMethodStatus,salesChannelName- Každý záznam v
roomStays:guestRoomName,ratePlanName,adults,children,startDate,endDatea částku za pokoj
Pořiďte screenshot rezervace, jak se zobrazuje ve vašem UI — tento screenshot je jedním z požadovaných důkazů.
Krok H — Zrušte rezervaci a ověřte
Sekce “Krok H — Zrušte rezervaci a ověřte”Požádejte tým Wink, aby za vás zrušil certifikační rezervaci (nebo ji zrušte sami z Extranetu hotelového účtu, pokud máte oprávnění). Poté znovu stáhněte stejnou rezervaci pomocí volání z Kroku G.
Ověřte, že odpověď nyní obsahuje:
cancelled: true- Vyplněný časový údaj
cancelDate paymentMethodStatusodrážející stav zrušení (CANCELLED,PARTIALLY_REFUNDEDneboFULLY_REFUNDEDpodle refundní politiky)
Importujte aktualizovanou rezervaci do svého UI a ověřte, že zrušení je viditelné operátorovi — stav, čas zrušení a případné indikátory refundace podporované vaším UI. Pořiďte druhý screenshot zrušené rezervace ve vašem UI. Toto je finální důkazový artefakt.
Krok I — Odešlete balíček důkazů
Sekce “Krok I — Odešlete balíček důkazů”Zabalte následující do jednoho archivu (.zip) pojmenovaného
wink-cert-<your-channel-manager-name>-<yyyy-mm-dd>.zip:
-
API přepis. Pro každý požadavek z kroků A až H zachyťte kompletní HTTP požadavek (metoda, URL, hlavičky požadavku s redigovanou hodnotou
Authorizationa JSON tělo uPUTvolání) a kompletní HTTP odpověď (status kód, hlavičky odpovědi a JSON tělo). Strukturovaně označte každý pár požadavek/odpověď podle kroku (step-a-ping.json,step-d-day-3-put.json,step-g-list-bookings.jsonatd.). Přijatelné jsou prosté.httpsoubory nebo jeden.harexport. -
Screenshot UI: aktivní rezervace. Screenshot z Kroku G zobrazující certifikační rezervaci ve vašem PMS / channel-manager UI, s jasně čitelnými hostem, daty, typem pokoje, tarifním plánem a celkovou částkou.
-
Screenshot UI: zrušená rezervace. Screenshot z Kroku H zobrazující stejnou rezervaci ve vašem UI po zrušení, s jasně čitelným stavem zrušení a časovým údajem.
-
Souhrn certifikace. Krátký
README.mdv archivu obsahující:- Název a verzi vašeho channel managera / PMS.
- Použité
managingEntityIdentifier,propertyIdentifier,masterRateIdentifierabookingIdentifier. - Slug stagingového hotelu (to je
<your-slug>vhttps://staging-book.wink.travel/hotel/<your-slug>). - Datumové rozmezí certifikačního týdne (Den 1 → Den 7 v ISO-8601).
- Jméno a email inženýra, který certifikaci provedl.
Pošlete archiv svému kontaktnímu Wink integrací. Wink jej zkontroluje, případně se ozve kvůli nesrovnalostem a — po úspěchu — změní stav vašeho Affiliate / Channel Manager účtu z PENDING_APPROVAL na ACTIVE. Vaše integrace je pak způsobilá pro produkční onboarding.
Notifikace přes webhooky
Sekce “Notifikace přes webhooky”Můžete se přihlásit k odběru webhook událostí channel managera a dostávat notifikace v reálném čase:
channel-manager.update.rate— Přijata aktualizace ceny.channel-manager.update.availability— Přijata aktualizace dostupnosti.channel-manager.update— Obecná aktualizace channel managera.
Podrobnosti najdete v Webhook Events Catalog.
Další čtení
Sekce “Další čtení”- Channel Manager API — Kompletní dokumentace API endpointů.
- Rate Providers — Správa poskytovatelů cen v Extranetu.
- Webhook Events Catalog — Všechny dostupné události k odběru.
- Build on Wink — Přehled platformy pro vývojáře.
