401 Unauthorized
. Отсутствие API-KEY приводит к ошибке 400; Bad Request
POST /api/CheckIn HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 642
{
"rooms": [
{
"room": "108",
"channelListID": 41,
"portalID": 3060,
"newCheckIn": true,
"language": "ru",
"guests": [
{
"guestname": "Иван Иванович",
"guestID": "123",
"guestGroupID": "1234",
"checkOutDateTime": "15/12/2023 12:00",
"mainGuest": true
},
{
"guestname": "Лидия Петровна",
"guestID": "321",
"guestGroupID": "1234",
"checkOutDateTime": "15/12/2023 12:00",
"mainGuest": false
}
]
}
]
}
HTTP/1.1 200 OK
Transfer-Encoding: chunked
400 BadRequest
GET /api/Hello HTTP/1.1
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
{
"organizationName": "Имя организации",
"hotelName": "Имя гостиницы"
}
Параметр | Тип | Значение |
---|---|---|
organizationName | string | Имя организации, к которой принадлежит гостиница |
hotelName | string | Имя гостиницы, соответствующая оправленному в заголовке API-KEY |
GET /api/GetPortalList HTTP/1.1
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
[
{
"id": 1234,
"name": "Основной портал"
},
{
"id": 5678,
"name": "Праздничный портал"
},
{
"id": 9012,
"name": "Портал для лобби"
},
{
"id": 3456,
"name": "Клуб Соккер"
},
{
"id": 3065,
"name": "Новогодний портал"
}
]
Параметр | Тип | Значение |
---|---|---|
id | number |
Идентификатор гостевого портала. Это значение в дальнейшем может быть передано в параметр "portalID": команды CheckIn.
|
name | string | Имя гостевого портала. |
GET /api/GetChannelList HTTP/1.1
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
[
{
"id": 12,
"name": "Основной список для гостевых номеров"
},
{
"id": 34,
"name": "Каналы для лобби и ресторана"
},
{
"id": 56,
"name": "Спортивные каналы"
}
]
Параметр | Тип | Значение |
---|---|---|
id | number |
Идентификатор списка каналов. Это значение в дальнейшем может быть передано в параметр "channelListID": команды CheckIn.
|
name | string | Имя списка каналов. |
POST /api/CheckIn HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 1586
{
"rooms": [
{
"room": "101", //Комната
"channelListID": 41, //Индивидуальный список ТВ-каналов
"portalID": 3060, //Индивидуальный портал
"newCheckin": false, //Новый заезд
"language": "ru", //Язык портала
"guests": [
{
"guestname": "Константин Константинович", // Имя гостя //Обязательный
"checkOutDateTime": "24/12/2023 12:00", //Дата выезда гостя //Обязательный
"mainGuest": true, //Основной гость
"guestID": "567896", //идентификатор гостя в PMS
"guestGroupID": "123456654321" //Группа гостя в PMS
},
{
"guestname": "Лидия Петровна",
"checkOutDateTime": "24/12/2023 12:00",
"mainGuest": false,
"guestID": "567897",
"guestGroupID": "123456654321"
},
{
"guestname": "Петр Константинович",
"checkOutDateTime": "24/12/2023 12:00"
}
]
},
{
"room": "108",
"roomChannelListID": 41,
"roomPortalID": 3060,
"newCheckin": false,
"roomLanguage": "ru",
"guests": [
{
"guestname": "Дмитрий Владимирович",
"checkOutDateTime": "24/12/2023 12:00",
"mainGuest": true,
"guestID": "567896",
"guestGroupID": "123456654321"
}
]
}
]
}
Параметр | Тип | Значение |
---|---|---|
rooms | array | Структура, содержащая список комнат, в которые производится заселение. |
rooms:room | string | Комната, в которою производится заселение. Обязательный параметр. |
rooms:channelListID | number |
Индивидуальный список ТВ-каналов, устанавливаемый гостю на период проживания. Список каналов будет применяться к комнате только на период проживания главного гостя в комнате (см. параметр mainGuest ). Идентификатор гостевого портала может быть получен с помощью команды GetChannelList. |
rooms:portalID | number |
Индивидуальный портал, устанавливаемый гостю на период его проживания. Индивидуальный портал будет применяться к комнате только на период проживания главного гостя в комнате (см. параметр mainGuest ).Идентификатор гостевого портала может быть получен с помощью команды GetPortalList. |
rooms:newCheckin | boolean |
Выселить всех предыдущих гостей из номере пред операцией: true или операция подселения: false . Значение по умолчанию: false .
|
rooms:language | string |
Язык портала гостя. Имеет эффект только для главного гостя (см. параметр mainGuest ). Если не передается, используется язык портала по умолчанию.
|
rooms:guests | array | Структура, содержащая список гостей, заезжающих в комнату. |
rooms:guests:guestname | string | Имя гостя. Обязательный параметр. |
rooms:guests:checkOutDateTime | string |
Время выезда гостя. Обязательный параметр. Время заезда всегда устанавливается равным времени проведения операции поселения (текущему времени). Формат "DD/MM/YYYY HH:MM". Ограничение: время выезда должно быть больше текущего времени. Передача времени выезда меньшего текущего привет к ошибке 400 Bad Request: {"number":20,"message":"Check-out time is less than current."} .
|
rooms:guests:mainGuest | boolean |
Устанавливает данного гостя главным в комнате. На период проживания главного гостя применяются параметры rooms:channelListID и rooms:portalID , если такие передаются. В комнате может быть только один главный гость.Значение по умолчанию: false .Если производится поселение гостей в пустую комнату, которая не имеет главного гостя, и при этом явно не задан параметр "mainGuest": true у одного из гостей, TurnIP назначит главного гостя произвольно из списка гостей, передаваемых из PMS.Если производится подселение гостя в комнату с уже имеющимся главным гостем, а у подселяемого нового гостя установлен параметр "mainGuest": true , то произойдет замена главного гостя в комнате.Недопустима передача двух гостей с одновременно установленным признаком "mainGuest": true . Такой вызов приведет к ошибке 400 Bad Request: {"number":16,"message":"There is more than one main guest listed for room @room."} .Также см. раздел Главный гость документации TurnIP. |
rooms:guests:guestID | string | Идентификатор гостя в сторонней системе (PMS). |
rooms:guests:guestGroupID | string | Идентификатор группы гостя в сторонней системе (PMS). |
"guestID":
, если код передается200 OK
в случае успешного выполнения операции либо код 400 Bad Request
с описанием ошибки в body в формате {"number":nn,"message":"Error Description."}
Number | Message | Описание |
---|---|---|
10 | Requires no duplicates of the room field. | В запросе переданы два одинаковых номера комнаты. Номера комнат должны быть уникальны. |
11 | Room field not set. |
В запросе отсутствует обязательный параметр комната - "room": .
|
12 | Room XXX not found. | Передан несуществующий номер комнаты. |
13 | Room XXX not for living. | Попытка засление гостя в комнату, не являющейся комнатой для проживания. |
14 | Room XXX not available. | Попытка засление гостя в комнату, у которой в настройках снят признак доступности. |
15 | Portal not found. |
В параметре "portalID": передан код несуществующего в гостинице гостевого портала.
|
16 | There is more than one main guest listed for room XXX. | Для комнаты XXX указан более чем один главный гость. В комнате может быть только один главный гость. Неразрешимый конфликт. |
17 | Enter the guest's name. |
Не передан обязательный параметр "guestname": или имя гостя пустое.
|
18 | Specify checkOutDateTime for main guest. |
Не передан обязательный параметр "checkOutDateTime": для главного гостя в комнате.
|
19 | Invalid field format checkOutDateTime. |
Ошибка в формате поля "checkOutDateTime": .
|
20 | Check-out time is less than current. |
Время, переданное в поле "checkOutDateTime": , меньше текущего времени.
|
21 | Channel list not found. |
В параметре "channelListID": передан код несуществующего в гостинице списка каналов.
|
22 | The request for the room XXX contains the same guestID. |
В параметрах "guestID": переданы задублированные коды в разрезе одной комнаты. Показан заезд одного и того же гостя в одну комнату. Комната может содержать только уникальных гостей.
|
22 | A guest with the specified guestID yyyyyy already lives in the room XXX. |
В параметре "guestID": передан код, уже проживающего в комнате гостя. Комната может содержать только уникальных гостей.
|
Можно произвести выселение всего номера, конкретного гостя или группы гостей.
Параметры запроса логически складываются - принцип фильтра. Так, например, вы можете выселить конкретного гостя из конкретного номера, передав параметры room
и guestID
. Выселение будет произведено по совпадению пары, другие гости останутся в комнате.
POST /api/CheckOut HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 284
{
"checkoutlist": [
{
"room": "101" //Комната
,"guestID": "567897" //Идентификатор гостя
,"guestGroupID": "123456654321" //Группа гостей
},
{
"room": "108"
,"GuestID": "567896"
,"guestGroupID": "12345"
}
]
}
Параметр | Тип | Значение |
---|---|---|
checkoutlist | array | Структура, содержащая фильтр гостей, которых необходимо выселить. |
checkoutlist:room | string | Комната, из которой необходимо произвести выселение гостя. |
checkoutlist:guestID | string |
Идентификатор гостя, которого необходимо выселить. Идентификатор гостя изначально передается в TurnIP во время поселения гостя командой CheckIn, параметром rooms:guests:guestID
|
checkoutlist:guestGroupID | stringr |
Идентификатор группы, гостей которой необходимо выселить. Идентификатор группы гостя изначально передается в TurnIP во время поселения гостя командой CheckIn, параметром rooms:guests:guestGroupID
|
room
, guestID
или guestGroupID
. Вызов без параметров не приведет к ошибке, но и не произведет никаких действий.400 Bad Request {"number":12,"message":"Room XXX not found."
guestID
или guestGroupID
.guestGroupID
или параметр guestGroupID
вообще не передан при поселении - гость без группы). После этого производится выселение группы гостей, когда команда CheckOut вызывается с единственным параметром guestGroupID
. Поскольку из комнаты 101 выселен главный гость, определенный при заезде группы, оставшийся в комнате гость будет назначен главным для ее.200 OK
в случае успешного выполнения операции либо код 400 Bad Request
с описанием ошибки в body в формате {"number":nn,"message":"Error Description."}
Обращаем внимание, что параметры команды работают по принципу фильтра. Вызов команды без параметров вернет 200 OK
, при этом команда не выполнит никаких действий.
В случае некритических исключений, команда так же вернет 200 OK
с описанием этих исключений.
400 Bad Request
Number | Message | Описание |
---|---|---|
12 | Room XXX not found. |
В параметре room передан несуществующий в системе TurnIP номер комнаты.
|
200 OK
Number | Room | guestID | guestGroupID | Message | Описание |
---|---|---|---|---|---|
102 | XXX | не передается | не передается | There are no stays available for CheckOut. | После применения фильтра, нет гостей для выселения из комнаты XXX. |
103 | XXX | yyyyyy | не передается | Сheck outed guest is the main guest in the room. Another guest is appointed as the main guest | Произведено выселение гостя с идентификатором yyyyyy, который являлся главным гостем в комнате XXX. Система произвольно назначила нового главного гостя в комнате XXX. |
104 | не передается | yyyyyy | не передается | GuestID not found. | Гость с идентификатором yyyyyy, не найден в системе TurnIP. |
105 | не передается | не передается | zzzzzz | GuestGroupID not found. | Группа гостей с идентификатором zzzzzz, не найдена в системе TurnIP. |
{
"checkoutlist": [
{
"room": "101"
}
]
}
{
"checkoutlist": [
{
"guestGroupID": "12345"
}
]
}
{
"checkoutlist": [
{
"room": "101",
"GuestID": "567896"
},
{
"room": "102"
},
{
"GuestID": "567897"
}
]
}
POST /api/Update HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 511
{
"update": [
{
"filter": {
"room": "101",
"guestID": "567896",
"guestGroupID": "12345"
},
"values": {
"guestname": "Дмитрий Леонидович",
"checkOutDateTime": "22/03/2024 12:00",
"mainGuest": true,
"channelListID": 42,
"portalID": 3062,
"language": "ru"
}
}
]
}
Параметр | Тип | Значение |
---|---|---|
filter | array | Структура, содержащая фильтр, который будет применен для обновления. |
filter:room | string | Комната, в которой производятся изменения. |
filter:guestID | string |
Идентификатор гостя, изменения по которому производятся. Идентификатор гостя изначально передается в TurnIP во время поселения гостя командой CheckIn, параметром rooms:guests:guestID
|
filter:guestGroupID | string |
Идентификатор группы гостей по которой производятся изменения. Идентификатор группы гостя изначально передается в TurnIP во время поселения гостя командой CheckIn, параметром rooms:guests:guestGroupID
|
values | array | Структура со списком значений, которые требуется изменить. |
values:guestname | string | Имя гостя. |
values:checkOutDateTime | string |
Время выезда гостя. Формат "DD/MM/YYYY HH:MM". Ограничение: время выезда должно быть больше текущего времени. Передача времени выезда меньшего текущего привет к ошибке 400 Bad Request: {"number":20,"message":"Check-out time is less than current."} .
|
values:mainGuest | boolean |
Устанавливает данного гостя главным в комнате. На период проживания главного гостя применяются параметры channelListID и portalID , если такие заданы. В комнате может быть только один главный гость.Также см. раздел Главный гость документации TurnIP. |
values:channelListID | number |
Индивидуальный список ТВ-каналов, устанавливаемый гостю на период проживания. Список каналов будет применяться к комнате только на период проживания главного гостя в комнате (см. параметр mainGuest ). Идентификатор гостевого портала может быть получен с помощью команды GetChannelList. |
values:portalID | number |
Индивидуальный портал, устанавливаемый гостю на период его проживания. Индивидуальный портал будет применяться к комнате только на период проживания главного гостя в комнате (см. параметр mainGuest ).Идентификатор гостевого портала может быть получен с помощью команды GetPortalList. |
values:language | string |
Язык портала гостя. Имеет эффект только для главного гостя (см. параметр mainGuest ). Если не установлен, используется язык портала по умолчанию.
|
room
) то,
values
;values
кроме параметров guestname
и mainGuest
.400 Bad Request {"number":40,"message":"Incompatible parameters."}
.guestID
) , то допустимы все параметры структуры values
. Если гость в комнате не является главным, и не определяется главным в этой команде, то параметры channelListID
и portalID
будут проигнорированы.guestGroupID
) , то допустимы все параметры структуры values
, кроме параметра mainGuest
. Если гость в полученной в выборке не является главным в комнате, то параметры channelListID
и portalID
будут проигнорированы.В общем случае, если после применения фильтров получили:
channelListID
и portalID
будут проигнорированы.guestname
и mainGuest
. Но если в гости в пакете по отбору не являются главными, параметры channelListID
и portalID
будут проигнорированы.Подробнее о главном госте в системе см. в разделе документации Заезд гостя.
200 OK
в случае успешного выполнения операции либо код 400 Bad Request
с описанием ошибки в body в формате {"number":nn,"message":"Error Description."}
Number | Message | Описание |
---|---|---|
12 | Room XXX not found. |
В параметре room передан несуществующий в системе номер комнаты.
|
20 | Check-out time is less than current. |
Время в параметре checkOutDateTime меньше текущего времни.
|
40 | Incompatible parameters. |
Переданы несовместимые параметры. См. выше Ограничения. Часто при установке параметра guestname и/или mainGuest , когда выборка по фильтру возвращает более одного гостя в комнате.
|
{
"update": [
{
"filter": {
"room": "101"
},
"values": {
"checkOutDateTime": "23/03/2024 12:00"
}
},
{
"filter": {
"room": "108"
},
"values": {
"checkOutDateTime": "23/03/2024 12:00"
}
}
]
}
}
{
"update": [
{
"filter": {
"guestID": "567896"
},
"values": {
"guestname": "Дмитрий Леонидович"
}
}
]
}
{
"update": [
{
"filter": {
"room": "101",
"guestID": "567896"
},
"values": {
"checkOutDateTime": "22/03/2024 12:00"
,"mainGuest": true
,"channelListID": 42
,"portalID": 3062
,"language": "ru"
}
}
]
}
"portalID":
будет проигнорирован. Параметры "portalID":
, "channelListID":
, "language":
применяется только к главному гостю в комнате
{
"update": [
{
"filter": {
"guestGroupID": "12345"
},
"values": {
"checkOutDateTime": "22/03/2024 12:00",
"portalID": 3062
}
}
]
}
{
"update": [
{
"filter": {
"room": "101"
},
"values": {
"channelListID": 42,
"portalID": 3062
}
},
{
"filter": {
"room": "108"
},
"values": {
"channelListID": 42,
"portalID": 3062
}
}
]
}
POST /api/RoomList HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 1516
{
"ForceCheckOut": false, //true - выселяет всех гостей из всех номеров перед началом операции
"rooms": [
{
"room": "101", //Комната
"channelListID": 41, //Индивидуальный список ТВ-каналов
"portalID": 3060, //Индивидуальный портал
"language": "ru", //Язык портала
"guests": [
{
"guestname": "Константин Константинович", // Имя гостя //Обязательный
"checkOutDateTime": "24/12/2023 12:00", //Дата выезда гостя //Обязательный
"mainGuest": true, //Основной гость
"guestID": "567896", //идентификатор гостя в PMS
"guestGroupID": "123456654321" //Группа гостя в PMS
},
{
"guestname": "Лидия Петровна",
"checkOutDateTime": "24/12/2023 12:00",
"mainGuest": false,
"guestID": "567897",
"guestGroupID": "123456654321"
},
{
"guestname": "Петр Константинович",
"checkOutDateTime": "24/12/2023 12:00"
}
]
},
{
"room": "108",
"roomChannelListID": 41,
"roomPortalID": 3060,
"roomLanguage": "ru",
"guests": [
{
"guestname": "Дмитрий Владимирович",
"checkOutDateTime": "24/12/2023 12:00",
"mainGuest": true,
"guestID": "567896",
"guestGroupID": "123456654321"
}
]
}
]
}
Параметр "ForceCheckOut"
определяет необходимость выселения всех гостей из всех комнат перед началом операции. Необязательный, значение по умолчанию false
- не выселять.
Остальные параметры запроса полностью аналогичны параметрам запроса команды CheckIn. Параметр newCheckin
не применим в этой команде, но его передача не приведет к ошибке - будет проигнорирован.
200 OK
, синхронизация будет произведена. Смягчение требований было выполнено на тот случай, если в PMS забыли выселить гостя.guestname
, синхронизация будет произведена. Имя такого гостя будет задано в TurnIP как "Гость". Смягчение требований было выполнено на тот случай, если в PMS существует гость с незаданным или пустым именем.
Дополнительно обращаем внимание, что выполнение команды RoomList происходит транзакционно. Перед выполнением команды проверяются все параметры пакета на соответствие ограничений и, если хоть один параметр не совпадает, команда прекращает выполнение.
200 OK
в случае успешного выполнения операции либо код 400 Bad Request
с описанием ошибки в body в формате {"number":nn,"message":"Error Description."}
.200 OK
могут передаваться описания исключений, связанных с временем выезда и именем гостя.
400 Bad Request
команды RoomList полностью соответствуют кодам ответа команды CheckIn за исключением кодов:
{"number":11,"message":"Room field not set. "}
,{"number":12,"message":"Room XXX not found."}
, {"number":17,"message":"Enter the guest's name."}
,{"number":20,"message":"Check-out time is less than current."}
. 200 OK
.
number | room | message | Описание |
---|---|---|---|
100 | XXX | Guest name not set. |
Для комнаты XXX не задан параметр guestname или имя гостя - пустая строка. Имя гостя в TurnIP будет задано как "Гость".
|
101 | XXX | Check-out time is less than current. |
Для комнаты XXX в госте передано время выезда меньше текущего. Время выезда будет установлено в TurnIP как передано. Имя гостя не будет отображаться в портале, даже если этот гость главный, не будут применяться значение из portalID , channelListID и language , поскольку проживание гостя закончилось.
|
111 |
|
Room field not set. |
Обязательное поле комнаты "room" не задано для набора. Набор будет проигнорирован.
|
112 | XXX | Room XXX not found. |
Комната XXX не найдена в системе TurnIP и будет пропущена |
{
"rooms": [
{
"room": "101" //Любой существующий номер комнаты
}
]
}
POST /api/Message HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 213
{
"from": "Админстрация", // отправитель, необязательный
"subject": "тема", // тема сообщения, необязательный
"body": "сообщение 11", // тело сообщения, обязательный, если не задано поле "subject"
"deliveryType": 0, //0 - доставить немедленно, 1 - доставить в sendOn, по умолчанию 0, необязательно
"sendOn": "29/01/2024 15:35", //дата отправки, обязательно при установке deliveryType = 1
"storeUntil": "02/02/2024 12:58", //дата хранения сообщения у гостя, необязательный
"recipient": ["101", "108" ], //- список комнат, обязательный
"popUp": false // показывать всплывающим сообщением, необязательный
}
Параметр | Тип | Значение |
---|---|---|
from | string | Отправитель сообщения, отображаемый гостю. Необязательный параметр. Если не задан заполняется именем отеля из настроек гостиницы. Максимально 200 символов. |
subject | string | Тема сообщения, отображаемая гостю. Необязательный параметр. Если не указан заполняется значением "Новое сообщение". Максимально 200 символов. |
body | string |
Тело сообщения. Максимально 2000 символов. Обязательный параметр, если не задано поле "subject" . Если передано поле темы, может быть пропущено.Тело сообщения поддерживает HTML теги. |
deliveryType | int |
0 - доставить немедленно, 1 - запланировать доставку в дату, заданную в параметре "sendOn" , Значение по умолчанию 0. Необязательный параметр.
|
sendOn | string |
Дата отправки сообщения. Применимо, если отправка запланирована (deliveryType = 1 ). Обязательный параметр при установке deliveryType = 1 .Формат "DD/MM/YYYY HH:MM". |
storeUntil | string |
Дата хранения сообщения в комнате. Выезд и заезд гостя имеет приоритет над данным параметром. При заезде и выезде гостя сообщения удаляются. Необязательный параметр. Если параметр не задан, устанавливается как расчетное время выезда из настроек гостиницы. Формат "DD/MM/YYYY HH:MM". |
recipient | Array | Массив строк - список комнат, в которые будет отправлено сообщение. Обязательный параметр. |
popUp | boolean |
Показывать всплывающим сообщением, в том числе во время просмотра ТВ-канала, если true , или доставить в список сообщений, если false . Необязательный параметр. Значение по умолчанию определяется настройкой в конкретной гостинице.
|
subject
или поле body
. В противном приведет к ошибке 400 Bad Request: {"number":10,"message":"Subject field or message field is empty."}
. Хотя бы одно из двух этих полей должно быть передано обязательно, чтобы не было пустых сообщений.deliveryType = 1
), обязательно к заполнению поле sendOn
- дата отправки сообщения.from
) и тема (subject
) не могут быть больше 200 символов включая пробелы.body
) не может быть больше 2000 символов включая пробелы.200 OK
с идентификатором отправленного сообщения в случае успешного выполнения операции либо код 400 Bad Request
с описанием ошибки.
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
{
"messageID": 159 // Идентификатор сообщения
}
Параметр | Тип | Значение |
---|---|---|
messageID | number | Идентификатор отправленного сообщения. |
HTTP/1.1 400 Bad Request Transfer-Encoding: chunked Content-Type: application/json; charset=utf-8 { "number": 10, // Номер ошибки "message": "Subject field or message field is empty." //Содержание ошибки }
Number | Message | Описание |
---|---|---|
50 | Subject field or message field is empty |
Не заполнено хотя бы одно из полей subject или body .
|
51 | If the value of deliveryType = 1, the value of the "sendOn" field must be filled in |
Выполняется запланированная отправка сообщения (передан параметрdeliveryType = 1 ), но при этом не указана дата отправки сообщения в поле sendOn .
|
52 | The "recipient" field is required |
Не задано поле получателей сообщения recipient .
|
53 | There are no rooms with linked TVs |
В поле recipient переданы комнаты, в которых нет подключенных телевизоров.
|
54 | The message body exceeds 2000 characters |
Поле тела сообщения body содержит более 2000 символов.
|
55 | The "from" field exceeds 200 characters |
Поле От сообщения from содержит более 200 символов.
|
56 | The "subject" field exceeds 200 characters |
Поле Тема сообщения subject содержит более 200 символов.
|
57 | Invalid field format sendOn |
Неверный формат даты в поле sendOn .
|
58 | Invalid field format storeUntil |
Неверный формат даты в поле storeUntil .
|
POST /api/GetMessageStatus HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 28
{
"messageID": 159 // Идентификатор сообщения
}
Параметр | Тип | Значение |
---|---|---|
messageID | number | Идентификатор сообщения, полученный как результат команды отправки сообщения Message. |
200 OK
и статусы сообщения в разрезе комнат в случае успешного выполнения операции либо код 404 Not Found: Message not found.
, если передан несуществующий идентификатор сообщения.
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
[
{
"room": "101", // комната
"status": 3 // статус
},
{
"room": "108",
"status": 3
}
]
Параметр | Тип | Значение |
---|---|---|
room | string |
Комната, по которой определяется статус (status ).
|
status | number | Статус сообщения в комнате. См. таблицу ниже. |
Сататус (status )
|
Значение |
---|---|
0 | Удалено |
1 | Прочитано |
2 | Получено |
3 | Отправлено |
4 | Удаляется |
5 | Ждет отправки (запланировано) |
6 | Не доставлено |
POST /api/MessageDelete HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 28
{
"messageID": 159 // Идентификатор сообщения
}
Параметр | Тип | Значение |
---|---|---|
messageID | number | Идентификатор сообщения, полученный как результат команды отправки сообщения Message. |
200 OK
и статусы удаления сообщений в разрезе комнат в случае успешного выполнения операции либо код 404 Not Found: Message not found.
, если передан несуществующий идентификатор сообщения.
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
[
{
"room": "101", // комната
"status": 0 // статус
},
{
"room": "108",
"status": 0
}
]
Параметр | Тип | Значение |
---|---|---|
room | string |
Комната, по которой определяется статус (status ).
|
status | number | Статус удаления сообщения в комнате. См. таблицу ниже. |
Сататус (status )
|
Значение |
---|---|
0 | Запрос на удаление успешен |
4 | Сообщение в процессе удаления |
8 | Сообщение удалено ранее |
Правообладатель – Общество с ограниченной ответственностью «ХотелСтартАп», ИНН 7714949661, являющееся разработчиком Системы гостиничного интерактивного телевидения "TurnIP", что подтверждается Свидетельством о государственной регистрации программы для ЭВМ № 023663352 от 22 июня 2023 г.
Интерфейс TurnIP Rest API – описание протокола интеграции с внешними системами, включая, но не ограничиваясь системами автоматизированного управления гостиницами (PMS), размещённое первоначально в сети интернет на сайте https://turn-ip.ru или на любом другом сайте прямо или косвенно относящемуся к Правообладателю.
Внешняя система – любая система, использующая протокол Интерфейса TurnIP Rest API для подключения к Системе гостиничного интерактивного телевидения "TurnIP".
PMS – Property Management System – программное обеспечение – система автоматизированного управления гостиницей, разновидность Внешней системы.
Третья система – любое другое программное обеспечение, не являющееся Интерфейсом TurnIP Rest API или Внешней системой.
Пользователь – любое физическое или юридическое лицо, использующее или намеревающееся использовать Интерфейс TurnIP Rest API.
Правообладатель предоставляет право любому пользователю использовать Интерфейс TurnIP Rest API с целью подключения Внешних систем к Системе гостиничного интерактивного телевидения "TurnIP" как в полном наборе команд, описанных в документации Интерфейса TurnIP Rest API, так и в части этих команд.
Правообладатель не допускает (не предоставляет право) пользователям копирование протокола Интерфейса TurnIP Rest API с целью имитации подключений своих систем (Третьих систем) к Внешним системам, когда Внешняя система использует протокол Интерфейса TurnIP Rest API для подключения к системе пользователя (Третьей системе), используя команды протокола Интерфейс TurnIP Rest API как частично, так и полностью.
Правообладатель допускает использование протокола Интерфейса TurnIP Rest API и его документации только для подключения к Системе гостиничного интерактивного телевидения "TurnIP".