- Общие данные
- Получение начислений
- Получение платежей по бронированиям
- Получение бронирования
- Поиск бронирований
- Получение счетов бронирования
- Поиск доступных номеров для каждого проживания бронирования
- Назначение номеров для проживаний бронирования
- Заселение проживания
- Выселение проживания
- Получение доступных способов оплаты
- Оформление платежа
- Оформление возврата
- Получение всех компаний
- Получение профиля гостя
- Поиск профилей гостя по параметрам
- Получение информации о проживаниях гостя
- Сохранение документа, подтверждающего личность гостя
- Сохранение адреса рождения гостя
- Сохранение изображений документа, подтверждающего личность
- Получение информации о номерах
- Назначение номера для проживания
- Приложение 1
- История изменений
Общие данные
1. Требуемый тип содержимого запроса — application/json.
2. Ключ интеграции (apiKey) находится в личном кабинете TravelLine в разделе «Управление отелем» → «Настройки» → блок «Доступ к Универсальному API TL: WebPMS». Его значение необходимо добавлять во все запросы в виде заголовка "X-API-KEY".
3. Описание: WebPms REST API.
4. Типы ответов:
- В случае успешной обработки запроса ответ 200.
- В случае отсутствия заголовка "X-API-KEY" или его некорректном значении будет возвращен "HttpStatusCode 401" с описанием ошибки.
- В случае ошибки обработки входящих данных будет ответ со статусом 400. Также ответ будет содержать список с описанием ошибок. Например: {“errors”: [{“code”:"12”, “message”: “Incorrect dates format"}]}.
- В случае непредвиденной ошибки будет ответ со статусом 500.
Получение начислений
Для получения данных в формате json используется url: GET https://partner.tlintegration.com/api/webpms/v1/analytics/services
Для получения данных по отмененным бронирования в формате json используется url: GET https://partner.tlintegration.com/api/webpms/v1/analytics/services/cancelled
Для получения данных в виде текстового файла используется url: GET https://partner.tlintegration.com/api/webpms/v1/analytics/services/csv
Формат входящих данных
Параметр |
Тип |
Описание |
startDate |
string |
(*) Дата начала для формирования отчета. В формате yyyyMMdd |
endDate |
string |
(*) Дата окончания для формирования отчета. В формате yyyyMMdd |
dateKind |
int |
(*) Тип выгрузки по дате
|
language |
string |
Двухсимвольный код языка |
Обязательные поля помечены (*).
Пример: https://partner.tlintegration.com/api/webpms/v1/analytics/services?startDate=20200204&endDate=20200204&dateKind=0
Максимальная разрешенная разница между датами — 31 день. Максимальная глубина запроса на будущие даты = 1000 дней, то есть можно запрашивать данные на ~3 года вперед.
В режиме dateKind == 0 (по выезду) выгружается вся информация о бронированиях, если дата их выезда попала в запрашиваемый период. В случае, если дата окончания выгрузки приходится на конец месяца, бронирования, по которым гости живут, но день выезда еще не наступил, будут разделены — днем окончания бронирования будет считаться последний день месяца. Бронирования, для которых дата начала была в предыдущем месяце, будут разделены — днем начала бронирования будет считаться первый день месяца.
В режиме dateKind == 1 (по пребыванию) выгружается информация о начислениях, пришедшихся только на запрашиваемый период.
В режиме dateKind == 2 (по созданию) выгружается вся информация о бронированиях, созданных в запрашиваемый период.
В режиме dateKind == 4 (по выезду без разделения проживания) выгружается вся информация о бронированиях, если дата их выезда попала в запрашиваемый период. Разделение бронирования как в режиме dateKind == 0 не происходит.
Для получения данных по отмененным броням, работает только режим dateKind == 1 (по пребыванию), в остальных режимах запрос вернёт ошибку.
Формат результата (json)
{“data”: {"services": [], "customers": [], "agents": [], "reservations": [], "roomTypes": []}}
Services — список выгружаемых услуг. Это части брони, а именно проживание, дополнительные услуги, ранний заезд, поздний выезд и трансферы. Данные выгружаются подневно, таким образом четырехдневное проживание будет представлено 4 записями.
Параметр |
Тип |
Описание |
id |
string(64) |
Уникальный идентификатор услуги |
kind |
int |
Тип услуги:
|
name |
string |
Название услуги |
amount |
decimal |
Сумма с учетом скидки |
discount |
decimal |
Сумма скидки |
vatKind |
int |
Тип НДС:
|
vat |
decimal |
Сумма НДС |
quantity |
int |
Количество |
date |
string |
Дата оказания услуги. В формате yyyyMMdd |
reservationId |
long |
Идентификатор проживания |
optionCategory |
string |
Категория дополнительной услуги |
isIncluded |
bool |
Признак включенной в стоимость услуги |
Идентификатор услуги представляет из себя уникальную в рамках всех бронирований строку. Он рассчитывается на основании комбинации следующих параметров: номер бронирования, идентификатор проживания, тип услуги и некоторых внутренних для системы управления отелем значений. Для услуг с типами «проживание», «ранний заезд» и «поздний выезд» он будет одинаковым в рамках одного номера.
Customers — список с информацией о плательщиках по бронированию.
Параметр |
Тип |
Описание |
index |
int |
Индекс для сопоставления со списком услуг |
id |
long |
Идентификатор плательщика |
name |
string |
Название плательщика. ФИО для физического лица или название компании |
customerKind |
int |
Тип плательщика:
|
inn |
string |
ИНН |
kpp |
string |
КПП |
phone |
string |
Телефон (первый телефон, если плательщик физ. лицо) |
string |
Email (первый Email, если плательщик физ. лицо) |
|
legalAddress |
string |
Юридический адрес, если плательщик комания |
mailingAddress |
string |
Почтовый адрес, если плательщик компания |
Уникальный ключ плательщика — это сочетание id и customerKind.
Agents — список с информацией об агентах по бронированию.
Параметр |
Тип |
Описание |
index |
int |
Индекс для сопоставления со списком услуг |
id |
long |
Идентификатор плательщика |
name |
string |
Название плательщика. ФИО для физического лица или название компании |
inn |
string |
ИНН |
kpp |
string |
КПП |
phone |
string |
Телефон |
string |
||
legalAddress |
string |
Юридический адрес |
mailingAddress |
string |
Почтовый адрес |
Reservations — список с информацией о бронированиях.
| Параметр | Тип | Описание |
| id | long | Идентификатор проживания |
| customerIndex | int | Индекс элемента из списка плательщиков. Плательщиком будет либо компания-заказчик из бронирования, если она указана, либо заказчик из бронирования – физическое лицо. |
| agentIndex | int\null | Индекс элемента из списка агентов. Заполняется, только если в брони есть компания-агент |
| currency | string | Трехсимвольный буквенный код валюты |
| currencyRate | decimal | Курс обмена валюты к базовой валюте |
| bookingNumber | string | Номер бронирования |
| roomNumber | string | Название комнаты |
| guestId | string | Уникальный идентификатор «титульного» гостя в проживании |
| guestName | string | ФИО «титульного» гостя в проживании |
| guestCount | int | Количество гостей в проживании |
| checkInDateTime | string | Дата и время заезда: если есть фактическая, то она, иначе — плановая. В формате yyyyMMddHHmm |
| checkOutDateTime | string | Дата и время выезда: если есть фактическая, то она, иначе — плановая. В формате yyyyMMddHHmm |
| permitNumber | string | Номер путевки |
| isDeparted | bool | Зафиксирован ли выезд |
| isArrived | bool | Зафиксирован ли заезд |
| paymentMethod | int | Метод оплаты по бронированию:
|
| roomTypeId | int | Идентификатор категории номера |
| customerCompany | string | Название компании-заказчика из бронирования |
| payerCompany | string | Название компании-агента из бронирования |
| total | decimal | Итого за проживание (за весь период проживания) |
| tax | decimal | Налог за проживание (за весь период проживания) |
| paid | decimal | Оплачено за проживание (за весь период проживания) |
| balance | decimal | Баланс оплат по проживанию (за весь период проживания) |
| creationDateTime | string | Дата и время создания бронирования. В формате yyyyMMddHHmm |
| folioNumber | string | Номер счета брони. Для бронирований со способом оплаты «Безналичный расчет для юр. лиц (счет выставлять автоматически)» будет номер «Счета на предоплату по безналу», для всех остальных — последние цифры номера бронирования |
| marketCode | marketCode | Информация о сегменте рынка |
| bookingSource | string | Источник бронирования |
RoomTypes — список с информацией о категориях номеров.
Параметр |
Тип |
Описание |
id |
int |
Идентификатор категории номера |
name |
string |
Название категории номера |
marketCode — информация о сегменте рынка.
Параметр |
Тип |
Описание |
name |
string |
Наименование |
code |
string |
Код |
Формат результата (текстовый файл)
При успешном формировании результата будет ответ со статусом 200 и типом содержимого "ContentType: text/csv" и "Content-Disposition: attachment; filename="XXX_YYY.csv".
Порядок полей:
1. Идентификатор провайдера;
2. Дата оказания услуги;
3. Идентификатор услуги;
4. Название услуги;
5. Сумма услуги с учетом скидки;
6. Сумма скидки для услуги;
7. Количество услуги;
8. Категория дополнительной услуги;
9. Количество гостей в номере;
10. Код валюты;
11. Курс обмена валюты к базовой валюте;
12. Сумма НДС;
13. Тип НДС;
14. Идентификатор плательщика;
15. Имя (название) плательщика;
16. Тип плательщика (юр. лицо / физ. лицо — 0/1);
17. ИНН плательщика;
18. КПП плательщика;
19. Номер бронирования;
20. Идентификатор проживания;
21. ФИО «титульного» гостя в проживании;
22. Дата и время заезда;
23. Дата и время выезда;
24. Номер комнаты;
25. Номер путевки;
26. Зафиксирован ли выезд (да/нет – 1/0);
27. Метод оплаты по брони;
28. Категория номера;
29. Название компании-заказчика;
30. Название компании-агента;
31. Итого за проживание (за весь период проживания);
32. Налог за проживание (за весь период проживания);
33. Оплачено за проживание (за весь период проживания);
34. Баланс оплат по проживанию (за весь период проживания);
35. Дата и время создания бронирования;
36. Номер счета бронирования;
37. Первый телефон компании-заказчика;
38. Первый Email компании-заказчика;
39. Юридический адрес компании-заказчика;
40. Почтовый адрес компании-заказчика;
41. Номер компании-агента;
42. ИНН компании-агента;
43. КПП компании-агента;
44. Первый телефон компании-агента;
45. Первый Email компании-агента;
46. Юридический адрес компании-агента;
47. Почтовый адрес компании-агента;
48. Зафиксирован ли заезд (да/нет – 1/0);
49. Признак включенной в стоимость услуги (да/нет – 1/0);
50. Наименование сегмента рынка;
51. Код сегмента рынка;
52. Источник бронирования.
Получение платежей по бронированиям
Для получения данных в формате json используется url: GET https://partner.tlintegration.com/api/webpms/v1/analytics/payments
Для получения данных в виде текстового файла используется url: GET https://partner.tlintegration.com/api/webpms/v1/analytics/payments/csv
Формат входящих данных
Параметр |
Тип |
Описание |
startDateTime |
string |
(*) Момент времени начала для формирования отчета. В формате yyyyMMddHHmm |
endDateTime |
string |
(*) Момент времени окончания для формирования отчета. В формате yyyyMMddHHmm |
includeServices |
boolean |
Включить в выдачу начисления, связанные с данными платежами |
includeExternalPayments |
boolean |
Включить в выдачу предоплаты, проведенные вне WebPms. Например предоплата, оформленная гостем на сайте |
language |
string |
Двухсимвольный код языка |
Обязательные поля помечены (*).
Пример: https://partner.tlintegration.com/api/webpms/v1/analytics/payments?startDateTime=202001040000&endDateTime="202001050000
Максимальная разрешенная разница между датами — 31 день. Запросы на будущие даты не допускаются.
В результат попадают только те платежи, которые были проведены внутри системы управления отелем (WebPMS). Платежи, оформленные из депозита (со способом оплаты «Депозит»), также не попадают в результат.
При выставленном параметре includeServices, разрешенная разница между датами уменьшается до 7 дней. Использование этого параметра доступно только для выгрузки в JSON-формате. В ответе будут все начисления по затронутым платежами проживаниям. То есть, если оплачено проживание по брони, то в ответе будут не только начисления по проживанию, но и по всем услугам или трансферам и т. д. этого бронирования.
Формат результата (json)
{“data”: {"payments": [], "customers": [], "roomTypes": [], "services": [], "agents": [], "reservations": []}}
Payments — список с информацией о платежах за услуги бронирования.
Параметр |
Тип |
Описание |
id |
long |
Уникальный идентификатор платежа |
bookingNumber |
string |
Номер бронирования |
serviceId |
string(64) |
Идентификатор услуги, по которой проведен платеж |
folioNumber |
string |
Номер счета |
actionKind |
int |
Тип оплаты:
|
kind |
int |
Признак способа расчета:
|
isCheckPrinted |
bool |
Напечатан ли чек. В расчет принимаются чеки (первый чек — не на зачет аванса), напечатанные с использованием интеграции TL: WebPMS с фискальным регистратором. |
amount |
decimal |
Сумма |
vatKind |
int |
Тип НДС |
vat |
decimal |
Сумма НДС |
quantity |
int |
Количество |
dateTime |
string |
Дата и время оформления платежа. В формате yyyyMMddHHmm |
paymentDateTime |
string |
Дата и время совершения платежа. В формате yyyyMMddHHmm |
paymentMethod |
int |
Метод оплаты:
|
paymentSystem |
string |
Способ оплаты |
customerIndex |
int |
Индекс элемента из списка плательщиков. Равен –1, если у счета не выбран плательщик |
currency |
string |
Трехсимвольный буквенный код валюты |
currencyRate |
decimal |
Курс обмена валюты к базовой валюте |
roomTypeId |
int |
Идентификатор категории номера |
username |
string |
Логин пользователя, совершившего платеж |
cancellationDateTime |
string |
Дата и время отмены платежа. В формате yyyyMMddHHmm |
cancelledByUsername |
string |
Логин пользователя, отменившего платеж |
commet |
string |
Комментарий к платежу |
Customers — список с информацией о плательщиках по счету. Может быть как физическим лицом, так и компанией. Структура объектов аналогична плательщикам из запроса по начислениям. Уникальный ключ плательщика — это сочетание id и customerKind.
RoomTypes — список с информацией о категориях номеров. Структура объектов аналогична категориям номеров из запроса по начислениям.
Services[1] — список с информацией о начислениях, связанных с платежами. Структура объектов аналогична категориям номеров из запроса по начислениям.
Agents Error! Bookmark not defined. — список с информацией по агентам бронирований. Структура объектов аналогична категориям номеров из запроса по начислениям.
Reservations Error! Bookmark not defined. — список с информацией о бронированиях. Структура объектов аналогична категориям номеров из запроса по начислениям.
[1] Будут в ответе, только если при запросе был выставлен параметр includeServices
Формат результата (текстовый файл)
При успешном формировании результата будет ответ со статусом 200 и типом содержимого "ContentType: text/csv" и "Content-Disposition: attachment; filename="XXX_YYY.csv".
Порядок полей:
1. Идентификатор провайдера;
2. Дата и время оформления платежа;
3. Дата и время совершения платежа;
4. Тип оплаты;
5. Признак способа расчета;
6. Метод оплаты (0 — наличные, 1 — электронный платеж);
7. Способ оплаты;
8. Идентификатор услуги;
9. Сумма;
10. Количество;
11. Код валюты;
12. Курс обмена валюты к базовой валюте;
13. Сумма НДС;
14. Тип НДС;
15. Идентификатор плательщика;
16. Имя (название) плательщика;
17. Тип плательщика (юр. лицо / физ. лицо — 1/0);
18. ИНН плательщика;
19. КПП плательщика;
20. Номер бронирования;
21. Номер счета;
22. Категория номера;
23. Логин пользователя, совершившего платеж;
24. Дата и время отмены платежа;
25. Логин пользователя, отменившего платеж;
26. Уникальный идентификатор платежа;
27. Напечатан ли чек.
Получение бронирования
GET https://partner.tlintegration.com/api/webpms/v1/bookings/{number}
number — номер бронирования в системе TravelLine.
Пример: https://.../v1/bookings/20210101-0123-1234567
Формат входящих данных
Параметр |
Тип |
Описание |
language |
string |
Двухсимвольный код языка |
Формат результата
Booking — бронирование.
Параметр |
Тип |
Описание |
id |
string |
Идентификатор бронирования |
number |
string |
Номер бронирования в системе TravelLine |
customerLanguage |
string |
Язык бронирования |
visitPurpose |
DictionaryItem |
Цель визита |
customerComment |
string |
Комментарий заказчика |
lastModified |
string |
Дата последней модификации бронирования в формате yyyyMM-ddTHH:mm:ssZ (временная зона UTC) |
groupName |
string |
Название группы |
currencyId |
string |
Валюта |
customer |
Customer |
Заказчик |
customerCompany |
Company |
Компания-заказчик |
roomStays |
RoomStay[] |
Проживания |
source |
DictionaryItem |
Источник |
sourceChannelName |
string |
Название канала |
Customer — информация о заказчике.
Параметр |
Тип |
Описание |
id |
string |
Уникальный идентификатор гостя |
lastName |
string |
Фамилия |
firstName |
string |
Имя |
middleName |
string |
Отчество |
birthDate |
string |
Дата рождения гостя в формате yyyy-MM-dd |
citizenshipCode |
string |
Гражданство (трехсимвольный код страны) |
status |
DictionaryItem |
Статус |
emails |
string[] |
Электронные адреса |
phones |
string[] |
Телефоны |
gender |
string |
Пол |
DictionaryItem — элемент справочника.
Параметр |
Тип |
Описание |
key |
string |
Ключ |
value |
string |
Значение |
Company — информация о компании.
Параметр |
Тип |
Описание |
id |
string |
Идентификатор компании |
name |
string |
Название |
RoomStay — информация о проживании.
Параметр |
Тип |
Описание |
id |
string |
Идентификатор проживания |
bookingId |
string |
Идентификатор бронирования |
roomId |
string |
Идентификатор номера/комнаты |
roomTypeId |
string |
Идентификатор категории номера |
checkInDateTime |
string |
Дата заезда. В формате yyyy-MM-ddTHH:mm |
checkOutDateTime |
string |
Дата выезда. В формате yyyy-MM-ddTHH:mm |
actualCheckInDateTime |
string |
Фактическая дата заезда. В формате yyyy-MM-ddTHH:mm |
actualCheckOutDateTime |
string |
Фактическая дата выезда. В формате yyyy-MM-ddTHH:mm |
status |
string |
Статус проживания:
|
bookingStatus |
string |
Статус бронирования:
|
guestCountInfo |
GuestCountInfo |
Информация о количестве гостей |
guestsIds |
string[] |
Идентификаторы гостей |
totalPrice |
TotalPrice |
Информация о стоимости |
amenities |
Amenity[] |
Предпочтения |
GuestCountInfo — информация о количестве гостей.
Параметр |
Тип |
Описание |
adults |
int |
Количество взрослых |
children |
int |
Количество детей |
TotalPrice — информация о стоимости и оплатах.
Параметр |
Тип |
Описание |
amount |
decimal |
Полная стоимость проживания, включая услуги, ранний заезд/поздний выезд, но не включая налоги |
toPayAmount |
decimal |
Сумма, доступная к оплате |
toRefundAmount |
decimal |
Сумма, доступная к возврату |
Amenity — список предпочтений в проживании.
Параметр |
Тип |
Описание |
name |
string |
Название |
Поиск бронирований
GET https://partner.tlintegration.com/api/webpms/v1/bookings
Формат входящих данных
Параметр |
Тип |
Описание |
roomId |
string |
Идентификатор номера/комнаты |
modifiedFrom |
string |
Проживание было модифицировано «с». В формате yyyy-MMddTHH:mm |
modifiedTo |
string |
Проживание было модифицировано «по». В формате yyyy-MMddTHH:mm |
state |
string |
Требуемое состояние брони:
Если не заполнено, то вернет ошибку Invalid Params |
affectsPeriodFrom |
string |
Проживание пересекается с периодом «с». В формате yyyy-MM-ddTHH:mm |
affectsPeriodTo |
string |
Проживание пересекается с периодом «по». В формате yyyyMM-ddTHH:mm |
Хотя бы один из периодов дат должен быть заполнен, или период модификации, или период пересечения, или же оба сразу.
Если какая то из дат периода заполнена, то заполнена должна быть и другая (например, если заполнена modifiedFrom, то надо заполнить и modifiedTo).
Оба периода должны быть не более 365 дней.
Формат результата {"bookingNumbers": string[]}
bookingNumbers — список номеров бронирований в системе TravelLine.
Получение счетов бронирования
GET https://partner.tlintegration.com/api/webpms/v1/bookings/{number}/invoices
number — номер бронирования в системе TravelLine.
Пример: https://.../ v1/bookings/20210101-0123-123456/invoices?language=ru
Формат входящих данных
Параметр |
Тип |
Описание |
language |
string |
(*) Двухсимвольный код языка |
Обязательные поля помечены (*).
Формат результата InvoiceDto[]
InvoiceDto — информация о счете.
Параметр |
Тип |
Описание |
number |
string |
Номер счета |
roomStayId |
string |
Идентификатор проживания. Null, если это счет бронирования |
payer |
PayerDto |
Информация о плательщике |
items |
InvoiceItemDto[] |
Пункты счета |
PayerDto — информация о плательщике.
Параметр |
Тип |
Описание |
name |
string |
ФИО плательщика, либо наименование компании плательщика |
InvoiceItemDto — информация о пункте счета.
Параметр |
Тип |
Описание |
accountingId |
string |
Идентификатор пункта счета для системы финансового учета |
name |
string |
Наименование пункта счета |
kind |
int |
Тип пункта счета:
|
total |
decimal |
Стоимость пункта счета, ВКЛЮЧАЯ налог |
taxType |
int |
Тип налога (ставка НДС). Возможно значение NULL:
|
quantity |
QuantityDto |
Количество |
QuantityDto — количество.
Параметр |
Тип |
Описание |
quantity |
int |
Количество |
unit |
int |
Единица измерения:
|
Поиск доступных номеров для каждого проживания бронирования
GET https://partner.tlintegration.com/api/webpms/v1/bookings/{number}/rooms
number — номер бронирования в системе TravelLine.
Пример: https://.../ v1/bookings/20210101-0123-123456/rooms
Формат результата
SetRoomStayRoomDto[] SetRoomStayRoomDto
Параметр |
Тип |
Описание |
roomStayId |
string |
Идентификатор проживания |
currentRoomId |
string |
Идентификатор номера, который в данный момент назначен для проживания |
roomTypeId |
string |
Идентификатор категории номера для проживания |
roomIds |
string[] |
Идентификаторы номеров, доступные для назначения проживанию |
Назначение номеров для проживаний бронирования
POST https://partner.tlintegration.com/api/webpms/v1/bookings/{number}/rooms
number — номер бронирования в системе TravelLine.
Пример: https://.../ v1/bookings/20210101-0123-123456/rooms
Формат входящих данных SetRoomStayRoomDto[]
SetRoomStayRoomDto:
Параметр |
Тип |
Описание |
roomStayId |
string |
Идентификатор проживания |
roomId |
string |
Идентификатор номера |
Заселение проживания
POST https://partner.tlintegration.com/api/webpms/v1/bookings/{number}/roomstays/{roomStayId}/check-in
number — номер бронирования в системе TravelLine, roomStayId — идентификатор проживания.
Пример: https://.../ v1/bookings/20210101-0123-123456/room-stays/123456/check-in
Формат входящих данных
Параметр |
Тип |
Описание |
actualCheckInDateTime |
string |
(*) Фактические дата и время заезда. В формате yyyy-MMddTHH:mm |
Обязательные поля помечены (*).
Ограничения на заселение проживания:
- Заселять можно только проживания, которые еще не заселены, и плановый заезд по которым сегодня или в прошлом.
- Дата (без учета времени) фактического заезда должна быть равна дате планового заезда.
- Нельзя заселить проживание, у которого отсутствует номер.
- Дата и время фактического заезда не должны пересекаться с датой и временем заезда/выезда другого проживания или ремонта.
Выселение проживания
POST https://partner.tlintegration.com/api/webpms/v1/bookings/{number}/roomstays/{roomStayId}/check-out
number — номер бронирования в системе TravelLine, roomStayId — идентификатор проживания.
Пример: https://.../ v1/bookings/20210101-0123-123456/room-stays/123456/check-out
Формат входящих данных
Параметр |
Тип |
Описание |
actualCheckOutDateTime |
string |
(*) Фактические дата и время выезда. В формате yyyy-MMddTHH:mm |
Обязательные поля помечены (*).
Ограничения на выселение проживания:
- Выселять можно только проживания, которые заселены, но еще не выехали, и плановый выезд по которым сегодня или в прошлом.
- Дата (без учета времени) фактического выезда должна быть равна дате планового выезда.
- Дата и время фактического выезда не должны пересекаться с датой и временем заезда/выезда другого проживания или ремонта.
- Если у способа оплаты в настройках неактивен пункт «Разрешить выселение гостей с ненулевым балансом», то выселение гостя с таким балансом запрещено.
Получение доступных способов оплаты
GET https://partner.tlintegration.com/api/webpms/v1/bookings/{number}/roomstays/{roomStayId}/payment-systems
number — номер бронирования в системе TravelLine, roomStayId — идентификатор проживания.
Пример: https://.../ v1/bookings/20210101-0123-123456/room-stays/123456/paymentsystems?language=ru&action=Payment
Формат входящих данных
Параметр |
Тип |
Описание |
language |
string |
Двухсимвольный код языка |
action |
string |
(*) Тип операции:
|
Обязательные поля помечены (*).
Ограничения: способ оплаты «Депозит» временно не поддерживается.
Формат результатаPaymentSystemDto[]
PaymentSystemDto — информация о способе оплаты.
Параметр |
Тип |
Описание |
paymentSystemId |
string |
Идентификатор способа оплаты |
name |
string |
Название |
Оформление платежа
POST https://partner.tlintegration.com/api/webpms/v1/bookings/number}/roomstays/{roomStayId}/payment
number — номер бронирования в системе TravelLine, roomStayId — идентификатор проживания.
Пример: https://.../ v1/bookings/20210101-0123-123456/room-stays/123456/payment
Формат входящих данных
Параметр |
Тип |
Описание |
actionDate |
string |
(*) Дата и время совершения операции в формате yyyy-MM-ddTHH:mm |
paymentSystemId |
string |
(*) Способ оплаты |
total |
AmountDto |
(*) Размер платежа |
comment |
string |
Комментарий |
AmountDto
Параметр |
Тип |
Описание |
amount |
decimal |
(*) Сумма |
currency |
string |
(*) Трехсимвольный код валюты |
Обязательные поля помечены (*).
- Оплата будет распределена среди счетов проживания. Если в бронировании общий счет, оплата будет распределяться по всем пунктам общего счета.
- Валюта будет сконвертирована и сохранена в валюте брони (курс будет взят на Дату и время совершения операции).
- При внесении оплаты больше, чем сумма по всем счетам, переплата сохранится в первом счете проживания.
Ограничения: если в проживании уже есть платеж с совпадающими параметрами (дата и время совершения операции + способ оплаты + размер платежа), то такой платеж не будет сохранен.
Оформление возврата
POST https://partner.tlintegration.com/api/webpms/v1/bookings/{number}/roomstays/{roomStayId}/refund
number — номер бронирования в системе TravelLine, roomStayId — идентификатор проживания.
Пример: https://.../ v1/bookings/20210101-0123-123456/room-stays/123456/refund
Формат входящих данных
Параметр |
Тип |
Описание |
actionDate |
string |
(*) Дата и время совершения операции в форматеyyyy-MM-ddTHH:mm |
paymentSystemId |
string |
(*) Способ оплаты |
total |
AmountDto |
(*) Размер возврата |
comment |
string |
Комментарий |
AmountDto
Параметр |
Тип |
Описание |
amount |
decimal |
(*) Сумма |
currency |
string |
(*) Трехсимвольный код валюты |
Обязательные поля помечены (*).
- Возврат будет распределен среди счетов проживания. Если в бронировании общий счет, возврат будет распределяться по всем пунктам общего счета.
- Валюта будет сконвертирована и сохранена в валюте брони (курс будет взят на дату и время совершения операции).
Ограничения:
- Если в проживании уже есть возврат с совпадающими параметрами (дата и время совершения операции + способ оплаты + размер возврата), то такой возврат не будет сохранен.
- Вернуть можно не более суммы, доступной к возврату по проживанию.
Получение всех компаний
GET https://partner.tlintegration.com/api/webpms/v1/companies
Формат результата
Company — информация о компании.
Параметр |
Тип |
Описание |
id |
string |
Идентификатор компании |
name |
string |
Название |
type |
string |
Тип компании:
|
Получение профиля гостя
GET https://partner.tlintegration.com/api/webpms/v1/guests/{id}
Id — уникальный идентификатор гостя.
Пример: https://.../v1/guests/12345
Формат результата
Guest — данные гостя.
Параметр |
Тип |
Описание |
id |
string |
Уникальный идентификатор гостя |
lastName |
string |
Фамилия |
firstName |
string |
Имя |
middleName |
string |
Отчество |
birthDate |
string |
Дата рождения гостя в формате yyyy-MM-dd |
citizenshipCode |
string |
Гражданство (трехсимвольный код страны) |
status |
StatusItem |
Статус |
emails |
string[] |
Электронные адреса |
phones |
string[] |
Телефоны |
gender |
string |
Пол |
StatusItem — информация о статусе гостя.
Параметр |
Тип |
Описание |
key |
string |
Ключ |
value |
string |
Значение |
Поиск профилей гостя по параметрам
GET https://partner.tlintegration.com/api/webpms/v1/guests
Пример: https://.../v1/guests?room=42&guestName=Смирнов
Формат входящих данных
Параметр |
Тип |
Описание |
guestPhone |
string |
Номер (часть номера) телефона гостя. Не менее 3-х символов |
room |
string |
Номер комнаты |
guestName |
string |
Имя (часть имени/фамилии) гостя. Не менее 3-х символов |
language |
string |
Двухсимвольный код языка |
Допустимые комбинации параметров поиска:
- room
- room + guestName
- room + guestPhone
- room + guestName + guestPhone
Передаваемый номер комнаты должен строго соответствовать тому названию, которое указано в настройках TL: WebPMS.
Для поиска по guestName будут использованы следующие сочетания: [Имя Фамилия], [Фамилия Имя], [Фамилия Имя Отчество] и [Имя Отчество Фамилия].
Будут найдены гости, проживание которых пересекается по датам с датой запроса, включая дни заезда и выезда.
Формат результата {"guests": []}
guest — информация о госте, проживающем в номере.
Параметр |
Тип |
Описание |
id |
string |
Уникальный идентификатор гостя |
firstName |
string |
Имя гостя |
lastName |
string |
Фамилия гостя |
middleName |
string |
Отчество гостя |
birthDate |
string |
Дата рождения гостя. В формате yyyy-MM-dd |
status |
dictionaryItem |
Статус гостя в отеле |
citizenshipCode |
string |
Трехсимвольный код гражданства гостя |
roomStays |
roomStay[] |
Информация о проживаниях |
roomStay — информация о проживании.
Параметр |
Тип |
Описание |
id |
string |
Уникальный идентификатор проживания |
room |
string |
Номер комнаты |
checkInDateTime |
string |
Дата и время заезда в локальном времени средства размещения. В формате yyyy-MM-ddTHH:mm |
checkOutDateTime |
string |
Дата и время выезда в локальном времени средства размещения. В формате yyyy-MM-ddTHH:mm |
status |
string |
|
deposit |
moneyData |
Информация о депозите в проживании |
moneyData
Параметр |
Тип |
Описание |
amount |
decimal |
Сумма |
currency |
string |
Трехсимвольный буквенный код валюты (ISO 4217) |
dictionaryItem
Параметр |
Тип |
Описание |
key |
string |
Ключ |
value |
string |
Значение |
Получение информации о проживаниях гостя
GET https://partner.tlintegration.com/api/webpms/v1/guests/{id}/room-stays
id — уникальный идентификатор гостя.
Пример: https://.../v1/guests/12345/room-stays
Формат результата RoomStay[]
RoomStay — информация о проживании гостя в номере.
Параметр |
Тип |
Описание |
id |
string |
Идентификатор проживания |
roomId |
string |
Идентификатор комнаты |
checkInDateTime |
string |
Дата и время планируемого заезда в локальном времени средства размещения. В формате yyyy-MM-ddTHH:mm |
checkOutDateTime |
string |
Дата и время планируемого выезда в локальном времени средства размещения. В формате yyyy-MM-ddTHH:mm |
status |
string |
Статус:
|
deposit |
Deposit |
Информация о депозите в проживании |
Deposit — информация о депозите.
Параметр |
Тип |
Описание |
amount |
decimal |
Сумма |
vatKind |
string |
Тип НДС |
vat |
decimal |
Сумма НДС |
currency |
string |
Трехсимвольный код валюты |
Сохранение документа, подтверждающего личность гостя
POST https://partner.tlintegration.com/api/webpms/v1/guests/{id}/personal-document
Id — уникальный идентификатор гостя.
Пример: https://.../v1/guests/12345/personal-document
Формат входящих данных
Параметр |
Тип |
Описание |
series |
string |
Серия документа. Для паспорта гражданина РФ — это строка из 4 символов. Для всех остальных — это строка из букв и цифр длиной от 1 до 64 символов |
number |
string |
Номер документа. Для паспорта гражданина РФ — это строка из 6 символов. Для всех остальных — это строка из букв и цифр длиной от 1 до 64 символов |
effectiveDate |
string |
Дата выдачи. В формате yyyy-MM-dd |
expireDate |
string |
Действителен до. В формате yyyy-MM-dd |
departmentCode |
string |
Код подразделения. Строка длиной не более 16 символов |
issueAuthority |
string |
Орган, выдавший документ. Строка длиной не более 2048 символов |
type |
string |
Тип документа (обязательный параметр):
|
Если необязательный параметр не будет передан, либо будет = null, то он проигнорируется и не будет изменен. Таблица обязательных к заполнению параметров находится в приложении 1.
Сохранение адреса рождения гостя
POST https://partner.tlintegration.com/api/webpms/v1/guests/{id}/birth-address
id — уникальный идентификатор гостя.
Пример: https://.../v1/guests/12345/birth-address
Формат входящих данных
Параметр |
Тип |
Описание |
countryId |
string |
(*) Идентификатор страны рождения гостя в формате ISO 3166-1 alpha-3 |
Обязательные поля помечены (*).
Сохранение изображений документа, подтверждающего личность
POST https://partner.tlintegration.com/api/webpms/v1/guests/{id}/personal-document/files
id — уникальный идентификатор гостя.
Пример: https://.../v1/guests/12345/personal-document/files
Формат входящих данных {"files": []}
file — информация о переданном файле.
Параметр |
Тип |
Описание |
content |
byte[] |
(*) Содержимое файла в формате Base64. Размер файла не должен превышать 2 мб |
name |
string |
(*) Имя файла вместе с расширением, например image, png. Поддерживаются следующие расширения: ".pdf", ".jpg", ".jpeg", ".png", ".gif" |
Обязательные поля помечены (*).
Максимальное количество изображений документа, подтверждающего личность, для одного профиля может быть не больше 5.
Получение информации о номерах
GET https://partner.tlintegration.com/api/webpms/v1/rooms
Пример: https://.../v1/rooms?roomTypeId =1234
Формат входящих данных
Параметр |
Тип |
Описание |
roomTypeId |
string |
Идентификатор категории номера |
Формат результата Room[]
Room — комната (номер).
Параметр |
Тип |
Описание |
id |
string |
Уникальный идентификатор номера |
name |
string |
Наименование номера |
roomTypeId |
string |
Идентификатор категории номера |
Назначение номера для проживания
POST https://partner.tlintegration.com/api/webpms/v1/room-stays/{id}/rooms
id — уникальный идентификатор проживания.
Пример: https://.../v1/room-stays/12345/rooms
Формат входящих данных
Параметр |
Тип |
Описание |
roomId |
string |
Идентификатор номера |
Приложение 1
Обязательные к заполнению поля документа, подтверждающего личность:
| Тип документа | series | number | effectiveDate | expireDate | issueAuthority |
| Passport (гражданина РФ) |
+ | + |
+ |
+ |
|
| Passport (иностранного гражданина) | + | + | |||
| ForeignPassport | + | ||||
| International PassportBiometric |
+ | + | + | + | + |
| InternationalPassport | + | + | + |
+ | + |
| TemporaryPassport | + | + | |||
| BirthCertificate | + | + | + | + | |
| Diplomatic | + | + | + | + | + |
| BirthCertificateForeign | + | + | |||
| MilitaryPensioner | + | + | |||
| MilitaryReserveOfficer | + | + | |||
| MilitarySoldier | + | + | |||
| MilitaryOfficer | + | + | |||
| PassportSailor | + | + | |||
| ForeignPassportForeign | + | + | + | + |
+
|
| TemporaryPassport InsteadOfMilitary |
+ | + | |||
| Another | + | ||||
| DiplomaticForeign | + | + | |||
| TemporaryResidence | + | + | |||
| Residence | + | + | + | + | |
| TemporaryRefuge | + | + | + | + | |
| CIS | + | + | |||
| WorkPassport | + | + | |||
| ResidenceStateless | + | + | + | + | |
| NationalPassport | + | ||||
| KazPassport | + | + | |||
| ResidenceStateless Biometric |
+ | + | + | + | |
| TemporaryResidence Stateless |
+ | + | |||
| Patent | + | ||||
| DriverLicense | + | + | + | + | + |
История изменений
Версия |
Что изменилось |
1.1.0 |
В тип НДС добавились новые значения 5% и 7% |
1.2.0 |
В тип НДС добавились новые значения 105, 107, 9, 109 |
1.3.0 |
В тип НДС добавились новые значения 16%, 22%, 122 |
1.4.0 |
В тип документа, подтверждающего личность гостя добилось новое значение DriverLicense — водительское удостоверение |