Быстрый старт
Это руководство проведёт вас от отсутствия знаний до работающей интеграции примерно за 30 минут. В конце у вас будет:
- актуальные цены на отели в городе через Partner API,
- ссылка для бронирования, которая учитывает бронирования на ваш счёт,
- тестовое бронирование и webhook, сообщающий о нём.
Всё происходит в staging, нашей тестовой среде. Вам не нужно запрашивать у нас доступ, и переход в продакшн позже не требует одобрения.
Это руководство для вас?
Заголовок раздела «Это руководство для вас?»| Вы хотите… | Начните здесь |
|---|---|
| Показать отели в вашем приложении, сайте или AI-продукте и отправлять путешественников бронировать, зарабатывая комиссию | Это руководство |
| Бронировать от имени ваших клиентов как лицензированное турагентство | Это руководство до Шага 5, затем Бронирование как турагентство |
| Встроить бронируемые отели без написания интеграции | Web Components |
| Позволить AI-агенту искать и бронировать | MCP Servers и Agentic Payments |
| Подключить channel manager или PMS | Добавить ваш channel manager |
Как это работает
Заголовок раздела «Как это работает»Вы используете Partner API для поиска отелей и их актуальных цен. Каждый отель имеет стабильный urlName. Вы превращаете его в ссылку на Wink Booking Engine, book.wink.travel, передавая ваши идентификаторы. Путешественник бронирует и оплачивает там, а бронирование учитывается на вашем счёте.
Перед началом
Заголовок раздела «Перед началом»Вам понадобятся:
grpcurl, или Postman, или Insomnia. Partner API использует gRPC, а не REST.curl.
Шаг 1: Создайте аккаунт в staging
Заголовок раздела «Шаг 1: Создайте аккаунт в staging»Staging полностью отделён от продакшна, с отдельными логинами и аккаунтами.
-
Перейдите на staging-app.wink.travel, нажмите
Sign-In / Registerи зарегистрируйтесь. -
В левом меню нажмите
Accounts, затемCreateи выберите I am an Affiliate. Бронирования, которые вы отправляете, будут учитываться на этот аккаунт. См. Создать аккаунт.
Шаг 2: Создайте приложение
Заголовок раздела «Шаг 2: Создайте приложение»Приложение даёт вашему коду учётные данные.
-
На карточке аккаунта нажмите
Actions>Manage account, затем вкладкуApplications. -
Нажмите
Create new application, задайте имя и выберите Machine-to-machine как тип клиента. -
В разделе scopes выберите Inventory & rates (только чтение). Partner API проверяет наличие
inventory.read. -
Нажмите
Create applicationи скопируйте Client ID и Client secret. Секрет показывается один раз и не может быть восстановлен.
См. Applications для других типов клиентов и scopes.
Шаг 3: Получите access token
Заголовок раздела «Шаг 3: Получите access token»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_CLIENT_SECRET>" \ -d "scope=inventory.read"Сохраните access_token из ответа:
export WINK_TOKEN=<access_token>Токены истекают. В вашем коде используйте OAuth2-библиотеку для получения и обновления токенов. См. Аутентификация.
Шаг 4: Найдите ID вашего аккаунта
Заголовок раздела «Шаг 4: Найдите ID вашего аккаунта»Каждый вызов Partner API указывает аккаунт, от имени которого вы действуете, в заголовке managing-entity-id. Получите список аккаунтов, доступных вашему токену:
grpcurl -H "authorization: Bearer $WINK_TOKEN" \ -d '{}' \ staging-partner.wink.travel:443 wink.partner.v1.Accounts/ListAccountsСкопируйте accountId аффилированного аккаунта из Шага 1:
export WINK_ACCOUNT_ID=<accountId>Шаг 5: Поиск отелей в городе
Заголовок раздела «Шаг 5: Поиск отелей в городе»grpcurl -H "authorization: Bearer $WINK_TOKEN" \ -H "managing-entity-id: $WINK_ACCOUNT_ID" \ -d '{ "urlName": "bangkok-thailand", "userSession": { "itinerary": { "startDate": "2026-12-01", "nights": 2, "room": { "adults": 2 } }, "currencyCode": "USD", "languageCode": "en" } }' \ staging-partner.wink.travel:443 wink.partner.v1.Search/SearchByCityИспользуйте дату заезда в будущем; дата в прошлом отклоняется. Каждый результат содержит:
name,starRatingиheroImageUrl— достаточно для отображения строки результата,roomTypes— актуальные предложения, сначала самый дешёвый номер,urlName— слаг, необходимый для ссылки бронирования.
Цены — целые числа в минорных единицах: делите на 10 в степени currencyExponent из ответа (2 для USD, значит 12500 — это $125.00).
Не знаете слаг города? Получите его через wink.partner.v1.Lookup/Search. Для полного содержимого объекта используйте сервис Content. Полная документация Partner API — Partner API reference.
Шаг 6: Создайте ссылку для бронирования
Заголовок раздела «Шаг 6: Создайте ссылку для бронирования»https://staging-book.wink.travel/hotel/<urlName>?client-id=<YOUR_CLIENT_ID>&configuration-id=<YOUR_CUSTOMIZATION_ID><urlName>—urlNameотеля из Шага 5.client-id— Client ID вашего приложения из Шага 2.configuration-id— ваш ID кастомизации:Manage account>Customizations. Кастомизация задаёт брендинг, язык и валюту по умолчанию на странице бронирования.
См. Прямая ссылка для ссылки на главную страницу booking engine вместо отдельного отеля.
Шаг 7: Сделайте тестовое бронирование
Заголовок раздела «Шаг 7: Сделайте тестовое бронирование»Откройте вашу ссылку, выберите даты и номер, и оплатите с помощью тестовой карты Stripe, например 4242 4242 4242 4242 с любой будущей датой и любым CVC. В staging реальная карта не списывается. Запомните код бронирования на странице подтверждения; он начинается с WNK.
Шаг 8: Получайте уведомления о бронированиях
Заголовок раздела «Шаг 8: Получайте уведомления о бронированиях»-
В Portal перейдите в
Applications > Webhooksи добавьте endpoint, принимающийPOSTзапросы. -
Подпишитесь на
booking.createили оставьте список событий пустым, чтобы получать всё во время разработки. -
Отправьте тестовое событие себе, затем сделайте ещё одно тестовое бронирование и проверьте его получение.
Проверяйте подпись каждого события перед доверием. См. Интеграция Webhook и Каталог событий Webhook.
Шаг 9: Переход в продакшн
Заголовок раздела «Шаг 9: Переход в продакшн»Для разработчиков нет этапа одобрения. (Аккаунты турагентств сертифицируются отдельно; см. ниже.) Когда интеграция работает в staging:
-
Создайте аккаунт и приложение на app.wink.travel, как в Шагах 1 и 2. Учётные данные не переносятся между средами.
-
Уберите
staging-из каждого хоста:Staging Продакшн https://staging-iam.wink.travelhttps://iam.wink.travelstaging-partner.wink.travel:443partner.wink.travel:443https://staging-book.wink.travelhttps://book.wink.travel -
Снова получите ID продакшн аккаунта (Шаг 4) и ID кастомизации (Шаг 6). Они отличаются от staging.
Использование Partner API учитывается в ночах отеля, с бесплатным ежемесячным лимитом. См. Partner API для цен и ограничений.
Бронирование как турагентство
Заголовок раздела «Бронирование как турагентство»Если ваш аккаунт — лицензированное турагентство, вам не нужно отправлять путешественников на book.wink.travel: вы можете создавать бронирования напрямую через wink.partner.v1.Booking/CreateBooking и управлять ими через другие вызовы Booking. Другие аккаунты отправляют путешественников на ссылку бронирования.
Аккаунты турагентств сертифицируются: Wink проверяет регистрацию каждого агентства перед разрешением бронировать. Агентства, желающие самостоятельно принимать оплату от клиентов как мерчант, должны бронировать через Partner API и получить письменное одобрение Wink. См. Начало работы для турагентов и Partner API reference.
Следующие шаги
Заголовок раздела «Следующие шаги»- Сгенерировать типизированного клиента из схемы
.protoвместо ручного вызоваgrpcurl. - Подключить MCP сервер и использовать AI Skills, чтобы ваш помощник по коду написал интеграцию с живым API.
- Ознакомиться с полным списком сред и хостов.
