Dodaj swojego Channel Managera
Ten przewodnik przeprowadza deweloperów channel managerów i PMS przez cały proces integracji z Wink — od tworzenia kont po mapowanie inwentarza i przeprowadzenie pierwszego testu end-to-end.
Środowiska
Dział zatytułowany „Środowiska”API Channel Managera (Integracje) jest dostępne w dwóch środowiskach. Używaj staging do całego rozwoju i certyfikacji; przełącz się na produkcję dopiero przy uruchomieniu.
| Środowisko | Podstawowy URL |
|---|---|
| Produkcja | https://integrations.wink.travel |
| Staging | https://staging-integrations.wink.travel |
Dokumentacja API
Dział zatytułowany „Dokumentacja API”API Channel Managera stosuje standardy protokołu OTA (SOAP/XML) dla kompatybilności z istniejącymi systemami hotelarskimi. Zacznij od przeglądu dokumentacji punktów końcowych partnera:
Channel Manager API — punkty końcowe partnera
Kroki integracji
Dział zatytułowany „Kroki integracji”-
Utwórz konto użytkownika Wink
Zarejestruj się na staging-app.wink.travel. Wszystkie poniższe kroki wykonuj na staging — cały proces powtórz na produkcji przed uruchomieniem.
-
Utwórz konto Affiliate / Channel Manager
Pod nowym użytkownikiem utwórz konto i wybierz typ konta Affiliate / Channel Manager. To konto będzie używane do uwierzytelniania integracji.
-
Zarejestruj aplikację i wygeneruj pierwszy token
Utwórz Aplikację i powiąż ją z kontem channel managera z kroku 2. Wybierz typ klienta MACHINE_2_MACHINE — to integracja serwer-serwer bez przekierowania użytkownika końcowego. Natychmiast skopiuj Client ID i Secret Key; klucz sekretu jest pokazany tylko raz i nie można go odzyskać.
Aplikacja generuje token dostępu, który każdy wywołanie w tym przewodniku przesyła jako
Authorization: Bearer <access_token>. Wymień swoje dane uwierzytelniające na token używając grantclient_credentialspodhttps://staging-iam.wink.travel/oauth2/token, żądając zakresówintegrations.read integrations.write. Zrób to przed kontynuacją — bez tokena nie możesz pobrać identyfikatorów kont ani uzyskać dostępu do żadnego punktu końcowego Channel Managera. Zobacz Uwierzytelnianie dla pełnego przebiegu, hosta produkcyjnego i katalogu zakresów. -
Utwórz konto Hotelu
Pod tym samym użytkownikiem utwórz drugie konto i wybierz typ konta Hotel. To da Ci nieruchomość do testów bez angażowania prawdziwego hotelu.
-
Potwierdź zatwierdzenie obu kont
Żadne konto nie może być używane, dopóki nie zostanie zatwierdzone: niezatwierdzone konto channel managera nie pojawia się na liście channel managerów hotelu, a niezatwierdzony hotel nie jest zwracany przez API.
- Staging — zatwierdzenie jest automatyczne. Oba konta są dostępne od razu po utworzeniu, nie trzeba niczego zgłaszać.
- Produkcja — zatwierdzenie jest ręczne. Prześlij kontaktowi Wink integracji nazwy obu kont i użytkownika, pod którym są założone, a następnie poczekaj na potwierdzenie przed kontynuacją.
-
Połącz oba konta
Zaloguj się na konto Hotelu i przejdź do Extranet → Dystrybucja → Channel Manager. Wybierz swoje konto channel managera z listy — to połączy nieruchomość z Twoją integracją. Jeśli Twoje konto nie jest na liście, nie zostało jeszcze zatwierdzone; zobacz krok 5.
-
Utwórz podstawowy typ pokoju i plan taryfowy
W koncie Hotelu utwórz co najmniej jeden typ pokoju i jeden plan taryfowy. Są one wymagane, zanim Twoja integracja będzie mogła przesyłać ceny i dostępność lub pobierać rezerwacje.
-
Mapuj i testuj
W swoim systemie zmapuj identyfikatory typu pokoju i planu taryfowego zwrócone przez API. Prześlij aktualizację ceny i dostępności, następnie wykonaj testową rezerwację i zweryfikuj, czy punkt końcowy pobierania rezerwacji zwraca ją poprawnie.
Znajdowanie identyfikatorów kont
Dział zatytułowany „Znajdowanie identyfikatorów kont”Każda ścieżka API Channel Managera jest ograniczona do Twojego konta:
/api/managing-entity/{managingEntityIdentifier}/channel-manager/...{managingEntityIdentifier} to ID konta (UUID) Twojego konta channel managera — nie hotelu. Pobierz je wraz z ID i aktualnym statusem wszystkich innych kont posiadanych przez Twojego użytkownika 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"Odpowiedź to tablica kont, które posiadasz:
[ { "id": "3f1c8e42-7b90-4d55-a1e2-6c8d09b4f731", "type": "CHANNEL_MANAGER", "name": "Twój Channel Manager", "status": "ACTIVE" }, { "id": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69", "type": "HOTEL", "name": "Twoja nieruchomość testowa", "urlName": "twoja-nieruchomosc-testowa", "status": "ACTIVE" }]idwpisu channel managera to Twój{managingEntityIdentifier}.idwpisuHOTELto Twój{propertyIdentifier}.statuspozwala potwierdzić, że każde konto jest zatwierdzone — najbardziej przydatne na produkcji, gdzie zatwierdzenie jest ręczne. Hotel musi mieć statusACTIVE, aby był rezerwowany lub widoczny dla API Channel Managera. Twoje konto channel managera będzie miało statusPENDING_APPROVALaż do momentu certyfikacji; jest to oczekiwane i nie blokuje rozwoju.
Certyfikacja
Dział zatytułowany „Certyfikacja”Certyfikacja to sposób, w jaki udowadniasz — i jak Wink potwierdza — że Twoja integracja poprawnie mapuje inwentarz, przesyła ceny i dostępność oraz odbiera rezerwacje end-to-end. Jest zaprojektowana jako samodzielna: wykonujesz każdy krok ze swojego systemu i na końcu przesyłasz pojedynczy pakiet dowodów. Wink przegląda pakiet i po pozytywnej ocenie zmienia status Twojego konta Affiliate / Channel Manager z PENDING_APPROVAL na ACTIVE.
Certyfikacja odbywa się całkowicie na środowisku staging
(https://staging-integrations.wink.travel). Nic w tej sekcji nie dotyczy produkcji.
Co udowodnisz
Dział zatytułowany „Co udowodnisz”-
Uwierzytelnianie. Twój klient OAuth2 potrafi uzyskać token dostępu i poprawnie wywołać punkt
/pingna koncie Affiliate / Channel Manager. -
Mapowanie inwentarza. Potrafisz wylistować hotel(e) powiązane z Twoim kontem, pobrać master rate (kombinację typu pokoju × planu taryfowego), którą skonfigurowałeś, i poprawnie zidentyfikować
masterRateIdentifier, na który skieruje się Twój system. -
Przesyłanie cen i dostępności. Potrafisz zaktualizować wszystkie siedem dni tygodnia certyfikacyjnego niezależnie — różne kombinacje kwoty, ilości, flag zamknięcia na przyjazd / wyjazd oraz minimalnej/maksymalnej długości pobytu na każdy dzień — i odczytać dokładne wartości z powrotem z Wink.
-
Pobieranie rezerwacji. Potrafisz pobrać prawdziwą rezerwację ze środowiska staging wykonaną na Twojej nieruchomości testowej, wyświetlić ją w swoim PMS/CM UI z poprawnym pokojem, gościem i sumą, a następnie odzwierciedlić anulowanie po oznaczeniu rezerwacji jako anulowanej przez Wink.
Wymagania wstępne
Dział zatytułowany „Wymagania wstępne”Przed rozpoczęciem certyfikacji wykonaj kroki 1–7 z Kroków integracji, aby mieć:
- Użytkownika Wink na staging z kontem Affiliate / Channel Manager i kontem Hotel powiązanym z nim (Extranet → Dystrybucja → Channel Manager). Konta staging są zatwierdzane automatycznie, więc nie trzeba niczego zgłaszać.
- Co najmniej jeden typ pokoju i jeden plan taryfowy utworzony w koncie Hotelu. Opublikuj hotel, aby był rezerwowany pod adresem
https://staging-book.wink.travel/hotel/<twoj-slug>. - Zarejestrowaną aplikację pod kontem Affiliate / Channel Manager z Client ID, Secret Key i zakresami
integrations.read integrations.write(zobacz Uwierzytelnianie). managingEntityIdentifierkonta Affiliate / Channel Manager orazpropertyIdentifierkonta Hotelu (oba to UUID — zobacz Znajdowanie identyfikatorów kont).
Typowe konwencje zapytań
Dział zatytułowany „Typowe konwencje zapytań”Każde zapytanie w tej sekcji używa nagłówków:
Authorization: Bearer <access_token>Wink-Version: 2.0Accept: application/json<access_token>pochodzi z grantuclient_credentialspodhttps://staging-iam.wink.travel/oauth2/token— zobacz Uwierzytelnianie.- Nagłówek
Wink-Versionjest wymagany; jego brak spowoduje, że nie zostanie wywołane API JSON w wersji 2. Content-Type: application/jsonjest dodawany do zapytańPUTz ciałem.
W przykładach poniżej symbole zastępcze odpowiadają wartościom zebranym w Wymaganiach wstępnych:
| Symbol zastępczy | Znaczenie |
|---|---|
{managingEntityIdentifier} | ID konta Affiliate / Channel Manager (UUID) — zobacz Znajdowanie identyfikatorów kont. |
{propertyIdentifier} | ID konta Hotelu (nieruchomości) powiązanego z kontem CM. |
{masterRateIdentifier} | Master rate (kombinacja typu pokoju × planu taryfowego), którą certyfikujesz. |
{bookingIdentifier} | ID rezerwacji ze środowiska staging zwrócone przez wywołanie listy rezerwacji. |
Krok A — Ping
Dział zatytułowany „Krok A — Ping”Potwierdź, że Twoje dane uwierzytelniające odnoszą się do oczekiwanego konta Affiliate / Channel Manager.
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"Oczekiwana odpowiedź:
{ "apiVersion": "2.0", "name": "Nazwa Twojego konta Channel Manager", "status": "PENDING_APPROVAL"}Odpowiedź 200 z pasującą nazwą name oznacza, że uwierzytelnianie i rozpoznanie konta są poprawne. status będzie PENDING_APPROVAL aż Wink Cię zatwierdzi.
Krok B — Lista nieruchomości
Dział zatytułowany „Krok B — Lista nieruchomości”Pobierz stronicowaną listę hoteli powiązanych z Twoim kontem i potwierdź, że Twoja nieruchomość testowa jest na liście.
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"Odpowiedź to strona Spring z wpisami ChannelManagerProperty. Znajdź wpis, którego identifier odpowiada Twojemu {propertyIdentifier} i zanotuj currencyCode — będzie potrzebny do interpretacji aktualizacji cen w Kroku D.
Krok C — Pobierz master rate
Dział zatytułowany „Krok C — Pobierz master rate”Pobierz nieruchomość wraz ze wszystkimi master rate (kombinacjami typu pokoju × planu taryfowego), które publikuje. Wybierz ten, który zamierzasz certyfikować i zanotuj jego identifier jako swój {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"Odpowiedź to PropertyWithRoomRateList: blok property oraz tablica rooms z wpisami PropertyRoomRate. Każdy wpis zawiera typ pokoju, plan taryfowy, limity zajętości, bazową cenę i modyfikatory cen, które zachowasz przy przesyłaniu dziennych stawek.
Krok D — Załaduj tydzień certyfikacji
Dział zatytułowany „Krok D — Załaduj tydzień certyfikacji”Załaduj siedmiodniowy kalendarz cen obejmujący pierwsze siedem dni kalendarzowych miesiąca następującego po miesiącu, w którym zaczynasz certyfikację. Na przykład, jeśli zaczynasz 21 sierpnia, celuj w 1–7 września.
Wyślesz siedem osobnych wywołań PUT — po jednym na każdy dzień — gdzie startDate == endDate. Każdy dzień ma celowo inną kombinację kwoty, ilości, flag zamknięcia na przyjazd/wyjazd oraz limitów długości pobytu, aby każdy edytowalny parametr był przetestowany przynajmniej raz. Wartości są w walucie nieruchomości (zapisanej w Kroku B); pomiń currencyCode, a zostanie ustawiony domyślnie.
| Dzień | Kwota | Ilość | closedOnArrival | closedOnDeparture | minLengthOfStay | maxLengthOfStay | Co udowadnia |
|---|---|---|---|---|---|---|---|
| 1 | 100.00 | 5 | false | false | 1 | 30 | Dzień bazowy. |
| 2 | 125.00 | 4 | false | false | 1 | 14 | Zmiana kwoty + ilości + maxLengthOfStay. |
| 3 | 150.00 | 3 | true | false | 1 | 30 | Zmiana closedOnArrival. |
| 4 | 175.00 | 2 | false | true | 2 | 7 | Zmiana closedOnDeparture + węższy zakres LOS. |
| 5 | 200.00 | 0 | false | false | 1 | 30 | Ilość wyprzedana. |
| 6 | 225.00 | 5 | false | false | 3 | 5 | Restrykcyjny zakres LOS. |
| 7 | 250.00 | 1 | false | false | 1 | 30 | Dostępność ostatniego pokoju. |
Ciało zapytania dla Dnia 1 wygląda tak. Powtórz, dostosowując startDate / endDate / wartości zgodnie z tabelą, dla Dni 2–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żde PUT zwraca 200 z tablicą zaktualizowanych wpisów PropertyRate dla przesłanego zakresu (jeden wpis, gdy startDate == endDate). Zachowaj tę odpowiedź — będzie częścią Twoich dowodów.
Krok E — Odczytaj tydzień certyfikacji
Dział zatytułowany „Krok E — Odczytaj tydzień certyfikacji”Pobierz cały tydzień w jednym wywołaniu i potwierdź, że wartości każdego dnia zgadzają się z tymi przesłanymi w Kroku D — włącznie z flagami boolean i zakresem długości 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"Odpowiedź to PropertyRoomRateWithRateList. Tablica rates musi zawierać siedem wpisów, po jednym na każdy dzień, każdy z amount, quantity, closedOnArrival, closedOnDeparture, minLengthOfStay i maxLengthOfStay, które załadowałeś. Każda rozbieżność oznacza, że odpowiadające PUT z Kroku D nie zadziałało poprawnie — popraw to i zweryfikuj ponownie przed kontynuacją.
Krok F — Wykonaj testową rezerwację
Dział zatytułowany „Krok F — Wykonaj testową rezerwację”Otwórz w przeglądarce następujący URL, zastępując <your-slug> slugiem konta Hotelu, które opublikowałeś w Wymaganiach wstępnych:
https://staging-book.wink.travel/hotel/<your-slug>Wybierz datę przyjazdu i wyjazdu mieszczącą się w tygodniu certyfikacji, wybierz kombinację typu pokoju + planu taryfowego, którą certyfikowałeś, i zakończ rezerwację. Staging używa ścieżki płatności testowej — karta nie jest obciążana.
Po wyświetleniu strony potwierdzenia zanotuj kod rezerwacji (format WNKxxxxx) pokazany gościowi.
Krok G — Pobierz rezerwację
Dział zatytułowany „Krok G — Pobierz rezerwację”Pobierz wszystkie rezerwacje utworzone dla Twojej nieruchomości testowej w oknie obejmującym czas rezerwacji.
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"Znajdź wpis, którego bookingCode odpowiada kodowi z Kroku F. Zanotuj jego bookingIdentifier. Następnie pobierz tę pojedynczą rezerwację:
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"Odpowiedź to PropertyBooking. Zaimportuj ją do swojego PMS / UI channel managera i potwierdź, że operator widzi poprawnie:
bookingCode,bookingIdentifier,createdDate- Gościa:
firstName,lastName,email totalAmount+currencyCode(kwota netto, którą hotel otrzymuje za wszystkie pokoje)paymentMethodType,paymentMethodStatus,salesChannelName- Każdy wpis w
roomStays:guestRoomName,ratePlanName,adults,children,startDate,endDateoraz kwotę za pokój
Zrób zrzut ekranu rezerwacji tak, jak pojawia się w Twoim UI — ten zrzut jest jednym z wymaganych dowodów.
Krok H — Anuluj rezerwację i zweryfikuj
Dział zatytułowany „Krok H — Anuluj rezerwację i zweryfikuj”Poproś zespół Wink o anulowanie rezerwacji certyfikacyjnej w Twoim imieniu (lub anuluj ją samodzielnie z Extranetu konta Hotelu, jeśli masz takie uprawnienia). Następnie ponownie pobierz tę samą rezerwację wywołaniem z Kroku G.
Potwierdź, że odpowiedź teraz zawiera:
cancelled: true- Wypełniony znacznik czasu
cancelDate paymentMethodStatusodzwierciedlający cykl anulowania (CANCELLED,PARTIALLY_REFUNDEDlubFULLY_REFUNDEDw zależności od polityki zwrotów)
Zaimportuj zaktualizowaną rezerwację do swojego UI i potwierdź, że operator widzi anulowanie — status, znacznik czasu anulowania i wszelkie wskaźniki zwrotu obsługiwane przez UI. Zrób drugi zrzut ekranu anulowanej rezerwacji w swoim UI. To jest ostateczny dowód.
Krok I — Prześlij pakiet dowodów
Dział zatytułowany „Krok I — Prześlij pakiet dowodów”Spakuj następujące elementy do jednego archiwum (.zip) o nazwie
wink-cert-<twoj-channel-manager>-<rrrr-mm-dd>.zip:
-
Transkrypcja API. Dla każdego zapytania z kroków A do H zapisz pełne żądanie HTTP (metoda, URL, nagłówki z wartością
Authorizationzamazaną oraz ciało JSON dla wywołańPUT) oraz pełną odpowiedź HTTP (kod statusu, nagłówki i ciało JSON). Uporządkuj transkrypcję tak, aby każda para żądanie/odpowiedź była wyraźnie oznaczona krokiem, do którego należy (step-a-ping.json,step-d-day-3-put.json,step-g-list-bookings.jsonitd.). Akceptowalne są pliki tekstowe.httplub pojedynczy eksport.har. -
Zrzut ekranu UI: aktywna rezerwacja. Zrzut z Kroku G pokazujący rezerwację certyfikacyjną w Twoim PMS / UI channel managera, z czytelnym gościem, datami, typem pokoju, planem taryfowym i sumą.
-
Zrzut ekranu UI: anulowana rezerwacja. Zrzut z Kroku H pokazujący tę samą rezerwację w Twoim UI po anulowaniu, z czytelnym statusem anulowania i znacznikiem czasu.
-
Podsumowanie certyfikacji. Krótkie
README.mdw archiwum zawierające:- Nazwę i wersję Twojego channel managera / PMS.
- Użyte
managingEntityIdentifier,propertyIdentifier,masterRateIdentifieribookingIdentifier. - Slug hotelu staging (ten
<your-slug>whttps://staging-book.wink.travel/hotel/<your-slug>). - Zakres dat tygodnia certyfikacji (Dzień 1 → Dzień 7 w formacie ISO-8601).
- Imię, nazwisko i email inżyniera, który przeprowadził certyfikację.
Wyślij archiwum do swojego kontaktu ds. integracji Wink. Wink przejrzy je, skontaktuje się w razie rozbieżności i — po pozytywnej ocenie — zmieni status Twojego konta Affiliate / Channel Manager z PENDING_APPROVAL na ACTIVE. Twoja integracja będzie wtedy gotowa do wdrożenia produkcyjnego.
Powiadomienia webhook
Dział zatytułowany „Powiadomienia webhook”Możesz subskrybować zdarzenia webhook channel managera, aby otrzymywać powiadomienia w czasie rzeczywistym:
channel-manager.update.rate— otrzymano aktualizację ceny.channel-manager.update.availability— otrzymano aktualizację dostępności.channel-manager.update— ogólna aktualizacja channel managera.
Szczegóły znajdziesz w Katalogu zdarzeń webhook.
Dalsza lektura
Dział zatytułowany „Dalsza lektura”- Channel Manager API — pełna dokumentacja punktów końcowych API.
- Dostawcy taryf — zarządzanie dostawcami taryf w Extranecie.
- Katalog zdarzeń webhook — wszystkie dostępne zdarzenia do subskrypcji.
- Buduj na Wink — przegląd platformy dla deweloperów.
