API Сервис Booking Service

Материал из Megatec
Перейти к: навигация, поиск

Содержание

Введение

Booking Service предоставляет API для управления бронированиями и взаимодействия с уже созданными заявками. Сервис позволяет: получение/создание/изменение/аннуляция заявок, управление пользователями и параметрами агентов, работу с доп. услугами, трансферами и отчетами. Для работы сервиса необходимо установить службу Windows.

Установка и настройка

Перед установкой API необходимо настроить конфигурационный файл appsettings.json.

  • Подключение к базе данных ПК «Мастер-Interlook»:
  {
  "ConnectionParameters": {
    "MainDatabase": {
      "databaseType": 1, - тип используемой базы данных: 1 - MSSQL, 2 - PostgreSQL (пока не реализовано)
      "server": "", - адрес SQL-сервера
      "database": "", - название БД Interlook
      "user": "", - логин пользователя БД
      "password": "", - пароль пользователя БД (заполнить)
      "appName": "Interlook_BookingService_VKE" - имя приложения при подключении к SQL-серверу
    },
    "ExtraDatabases": [] - список дополнительных баз (если используются)
  },
  • JWT-аутентификация сервиса:
  JWT-аутентификация сервиса:
  "Jwt": {
    "Key": "", - секретный ключ шифрования, который формируется пользователем
    "TokenValidityInMinutes": 2 - время жизни токена в минутах
  },
  • Подключение к удалённым сервисам:
  "RemoteServices": {
    "GDSIncomingServiceUrl": "http://localhost:7709", - адрес сервиса входящих запросов GDS
    "CalculateServiceUrl": "http://localhost:7701" - адрес сервиса расчётов
  },
  • Режимы работы сервиса:
  "UseCalculateRemote": true, - использовать ли расчет удаленно, если true - работает через внешний сервис(searth service), если false - работает через внутренюю логику. 
"UseMainCache": false - загружать свой кэш или нет (если UseCalculateRemote не включена, то будет считать через БД иначе через кэш) , по умолчанию false
  • Ограничители:
  "Restrictions": {
    "IsAlwaysConfirmed": false  Управляет подменой статусов для внешней системы (ВС).
    // При true — включена нормализация статусов при отдаче во внешнюю систему:
    //   Confimed, WaitingConfirmation, Wait  -> confirmed
    //   NotConfirmed, Canceled, Cancel       -> cancelled
    //   WaitingCancellation                  -> pending
    // При false — статусы отдаются «как есть»: Wait, Confimed, Cancel, NotConfirmed, WaitingCancellation
  },


  • Логирование работы сервиса:
  "Logger": {
    "EnableConsole": false, - вывод логов в консоль (для режима приложения)
    "EnableFile": true, - запись логов в файл
    "FilePath": "", - путь к каталогу логов
    "MaxLogFileSize": 10, - максимальный размер файла логов (МБ)
    "MaxOldLogFilesCount": 30, - максимальное количество файлов логов
    "EnableLogService": false, - запись логов через сервис логирования
    "LogServiceAddress": "" - адрес сервиса логирования
  },
  • Параметры установки/запуска сервиса:
  "Install": {
    "ServiceName": "Interlook_BookingService_VKE", - имя службы Windows
    "ServiceAddress": [ "http://*:7070/booking" ], - адрес/порт, на котором доступен сервис
    "IPAddress": "IPAddress.IPv6Any", - IP-привязка
    "GRPCPort": 7071, - порт gRPC
    "HttpsCertificate": {
      "CertFile": "", - путь к файлу сертификата (если используется HTTPS)
      "CertPassword": "", - пароль сертификата
      "CertHost": "", - хост, на который выдан сертификат
      "CertHash": "", - отпечаток (thumbprint) сертификата
      "CertStoreLocation": "LocalMachine" - расположение хранилища сертификатов (CurrentUser/LocalMachine)
    }
  },
  • Доступность из внешних сетей:
  "AllowedHosts": "megatec.ru;*.megatec.ru" - строка с хостами, разделёнными точкой с запятой, "*"  разрешать любой Host

Описание методов

Admin

Регистрация агента (SendAgentRegistration)

Метод: POST /booking/SendAgentRegistration

    • companyName – название компании
    • agencyName – имя агентства
    • countryName – название страны
    • cityName – название города
    • zipCode – почтовый индекс
    • address – адрес
    • id – идентификатор
    • license – лицензия
    • vat – номер VAT
    • phones – телефоны
    • email – электронная почта
    • contactPersonName – контактное лицо
    • comment – комментарий

Возвращаемый результат: Возвращаемый результат:

    • isOk – общий признак успешности обработки запроса: может быть true (успех) или false (ошибка)
    • hasSuccess – признак наличия успешно обработанных адресатов/операций: может быть true или false
    • errors – массив ошибок (если они были)
      • title – заголовок/идентификатор ошибки (например, адрес e-mail)
      • errorMessage – текст ошибки/исключения
    • success – массив успешно обработанных адресатов/значений (например, список e-mail, куда отправлено уведомление)
Пример

Вызов метода /booking/SendAgentRegistration

POST http://localhost:7700/booking/SendAgentRegistration
{
  "companyName": "string",
  "agencyName": "string",
  "countryName": "string",
  "cityName": "string",
  "zipCode": "string",
  "address": "string",
  "id": "string",
  "license": "string",
  "vat": "string",
  "phones": "string",
  "email": "string",
  "contactPersonName": "string",
  "comment": "string"
}

Возвращаемый результат:

{
"isOk": true,
"hasSuccess": true,
"errors": [],
"success": [ "perlov@megatec.ru" ]
}

Возвращаемый результат (ошибка):

 
{
  "isOk": false,
  "hasSuccess": false,
  "errors": [
    {
      "title": "stamsvam@gmail.com",
      "errorMessage": "Error sending to mailing addresses (stamsvam@gmail.com): System.Net.Mail.SmtpException: Bad sequence of commands. The server response was: 5.5.4 Error: send AUTH command first. 1759681423-hNm8OHdMGqM0-uauNKH69\r\n   at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)\r\n   at System.Net.Mail.MailCommand.EndSend(IAsyncResult result)\r\n   at System.Net.Mail.SendMailAsyncResult.SendMailFromCompleted(IAsyncResult result)\r\n--- End of stack trace from previous location ---\r\n   at System.Net.Mail.SendMailAsyncResult.End(IAsyncResult result)\r\n   at System.Net.Mail.SmtpClient.SendMailCallback(IAsyncResult result)\r\n--- End of stack trace from previous location ---\r\n   at Megatec.Interlook.DataModel.Mail.Account.SendMessage(MailMessage mailMessage)\r\n   at Megatec.Interlook.MailLayer.MailManager.SendMail(String msg, String subject, IEnumerable`1 addressees, Boolean isHtml, IEnumerable`1 attachments, Int32 action)"
    }
  ],
  "success": []
}


Получение данных партнера (GetAgentParams)

Метод: GET /booking/GetAgentParams

  • Возвращаемый результат:
    • key – уникальный идентификатор
    • name – название
    • address – адрес
    • phones – телефоны
    • email – электронная почта
    • webSite – URL сайта
    • webName – название сайта
    • logoIcon – логотип
      • key – идентификатор файла логотипа
      • name – имя файла с расширением
      • size – размер
      • data – дата добавления
      • compressed – размер логотипа
      • mime – MIME‑тип файла (например, image/png)
      • type – формат файла
      • originalType – исходный тип файла


Пример

Вызов метода /booking/GetAgentParams

GET http://localhost:7700/booking/GetAgentParams
Возвращаемый результат:
<syntaxhighlight lang="java" enclose="div">
{
  "key": 0,
  "name": "string",
  "address": "string",
  "phones": "string",
  "email": "string",
  "webSite": "string",
  "webName": "string",
  "logoIcon": {
    "key": 0,
    "name": "string",
    "size": 0,
    "data": "string",
    "compressed": false,
    "mime": "string",
    "type": "string",
    "originalType": "string"
  }
}


Редактирование партнера (SaveAgentParams)

Метод: PUT /booking/SaveAgentParams

  • Формат запроса:
  • Принимаемые параметры (Request body):
    • key – уникальный идентификатор
    • name – название
    • address – адрес
    • phones – телефоны
    • email – электронная почта
    • webSite – URL сайта
    • webName – название сайта
    • logoIcon – логотип
      • key – идентификатор файла логотипа
      • name – имя файла с расширением
      • size – размер
      • data – дата добавления
      • compressed – размер логотипа
      • mime – MIME‑тип файла (например, image/png)
      • type – формат файла
      • originalType – исходный тип файла
Пример

Вызов метода /booking/SaveAgentParams

PUT http://localhost:7700/booking/SaveAgentParams
{
  "key": 0,
  "name": "string",
  "address": "string",
  "phones": "string",
  "email": "string",
  "webSite": "string",
  "webName": "string",
  "logoIcon": {
    "key": 0,
    "name": "string",
    "size": 0,
    "data": "string",
    "compressed": false,
    "mime": "string",
    "type": "string",
    "originalType": "string"
  }
}

Возвращаемый результат:

HTTP/1.1 200 OK


Аутентификация (Auth)

Метод: POST /booking/Auth

  • Формат запроса:
  • Принимаемые параметры:
    • token – токен авторизации
  • Возвращаемый результат:
    • authCode – код аутентификации
    • login – логин
    • password – пароль
    • userID – ID пользователя
    • onlineUserKey – ключ пользователя онлайн
    • userKey – ключ пользователя
    • partnerKey – ключ партнера
    • partnerName – имя партнера
    • filialKey – ключ филлиала
    • personConnectionId – персональный ID
    • name – название
    • firstName – имя
    • fullName – полное имя
    • title – название
    • birthDay – дата рождения
    • createDate – дата создания
    • actions – поле actions
    • authenticationType – тип аутентификации
    • isAuthenticated – может быть значение true или false
    • isBlocked – может быть значение true или false
    • isPartnerHotel – может быть значение true или false


Пример

Вызов метода /booking/Auth

POST http://localhost:7700/booking/Auth

Возвращаемый результат:

{
  "authCode": "string",
  "login": "string",
  "password": "string",
  "userID": "string",
  "onlineUserKey": 0,
  "userKey": 0,
  "partnerKey": 0,
  "partnerName": "string",
  "filialKey": 0,
  "personConnectionId": 0,
  "name": "string",
  "firstName": "string",
  "fullName": "string",
  "title": "string",
  "birthDay": "2025-10-05T17:01:04.411Z",
  "createDate": "2025-10-05T17:01:04.411Z",
  "actions": [
    0
  ],
  "authenticationType": "string",
  "isAuthenticated": true,
  "isBlocked": true,
  "isPartnerHotel": true
}

Возвращаемый результат 400 Error: Bad Request

{
  "errors": {
    "token": [
      "The token field is required."
    ]
  },
  "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
  "title": "One or more validation errors occurred.",
  "status": 400,
  "traceId": "00-6a913f29fe774ba54a1c9a07a07ee604-33a17ac002471c42-00"
}


Получение разрешений (GetMyActions)

Метод: GET /booking/GetMyActions

  • Возвращаемый результат:
    • key – уникальный идентификатор пользователя
    • firstName – имя (string)
    • name – краткое имя/логин-отображение
    • fullName – полное имя
    • birthday – дата рождения в ISO-формате (ISO 8601, напр. 2025-10-05T17:20:11.154Z)
    • title – должность
    • login – логин пользователя
    • password – пароль
    • contacts – контактная информация
      • phoneCell – мобильный телефон
        • key – идентификатор записи
        • value – номер телефона
      • phoneOffice – рабочий телефон
        • key – идентификатор записи
        • value – номер телефона
      • email – адрес электронной почты
        • key – идентификатор записи
        • value – e-mail
      • skype – учётная запись Skype
        • key – идентификатор записи
        • value – имя учётной записи
    • actionGroups – объект флагов принадлежности к группам действий, может быть true или false
    • permissions – объект прав пользователя
      • editAddress – разрешено редактировать адрес, может быть true или false
      • editContacts – разрешено редактировать контакты, может быть true или false
      • editPassword – разрешено менять пароль, может быть true или false
      • editPersonData – разрешено редактировать персональные данные, может быть true или false
      • editActions – разрешено управлять действиями/ролями, может быть true или false
    • titlesList – список должностей
Пример

Вызов метода /booking/GetMyActions

 
GET http://localhost:7700/booking/GetMyActions

Возвращаемый результат:

 
[
  {
    "key": 0,
    "firstName": "string",
    "name": "string",
    "fullName": "string",
    "birthday": "2025-10-05T17:20:11.154Z",
    "title": "string",
    "login": "string",
    "password": "string",
    "contacts": {
      "phoneCell": {
        "key": 0,
        "value": "string"
      },
      "phoneOffice": {
        "key": 0,
        "value": "string"
      },
      "email": {
        "key": 0,
        "value": "string"
      },
      "skype": {
        "key": 0,
        "value": "string"
      }
    },
    "actionGroups": {
      "additionalProp1": true,
      "additionalProp2": true,
      "additionalProp3": true
    },
    "permissions": {
      "editAddress": true,
      "editContacts": true,
      "editPassword": true,
      "editPersonData": true,
      "editActions": true
    },
    "titlesList": [
      "string"
    ]
  }
]



Получение параметров авторизованного лица (GetAuth)

Метод: GET /booking/GetAuth

  • Возвращаемый результат:
    • authCode – код аутентификации
    • login – логин
    • password – пароль
    • userID – ID пользователя
    • onlineUserKey – ключ пользователя онлайн
    • userKey – ключ пользователя
    • partnerKey – ключ партнера
    • partnerName – имя партнера
    • filialKey – ключ филлиала
    • personConnectionId – ID персонального подключения
    • name – имя
    • firstName – фамилия
    • fullName – полное имя
    • title – название
    • birthDay – дата рождения
    • createDate – дата создания
    • actions – поле actions
    • authenticationType – тип аутентификации
    • isAuthenticated – может быть true или false
    • isBlocked – может быть true или false
    • isPartnerHotel – может быть true или false


Пример

Вызов метода /booking/GetAuth

GET http://localhost:7700/booking/GetAuth

Возвращаемый результат:

{
  "authCode": "string",
  "login": "string",
  "password": "string",
  "userID": "string",
  "onlineUserKey": 0,
  "userKey": 0,
  "partnerKey": 0,
  "partnerName": "string",
  "filialKey": 0,
  "personConnectionId": 0,
  "name": "string",
  "firstName": "string",
  "fullName": "string",
  "title": "string",
  "birthDay": "2025-10-05T17:39:36.838Z",
  "createDate": "2025-10-05T17:39:36.838Z",
  "actions": [
    0
  ],
  "authenticationType": "string",
  "isAuthenticated": true,
  "isBlocked": true,
  "isPartnerHotel": true
}



Пполучение списка пользователей онлайн (GetWebUsers)

Метод: POST /booking/GetWebUsers

  • Формат запроса:
  • Принимаемые параметры (Request body):
    • login – фильтр по логину пользователя
    • name – фильтр по имени/отображаемому имени
    • email – фильтр по e-mail
    • phone – фильтр по номеру телефона
    • paging – параметры пагинации результатов
      • number – номер страницы (обычно начиная с 1; при 0 сервис может интерпретировать как первую страницу или отключённую пагинацию)
      • size – размер страницы ( > 0; максимальное количество записей на странице)
  • Возвращаемый результат:
    • key – уникальный идентификатор пользователя
    • login – логин пользователя
    • firstName – фамилия
    • name – имя
    • fullName – полное имя
    • createDate – дата/время создания учётной записи в формате ISO 8601 (напр. 2025-10-05T17:56:47.213Z)
    • birthday – дата рождения в формате ISO 8601 (напр. 2025-10-05T17:56:47.213Z)
    • canDelete – можно ли удалять данного пользователя, может быть true или false
    • canEdit – можно ли редактировать данные пользователя, может быть true или false
    • isLoggedIn – признак активной авторизации пользователя, может быть true или false
    • isSuperUser – признак суперпользователя/администратора, может быть true или false
Пример

Вызов метода /booking/GetWebUsers

POST http://localhost:7700/booking/GetWebUsers
{
  "login": "string",
  "name": "string",
  "email": "string",
  "phone": "string",
  "paging": {
    "number": 0,
    "size": 0
  }
}
Возвращаемый результат: 
 
[
  {
    "key": 0,
    "login": "string",
    "firstName": "string",
    "name": "string",
    "fullName": "string",
    "createDate": "2025-10-05T17:56:47.213Z",
    "birthday": "2025-10-05T17:56:47.213Z",
    "canDelete": true,
    "canEdit": true,
    "isLoggedIn": true,
    "isSuperUser": true
  }
]


Получение данных об онлайн пользователях (GetPersonParams)

Метод: GET /booking/GetPersonParams

  • Формат запроса:
  • Принимаемые параметры:
    • personKey – персональный ключ
  • Возвращаемый результат:
    • key – уникальный идентификатор записи
    • firstName – фамилия
    • name – имя
    • fullName – полное имя
    • birthday – дата рождения в формате ISO 8601 (напр. 2025-10-05T18:15:10.853Z)
    • title – должность
    • login – логин пользователя
    • password – пароль пользователя
    • contacts – контакты пользователя
      • phoneCell – мобильный телефон
        • key – идентификатор контактной записи
        • value – номер телефона
      • phoneOffice – рабочий телефон
        • key – идентификатор контактной записи
        • value – номер телефона
      • email – адрес электронной почты
        • key – идентификатор контактной записи
        • value – email
      • skype – учётная запись Skype
        • key – идентификатор контактной записи
        • value – имя учётной записи
    • actionGroups – объект флагов принадлежности к группам действий, может быть true или false
    • permissions – объект прав пользователя
      • editAddress – разрешено редактировать адрес, может быть true или false
      • editContacts – разрешено редактировать контакты, может быть true или false
      • editPassword – разрешено менять пароль, может быть true или false
      • editPersonData – разрешено редактировать персональные данные, может быть true или false
      • editActions – разрешено управлять действиями/ролями, может быть true или false
    • titlesList – список должностей/тегов пользователя
Пример

Вызов метода /booking/GetPersonParams

 
GET http://localhost:7700/booking/GetPersonParams

Возвращаемый результат:

[
  {
    "key": 0,
    "firstName": "string",
    "name": "string",
    "fullName": "string",
    "birthday": "2025-10-05T18:15:10.853Z",
    "title": "string",
    "login": "string",
    "password": "string",
    "contacts": {
      "phoneCell": {
        "key": 0,
        "value": "string"
      },
      "phoneOffice": {
        "key": 0,
        "value": "string"
      },
      "email": {
        "key": 0,
        "value": "string"
      },
      "skype": {
        "key": 0,
        "value": "string"
      }
    },
    "actionGroups": {
      "additionalProp1": true,
      "additionalProp2": true,
      "additionalProp3": true
    },
    "permissions": {
      "editAddress": true,
      "editContacts": true,
      "editPassword": true,
      "editPersonData": true,
      "editActions": true
    },
    "titlesList": [
      "string"
    ]
  }
]


Редактирование онлайн пользователей (SavePersonParams)

Метод: PUT /booking/SavePersonParams

  • Формат запроса:
  • Принимаемые параметры (Request body):
    • key – уникальный идентификатор записи пользователя
    • firstName – имя
    • name – краткое/отображаемое имя
    • fullName – полное имя
    • birthday – дата рождения в формате ISO 8601 (например, 2025-10-05T18:22:12.104Z)
    • title – должность
    • login – логин пользователя
    • password – пароль пользователя
    • contacts – объект контактной информации
      • phoneCell – мобильный телефон
        • key – идентификатор контактной записи
        • value – номер телефона
      • phoneOffice – рабочий телефон
        • key – идентификатор контактной записи
        • value – номер телефона
      • email – электронная почта
        • key – идентификатор контактной записи
        • value – email
      • skype – учётная запись Skype
        • key – идентификатор контактной записи
        • value – имя учётной записи
    • actionGroups – объект флагов принадлежности к группам действий (значения true/false)
    • permissions – объект прав пользователя
      • editAddress – разрешено редактировать адрес (значения true/false)
      • editContacts – разрешено редактировать контакты (значения true/false)
      • editPassword – разрешено менять пароль (значения true/false)
      • editPersonData – разрешено редактировать персональные данные (значения true/false)
      • editActions – разрешено управлять действиями/ролями (значения true/false)
    • titlesList – список должностей/тегов пользователя (массив строк)
  • Возвращаемый результат:
    • key – уникальный идентификатор пользователя
    • login – логин пользователя
    • firstName – фамилия
    • name – имя
    • fullName – полное имя
    • createDate – дата/время создания/изменения записи (ISO 8601)
    • birthday – дата рождения (ISO 8601)
    • canDelete – можно ли удалять этого пользователя (значения true/false)
    • canEdit – можно ли редактировать данные пользователя (значения true/false)
    • isLoggedIn – признак активной авторизации пользователя (значения true/false)
    • isSuperUser – признак суперпользователя/администратора (значения true/false)
Пример

Вызов метода /booking/SavePersonParams

PUT http://localhost:7700/booking/SavePersonParams
{
  "key": 0,
  "firstName": "string",
  "name": "string",
  "fullName": "string",
  "birthday": "2025-10-05T18:22:12.104Z",
  "title": "string",
  "login": "string",
  "password": "string",
  "contacts": {
    "phoneCell": {
      "key": 0,
      "value": "string"
    },
    "phoneOffice": {
      "key": 0,
      "value": "string"
    },
    "email": {
      "key": 0,
      "value": "string"
    },
    "skype": {
      "key": 0,
      "value": "string"
    }
  },
  "actionGroups": {
    "additionalProp1": true,
    "additionalProp2": true,
    "additionalProp3": true
  },
  "permissions": {
    "editAddress": true,
    "editContacts": true,
    "editPassword": true,
    "editPersonData": true,
    "editActions": true
  },
  "titlesList": [
    "string"
  ]
}

Возвращаемый результат:

{
  "key": 0,
  "login": "string",
  "firstName": "string",
  "name": "string",
  "fullName": "string",
  "createDate": "2025-10-05T18:24:54.936Z",
  "birthday": "2025-10-05T18:24:54.936Z",
  "canDelete": true,
  "canEdit": true,
  "isLoggedIn": true,
  "isSuperUser": true
}



Удаление онлайн пользователей (DeleteWebUser)

Метод: DELETE /booking/DeleteWebUser

  • Формат запроса:
  • Принимаемые параметры:
    • webUserKey – уникальный идентификатор веб-пользователя, которого необходимо удалить (integer, обязателен). Значение берётся из поля key в результатах метода GetWebUsers.
  • Возвращаемый результат:
    • Code 200 OK — пользователь успешно удалён
Пример

Вызов метода /booking/DeleteWebUser (передача идентификатора в query string)

 
DELETE http://localhost:7700/booking/DeleteWebUser?webUserKey=123

Возвращаемый результат:

HTTP/1.1 200 OK



Получение типов наценок (GetMarkupTypes)

Метод: GET /booking/GetMarkupTypes

  • Возвращаемый результат: (массив типов наценок)
    • key – уникальный идентификатор типа наценки
    • name – наименование/отображаемое имя типа наценки
Пример

Вызов метода /booking/GetMarkupTypes

 
GET http://localhost:7700/booking/GetMarkupTypes

Возвращаемый результат:

 
[
  {
    "key": 0,
    "name": "string"
  }
]



Получение наценок (GetMarkups)

Метод: GET /booking/GetMarkups

  • Формат запроса:
  • Принимаемые параметры отсутствуют
  • Возвращаемый результат:
    • key – уникальный идентификатор записи наценки
    • category – категория/область применения наценки, напр. «Отель», «География», «Категория»
    • hotel – наименование отеля, к которому применяется наценка (при типе наценки для отеля)
    • geography – географическая область применения (город/регион/страна) (при географических наценках)
    • amount – величина наценки для взрослых. Интерпретация зависит от isPercent:

  • если isPercent=true — процент (например, 10 = +10%)   • если isPercent=false — фиксированная сумма (в базовой валюте)

    • childAmount – величина наценки для детей, по тем же правилам, что и amount
    • isPercent – признак, что наценка задаётся в процентах. Если false, используется фиксированная сумма
    • isPerNight – наценка применяется за ночь. Если true, сумма/процент начисляются за каждую ночь; если false — за всё размещение
    • type – тип наценки, как правило соответствует одному из значений из справочника типов наценок
    • entityKey – ключ связанной сущности: для наценки на отель — ключ отеля, для географии — ключ региона/города и т.п.
Пример

Вызов метода /booking/GetMarkups

 
GET http://localhost:7700/booking/GetMarkups

Возвращаемый результат:

 
[
  {
    "key": 0,
    "category": "string",
    "hotel": "string",
    "geography": "string",
    "amount": 0,
    "childAmount": 0,
    "isPercent": true,
    "isPerNight": true,
    "type": 0,
    "entityKey": 0
  }
]



Получение редактируемых параметров наценок (GetMarkupEditParams)

Метод: GET /booking/GetMarkupEditParams

  • Возвращаемый результат:
    • key – уникальный идентификатор записи наценки
    • type – тип наценки
    • amount – величина наценки для взрослых: если isPercent=true, интерпретируется как процент; если false — как фиксированная сумма
    • childAmount – величина наценки для детей, по тем же правилам, что и amount
    • isPercent – признак, что наценка задаётся в процентах. Если false, используется фиксированная сумма
    • isPerNight – признак расчёта «за ночь»: true — начисляется за каждую ночь, false — за всё размещение
    • value – объект привязанной сущности (к чему применяется наценка, например, отель/география/категория)
      • key – идентификатор сущности
      • name – наименование сущности
Пример

Вызов метода /booking/GetMarkupEditParams

 
GET http://localhost:7700/booking/GetMarkupEditParams?markupKey=205

Возвращаемый результат:

{
  "key": 0,
  "type": 0,
  "amount": 0,
  "childAmount": 0,
  "isPercent": true,
  "isPerNight": true,
  "value": {
    "key": 0,
    "name": "string"
  }
}


Редактирование параметров наценок (SaveMarkupEditParams)

Метод: PUT /booking/SaveMarkupEditParams

  • Формат запроса:
  • Принимаемые параметры (Request body):
    • key – уникальный идентификатор редактируемой наценки.
    • type – тип наценки. Значение соответствует одному из справочника типов.
    • amount – величина наценки для взрослых. Если isPercent = true — это процент (например, 10 = +10%), если false — фиксированная сумма в базовой валюте.
    • childAmount – величина наценки для детей, по тем же правилам, что и amount.
    • isPercent – признак, что наценка задаётся в процентах. Если false, используется фиксированная сумма.
    • isPerNight – признак применения «за ночь». Если true, наценка начисляется за каждую ночь проживания; если false — за весь период размещения.
    • value – объект привязанной сущности, к которой применяется наценка (отель/география/категория и т.п.)
      • key – идентификатор сущности – например, ключ отеля или региона.
      • name – наименование сущности – например, название отеля или региона.
  • Возвращаемый результат:
    • key – уникальный идентификатор записи наценки
    • category – категория применения наценки, напр. «Отель», «География», «Категория»
    • hotel – наименование отеля, если наценка привязана к конкретному отелю; иначе пусто
    • geography – географическая область, если наценка географическая; иначе пусто
    • amount – величина наценки для взрослых, по правилам isPercent
    • childAmount – величина наценки для детей, по правилам isPercent
    • isPercent – признак процентной наценки. Если false, используется фиксированная сумма.
    • isPerNight – признак применения «за ночь». Если true, наценка начисляется за каждую ночь проживания; если false — за весь период размещения.
    • type – тип наценки, соответствует справочнику типов
    • entityKey – ключ связанной сущности: ключ отеля/региона/категории, к которой применена наценка
Пример

Вызов метода /booking/SaveMarkupEditParams

 
PUT http://localhost:7700/booking/SaveMarkupEditParams 
{
  "key": 0,
  "type": 0,
  "amount": 0,
  "childAmount": 0,
  "isPercent": true,
  "isPerNight": true,
  "value": {
    "key": 0,
    "name": "string"
  }
}

Возвращаемый результат:

 
{
  "key": 0,
  "category": "string",
  "hotel": "string",
  "geography": "string",
  "amount": 0,
  "childAmount": 0,
  "isPercent": true,
  "isPerNight": true,
  "type": 0,
  "entityKey": 0
}



Удаление наценок (DeleteMarkup)

Метод: DELETE /booking/DeleteMarkup

  • Формат запроса:
  • Принимаемые параметры:
    • markupKey – уникальный идентификатор записи наценки
  • Возвращаемый результат:
    • Code 200 OK — наценка успешно удалена
Пример

Вызов метода /booking/DeleteMarkup

 
DELETE http://localhost:7700/booking/DeleteMarkup?markupKey=205

Возвращаемый результат:

 HTTP/1.1 200 OK



Получение дополнительных параметров партнера (GetPartnerExtras)

Метод: GET /booking/GetPartnerExtras

  • Формат запроса:
  • Принимаемые параметры отсутствуют
  • Возвращаемый результат:
    • key – уникальный идентификатор записи настроек
    • prKey – идентификатор партнёра, к которому относятся настройки
    • daysOffsetCancellationPolicy – сдвиг по дням для политики отмены: за сколько дней до заезда начинают действовать/изменяются условия отмены (штрафы и т.п.)
    • daysOffsetPaymentPolicy – сдвиг по дням для платёжной политики: за сколько дней до заезда наступает срок оплаты/изменяются условия оплаты
Пример

Вызов метода /booking/GetPartnerExtras

 
GET http://localhost:7700/booking/GetPartnerExtras
Возвращаемый результат: 
{
  "key": 0,
  "prKey": 0,
  "daysOffsetCancellationPolicy": 0,
  "daysOffsetPaymentPolicy": 0
}



Редактирование дополнительных параметров партнера (SavePartnerExtras)

Метод: PUT /booking/SavePartnerExtras

  • Формат запроса:
  • Принимаемые параметры (Request body):
    • key – уникальный идентификатор записи настроек
    • prKey – идентификатор партнёра, для которого применяются настройки.
    • daysOffsetCancellationPolicy – сдвиг (количество дней) для политики отмены: за сколько дней до даты заезда начинают действовать/меняться условия отмены (штрафы и т.п.).
    • daysOffsetPaymentPolicy – сдвиг (количество дней) для платёжной политики: за сколько дней до даты заезда наступает срок оплаты/меняются условия оплаты.
  • Возвращаемый результат:
    • key – уникальный идентификатор записи настроек
    • prKey – идентификатор партнёра
    • daysOffsetCancellationPolicy – установленный сдвиг по дням для политики отмены
    • daysOffsetPaymentPolicy – установленный сдвиг по дням для платёжной политики
Пример
Вызов метода /booking/SavePartnerExtras 
 
PUT http://localhost:7700/booking/SavePartnerExtras 
{
  "key": 0,
  "prKey": 0,
  "daysOffsetCancellationPolicy": 0,
  "daysOffsetPaymentPolicy": 0
}

Возвращаемый результат:

 
{
  "key": 0,
  "prKey": 0,
  "daysOffsetCancellationPolicy": 0,
  "daysOffsetPaymentPolicy": 0
}



Получение настроек платежей (GetPayments)

Метод: GET /booking/GetPayments

  • Формат запроса:
  • Принимаемые параметры:
    • dateFrom – дата/время начала интервала (ISO 8601). Фильтр по платежам с этой даты включительно (например, 2025-10-01 или 2025-10-01T00:00:00Z).
    • dateTo – дата/время конца интервала (ISO 8601). Фильтр по платежам до этой даты включительно (например, 2025-10-31 или 2025-10-31T23:59:59Z).
  • Возвращаемый результат:
    • items – список платежей
      • key – уникальный идентификатор платежа
      • docNumber – номер документа/платёжного документа
      • date – дата/время платежа (в формате ISO 8601)
      • amount – сумма платежа
      • currency – валюта платежа (например RUB, USD, EUR)
    • totals – агрегированные итоги по выборке
      • key – ключ итога
      • value – значение итога
Пример

Вызов метода /booking/GetPayments

 
GET http://localhost:7700/booking/GetPayments?dateFrom=2025-10-01&dateTo=2025-10-31

Возвращаемый результат:

 {
  "items": [
    {
      "key": 0,
      "docNumber": "string",
      "date": "2025-10-05T19:31:45.484Z",
      "amount": 0,
      "currency": "string"
    }
  ],
  "totals": [
    {
      "key": 0,
      "value": "string"
    }
  ]
}



Booking

Бронирование путевки (Createreservation)

Метод: POST /booking/CreateReservation

  • Формат запроса:
  • Принимаемые параметры (Request body):
    • rate – тариф/предложение, по которому оформляется бронь
      • id – идентификатор тарифа
    • touristServices – связи «турист ↔ услуга»
      • touristRoomNumber – № комнаты/посадки для туриста
      • serviceID – идентификатор услуги
      • touristID – идентификатор туриста
    • services – список услуг в бронировании
      • externalID – внешний идентификатор услуги во внешней системе
      • nMen – количество туристов по услуге
      • additionalParams – дополнительные параметры услуги
        • key – имя параметра
        • value – значение параметра
      • startDate – дата начала услуги (ISO 8601)
      • duration – длительность в ночах/днях
      • id – идентификатор услуги
      • hotel – отель
        • id – идентификатор отеля
      • room – параметры размещения
        • roomTypeID – тип номера
        • roomCategoryID – категория номера
        • roomAccomodationID – тип размещения
      • pansionID – идентификатор питания
    • tourists – список туристов
      • sex – пол
      • birthDate – дата рождения (ISO 8601)
      • firstNameLat – имя латиницей
      • surNameLat – фамилия латиницей
      • foreignPassport – заграничный паспорт
        • serie – серия
        • number – номер
        • endDate – дата окончания (ISO 8601)
      • ageType – возрастной тип
      • isMain – признак главного туриста, может быть true или False
      • id – идентификатор туриста
      • phone – телефон
    • tourOperatorID – идентификатор туроператора
    • tourOperatorCode – код туроператора
    • hasInvoices – признак, что по брони имеются счета, может быть true или False
    • id – идентификатор брони
    • externalID – внешний идентификатор брони
  • Возвращаемый результат:
    • rate – сведения о тарифе
      • additionalParams – дополнительные параметры тарифа
        • key – имя параметра
        • value – значение параметра
      • name – наименование тарифа
      • id – идентификатор тарифа
      • description – описание
      • descriptionSpecified – признак заполненности поля description, может быть true или False
      • nameLat – наименование латиницей
      • nameLatSpecified – признак заполненности nameLat, может быть true или False
      • code – код тарифа
      • codeSpecified – признак заполненности code, может быть true или False
      • codeLat – код латиницей
      • codeLatSpecified – признак заполненности codeLat, может быть true или False
      • unicode – Unicode-код/обозначение
      • unicodeSpecified – признак заполненности unicode, может быть true или False
      • isMain – признак основного тарифа, может быть true или False
      • isNational – признак национального тарифа, может быть true или False
    • touristServices – связи туристов и услуг
      • id – идентификатор связи
      • touristRoomNumber – № комнаты/посадки
      • serviceID – идентификатор услуги
      • touristID – идентификатор туриста
    • services – услуги по брони
      • externalID – внешний идентификатор
      • price – цена услуги
      • nMen – кол-во туристов
      • partnerID – идентификатор партнёра
      • packetKey – ключ пакетной услуги/пакета
      • detailNetto – детализация нетто
      • detailBrutto – детализация брутто
      • notes – примечания
      • name – наименование услуги
      • startDate – дата начала услуги (ISO 8601)
      • endDate – дата окончания услуги (ISO 8601)
      • startDay – «день начала» относительно тура
      • duration – длительность
      • rateBrutto – тариф брутто
      • brutto – сумма брутто
      • rateNetto – тариф нетто
      • netto – сумма нетто
      • serviceClassID – класс услуги
      • touristCount – количество туристов по услуге
      • id – идентификатор услуги
      • status – статус услуги
        • additionalParams – доп. параметры статус
          • key – имя параметра
          • value – значение параметра
        • name – наименование статуса
        • id – идентификатор статуса
        • description – описание статуса
        • descriptionSpecified – признак заполненности, может быть true или False
        • nameLat – наименование латиницей
        • nameLatSpecified – признак заполненности, может быть true или False
        • code – код статуса
        • codeSpecified – признак заполненности, может быть true или False
        • codeLat – код латиницей
        • codeLatSpecified – признак заполненности, может быть true или False
        • unicode – Unicode-код/обозначение
        • unicodeSpecified – признак заполненности
      • additionalParams – дополнительные параметры услуги
        • key – имя параметра
        • value – значение параметра
    • id – идентификатор брони
    • name – наименование/код брони
    • netto – общая сумма нетто
    • brutto – общая сумма брутто
    • countryID – идентификатор страны
    • cityID – идентификатор города
    • partnerID – идентификатор партнёра
    • startDate – дата начала тура/проживания (ISO 8601)
    • endDate – дата окончания тура/проживания (ISO 8601)
    • duration – длительность тура
    • creationDate – дата/время создания брони (ISO 8601)
    • creatorID – идентификатор создателя
    • tourists – итоговый список туристов в брони
      • sex – пол
      • firstName – имя
      • lastName – отчество
      • surName – фамилия
      • birthDate – дата рождения (ISO 8601)
      • firstNameLat – имя латиницей
      • surNameLat – фамилия латиницей
      • lastNameLat – отчество/второе имя латиницей
      • localPassport – внутренний паспорт
        • issuedBy – кем выдан
        • serie – серия
        • number – номер
        • issueDate – дата выдачи (ISO 8601)
        • endDate – дата окончания (ISO 8601)
      • foreignPassport – заграничный паспорт
        • issuedBy – кем выдан
        • serie – серия
        • number – номер
        • issueDate – дата выдачи (ISO 8601)
        • endDate – дата окончания (ISO 8601)
      • ageType – возрастной тип
      • citizen – гражданство
      • isMain – признак главного туриста, может быть true или False
      • externalID – внешний идентификатор
      • additionalParams – дополнительные параметры туриста
        • key – имя параметра
        • value – значение параметра
      • id – идентификатор туриста
      • phone – телефо
      • email – email
    • ownerID – идентификатор владельца/агентства
    • tourOperatorID – идентификатор туроператора
    • tourOperatorCode – код туроператора
    • hasInvoices – признак наличия счетов, может быть true или False
    • externalID – внешний идентификатор брони
    • additionalParams – дополнительные параметры брони
      • key – имя параметра
      • value – значение параметра
Пример

Вызов метода /booking/CreateReservation

POST http://localhost:7700/booking/CreateReservation
{
  "rate": {
    "id": 1
  },
  "touristServices": [
    {
      "touristRoomNumber": "1408",
      "serviceID": -1,
      "touristID": -1
    },
    {
      "touristRoomNumber": "1408",
      "serviceID": -1,
      "touristID": -2
    }
  ],
  "services": [
    {
      "externalID": 0,
      "nMen": 2,
      "additionalParams": [
        {
          "key": "Type",
          "value": "HotelService"
        }
      ],
      "startDate": "2024-09-09T00:00:00",
      "duration": 8,
      "id": -1,
      "hotel": {
        "id": 4387
      },
      "room": {
        "roomTypeID": 58,
        "roomCategoryID": 65,
        "roomAccomodationID": 2231
      },
      "pansionID": 29
    }
  ],
  "tourists": [
    {
      "sex": 0,
      "birthDate": "1966-06-28T00:00:00",
      "firstNameLat": "John",
      "surNameLat": "Cusack",
      "foreignPassport": {
        "serie": "AA",
        "number": "123456"
      },
      "ageType": 0,
      "isMain": true,
      "id": -1,
      "phone": "+79661230947"
    },
    {
      "sex": 0,
      "birthDate": "1999-11-28T00:00:00",
      "firstNameLat": "Mike",
      "surNameLat": "Enslin",
      "foreignPassport": {
        "serie": "ZZ",
        "number": "654321",
        "endDate": "2024-08-14T00:00:00"
      },
      "ageType": 0,
      "isMain": false,
      "id": -2
    }
  ],
  "tourOperatorID": 0,
  "tourOperatorCode": "bloodandsmoke",
  "hasInvoices": false,
  "id": 0,
  "externalID": 0
}

Возвращаемый результат:

 
{
  "rate": {
    "additionalParams": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "name": "string",
    "id": 0,
    "description": "string",
    "descriptionSpecified": true,
    "nameLat": "string",
    "nameLatSpecified": true,
    "code": "string",
    "codeSpecified": true,
    "codeLat": "string",
    "codeLatSpecified": true,
    "unicode": "string",
    "unicodeSpecified": true,
    "isMain": true,
    "isNational": true
  },
  "touristServices": [
    {
      "id": 0,
      "touristRoomNumber": "string",
      "serviceID": 0,
      "touristID": 0
    }
  ],
  "services": [
    {
      "externalID": 0,
      "price": 0,
      "nMen": 0,
      "partnerID": 0,
      "packetKey": 0,
      "detailNetto": "string",
      "detailBrutto": "string",
      "notes": "string",
      "name": "string",
      "startDate": "2025-10-05T19:51:21.646Z",
      "endDate": "2025-10-05T19:51:21.646Z",
      "startDay": 0,
      "duration": 0,
      "rateBrutto": "string",
      "brutto": 0,
      "rateNetto": "string",
      "netto": 0,
      "serviceClassID": 0,
      "touristCount": 0,
      "id": 0,
      "status": {
        "additionalParams": [
          {
            "key": "string",
            "value": "string"
          }
        ],
        "name": "string",
        "id": 0,
        "description": "string",
        "descriptionSpecified": true,
        "nameLat": "string",
        "nameLatSpecified": true,
        "code": "string",
        "codeSpecified": true,
        "codeLat": "string",
        "codeLatSpecified": true,
        "unicode": "string",
        "unicodeSpecified": true
      },
      "additionalParams": [
        {
          "key": "string",
          "value": "string"
        }
      ]
    }
  ],
  "id": 0,
  "name": "string",
  "netto": 0,
  "brutto": 0,
  "countryID": 0,
  "cityID": 0,
  "partnerID": 0,
  "startDate": "2025-10-05T19:51:21.647Z",
  "endDate": "2025-10-05T19:51:21.647Z",
  "duration": 0,
  "creationDate": "2025-10-05T19:51:21.647Z",
  "creatorID": 0,
  "tourists": [
    {
      "sex": 0,
      "firstName": "string",
      "lastName": "string",
      "surName": "string",
      "birthDate": "2025-10-05T19:51:21.647Z",
      "firstNameLat": "string",
      "surNameLat": "string",
      "lastNameLat": "string",
      "localPassport": {
        "issuedBy": "string",
        "serie": "string",
        "number": "string",
        "issueDate": "2025-10-05T19:51:21.647Z",
        "endDate": "2025-10-05T19:51:21.647Z"
      },
      "foreignPassport": {
        "issuedBy": "string",
        "serie": "string",
        "number": "string",
        "issueDate": "2025-10-05T19:51:21.647Z",
        "endDate": "2025-10-05T19:51:21.647Z"
      },
      "ageType": 0,
      "citizen": "string",
      "isMain": true,
      "externalID": 0,
      "additionalParams": [
        {
          "key": "string",
          "value": "string"
        }
      ],
      "id": 0,
      "phone": "string",
      "email": "string"
    }
  ],
  "ownerID": 0,
  "tourOperatorID": 0,
  "tourOperatorCode": "string",
  "hasInvoices": true,
  "externalID": 0,
  "additionalParams": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}



Бронирование путевки расширенное (CreateReservationNew)

Метод: POST /booking/CreateReservationNew

  • Формат запроса:
  • Принимаемые параметры (Request body):
    • hotel_id – идентификатор отеля, по которому создаётся бронь
    • client_reference_id – внешний идентификатор/референс клиента, позволит сопоставить бронь в вашей системе
    • reservation_holder – основной держатель брони
      • first_name – имя держателя
      • last_name – фамилия держателя
      • is_child – признак, что держатель — ребёнок, может быть true или false
      • age – возраст держателя
      • birthday – дата рождения держателя (ISO 8601)
      • gender – пол
      • email – e-mail держателя
      • phone – телефон держателя
      • isMain – признак, что это главный турист, может быть true или false
      • id – идентификатор держателя
    • contact_info – контактные данные по брони
      • phone – телефон для связи
      • email – e-mail для связи
      • webpage – веб-страница/сайт
    • rates – список выбранных тарифов/номеров
      • rate_id – идентификатор тарифа/предложения
      • price – цена по тарифу
      • room – параметры номера
        • id – идентификатор номера/варианта размещения
        • guests – список гостей, заселяемых в этот номер
          • first_name – имя гостя
          • last_name – фамилия гостя
          • is_child – признак, что гость — ребёнок, может быть true или false
          • age – возраст гостя
          • birthday – дата рождения гостя (ISO 8601)
          • gender – пол
          • email – e-mail гостя
          • phone – телефон гостя
          • isMain – признак «главный гость» в комнате, может быть true или false
          • id – идентификатор гостя
      • extras – дополнительные услуги по тарифу
        • id – идентификатор вида допуслуги
        • key – ключ записи/варианта допуслуги
        • date_from – дата начала допуслуги (ISO 8601)
        • date_to – дата окончания допуслуги (ISO 8601)
        • is_duration – признак, что услуга длительная, может быть true или false
        • guests – список ID гостей, к которым применяется услуга
      • comments – комментарии к тарифу/номеру
    • transfers – трансферы в рамках брони
      • id – идентификатор типа трансфера
      • key – ключ варианта трансфера
      • date – дата/время трансфера (ISO 8601)
      • guests – список ID гостей для трансфера
      • price – стоимость трансфера
      • pointTo – пункт назначения
      • pointFrom – пункт отправления
      • transferName – наименование трансфера
      • transferType – тип трансфера
        • key – идентификатор типа
        • name – наименование типа
      • currency – валюта расчёта (напр. RUB, USD)
      • routeNumber – номер рейса/маршрута
      • isGroup – групповый трансфер, может быть true или false
      • maxPax – максимальная вместимость
    • notes – внутренние заметки к брони
    • preferences – пожелания гостя
    • booking_service_type – тип сервиса бронирования/канал
  • Возвращаемый результат:
    • reservationId – строковый идентификатор брони во внешнем/фронтовом формате
    • reservationKey – числовой ключ брони в системе
    • clientReferenceId – возвращённый внешний идентификатор клиента
    • hotelConfirmationCode – код подтверждения отеля
    • status – статус брони, например CONFIRMED, PENDING, CANCELLED
Пример

Вызов метода /booking/CreateReservation

 
POST http://localhost:7700/booking/CreateReservation 
{
  "hotel_id": 0,
  "client_reference_id": "string",
  "reservation_holder": {
    "first_name": "string",
    "last_name": "string",
    "is_child": true,
    "age": 0,
    "birthday": "string",
    "gender": 0,
    "email": "string",
    "phone": "string",
    "isMain": true,
    "id": 0
  },
  "contact_info": {
    "phone": "string",
    "email": "string",
    "webpage": "string"
  },
  "rates": [
    {
      "rate_id": "string",
      "price": 0,
      "room": {
        "id": "string",
        "guests": [
          {
            "first_name": "string",
            "last_name": "string",
            "is_child": true,
            "age": 0,
            "birthday": "string",
            "gender": 0,
            "email": "string",
            "phone": "string",
            "isMain": true,
            "id": 0
          }
        ]
      },
      "extras": [
        {
          "id": "string",
          "key": 0,
          "date_from": "2025-10-05T20:20:18.919Z",
          "date_to": "2025-10-05T20:20:18.919Z",
          "is_duration": true,
          "guests": [
            0
          ]
        }
      ],
      "comments": "string"
    }
  ],
  "transfers": [
    {
      "id": "string",
      "key": 0,
      "date": "2025-10-05T20:20:18.919Z",
      "guests": [
        0
      ],
      "price": 0,
      "pointTo": "string",
      "pointFrom": "string",
      "transferName": "string",
      "transferType": {
        "key": 0,
        "name": "string"
      },
      "currency": "string",
      "routeNumber": "string",
      "isGroup": true,
      "maxPax": 0
    }
  ],
  "notes": "string",
  "preferences": "string",
  "booking_service_type": 0
}

Возвращаемый результат:

 
{
  "reservationId": "string",
  "reservationKey": 0,
  "clientReferenceId": "string",
  "hotelConfirmationCode": "string",
  "status": "string"
}



Получение информации о забронированной путевке (GetReservation)

Метод: GET /booking/GetReservation

  • Формат запроса:
  • Принимаемые параметры:
    • dgKey – числовой ключ (идентификатор) бронирования, по которому нужно получить полные данные брони.

Возвращаемый результат:

    • rate – сведения о тарифе
      • additionalParams – дополнительные параметры тарифа
        • key – имя параметра
        • value – значение параметра
      • name – наименование тарифа
      • id – идентификатор тарифа
      • description – описание тарифа
      • descriptionSpecified – признак заполненности description, может быть true или false
      • nameLat – наименование латиницей
      • nameLatSpecified – признак заполненности nameLat, может быть true или false
      • code – код тарифа
      • codeSpecified – признак заполненности code, может быть true или false
      • codeLat – код латиницей
      • codeLatSpecified – признак заполненности codeLat, может быть true или false
      • unicode – Unicode-код/обозначение
      • unicodeSpecified – признак заполненности unicode, может быть true или false
      • isMain – признак, что тариф основной, может быть true или false
      • isNational – признак национального тарифа, может быть true или false
    • touristServices – связи туристов и услуг
      • id – идентификатор связи
      • touristRoomNumber – номер комнаты/посадки
      • serviceID – идентификатор услуги
      • touristID – идентификатор туриста
    • services – параметры услуги
      • externalID – внешний идентификатор услуги
      • price – цена услуги
      • nMen – количество туристов по услуге
      • partnerID – идентификатор партнёра
      • packetKey – ключ пакетной услуги/пакета
      • detailNetto – детализация нетто
      • detailBrutto – детализация брутто
      • notes – примечания
      • name – наименование услуги
      • endDate – дата окончания услуги (ISO 8601)
      • startDay – «день начала» относительно тура
      • rateBrutto – тариф брутто
      • brutto – сумма брутто
      • rateNetto – тариф нетто
      • netto – сумма нетто
      • touristCount – количество туристов по услуге
      • id – идентификатор услуги
      • additionalParams – дополнительные параметры услуги
        • key – имя параметра
        • value – значение параметра
      • cityKey – идентификатор города услуги
      • excursionID – идентификатор экскурсии
      • startDate – дата начала услуги (ISO 8601)
      • duration – длительность
      • serviceClassID – класс/тип услуги
    • id – идентификатор брони
    • name – наименование/код брони
    • netto – общая сумма нетто
    • brutto – общая сумма брутто
    • countryID – идентификатор страны
    • cityID – идентификатор города
    • partnerID – идентификатор партнёра
    • startDate – дата начала тура/проживания (ISO 8601)
    • endDate – дата окончания тура/проживания (ISO 8601)
    • duration – длительность тура
    • creationDate – дата/время создания брони (ISO 8601)
    • creatorID – идентификатор создателя
    • tourists – список туристов
      • sex – пол
      • firstName – имя
      • lastName – отчество/второе имя
      • surName – фамилия
      • birthDate – дата рождения (ISO 8601)
      • firstNameLat – имя латиницей
      • surNameLat – фамилия латиницей
      • lastNameLat – отчество/второе имя латиницей
      • localPassport – внутренний паспорт
        • issuedBy – кем выдан
        • serie – серия
        • number – номер
        • issueDate – дата выдачи (ISO 8601)
        • endDate – дата окончания (ISO 8601)
      • foreignPassport – заграничный паспорт
        • issuedBy – кем выдан
        • serie – серия
        • number – номер
        • issueDate – дата выдачи (ISO 8601)
        • endDate – дата окончания (ISO 8601)
      • ageType – возрастной тип
      • citizen – гражданство
      • isMain – признак главного туриста, может быть true или false
      • externalID – внешний идентификатор
      • additionalParams – дополнительные параметры туриста
        • key – имя параметра
        • value – значение параметра
      • id – идентификатор туриста
      • phone – телефон
      • email – e-mail
    • ownerID – идентификатор владельца/агентства
    • tourOperatorID – идентификатор туроператора
    • tourOperatorCode – код туроператора
    • hasInvoices – признак наличия счетов, может быть true или false
    • externalID – внешний идентификатор брони
    • additionalParams – дополнительные параметры брони
      • key – имя параметра
      • value – значение параметра
Пример

Вызов метода /booking/GetReservation

 
GET http://localhost:7700/booking/GetReservation?dgKey=987654

Возвращаемый результат:

 
{
  "rate": {
    "additionalParams": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "name": "string",
    "id": 0,
    "description": "string",
    "descriptionSpecified": true,
    "nameLat": "string",
    "nameLatSpecified": true,
    "code": "string",
    "codeSpecified": true,
    "codeLat": "string",
    "codeLatSpecified": true,
    "unicode": "string",
    "unicodeSpecified": true,
    "isMain": true,
    "isNational": true
  },
  "touristServices": [
    {
      "id": 0,
      "touristRoomNumber": "string",
      "serviceID": 0,
      "touristID": 0
    }
  ],
  "services": {
    "externalID": 0,
    "price": 0,
    "nMen": 0,
    "partnerID": 0,
    "packetKey": 0,
    "detailNetto": "string",
    "detailBrutto": "string",
    "notes": "string",
    "name": "string",
    "endDate": "2025-10-05T20:50:25.957Z",
    "startDay": 0,
    "rateBrutto": "string",
    "brutto": 0,
    "rateNetto": "string",
    "netto": 0,
    "touristCount": 0,
    "id": 0,
    "additionalParams": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "cityKey": 0,
    "excursionID": 0,
    "startDate": "2025-10-05T20:50:25.957Z",
    "duration": 0,
    "serviceClassID": 0
  },
  "id": 0,
  "name": "string",
  "netto": 0,
  "brutto": 0,
  "countryID": 0,
  "cityID": 0,
  "partnerID": 0,
  "startDate": "2025-10-05T20:50:25.957Z",
  "endDate": "2025-10-05T20:50:25.957Z",
  "duration": 0,
  "creationDate": "2025-10-05T20:50:25.957Z",
  "creatorID": 0,
  "tourists": [
    {
      "sex": 0,
      "firstName": "string",
      "lastName": "string",
      "surName": "string",
      "birthDate": "2025-10-05T20:50:25.957Z",
      "firstNameLat": "string",
      "surNameLat": "string",
      "lastNameLat": "string",
      "localPassport": {
        "issuedBy": "string",
        "serie": "string",
        "number": "string",
        "issueDate": "2025-10-05T20:50:25.957Z",
        "endDate": "2025-10-05T20:50:25.957Z"
      },
      "foreignPassport": {
        "issuedBy": "string",
        "serie": "string",
        "number": "string",
        "issueDate": "2025-10-05T20:50:25.957Z",
        "endDate": "2025-10-05T20:50:25.957Z"
      },
      "ageType": 0,
      "citizen": "string",
      "isMain": true,
      "externalID": 0,
      "additionalParams": [
        {
          "key": "string",
          "value": "string"
        }
      ],
      "id": 0,
      "phone": "string",
      "email": "string"
    }
  ],
  "ownerID": 0,
  "tourOperatorID": 0,
  "tourOperatorCode": "string",
  "hasInvoices": true,
  "externalID": 0,
  "additionalParams": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}



Получение информации о забронированной путевке расширенное (GetReservationNew)

Метод: GET /booking/GetReservationNew

  • Формат запроса:
  • Принимаемые параметры:
    • dgId – ключ (идентификатор) бронирования, по которому требуется получить сведения

Возвращаемый результат:

    • reservation_id – строковый идентификатор бронирования
    • reservation_key – числовой ключ бронирования
    • client_reference_id – внешний идентификатор из вашей системы
    • status_key – числовой код статуса бронирования
    • status_name – статус бронирования
    • price – общая стоимость бронирования
    • paid – оплаченная сумма
    • create_date – дата/время создания брони (ISO 8601)
    • confirmation_date – дата/время подтверждения брони (ISO 8601)
    • check_in – дата/время заезда (ISO 8601)
    • check_out – дата/время выезда (ISO 8601)
    • pay_to – крайний срок полной оплаты (ISO 8601)
    • prepay_to – крайний срок предоплаты (ISO 8601)
    • reserved_by – кто создал/оформил бронирование (логин/имя)
    • hotel_id – идентификатор отеля
    • doc_invoice – список связанных счётов/документов
      • fileKey – ключ файла счёта
      • invoiceKey – ключ самого счёта/накладной
      • invoiceName – имя/название счёта
      • fileName – имя файла счёта
      • updateDate – дата обновления документа (ISO 8601)
    • messages – сообщения/журнал обмена по брони
      • dmId – идентификатор сообщения
      • dmIsOutgoing – направление (0/1), 0 — входящее, 1 — исходящее
      • dmDgkey – ключ брони, к которой относится сообщение
      • dmRemark – краткое примечание/ремарка
      • dmTypeCode – код типа сообщения
      • dmTableId – связанный ИД записи/таблицы
      • dmProcessed – признак обработки (0/1)
      • dmCreateDate – дата/время создания сообщения (ISO 8601)
      • dmText – текст сообщения
      • dmTourOperKey – ИД туроператора по сообщению
      • dmXml – «сырое» XML-содержимое (если есть)
      • dmSendername – имя отправителя
      • dmExternalId – внешний идентификатор сообщения
      • dmDir – направление по внутренней классификации (числовой код)
      • dmIsRead – признак «прочитано»: может быть true (прочитано) или false (не прочитано)
    • rates – список тарифов/вариантов размещения в брони
      • id – идентификатор тарифа
      • price – итоговая цена тарифа
      • basicPrice – базовая цена (до наценок/скидок)
      • bar_price – цена BAR (если применяется)
      • commission – комиссия
      • supplier_min_price – минимальная цена поставщика
      • taxes – налоги/сборы по тарифу
        • type – тип налога/сбора
        • currency – валюта налога/сбора
        • is_included – включено ли в цену: true (налог уже включён) / false (оплачивается дополнительно)
        • amount – сумма налога/сбора
      • payment_type – тип оплаты по тарифу (например, предоплата/на месте)
      • currency – валюта тарифа
      • basicCurrency – базовая валюта
      • meals – включённые типы питания
        • id – идентификатор питания
        • name – наименование питания
        • code – код питания
      • cancellation_policies – укороченные правила отмены
        • from – дата/время начала применения указанной санкции/штрафа
        • amount – размер штрафа/удержания
      • cancellation_policies_extended – расширенные правила отмены
        • policyKey – ключ правила
        • dateFrom – период действия «с» (ISO 8601)
        • dateTo – период действия «по» (ISO 8601)
        • penaltyValue – величина штрафа
        • isPercent – формат величины штрафа: true (в процентах) / false (фиксированная сумма)
        • description – описание правила/санкции
      • payment_policies – платёжные условия по тарифу
        • description – текстовое описание условий
        • prepayDateTo – срок предоплаты (ISO 8601)
        • prepayAmount – размер предоплаты
        • nonrefAmount – невозвратная часть
        • payDateTo – крайний срок полной оплаты (ISO 8601)
        • payAmount – сумма к полной оплате
        • rate – тарифное обозначение
        • generatedName – сгенерированное имя условия
      • addHots – дополнительные «горячие» услуги/надбавки
        • count – количество
        • description – описание
        • brutto – сумма брутто
        • canDeleteService – можно ли удалить эту услугу: true (можно) / false (нельзя)
        • cancellationPolicy – политика отмены для услуги
      • extraServices – дополнительные услуги
        • count – количество
        • description – описание
        • brutto – сумма брутто
        • canDeleteService – можно ли удалить: true / false
        • cancellationPolicy – политика отмены
      • manualExtraServices – вручную добавленные допуслуги
        • id – строковый идентификатор услуги
        • key – ключ услуги
        • date_from – дата начала (ISO 8601)
        • date_to – дата окончания (ISO 8601)
        • duration – длительность
        • is_duration – интерпретировать как длительную услугу: true / false
        • guests – список ключей гостей, на кого распространяется
        • price – цена
        • currency – валюта
        • serviceClass – класс услуги
          • key – ключ класса
          • name – имя класса
        • service – тип/вид услуги
          • key – ключ типа
          • name – имя типа
        • linkType – тип связи услуги с бронированием
          • key – ключ типа связи
          • name – имя типа связи
        • isGroup – групповая услуга: true / false
        • isCalculated – рассчитана системой: true / false
      • rooms – номера/варианты размещения
        • id – идентификатор номера
        • name – наименование номера
        • bed_groups – группы спальных мест
          • id – идентификатор группы
          • name – имя группы
          • bed_types – список типов кроватей
            • name – тип кровати
            • quantity – количество
        • allotment – квота мест по номеру
        • roomVariant – вариант номера (код)
        • roomAccommodation – тип размещения
      • guestGroup – агрегированная группа гостей по тарифу
        • adults – количество взрослых
        • children_ages – возрасты детей
        • groupMultiplier – множитель группы (для помножения цены/квоты)
      • guests – список гостей в тарифе (структура аналогична гостю в заявке)
      • quotaType – тип квоты/наличия
      • quotaPlaces – сведения о квотах/местах
        • key – ключ
        • value – значение
      • bruttoDetail – детализация брутто
      • uniqueCode – уникальный код тарифа/элемента
      • city – город
        • key – ключ
        • value – значение
      • region – регион
        • key – ключ
        • value – значение
      • hotel – отель
        • key – ключ
        • value – значение
      • isAnul – признак аннуляции услуги: true (аннулирована) / false (активна)
      • notes – заметки
      • hotelExtra – доп. сведения по отелю/услуге
      • provider – код/идент. поставщика
      • isEditable – можно ли редактировать: true / false
    • payment_policies – платёжные условия по брони (структура как выше для тарифа)
    • transfers – трансферы, привязанные к брони
      • id – идентификатор типа трансфера
      • key – ключ варианта трансфера
      • date – дата/время трансфера (ISO 8601)
      • guests – ключи гостей, на кого оформлен трансфер
      • price – стоимость
      • pointTo – пункт назначения
      • pointFrom – пункт отправления
      • transferName – наименование трансфера
      • transferType – тип трансфера
        • key – ключ типа
        • name – имя типа
      • currency – валюта
      • routeNumber – номер рейса/маршрута
      • isGroup – групповая перевозка: true / false
      • maxPax – максимальная вместимость
Пример
Вызов метода /booking/GetReservationNew
 
GET http://localhost:7700/booking/GetReservationNew?dgId=987654

Возвращаемый результат:

 
{
  "reservation_id": "string",
  "reservation_key": 0,
  "client_reference_id": "string",
  "status_key": 0,
  "status_name": "string",
  "price": 0,
  "paid": 0,
  "create_date": "2025-10-05T20:53:55.309Z",
  "confirmation_date": "2025-10-05T20:53:55.309Z",
  "check_in": "2025-10-05T20:53:55.309Z",
  "check_out": "2025-10-05T20:53:55.309Z",
  "pay_to": "2025-10-05T20:53:55.309Z",
  "prepay_to": "2025-10-05T20:53:55.309Z",
  "reserved_by": "string",
  "hotel_id": 0,
  "doc_invoice": [
    {
      "fileKey": 0,
      "invoiceKey": 0,
      "invoiceName": "string",
      "fileName": "string",
      "updateDate": "2025-10-05T20:53:55.309Z"
    }
  ],
  "messages": [
    {
      "dmId": 0,
      "dmIsOutgoing": 0,
      "dmDgkey": 0,
      "dmRemark": "string",
      "dmTypeCode": 0,
      "dmTableId": 0,
      "dmProcessed": 0,
      "dmCreateDate": "2025-10-05T20:53:55.309Z",
      "dmText": "string",
      "dmTourOperKey": 0,
      "dmXml": "string",
      "dmSendername": "string",
      "dmExternalId": 0,
      "dmDir": 0,
      "dmIsRead": true
    }
  ],
  "rates": [
    {
      "id": "string",
      "price": 0,
      "basicPrice": 0,
      "bar_price": 0,
      "commission": 0,
      "supplier_min_price": 0,
      "taxes": [
        {
          "type": "string",
          "currency": "string",
          "is_included": true,
          "amount": 0
        }
      ],
      "payment_type": "string",
      "currency": "string",
      "basicCurrency": "string",
      "meals": [
        {
          "id": "string",
          "name": "string",
          "code": "string"
        }
      ],
      "cancellation_policies": [
        {
          "from": "string",
          "amount": 0
        }
      ],
      "cancellation_policies_extended": [
        {
          "policyKey": 0,
          "dateFrom": "2025-10-05T20:53:55.309Z",
          "dateTo": "2025-10-05T20:53:55.309Z",
          "penaltyValue": 0,
          "isPercent": true,
          "description": "string"
        }
      ],
      "payment_policies": {
        "description": "string",
        "prepayDateTo": "2025-10-05T20:53:55.309Z",
        "prepayAmount": 0,
        "nonrefAmount": 0,
        "payDateTo": "2025-10-05T20:53:55.309Z",
        "payAmount": 0,
        "rate": "string",
        "generatedName": "string"
      },
      "addHots": [
        {
          "count": 0,
          "description": "string",
          "brutto": 0,
          "canDeleteService": true,
          "cancellationPolicy": "string"
        }
      ],
      "extraServices": [
        {
          "count": 0,
          "description": "string",
          "brutto": 0,
          "canDeleteService": true,
          "cancellationPolicy": "string"
        }
      ],
      "manualExtraServices": [
        {
          "id": "string",
          "key": 0,
          "date_from": "2025-10-05T20:53:55.309Z",
          "date_to": "2025-10-05T20:53:55.309Z",
          "duration": 0,
          "is_duration": true,
          "guests": [
            0
          ],
          "price": 0,
          "currency": "string",
          "serviceClass": {
            "key": 0,
            "name": "string"
          },
          "service": {
            "key": 0,
            "name": "string"
          },
          "linkType": {
            "key": 0,
            "name": "string"
          },
          "isGroup": true,
          "isCalculated": true
        }
      ],
      "rooms": [
        {
          "id": "string",
          "name": "string",
          "bed_groups": [
            {
              "id": "string",
              "name": "string",
              "bed_types": [
                {
                  "name": "string",
                  "quantity": 0
                }
              ]
            }
          ],
          "allotment": 0,
          "roomVariant": 0,
          "roomAccommodation": "string"
        }
      ],
      "guestGroup": {
        "adults": 0,
        "children_ages": [
          0
        ],
        "groupMultiplier": 0
      },
      "guests": [
        {
          "first_name": "string",
          "last_name": "string",
          "is_child": true,
          "age": 0,
          "birthday": "string",
          "gender": 0,
          "email": "string",
          "phone": "string",
          "isMain": true,
          "id": 0
        }
      ],
      "quotaType": 0,
      "quotaPlaces": {
        "key": "string",
        "value": 0
      },
      "bruttoDetail": "string",
      "uniqueCode": "string",
      "city": {
        "key": "string",
        "value": 0
      },
      "region": {
        "key": "string",
        "value": 0
      },
      "hotel": {
        "key": "string",
        "value": 0
      },
      "isAnul": true,
      "notes": "string",
      "hotelExtra": "string",
      "provider": 0,
      "isEditable": true
    }
  ],
  "payment_policies": {
    "description": "string",
    "prepayDateTo": "2025-10-05T20:53:55.309Z",
    "prepayAmount": 0,
    "nonrefAmount": 0,
    "payDateTo": "2025-10-05T20:53:55.309Z",
    "payAmount": 0,
    "rate": "string",
    "generatedName": "string"
  },
  "transfers": [
    {
      "id": "string",
      "key": 0,
      "date": "2025-10-05T20:53:55.309Z",
      "guests": [
        0
      ],
      "price": 0,
      "pointTo": "string",
      "pointFrom": "string",
      "transferName": "string",
      "transferType": {
        "key": 0,
        "name": "string"
      },
      "currency": "string",
      "routeNumber": "string",
      "isGroup": true,
      "maxPax": 0
    }
  ]
}



Получение файлов (GetFileData)

Метод: GET /booking/GetFileData

  • Формат запроса:
  • Принимаемые параметры:
    • key – ключ (идентификатор) файла, содержимое которого требуется получить

Возвращаемый результат: (объект файла)

    • key – ключ (идентификатор) файла
    • name – имя файла (с расширением)
    • size – размер файла в байтах
    • data – содержимое файла в Base64
    • compressed – признак сжатия содержимого: может быть true (данные сжаты) или false (данные без сжатия)
    • mime – MIME-тип (например, application/pdf, image/png)
    • type – тип/класс файла (внутреннее обозначение)
    • originalType – исходный тип/расширение при загрузке
Пример

Вызов метода /booking/GetFileData

 
GET http://localhost:7700/booking/GetFileData?key=9001

Возвращаемый результат:

 
{
  "key": 0,
  "name": "string",
  "size": 0,
  "data": "string",
  "compressed": true,
  "mime": "string",
  "type": "string",
  "originalType": "string"
}



Получение заявок по датам прибытия (GetArrivalsByDate)

Метод: GET /booking/GetArrivalsByDate

  • Формат запроса:
  • Принимаемые параметры:
    • date – дата приезда (заезда), по которой требуется получить список заселений; указывайте в ISO-формате (например, 2025-10-07 или 2025-10-07T00:00:00Z)
    • countryKey – фильтр по стране (ключ страны)
    • regionKey – фильтр по региону/области (ключ региона)
    • cityKey – фильтр по городу (ключ города)
    • hotelKey – фильтр по отелю (ключ отеля)
  • Возвращаемый результат:
    • строка с итоговой сводкой прибытий по указанным фильтрам
Пример

Вызов метода /booking/GetArrivalsByDate

 
GET http://localhost:7700/booking/GetArrivalsByDate?date=2025.10.07&cityKey=213

Возвращаемый результат:

 
"ARRIVALS: date=2025-10-07; hotelKey=4387; expectedCount=12"


Получение заявок по датам отбытия (GetDeparturesByDate)

Метод: GET /booking/GetDeparturesByDate

  • Формат запроса:
  • Принимаемые параметры:
    • date – дата выезда (отъезда), по которой требуется получить список выбытий; в ISO-формате (например, 2025-10-07 или 2025-10-07T00:00:00Z)
    • countryKey – фильтр по стране (ключ страны)
    • regionKey – фильтр по региону/области (ключ региона)
    • cityKey – фильтр по городу (ключ города)
    • hotelKey – фильтр по отелю (ключ отеля)
  • Возвращаемый результат:
    • строка с итоговой сводкой выездов по указанным фильтрам


Пример (по конкретному отелю)

Вызов метода /booking/GetDeparturesByDate

 
GET http://localhost:7700/booking/GetDeparturesByDate?date=2025-10-07&hotelKey=4387

Возвращаемый результат:

 
"DEPARTURES: date=2025-10-07; hotelKey=4387; expectedCount=9"


Аннуляция путевок (CancelReservation)

Метод: GET /booking/CancelReservation

  • Формат запроса:
  • Принимаемые параметры:
    • dgKey – ключ (идентификатор) бронирования, которое требуется аннулировать
    • annulReasonID – идентификатор причины аннуляции (из справочника причин; используется для корректной фиксации основания отмены)
    • note – комментарий к аннуляции (например, пояснение для внутреннего журнала или партнёра)
  • Возвращаемый результат:
    • строка с результатом операции (например, текст подтверждения аннуляции либо сообщение об ошибке)
Пример

Вызов метода /booking/CancelReservation

 
GET http://localhost:7700/booking/CancelReservation?dgKey=987654&annulReasonID=3&note=Client%20requested%20cancellation

Возвращаемый результат:

 
"Reservation 987654 cancelled (reason 3)"



Аннуляция путевок с расширенной информацией (CancelReservationExtended)

  • Формат запроса:
  • Принимаемые параметры:
    • dgKey – ключ (идентификатор) бронирования, которое требуется аннулировать
    • annulReasonID – идентификатор причины аннуляции (из справочника причин; позволяет корректно зафиксировать основание отмены)
    • note – комментарий к аннуляции (произвольный текст для журнала/партнёра)

Возвращаемый результат:

    • status – код итогового статуса операции
    • canceledServiceResults – список результатов по каждой затронутой услуге
      • isStatusOk – признак успешной аннуляции услуги: может быть true (успешно) или false (ошибка)
      • error – сообщение об ошибке при аннуляции услуги (если есть)
      • number – номер услуги/позиции (если используется нумерация)
      • key – ключ услуги (идентификатор)
      • resultMessage – текстовое описание результата по услуге
      • penaltyCost – данные о штрафе/санкции при аннуляции
        • policyKey – ключ применённого правила
        • dateFrom – дата/время начала действия штрафа (ISO 8601)
        • dateTo – дата/время окончания действия штрафа (ISO 8601)
        • penaltyValue – величина штрафа
        • isPercent – формат величины штрафа: может быть true (в процентах) или false (фиксированная сумма)
        • netto – нетто-сумма, к которой применяется штраф/удержание
        • totalPenalty – рассчитанная итоговая сумма штрафа
        • description – описание применённого правила/санкции
Пример (локальный вызов)

Вызов метода /booking/CancelReservationExtended

 
GET http://localhost:7700/booking/CancelReservationExtended?dgKey=987654&annulReasonID=3&note=Client

Возвращаемый результат:

 
{
  "status": 0,
  "canceledServiceResults": [
    {
      "isStatusOk": true,
      "error": "string",
      "number": 0,
      "key": 0,
      "resultMessage": "string",
      "penaltyCost": {
        "policyKey": 0,
        "dateFrom": "2025-10-05T21:31:31.531Z",
        "dateTo": "2025-10-05T21:31:31.531Z",
        "penaltyValue": 0,
        "isPercent": true,
        "netto": 0,
        "totalPenalty": 0,
        "description": "string"
      }
    }
  ]
}



Получение заявок по датам (GetReservationsFrom)

Метод: GET /booking/GetReservationsFrom

  • Формат запроса:
  • Принимаемые параметры:
    • dateFrom – начальная дата периода (ISO 8601), включительно
    • dateTo – конечная дата периода (ISO 8601), включительно

Возвращаемый результат:

    • message – сервисное сообщение о результате выборки
    • error – текст ошибки, если она произошла (пусто при успешном выполнении)
    • count – количество найденных бронирований
    • data – массив кратких записей бронирований
      • key – ключ (идентификатор) брони
      • code – код/номер брони
    • childrenAges – список возрастов детей, фигурирующих в отобранных бронированиях
    • adults – суммарное количество взрослых по выборке
Пример (за период)

Вызов метода /booking/GetReservationsFrom

 
GET http://localhost:7700/booking/GetReservationsFrom?dateFrom=2025-10-01&dateTo=2025-10-07

Возвращаемый результат:

 
{
  "message": "string",
  "error": "string",
  "count": 0,
  "data": [
    {
      "key": 0,
      "code": "string"
    }
  ],
  "childrenAges": [
    0
  ],
  "adults": 0
}



Получение заявок, расширенная (GetReservations)

Метод: POST /booking/GetReservations

  • Формат запроса:
  • Принимаемые параметры (Request body):
    • sorting – параметры сортировки результата
      • property – поле, по которому сортировать (например, createDate, tourStart, price)
      • descending – направление сортировки: true — по убыванию, false — по возрастанию
    • paging – параметры постраничного вывода
      • number – номер страницы (как правило, начиная с 1)
      • size – размер страницы (количество записей на странице)
    • tourCreateDate – интервал по дате создания брони
      • from – нижняя граница (ISO 8601)
      • to – верхняя граница (ISO 8601)
    • tourDateFrom – интервал по дате начала тура/заезда
      • from – нижняя граница (ISO 8601)
      • to – верхняя граница (ISO 8601)
    • tourDateTo – интервал по дате окончания тура/выезда
      • from – нижняя граница (ISO 8601)
      • to – верхняя граница (ISO 8601)
    • tourPrePayment – интервал по срокам предоплаты
      • from – нижняя граница (ISO 8601)
      • to – верхняя граница (ISO 8601)
    • tourPayment – интервал по срокам полной оплаты
      • from – нижняя граница (ISO 8601)
      • to – верхняя граница (ISO 8601)
    • dogovorCode – фильтр по номеру договора
    • hotels – список ключей отелей для фильтрации
    • cities – список ключей городов для фильтрации
    • statuses – список кодов/ключей статусов брони для фильтрации
    • logins – список идентификаторов пользователей, оформивших брони
    • touristSurname – фильтр по фамилии туриста
  • Возвращаемый результат:
    • message – сервисное сообщение о выполнении запроса
    • error – текст ошибки (пусто при успешном выполнении)
    • count – общее количество найденных записей с учётом фильтров
    • data – массив кратких сведений о бронированиях
      • code – код/номер брони
      • customerCode – код клиента/плательщика
      • key – ключ (идентификатор) брони
      • city – город брони
        • key – наименование/код города
        • value – ключ города
      • region – регион брони
        • key – наименование/код региона
        • value – ключ региона
      • hotel – основной отель брони
        • key – ключ отеля
        • name – краткое имя отеля
        • fullName – полное имя отеля
        • fullContextName – отображаемое имя с контекстом
        • regionKey – ключ региона
        • cityKey – ключ города
        • categoryKey – ключ категории отеля
        • dates – даты проживания
          • from – дата заезда (ISO 8601)
          • to – дата выезда (ISO 8601)
        • mealsKeys – перечень ключей типов питания
        • hasDescription – у отеля есть описание: true / false
      • extraHotels – дополнительные отели в составе брони (если есть)
        • (структура полей аналогична hotel)
      • duration – длительность тура/проживания (в днях/ночах — по правилам системы)
      • tourStart – дата начала тура (ISO 8601)
      • tourEnd – дата окончания тура (ISO 8601)
      • createDate – дата создания брони (ISO 8601)
      • price – общая стоимость
      • paid – оплаченная сумма
      • rate – тариф/условия (метка)
      • invoicesIssued – список выставленных счетов
        • inId – идентификатор счёта
        • inCustomerKey – ключ клиента
        • inProviderKey – ключ поставщика
        • inNumber – номер счёта
        • inCurrency – валюта счёта
        • inPrice – сумма по счёту
        • inPayed – оплаченная сумма по счёту
        • inCreateDate – дата создания счёта (ISO 8601)
        • inCreateUser – ключ пользователя, создавшего счёт
        • inNotes – примечания к счёту
        • inDogovors – ссылка на договор(а)
        • inCheckInDate – дата заезда по счёту (ISO 8601)
        • inPaymentDate – срок оплаты по счёту (ISO 8601)
        • inIsDeleted – пометка удаления: true / false
        • inCheckInEnd – дата выезда по счёту (ISO 8601)
        • inInvoiceType – тип счёта (код)
        • inNumberVersion – версия номера счёта
        • inInvoiceKind – вид счёта (код)
      • login – логин пользователя, оформившего бронь
      • status – статус брони
        • key – текстовое обозначение/код статуса
        • value – числовой код статуса
      • roomsCount – количество комнат
      • adultsCount – количество взрослых
      • childrenCount – количество детей
      • mainTourist – ФИО основного туриста
      • tourists – список туристов (ФИО в строковом виде)
      • roomDetails – детализация по комнатам
        • adults – количество взрослых в комнате
        • children – количество детей в комнате
      • payment_policies – платёжные условия по брони
        • description – текстовое описание условий
        • prepayDateTo – крайний срок предоплаты (ISO 8601)
        • prepayAmount – размер предоплаты
        • nonrefAmount – невозвратная часть
        • payDateTo – крайний срок полной оплаты (ISO 8601)
        • payAmount – сумма к оплате
        • rate – обозначение тарифа
        • generatedName – сгенерированное имя условий
    • childrenAges – список возрастов детей по выборке
    • adults – суммарное количество взрослых по выборке
Пример

Вызов метода /booking/GetReservations

 
POST http://localhost:7700/booking/GetReservations 
{
  "sorting": {
    "property": "string",
    "descending": true
  },
  "paging": {
    "number": 0,
    "size": 0
  },
  "tourCreateDate": {
    "from": "2025-10-05T21:42:47.492Z",
    "to": "2025-10-05T21:42:47.492Z"
  },
  "tourDateFrom": {
    "from": "2025-10-05T21:42:47.492Z",
    "to": "2025-10-05T21:42:47.492Z"
  },
  "tourDateTo": {
    "from": "2025-10-05T21:42:47.492Z",
    "to": "2025-10-05T21:42:47.492Z"
  },
  "tourPrePayment": {
    "from": "2025-10-05T21:42:47.492Z",
    "to": "2025-10-05T21:42:47.492Z"
  },
  "tourPayment": {
    "from": "2025-10-05T21:42:47.492Z",
    "to": "2025-10-05T21:42:47.492Z"
  },
  "dogovorCode": "string",
  "hotels": [
    0
  ],
  "cities": [
    0
  ],
  "statuses": [
    0
  ],
  "logins": [
    0
  ],
  "touristSurname": "string"
}

Возвращаемый результат:

{
  "message": "string",
  "error": "string",
  "count": 0,
  "data": [
    {
      "code": "string",
      "customerCode": "string",
      "key": 0,
      "city": {
        "key": "string",
        "value": 0
      },
      "region": {
        "key": "string",
        "value": 0
      },
      "hotel": {
        "key": 0,
        "name": "string",
        "fullName": "string",
        "fullContextName": "string",
        "regionKey": 0,
        "cityKey": 0,
        "categoryKey": 0,
        "dates": {
          "from": "2025-10-05T21:42:48.852Z",
          "to": "2025-10-05T21:42:48.852Z"
        },
        "mealsKeys": [
          0
        ],
        "hasDescription": true
      },
      "extraHotels": [
        {
          "key": 0,
          "name": "string",
          "fullName": "string",
          "fullContextName": "string",
          "regionKey": 0,
          "cityKey": 0,
          "categoryKey": 0,
          "dates": {
            "from": "2025-10-05T21:42:48.852Z",
            "to": "2025-10-05T21:42:48.852Z"
          },
          "mealsKeys": [
            0
          ],
          "hasDescription": true
        }
      ],
      "duration": 0,
      "tourStart": "2025-10-05T21:42:48.852Z",
      "tourEnd": "2025-10-05T21:42:48.852Z",
      "createDate": "2025-10-05T21:42:48.852Z",
      "price": 0,
      "paid": 0,
      "rate": "string",
      "invoicesIssued": [
        {
          "inId": 0,
          "inCustomerKey": 0,
          "inProviderKey": 0,
          "inNumber": "string",
          "inCurrency": "string",
          "inPrice": 0,
          "inPayed": 0,
          "inCreateDate": "2025-10-05T21:42:48.852Z",
          "inCreateUser": 0,
          "inNotes": "string",
          "inDogovors": "string",
          "inCheckInDate": "2025-10-05T21:42:48.852Z",
          "inPaymentDate": "2025-10-05T21:42:48.852Z",
          "inIsDeleted": true,
          "inCheckInEnd": "2025-10-05T21:42:48.852Z",
          "inInvoiceType": 0,
          "inNumberVersion": 0,
          "inInvoiceKind": 0
        }
      ],
      "login": "string",
      "status": {
        "key": "string",
        "value": 0
      },
      "roomsCount": 0,
      "adultsCount": 0,
      "childrenCount": 0,
      "mainTourist": "string",
      "tourists": [
        "string"
      ],
      "roomDetails": [
        {
          "adults": 0,
          "children": 0
        }
      ],
      "payment_policies": {
        "description": "string",
        "prepayDateTo": "2025-10-05T21:42:48.852Z",
        "prepayAmount": 0,
        "nonrefAmount": 0,
        "payDateTo": "2025-10-05T21:42:48.852Z",
        "payAmount": 0,
        "rate": "string",
        "generatedName": "string"
      }
    }
  ],
  "childrenAges": [
    0
  ],
  "adults": 0
}



Получение фильтров для экрана заявок (GetReservationsFilters)

Метод: GET /booking/GetReservationsFilters

Возвращаемый результат:

    • statuses – список доступных статусов бронирований для фильтрации
      • key – текстовое обозначение/код статуса
      • value – числовой код статуса
    • cities – список городов для фильтрации
      • key – ключ города
      • name – название города
      • type – тип населённого пункта (например, «city», «resort»)
    • regions – список регионов для фильтрации
      • key – ключ региона
      • name – название региона
      • type – тип территориальной единицы
    • countries – список стран для фильтрации
      • key – код страны (наименование/ISO-код)
      • value – числовой ключ страны
    • hotels – список отелей для фильтрации
      • key – ключ отеля
      • name – краткое имя отеля
      • fullName – полное имя отеля
      • fullContextName – имя с контекстом (город/регион)
      • regionKey – ключ региона
      • cityKey – ключ города
      • categoryKey – ключ категории/звёздности
      • dates – доступные даты проживания
        • from – дата начала периода (ISO 8601)
        • to – дата окончания периода (ISO 8601)
      • mealsKeys – список ключей доступных типов питания
      • hasDescription – наличие описания у отеля: может быть true (описание есть) или false (описания нет)
    • logins – список пользователей, по которым можно фильтровать брони
      • key – логин/идентификатор пользователя
      • value – числовой ключ пользователя
Пример

Вызов метода /booking/GetReservationsFilters

 
GET http://localhost:7700/booking/GetReservationsFilters

Возвращаемый результат:

 
{
  "statuses": [
    {
      "key": "string",
      "value": 0
    }
  ],
  "cities": [
    {
      "key": 0,
      "name": "string",
      "type": "string"
    }
  ],
  "regions": [
    {
      "key": 0,
      "name": "string",
      "type": "string"
    }
  ],
  "countries": [
    {
      "key": "string",
      "value": 0
    }
  ],
  "hotels": [
    {
      "key": 0,
      "name": "string",
      "fullName": "string",
      "fullContextName": "string",
      "regionKey": 0,
      "cityKey": 0,
      "categoryKey": 0,
      "dates": {
        "from": "2025-10-05T21:52:40.981Z",
        "to": "2025-10-05T21:52:40.981Z"
      },
      "mealsKeys": [
        0
      ],
      "hasDescription": true
    }
  ],
  "logins": [
    {
      "key": "string",
      "value": 0
    }
  ]
}



Получение параметров услуг (GetChangingServiceParams)

Метод: GET /booking/GetChangingServiceParams

  • Формат запроса:
  • Принимаемые параметры:
    • dlKey – ключ (идентификатор) услуги в брони, для которой требуется получить параметры изменения

Возвращаемый результат:

    • dlKey – ключ услуги, для которой возвращены параметры
    • serviceType – тип услуги (код; например, проживание, трансфер и т.п.)
    • dateFrom – текущая дата начала услуги (ISO 8601)
    • dateTo – текущая дата окончания услуги (ISO 8601)
    • roomKey – текущий выбранный номер (ключ)
    • pansionKey – текущий выбранный тип питания (ключ)
    • guests – список гостей по услуге
      • first_name – имя гостя
      • last_name – фамилия гостя
      • is_child – признак «гость — ребёнок»: может быть true (ребёнок) или false (взрослый)
      • age – возраст гостя
      • birthday – дата рождения (ISO 8601)
      • gender – пол
      • email – e-mail гостя
      • phone – телефон гостя
      • isMain – признак «главный гость» по услуге: может быть true (главный) или false (обычный)
      • id – идентификатор гостя
    • availableRooms – доступные варианты номеров для изменения
      • id – идентификатор варианта номера
      • name – наименование варианта номера
      • bed_groups – группы спальных мест
        • id – идентификатор группы
        • name – имя группы
        • bed_types – типы кроватей
          • name – тип кровати
          • quantity – количество
      • allotment – доступная квота по номеру
      • roomVariant – код варианта номера
      • roomAccommodation – тип размещения (например, DBL, TRPL)
    • availablePansions – доступные типы питания
      • id – идентификатор питания
      • name – наименование питания
      • code – код питания
    • removeExtras – список ключей допуслуг, которые будут сняты при изменении
Пример

Вызов метода /booking/GetChangingServiceParams

 
GET http://localhost:7700/booking/GetChangingServiceParams?dlKey=7001

Возвращаемый результат:

 
{
  "dlKey": 0,
  "serviceType": 0,
  "dateFrom": "2025-10-05T21:55:50.991Z",
  "dateTo": "2025-10-05T21:55:50.991Z",
  "roomKey": 0,
  "pansionKey": 0,
  "guests": [
    {
      "first_name": "string",
      "last_name": "string",
      "is_child": true,
      "age": 0,
      "birthday": "string",
      "gender": 0,
      "email": "string",
      "phone": "string",
      "isMain": true,
      "id": 0
    }
  ],
  "availableRooms": [
    {
      "id": "string",
      "name": "string",
      "bed_groups": [
        {
          "id": "string",
          "name": "string",
          "bed_types": [
            {
              "name": "string",
              "quantity": 0
            }
          ]
        }
      ],
      "allotment": 0,
      "roomVariant": 0,
      "roomAccommodation": "string"
    }
  ],
  "availablePansions": [
    {
      "id": "string",
      "name": "string",
      "code": "string"
    }
  ],
  "removeExtras": [
    0
  ]
}




Проверка измененных параметров услуг (CheckChangingServiceParams)

Метод: POST /booking/CheckChangingServiceParams

  • Формат запроса:
  • Принимаемые параметры (Request body):
    • dlKey – ключ (идентификатор) услуги в брони, для которой выполняется проверка изменения
    • serviceType – тип услуги (код), которую планируется изменить

Возвращаемый результат: (предпросмотр доступных условий и цены после изменения)

    • id – идентификатор рассчитанного варианта
    • price – итоговая цена варианта
    • commission – комиссия
    • meals – доступные варианты питания
      • id – идентификатор питания
      • name – наименование питания
      • code – код питания
    • cancellation_policies – краткие правила отмены
      • from – момент начала действия указанного правила
      • amount – величина удержания по правилу
    • cancellation_policies_extended – расширенные правила отмены
      • policyKey – ключ правила
      • dateFrom – период действия «с»
      • dateTo – период действия «по»
      • penaltyValue – величина штрафа
      • isPercent – формат величины штрафа: может быть true (в процентах) или false (фиксированная сумма)
      • description – описание правила
    • payment_policies – платёжные условия по варианту
      • description – текстовое описание условий
      • prepayDateTo – крайний срок предоплаты
      • prepayAmount – сумма предоплаты
      • nonrefAmount – невозвратная часть
      • payDateTo – крайний срок полной оплаты
      • payAmount – сумма к оплате
      • rate – обозначение тарифа
      • generatedName – сгенерированное имя условий
    • addHots – дополнительные «горячие» услуги/надбавки
      • count – количество
      • description – описание
      • brutto – сумма брутто
      • canDeleteService – можно ли удалить эту услугу: может быть true (можно) или false (нельзя)
      • cancellationPolicy – политика отмены для услуги
    • extraServices – дополнительные услуги
      • count – количество
      • description – описание
      • brutto – сумма брутто
      • canDeleteService – можно ли удалить: может быть true или false
      • cancellationPolicy – политика отмены
    • rooms – доступные варианты номеров
      • id – идентификатор номера
      • name – наименование номера
      • bed_groups – группы спальных мест
        • id – идентификатор группы
        • name – имя группы
        • bed_types – типы кроватей
          • name – тип кровати
          • quantity – количество
      • allotment – доступная квота
      • roomVariant – код варианта номера
      • roomAccommodation – тип размещения
    • quotaType – тип квоты/наличия
    • quotaPlaces – сведения о квотах/местах
      • key – ключ
      • value – значение
    • bruttoDetail – текстовая детализация суммы брутто
    • uniqueCode – уникальный код рассчитанного варианта
    • guests – список гостей, для которых проверяется изменение
      • first_name – имя гостя
      • last_name – фамилия гостя
      • is_child – признак «ребёнок»: может быть true (ребёнок) или false (взрослый)
      • age – возраст
      • birthday – дата рождения
      • gender – пол (код)
      • email – e-mail
      • phone – телефон
      • isMain – признак «главный гость»: может быть true или false
      • id – идентификатор гостя
Пример

Вызов метода /booking/CheckChangingServiceParams

 
POST http://localhost:7700/booking/CheckChangingServiceParams 
{ "dlKey": 7001, "serviceType": 1 }

Возвращаемый результат:

 {
  "id": "string",
  "price": 0,
  "commission": 0,
  "meals": [
    {
      "id": "string",
      "name": "string",
      "code": "string"
    }
  ],
  "cancellation_policies": [
    {
      "from": "string",
      "amount": 0
    }
  ],
  "cancellation_policies_extended": [
    {
      "policyKey": 0,
      "dateFrom": "2025-10-05T22:01:28.034Z",
      "dateTo": "2025-10-05T22:01:28.034Z",
      "penaltyValue": 0,
      "isPercent": true,
      "description": "string"
    }
  ],
  "payment_policies": {
    "description": "string",
    "prepayDateTo": "2025-10-05T22:01:28.034Z",
    "prepayAmount": 0,
    "nonrefAmount": 0,
    "payDateTo": "2025-10-05T22:01:28.034Z",
    "payAmount": 0,
    "rate": "string",
    "generatedName": "string"
  },
  "addHots": [
    {
      "count": 0,
      "description": "string",
      "brutto": 0,
      "canDeleteService": true,
      "cancellationPolicy": "string"
    }
  ],
  "extraServices": [
    {
      "count": 0,
      "description": "string",
      "brutto": 0,
      "canDeleteService": true,
      "cancellationPolicy": "string"
    }
  ],
  "rooms": [
    {
      "id": "string",
      "name": "string",
      "bed_groups": [
        {
          "id": "string",
          "name": "string",
          "bed_types": [
            {
              "name": "string",
              "quantity": 0
            }
          ]
        }
      ],
      "allotment": 0,
      "roomVariant": 0,
      "roomAccommodation": "string"
    }
  ],
  "quotaType": 0,
  "quotaPlaces": {
    "key": "string",
    "value": 0
  },
  "bruttoDetail": "string",
  "uniqueCode": "string",
  "guests": [
    {
      "first_name": "string",
      "last_name": "string",
      "is_child": true,
      "age": 0,
      "birthday": "string",
      "gender": 0,
      "email": "string",
      "phone": "string",
      "isMain": true,
      "id": 0
    }
  ]
}



Изменение параметров услуг (SaveChangingServiceParams)

Метод: POST /booking/SaveChangingServiceParams

  • Принимаемые параметры (Request body):
      • dlKey – ключ услуги, которую нужно изменить
      • serviceType – тип услуги (код)

Возвращаемый результат:

    • reservation_id – идентификатор брони
    • reservation_key – ключ брони
    • client_reference_id – внешний референс клиента
    • status_key – код статуса брони
    • status_name – имя статуса брони
    • price – итоговая стоимость
    • paid – оплаченная сумма
    • create_date – дата/время создания брони
    • confirmation_date – дата/время подтверждения
    • check_in – дата/время заезда
    • check_out – дата/время выезда
    • pay_to – крайний срок полной оплаты
    • prepay_to – крайний срок предоплаты
    • reserved_by – логин/имя пользователя, оформившего бронь
    • hotel_id – идентификатор отеля
    • doc_invoice – связанные счета/документы
      • fileKey – ключ файла
      • invoiceKey – ключ счёта
      • invoiceName – название счёта
      • fileName – имя файла
      • updateDate – дата обновления
    • messages – сообщения/журнал обмена
      • dmId – идентификатор сообщения
      • dmIsOutgoing – направление: может быть true (исходящее) или false (входящее)
      • dmDgkey – ключ брони
      • dmRemark – примечание
      • dmTypeCode – код типа сообщения
      • dmTableId – связанный идентификатор записи
      • dmProcessed – признак обработки: может быть true или false
      • dmCreateDate – дата/время создания
      • dmText – текст сообщения
      • dmTourOperKey – идентификатор туроператора
      • dmXml – «сырое» XML-содержимое
      • dmSendername – имя отправителя
      • dmExternalId – внешний идентификатор сообщения
      • dmDir – направление (код)
      • dmIsRead – признак «прочитано»: может быть true или false
    • rates – тарифы/варианты размещения с учётом сохранённых изменений
      • id – идентификатор тарифа
      • price – цена тарифа
      • basicPrice – базовая цена
      • bar_price – цена BAR
      • commission – комиссия
      • supplier_min_price – минимальная цена поставщика
      • taxes – налоги/сборы
        • type – тип налога/сбора
        • currency – валюта
        • is_included – налог включён в цену: может быть true или false
        • amount – сумма
      • payment_type – тип оплаты по тарифу
      • currency – валюта тарифа
      • basicCurrency – базовая валюта
      • meals – включённые типы питания
        • id – идентификатор питания
        • name – наименование питания
        • code – код питания
      • cancellation_policies – краткие правила отмены
        • from – момент начала действия правила
        • amount – величина удержания
      • cancellation_policies_extended – расширенные правила отмены
        • policyKey – ключ правила
        • dateFrom – период действия «с»
        • dateTo – период действия «по»
        • penaltyValue – величина штрафа
        • isPercent – формат штрафа: может быть true (проценты) или false (фиксированная сумма)
        • description – описание правила
      • payment_policies – платёжные условия
        • description – текст условий
        • prepayDateTo – срок предоплаты
        • prepayAmount – сумма предоплаты
        • nonrefAmount – невозвратная часть
        • payDateTo – срок полной оплаты
        • payAmount – сумма к оплате
        • rate – обозначение тарифа
        • generatedName – сгенерированное имя условий
      • addHots – «горячие» допуслуги/надбавки
        • count – количество
        • description – описание
        • brutto – сумма брутто
        • canDeleteService – можно удалить: может быть true или false
        • cancellationPolicy – политика отмены
      • extraServices – дополнительные услуги
        • count – количество
        • description – описание
        • brutto – сумма брутто
        • canDeleteService – можно удалить: может быть true или false
        • cancellationPolicy – политика отмены
      • manualExtraServices – вручную добавленные услуги
        • id – строковый идентификатор
        • key – ключ
        • date_from – дата начала
        • date_to – дата окончания
        • duration – длительность
        • is_duration – услуга длительная: может быть true или false
        • guests – ключи гостей
        • price – цена
        • currency – валюта
        • serviceClass – класс услуги
          • key – ключ класса
          • name – наименование класса
        • service – тип/вид услуги
          • key – ключ типа
          • name – наименование типа
        • linkType – тип связи услуги с бронированием
          • key – ключ типа связи
          • name – наименование типа связи
        • isGroup – групповая услуга: может быть true или false
        • isCalculated – рассчитана системой: может быть true или false
      • rooms – номера/варианты размещения
        • id – идентификатор варианта номера
        • name – наименование варианта номера
        • bed_groups – группы спальных мест
          • id – идентификатор группы спальных мест
          • name – наименование группы
          • bed_types – типы кроватей в группе
            • name – тип/формат кровати
            • quantity – количество таких кроватей
        • allotment – доступная квота
        • roomVariant – код варианта номера
        • roomAccommodation – тип размещения
      • guestGroup – агрегированная группа гостей
        • adults – количество взрослых
        • children_ages – список возрастов детей
        • groupMultiplier – множитель группы
      • guests – гости тарифа
        • first_name – имя гостя
        • last_name – фамилия гостя
        • is_child – признак ребёнка: может быть true или false
        • age – возраст
        • birthday – дата рождения
        • gender – пол (код)
        • email – e-mail
        • phone – телефон
        • isMain – признак «главный гость»: может быть true или false
        • id – идентификатор гостя
      • quotaType – тип квоты/наличия
      • quotaPlaces – квоты/места
        • key – ключ/код квоты
        • value – значение квоты/оставшихся мест
      • bruttoDetail – текстовая детализация суммы брутто
      • uniqueCode – уникальный код варианта
      • city – город
        • key – наименование/код города
        • value – ключ города
      • region – регион
        • key – наименование/код региона
        • value – ключ региона
      • hotel – отель
        • key – наименование/код отеля
        • value – ключ отеля
      • isAnul – услуга аннулирована: может быть true или false
      • notes – заметки
      • hotelExtra – дополнительные сведения по отелю
      • provider – код/идентификатор поставщика
      • isEditable – можно редактировать: может быть true или false
    • payment_policies – платёжные условия по всей брони
        • description – текст условий
        • prepayDateTo – срок предоплаты
        • prepayAmount – сумма предоплаты
        • nonrefAmount – невозвратная часть
        • payDateTo – срок полной оплаты
        • payAmount – сумма к оплате
        • rate – обозначение тарифа
        • generatedName – сгенерированное имя условий
    • transfers – трансферы
      • id – идентификатор типа трансфера
      • key – ключ варианта
      • date – дата/время трансфера
      • guests – ключи гостей
      • price – стоимость
      • pointTo – пункт назначения
      • pointFrom – пункт отправления
      • transferName – наименование трансфера
      • transferType – тип трансфера
        • key – ключ типа трансфера
        • name – наименование типа трансфера
      • currency – валюта
      • routeNumber – номер рейса/маршрута
      • isGroup – групповая перевозка: может быть true или false
      • maxPax – максимальная вместимость
Пример запроса и ответа

Вызов метода /booking/SaveChangingServiceParams

POST http://localhost:7700/booking/SaveChangingServiceParams?dogovorKey=987654

[
  {
    "dlKey": 0,
    "serviceType": 0
  }
]

Возвращаемый результат:

{
  "reservation_id": "string",
  "reservation_key": 0,
  "client_reference_id": "string",
  "status_key": 0,
  "status_name": "string",
  "price": 0,
  "paid": 0,
  "create_date": "2025-10-05T22:14:49.952Z",
  "confirmation_date": "2025-10-05T22:14:49.952Z",
  "check_in": "2025-10-05T22:14:49.952Z",
  "check_out": "2025-10-05T22:14:49.952Z",
  "pay_to": "2025-10-05T22:14:49.952Z",
  "prepay_to": "2025-10-05T22:14:49.952Z",
  "reserved_by": "string",
  "hotel_id": 0,
  "doc_invoice": [
    {
      "fileKey": 0,
      "invoiceKey": 0,
      "invoiceName": "string",
      "fileName": "string",
      "updateDate": "2025-10-05T22:14:49.952Z"
    }
  ],
  "messages": [
    {
      "dmId": 0,
      "dmIsOutgoing": 0,
      "dmDgkey": 0,
      "dmRemark": "string",
      "dmTypeCode": 0,
      "dmTableId": 0,
      "dmProcessed": 0,
      "dmCreateDate": "2025-10-05T22:14:49.952Z",
      "dmText": "string",
      "dmTourOperKey": 0,
      "dmXml": "string",
      "dmSendername": "string",
      "dmExternalId": 0,
      "dmDir": 0,
      "dmIsRead": true
    }
  ],
  "rates": [
    {
      "id": "string",
      "price": 0,
      "basicPrice": 0,
      "bar_price": 0,
      "commission": 0,
      "supplier_min_price": 0,
      "taxes": [
        {
          "type": "string",
          "currency": "string",
          "is_included": true,
          "amount": 0
        }
      ],
      "payment_type": "string",
      "currency": "string",
      "basicCurrency": "string",
      "meals": [
        {
          "id": "string",
          "name": "string",
          "code": "string"
        }
      ],
      "cancellation_policies": [
        {
          "from": "string",
          "amount": 0
        }
      ],
      "cancellation_policies_extended": [
        {
          "policyKey": 0,
          "dateFrom": "2025-10-05T22:14:49.952Z",
          "dateTo": "2025-10-05T22:14:49.952Z",
          "penaltyValue": 0,
          "isPercent": true,
          "description": "string"
        }
      ],
      "payment_policies": {
        "description": "string",
        "prepayDateTo": "2025-10-05T22:14:49.952Z",
        "prepayAmount": 0,
        "nonrefAmount": 0,
        "payDateTo": "2025-10-05T22:14:49.952Z",
        "payAmount": 0,
        "rate": "string",
        "generatedName": "string"
      },
      "addHots": [
        {
          "count": 0,
          "description": "string",
          "brutto": 0,
          "canDeleteService": true,
          "cancellationPolicy": "string"
        }
      ],
      "extraServices": [
        {
          "count": 0,
          "description": "string",
          "brutto": 0,
          "canDeleteService": true,
          "cancellationPolicy": "string"
        }
      ],
      "manualExtraServices": [
        {
          "id": "string",
          "key": 0,
          "date_from": "2025-10-05T22:14:49.952Z",
          "date_to": "2025-10-05T22:14:49.952Z",
          "duration": 0,
          "is_duration": true,
          "guests": [
            0
          ],
          "price": 0,
          "currency": "string",
          "serviceClass": {
            "key": 0,
            "name": "string"
          },
          "service": {
            "key": 0,
            "name": "string"
          },
          "linkType": {
            "key": 0,
            "name": "string"
          },
          "isGroup": true,
          "isCalculated": true
        }
      ],
      "rooms": [
        {
          "id": "string",
          "name": "string",
          "bed_groups": [
            {
              "id": "string",
              "name": "string",
              "bed_types": [
                {
                  "name": "string",
                  "quantity": 0
                }
              ]
            }
          ],
          "allotment": 0,
          "roomVariant": 0,
          "roomAccommodation": "string"
        }
      ],
      "guestGroup": {
        "adults": 0,
        "children_ages": [
          0
        ],
        "groupMultiplier": 0
      },
      "guests": [
        {
          "first_name": "string",
          "last_name": "string",
          "is_child": true,
          "age": 0,
          "birthday": "string",
          "gender": 0,
          "email": "string",
          "phone": "string",
          "isMain": true,
          "id": 0
        }
      ],
      "quotaType": 0,
      "quotaPlaces": {
        "key": "string",
        "value": 0
      },
      "bruttoDetail": "string",
      "uniqueCode": "string",
      "city": {
        "key": "string",
        "value": 0
      },
      "region": {
        "key": "string",
        "value": 0
      },
      "hotel": {
        "key": "string",
        "value": 0
      },
      "isAnul": true,
      "notes": "string",
      "hotelExtra": "string",
      "provider": 0,
      "isEditable": true
    }
  ],
  "payment_policies": {
    "description": "string",
    "prepayDateTo": "2025-10-05T22:14:49.952Z",
    "prepayAmount": 0,
    "nonrefAmount": 0,
    "payDateTo": "2025-10-05T22:14:49.952Z",
    "payAmount": 0,
    "rate": "string",
    "generatedName": "string"
  },
  "transfers": [
    {
      "id": "string",
      "key": 0,
      "date": "2025-10-05T22:14:49.952Z",
      "guests": [
        0
      ],
      "price": 0,
      "pointTo": "string",
      "pointFrom": "string",
      "transferName": "string",
      "transferType": {
        "key": 0,
        "name": "string"
      },
      "currency": "string",
      "routeNumber": "string",
      "isGroup": true,
      "maxPax": 0
    }
  ]
}


Объединение правил оплаты (MergePaymentPolicy)

Метод: POST /booking/MergePaymentPolicy

  • Формат запроса:
  • Принимаемые параметры (Request body):
      • description – текстовое описание условий оплаты
      • prepayDateTo – крайний срок внесения предоплаты (дата/время в ISO 8601)
      • prepayAmount – величина предоплаты
      • nonrefAmount – невозвратная сумма
      • payDateTo – крайний срок полной оплаты (дата/время в ISO 8601)
      • payAmount – сумма к полной оплате
      • rate – обозначение тарифа/правила, к которому относится политика (например, «BAR»)
      • generatedName – сгенерированное системой «короткое имя» политики

Возвращаемый результат:

    • description – агрегированное описание платёжных условий
    • prepayDateTo – итоговый крайний срок предоплаты
    • prepayAmount – итоговая сумма предоплаты
    • nonrefAmount – итоговая невозвратная сумма
    • payDateTo – итоговый крайний срок полной оплаты
    • payAmount – итоговая сумма к оплате
    • rate – итоговое обозначение тарифа
    • generatedName – сгенерированное имя сводной политики
Пример объединения двух политик

Вызов метода /booking/MergePaymentPolicy

POST http://localhost:7700/booking/MergePaymentPolicy

[
  {
    "description": "string",
    "prepayDateTo": "2025-10-05T22:34:46.415Z",
    "prepayAmount": 0,
    "nonrefAmount": 0,
    "payDateTo": "2025-10-05T22:34:46.415Z",
    "payAmount": 0,
    "rate": "string",
    "generatedName": "string"
  }
]

Возвращаемый результат:

{
  "description": "string",
  "prepayDateTo": "2025-10-05T22:34:47.898Z",
  "prepayAmount": 0,
  "nonrefAmount": 0,
  "payDateTo": "2025-10-05T22:34:47.898Z",
  "payAmount": 0,
  "rate": "string",
  "generatedName": "string"
}



Создание сообщений по заявке (CreateReservationMessage)

Метод: GET /booking/CreateReservationMessage

  • Формат запроса:
  • Принимаемые параметры:
    • dgKey – ключ (идентификатор) бронирования, к которому добавляется сообщение
    • message – текст сообщения
    • senderName – имя/логин отправителя, от чьего имени фиксируется сообщение
  • Возвращаемый результат:
    • Code 200 OK – сообщение успешно добавлено к бронированию
Пример

Вызов метода /booking/CreateReservationMessage

 
GET http://localhost:7700/booking/CreateReservationMessage?dgKey=987654&message=Client%20will%20arrive%20late%20after%2022%3A00&senderName=ipetrov

Возвращаемый результат:

 
HTTP/1.1 200 OK