Перейти к содержимому

Быстрый старт

Это руководство проведёт вас от отсутствия знаний до работающей интеграции примерно за 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.

Staging полностью отделён от продакшна, с отдельными логинами и аккаунтами.

  1. Перейдите на staging-app.wink.travel, нажмите Sign-In / Register и зарегистрируйтесь.

  2. В левом меню нажмите Accounts, затем Create и выберите I am an Affiliate. Бронирования, которые вы отправляете, будут учитываться на этот аккаунт. См. Создать аккаунт.

Приложение даёт вашему коду учётные данные.

  1. На карточке аккаунта нажмите Actions > Manage account, затем вкладку Applications.

  2. Нажмите Create new application, задайте имя и выберите Machine-to-machine как тип клиента.

  3. В разделе scopes выберите Inventory & rates (только чтение). Partner API проверяет наличие inventory.read.

  4. Нажмите Create application и скопируйте Client ID и Client secret. Секрет показывается один раз и не может быть восстановлен.

См. Applications для других типов клиентов и scopes.

Окно терминала
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-библиотеку для получения и обновления токенов. См. Аутентификация.

Каждый вызов 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>
Окно терминала
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.

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 вместо отдельного отеля.

Откройте вашу ссылку, выберите даты и номер, и оплатите с помощью тестовой карты Stripe, например 4242 4242 4242 4242 с любой будущей датой и любым CVC. В staging реальная карта не списывается. Запомните код бронирования на странице подтверждения; он начинается с WNK.

Шаг 8: Получайте уведомления о бронированиях

Заголовок раздела «Шаг 8: Получайте уведомления о бронированиях»
  1. В Portal перейдите в Applications > Webhooks и добавьте endpoint, принимающий POST запросы.

  2. Подпишитесь на booking.create или оставьте список событий пустым, чтобы получать всё во время разработки.

  3. Отправьте тестовое событие себе, затем сделайте ещё одно тестовое бронирование и проверьте его получение.

Проверяйте подпись каждого события перед доверием. См. Интеграция Webhook и Каталог событий Webhook.

Для разработчиков нет этапа одобрения. (Аккаунты турагентств сертифицируются отдельно; см. ниже.) Когда интеграция работает в staging:

  1. Создайте аккаунт и приложение на app.wink.travel, как в Шагах 1 и 2. Учётные данные не переносятся между средами.

  2. Уберите staging- из каждого хоста:

    StagingПродакшн
    https://staging-iam.wink.travelhttps://iam.wink.travel
    staging-partner.wink.travel:443partner.wink.travel:443
    https://staging-book.wink.travelhttps://book.wink.travel
  3. Снова получите 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.