# Островок — ETG API (RateHawk): Отменить бронирование

Сценарий из mcp-everything. Актуально на 2026-10-24.

Отмена по запросу гостя — с проверкой, во что она обойдётся.

1. Отменить можно только подтверждённую бронь: POST /api/b2b/v3/hotel/order/cancel/ с partner_order_id — тем же ID, что ты передавал при бронировании.
2. В ответе amount_payable — сумма штрафа и валюта. Для невозвратного тарифа штраф реальный, поэтому показывай условия отмены пользователю до вызова.
3. Апсейлы (ранний заезд, поздний выезд) автоматически не отменяются — учитывай их отдельно.

```bash
curl --user '<KEY_ID>:<API_KEY>' 'https://api.ratehawk.com/api/b2b/v3/hotel/order/cancel/' \
  -H 'Content-Type: application/json' \
  -d '{"partner_order_id": "9b2f6c1e-5d4a-4f7e-8c3b-1a2d3e4f5a6b"}'
```

## Базовые URL

- Боевой и тестовый: `https://api.ratehawk.com`
- Песочница: `https://api-sandbox.ratehawk.com`
- Старые хосты  и  устарели.: `api.worldota.net`

## Авторизация

Тип: Basic Auth

HTTP Basic Authentication ключом API вида `<KEY_ID>:<API_KEY>`: `KEY_ID` — имя пользователя, `API_KEY` — пароль. Ключи бывают трёх типов: sandbox, test (только тестовый отель `hid = 8473727`, брони реальные) и production. Ключи видны в разделе API настроек договора (доступ — у Master-аккаунта).

```
curl --user '<KEY_ID>:<KEY>' --data '{"id":"city_hotel_berlin_east","language":"en"}' "https://api.ratehawk.com/api/b2b/v3/hotel/info/"
```

## Методы сценария

### POST /api/b2b/v3/hotel/order/cancel/ — Отмена бронирования

Отменяются только успешно подтверждённые брони; при отмене невозвратного тарифа штраф реальный. Апсейлы автоматически не отменяются.

В ответе — `amount_payable` (сумма штрафа и валюта).

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `partner_order_id` | body | string | да | ID брони партнёра |

## Нюансы

- GET — для получения данных (параметры в `data` строки запроса), POST — для создания, изменения и удаления; тело — JSON-объект.
- Рекомендуемый поток: поиск → `search/hp` → `hotel/prebook` → `booking/form` → `booking/finish` → `booking/finish/status` (или вебхук).
- `partner_order_id` уникален в рамках договора и используется во всех вызовах после создания брони.
- Брони тестового отеля `hid = 8473727` реальные — их нужно отменять.
- В песочнице язык всегда `en`, валюта обычно USD/EUR, число тарифов ограничено 5, 3D Secure не поддерживается.
- Лимиты и доступные эндпоинты ключа — метод Retrieve endpoints; лимиты повышают только после сертификации.

## Другие сценарии

- [Найти отели и цены в городе](https://mcp-everything.ru/integrations/ostrovok-etg/scenarios/nayti-oteli-i-tseny-v-gorode.md)
- [Забронировать номер](https://mcp-everything.ru/integrations/ostrovok-etg/scenarios/zabronirovat-nomer.md)
- [Загрузить описание и фото отеля](https://mcp-everything.ru/integrations/ostrovok-etg/scenarios/zagruzit-opisanie-i-foto-otelya.md)

---

Если этого недостаточно — официальная документация: https://docs.emergingtravel.com/docs/overview/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/ostrovok-etg.md
