Описание Webhook

Описание Webhook
Содержание

В системе RealtyCalendar есть функция Webhook. Она отправляет данные на указанный вами URL при определённых событиях в личном кабинете.
 

Как включить Webhook

Для подключения Webhook необходимо:

  • добавить ваш URL в Настройки — CRM-интеграции в поле «Введите URL нового Webhook»;

  • нажать кнопку «Запустить».

 

Будут происходить списания денежных средств по тарифу «за интеграцию с внешними системами». 
С тарифами можно ознакомиться на странице «Баланс».

Как работают Webhook

Webhook отправляют данные на указанный вами URL при определённых событиях в личном кабинете.

Ожидание ответа:

  • Webhook ожидают от сервера ответ со статусом 200

Повторные попытки при недоступности сервера:

Если клиентский сервер недоступен, повторная отправка осуществляется с задержками:

5 секунд → 30 секунд → 2 минуты → 5 минут → 10 минут → 30 минут → 1 час → 2 часа → 4 часа → 8 часов → 24 часа → 2 суток

Уведомления о проблемах:

  • После 3-й неудачной попытки отправляется письмо на почту агентства с темой «Проблемы с доставкой web-хуков»

  • После 2 суток без успешной отправки статус изменяется на «Остановлено»

Возобновление работы:

Чтобы Webhook начали заново отправляться после остановки, необходимо нажать кнопку «Запустить».

События Webhook

Webhook отправляются при следующих действиях с бронями:

  • создание
  • удаление
  • перевод из брони в отмену
  • перевод из отмены в бронь
  • перевод из заявки в бронь
  • перевод из заявки в отмены
  • перевод из отмены в заявку (не поддерживает)
  • перевод из брони в заявку (не поддерживает)
  • изменение следующих полей:
    • статус
    • сумма
    • заезд
    • время заезда
    • выезд
    • время выезда
    • имя
    • телефон
    • email
    • примечание
    • дополнительный телефон
    • эмодзи
    • файлы (не поддерживает)
  • действия с платежами:
    • добавление платежа
    • удаление платежа
    • создание ручного залога
    • создание ссылки на залог
    • оплата залога по ссылке
    • возврат залога

Содержимое Webhook

Название поля

Тип

Описание

Дополнительно

action

string

Какое произошло действие 

  • create_booking - создание брони
  • update_booking - обновление брони
  • cancel_booking - отмена брони
  • delete_booking - удаление брони

status

string

Итоговый статус

  • booked - бронь активна
  • deleted - бронь удалена
  • canceled - бронь отменена
  • request - заявка

data

{data}

Тело хука


Тело {data}

Название поля

Тип

Описание

Дополнительно

booking

{booking}

Описание события



 

changes

{changes}

Описание изменений


crm_entity_id




bitrix_lead_id





Тело {booking}

Название поля

Тип

Описание

Дополнительно

id

integer

id брони 


url

string

ссылка на бронь в личном кабинете


agency_id

integer

id агентства


begin_date

строка в формате “YYYY-MM-DD”

Заезд


end_date

строка в формате “YYYY-MM-DD”

Выезд


number_of_days

integer

количество дней брони


number_of_nights

integer

количество ночей брони


arrival_time

string | null

время прибытия, например "17:00"


departure_time

string | null

время убытия, например "11:00"


realty_id

integer

id объекта


realty_room_id

integer

id комнаты из номерного фонда


apartment

{apartment}

описание объекта


address

string

адрес объекта


user_id

integer

id пользователя, который создал событие


created_at

timestamp

время создания события


updated_at

timestamp

время обновления события


status_cd

integer

статус брони в числовом формате


is_delete

boolean

удалена ли бронь


is_hidden

boolean

для Booking.com и Tvi показывает true, если не оплачен менеджер каналов


notes

string | null

Примечание к брони


color

string | null

цвет брони


reaction

string | null

эмодзи


source

string

источник брони


booking_origin_id

integer

id площадки-источника брони


booking_origin

{booking_origin}

источник брони подробно


client_id

integer

id клиента (гостя) в нашей базе


client

{client}

описание клиента (гостя)


amount

integer

сумма брони


price_per_day

integer

стоимость за день


prepayment

integer

оплаченная сумма


payment

integer

сколько прошла сумма оплаты


payment_links

string[]

массив созданных ссылок на оплату брони через Монету


event_calendar_payments

array {payment}

массив платежей и депозитов при хуке создания брони


payments_with_deleted

array {payment}

массив платежей и депозитов при хуке изменения брони


deposit

integer

сколько оплачен депозит


deposit_payment_links

string[]

массив созданных ссылок на оплату залога через Монету


rent_payment_invoices


список счетов в личном кабинете агентства


balance_to_be_paid_1

integer

Сколько осталось оплатить 

{amount} - {prepayment}


balance_to_be_paid_2

integer

{amount} - {prepayment}+{дата booking_deposit} 


platform_tax

float

комиссия площадки, значение передаёт площадка


platform_tax_currency

string | null

валюта комиссии площадки


is_send_confirm_email

boolean

есть ли подтверждение брони на почту гостя


automessages_enabled


включена ли функция автосообщений


booking_id


старое поле, не используется

будет удалено

days


старое поле, не используется

будет удалено

max_days


спец.цена


старое поле, не используется

будет удалено

closed_on_arrivial


спец.цена

будет удалено

closed_on_departure


спец.цена

будет удалено

rate_ids


спец.цена

будет удалено

single_use_amount


спец.цена


старое поле, не используется

будет удалено

closed


спец.цена

будет удалено

min_stay_through


спец.цена

будет удалено

max_stay_through


спец.цена

будет удалено

ostrovok_rate_ids


спец.цена

будет удалено

ostrovok_occupancy_ids


старое поле, не используется

будет удалено

oktogo_rate_ids


спец.цена

будет удалено

use_rates_restrictions


спец.цена

будет удалено

expedia_rate_ids


спец.цена

будет удалено

special_price_id


спец.цена

будет удалено

bronevik_rate_ids


спец.цена

будет удалено

sync_at


системное поле

будет удалено

preparing


системное поле

будет удалено

partner


системное поле

будет удалено

partner_uid


системное поле

будет удалено

partner_guests_count


системное поле

будет удалено

hotels_101_rate_ids


спец.цена

будет удалено

secure_id


системное поле

будет удалено

uuid


системное поле

будет удалено


Тело {client}

Название поля

Тип

Описание

Дополнительно

id

integer

id клиента


fio

string

имя клиента


email

string

почта клиента


phone

string

телефон клиента


additional_phone

string | null

дополнительный телефон


created_at

timestamp

время создания


updated_at

timestamp

время обновления


modified_at

timestamp



agency_id

integer

id агентства

будет удалено


Тело {booking_origin}

Название поля

Тип

Описание

Дополнительно

id

integer

id источника брони


title

string

название источника брони

например “Avito.ru


Тело {apartment}

Название поля

Тип

Описание

Дополнительно

id

integer

id объекта


title

string

служебное название объекта, а если нет служебного название - то адрес объекта


addressstringПолный адрес объекта


Тело {payment}

Название поля

Тип

Описание

Дополнительно

rent_id

integer

id события (брони)


rent_payment_invoice_id

integer

id счёта


user_id

integer

id пользователя, который создал платеж


amount

integer

сумма платежа


is_approved

boolean

старое поле, не используется

будет удалено

note

string | null

комметарии к платежу


timezone

string

старое поле, не используется

будет удалено

created_at

timestamp

время создания


updated_at

timestamp

время обновления


paid_at

timestamp

время оплаты


paymentable_type

string

старое поле, не используется

будет удалено

paymentable_id

integer

старое поле, не используется

будет удалено

refunded

boolean | null

возвращен ли платеж


type

"payment" | “deposit”

тип платежа 


payment_type

"income" | “refund” | “fine”

доход, возврат или штраф


email

string

старое поле, не используется

будет удалено

parent_payment_id

integer

id платежа, который вернули


payment_system

"moneta" | "moneta_le" |  "yandex_kassa" | "manual"

платежная система


paid_user_id

integer | null

внутренний id пользователь платежной системы


is_delete

boolean 

удален ли платеж


refund_data

json

полная информация о возврате от платежной системы


refund_started_at

timestamp

время возврата платежа


moneta_payment_state

string

старое поле, не используется

будет удалено

creation_origin

"internal" | "external"

как было создан платеж


moneta_transaction_id

bigint | null

внутренний id платежа


uuid

string

старое поле, не используется

будет удалено

secure_id

string

старое поле, не используется

будет удалено

payment_link

string

ссылка на оплату



Тело {changes}

Название поля

Тип

Описание

Дополнительно

event_calendar

integer

изменение данных о брони (даты, время, сумма, статус и т.д.)


client

объект

изменение данных клиента


event_calendar_payments

массив

изменения в платежах


Примеры Webhook

Пример вебхука на создание брони

{
                          "action": "create_booking",
                          "status": "booked",
                          "data": {
                            "booking": {
                              "id": 113386019,
                              "begin_date": "2025-06-25",
                              "end_date": "2025-06-26",
                              "realty_id": 208656,
                              "user_id": 96663,
                              "created_at": "2025-06-16T11:30:24.239+03:00",
                              "updated_at": "2025-06-16T11:30:44.353+03:00",
                              "status_cd": 5,
                              "booking_id": null,
                              "amount": 500,
                              "is_delete": false,
                              "notes": "2 гостей",
                              "color": null,
                              "contacts": null,
                              "source": "manual",
                              "days": null,
                              "realty_room_id": null,
                              "max_days": null,
                              "closed_on_arrivial": false,
                              "closed_on_departure": false,
                              "rate_ids": null,
                              "single_use_amount": null,
                              "closed": false,
                              "min_stay_through": null,
                              "max_stay_through": null,
                              "ostrovok_rate_ids": null,
                              "ostrovok_occupancy_ids": null,
                              "booking_origin_id": null,
                              "oktogo_rate_ids": null,
                              "arrival_time": null,
                              "departure_time": null,
                              "prepayment": 500,
                              "client_id": 35632150,
                              "deposit": 0,
                              "is_send_confirm_email": false,
                              "payment": 500,
                              "use_rates_restrictions": false,
                              "expedia_rate_ids": null,
                              "special_price_id": null,
                              "is_hidden": false,
                              "bronevik_rate_ids": null,
                              "agency_id": 58474,
                              "reaction": null,
                              "sync_at": "2025-06-16T11:30:24.239+03:00",
                              "preparing": false,
                              "partner": null,
                              "partner_uid": null,
                              "partner_guests_count": null,
                              "platform_tax": null,
                              "platform_tax_currency": null,
                              "hotels_101_rate_ids": null,
                              "automessages_enabled": false,
                              "uuid": "3ee9d678-2a88-4e74-ab7a-65b79091e332",
                              "secure_id": "o8yqwjeDQO",
                              "client": {
                                "id": 35632150,
                                "fio": "Кирилл",
                                "email": null,
                                "phone": "+7 999 888-88-88",
                                "additional_phone": null,
                                "created_at": "2025-06-16T11:30:17.195+03:00",
                                "updated_at": "2025-06-16T11:30:17.773+03:00",
                                "swindler_id": null,
                                "contact_text": "Кирилл\nзабронировал 24-25 июня, Тверская 18\n500/сут",
                                "modified_at": "2025-06-16T11:30:17.195+03:00",
                                "contact_text_for_ios": "24-25 июня; Тверская 18; Кирилл; 500",
                                "agency_id": 58474,
                                "last_numbers": null
                              },
                              "event_calendar_payments": [
                                {
                                  "id": 24902385,
                                  "rent_id": 113386019,
                                  "rent_payment_invoice_id": 117228,
                                  "user_id": 96663,
                                  "amount": 500,
                                  "is_approved": false,
                                  "note": null,
                                  "created_at": "2025-06-16T11:30:43.966+03:00",
                                  "updated_at": "2025-06-16T11:30:43.966+03:00",
                                  "timezone": "Europe/Moscow",
                                  "paid_at": "2025-06-16T11:30:43.966+03:00",
                                  "paymentable_type": null,
                                  "paymentable_id": null,
                                  "refunded": null,
                                  "type": "payment",
                                  "payment_type": "income",
                                  "email": null,
                                  "parent_payment_id": null,
                                  "payment_system": "manual",
                                  "paid_user_id": null,
                                  "is_delete": false,
                                  "refund_data": null,
                                  "refund_started_at": null,
                                  "moneta_payment_state": null,
                                  "creation_origin": "internal",
                                  "moneta_transaction_id": null,
                                  "uuid": "1a68362a-d287-424b-adcb-f7aea7e81642",
                                  "secure_id": "vBWPUdGmsM",
                                  "payment_link": null
                                }
                              ],
                              "url": "https://realtycalendar.ru/event_calendars/113386019",
                              "price_per_day": 500,
                              "apartment": {
                                "id": 208656,
                                "title": "Тверская 18"
                              },
                              "booking_origin": {
                                "id": null,
                                "title": null
                              },
                              "rent_payment_invoices": [
                                {
                                  "id": 117228,
                                  "name": "Перевод"
                                },
                                {
                                  "id": 111397,
                                  "name": "Сякой"
                                },
                                {
                                  "id": 104687,
                                  "name": "Карта"
                                },
                                {
                                  "id": 104427,
                                  "name": "Монета"
                                },
                                {
                                  "id": 104390,
                                  "name": "Наличные"
                                }
                              ],
                              "deposit_payment_links": [],
                              "payment_links": [],
                              "number_of_days": 2,
                              "number_of_nights": 1,
                              "balance_to_be_paid_1": 0,
                              "balance_to_be_paid_2": 0,
                              "address": "Тверская 18"
                            },
                            "crm_entity_id": null,
                            "bitrix_lead_id": null
                          }
                        }
                        



Пример вебхука на изменение брони

{
                      "action": "update_booking",
                      "status": "booked",
                      "data": {
                        "booking": {
                          "id": 113386019,
                          "begin_date": "2025-06-25",
                          "end_date": "2025-06-26",
                          "realty_id": 208656,
                          "user_id": 96663,
                          "created_at": "2025-06-16T11:30:24.239+03:00",
                          "updated_at": "2025-06-16T11:33:21.547+03:00",
                          "status_cd": 5,
                          "booking_id": null,
                          "amount": 500,
                          "is_delete": false,
                          "notes": "2 гостей",
                          "color": null,
                          "contacts": null,
                          "source": "manual",
                          "days": null,
                          "realty_room_id": null,
                          "max_days": null,
                          "closed_on_arrivial": false,
                          "closed_on_departure": false,
                          "rate_ids": null,
                          "single_use_amount": null,
                          "closed": false,
                          "min_stay_through": null,
                          "max_stay_through": null,
                          "ostrovok_rate_ids": null,
                          "ostrovok_occupancy_ids": null,
                          "booking_origin_id": null,
                          "oktogo_rate_ids": null,
                          "arrival_time": null,
                          "departure_time": null,
                          "prepayment": 500,
                          "client_id": 35632150,
                          "deposit": 0,
                          "is_send_confirm_email": false,
                          "payment": 500,
                          "use_rates_restrictions": false,
                          "expedia_rate_ids": null,
                          "special_price_id": null,
                          "is_hidden": false,
                          "bronevik_rate_ids": null,
                          "agency_id": 58474,
                          "reaction": null,
                          "sync_at": "2025-06-16T11:33:21.574+03:00",
                          "preparing": false,
                          "partner": null,
                          "partner_uid": null,
                          "partner_guests_count": null,
                          "platform_tax": null,
                          "platform_tax_currency": null,
                          "hotels_101_rate_ids": null,
                          "automessages_enabled": false,
                          "uuid": "3ee9d678-2a88-4e74-ab7a-65b79091e332",
                          "secure_id": "o8yqwjeDQO",
                          "client": {
                            "id": 35632150,
                            "fio": "Кирилл",
                            "email": null,
                            "phone": "+7 999 888-88-88",
                            "additional_phone": null,
                            "created_at": "2025-06-16T11:30:17.195+03:00",
                            "updated_at": "2025-06-16T11:30:17.773+03:00",
                            "swindler_id": null,
                            "contact_text": "Кирилл\nзабронировал 24-25 июня, Тверская 18\n500/сут",
                            "modified_at": "2025-06-16T11:30:17.195+03:00",
                            "contact_text_for_ios": "24-25 июня; Тверская 18; Кирилл; 500",
                            "agency_id": 58474,
                            "last_numbers": null
                          },
                          "payments_with_deleted": [
                            {
                              "id": 24902385,
                              "rent_id": 113386019,
                              "rent_payment_invoice_id": 117228,
                              "user_id": 96663,
                              "amount": 500,
                              "is_approved": false,
                              "note": null,
                              "created_at": "2025-06-16T11:30:43.966+03:00",
                              "updated_at": "2025-06-16T11:30:43.966+03:00",
                              "timezone": "Europe/Moscow",
                              "paid_at": "2025-06-16T11:30:43.966+03:00",
                              "paymentable_type": null,
                              "paymentable_id": null,
                              "refunded": null,
                              "type": "payment",
                              "payment_type": "income",
                              "email": null,
                              "parent_payment_id": null,
                              "payment_system": "manual",
                              "paid_user_id": null,
                              "is_delete": false,
                              "refund_data": null,
                              "refund_started_at": null,
                              "moneta_payment_state": null,
                              "creation_origin": "internal",
                              "moneta_transaction_id": null,
                              "uuid": "1a68362a-d287-424b-adcb-f7aea7e81642",
                              "secure_id": "vBWPUdGmsM",
                              "payment_link": null
                            },
                            {
                              "id": 24902540,
                              "rent_id": 113386019,
                              "rent_payment_invoice_id": 104427,
                              "user_id": 96663,
                              "amount": 2000,
                              "is_approved": false,
                              "note": null,
                              "created_at": "2025-06-16T11:33:17.273+03:00",
                              "updated_at": "2025-06-16T11:33:17.273+03:00",
                              "timezone": "Europe/Moscow",
                              "paid_at": null,
                              "paymentable_type": "Moneta::Income",
                              "paymentable_id": 2174830,
                              "refunded": null,
                              "type": "deposit",
                              "payment_type": "income",
                              "email": null,
                              "parent_payment_id": null,
                              "payment_system": "moneta",
                              "paid_user_id": null,
                              "is_delete": false,
                              "refund_data": null,
                              "refund_started_at": null,
                              "moneta_payment_state": null,
                              "creation_origin": "internal",
                              "moneta_transaction_id": null,
                              "uuid": "49052179-587b-44c8-a173-d8e6823bfe7f",
                              "secure_id": "KBbCuT0EaW",
                              "payment_link": "https://saferents.ru/d/KBbCuT0EaW"
                            }
                          ],
                          "url": "https://realtycalendar.ru/event_calendars/113386019",
                          "price_per_day": 500,
                          "apartment": {
                            "id": 208656,
                            "title": "Тверская 18"
                          },
                          "booking_origin": {
                            "id": null,
                            "title": null
                          },
                          "rent_payment_invoices": [
                            {
                              "id": 117228,
                              "name": "Перевод"
                            },
                            {
                              "id": 104687,
                              "name": "Карта"
                            },
                            {
                              "id": 104427,
                              "name": "Монета"
                            },
                            {
                              "id": 104390,
                              "name": "Наличные"
                            }
                          ],
                          "deposit_payment_links": [
                            "https://saferents.ru/d/KBbCuT0EaW"
                          ],
                          "payment_links": [],
                          "number_of_days": 2,
                          "number_of_nights": 1,
                          "balance_to_be_paid_1": 0,
                          "balance_to_be_paid_2": 0,
                          "address": "Тверская 18"
                        },
                        "changes": {
                          "event_calendar": {
                            "sync_at": [
                              null,
                              "2025-06-16T11:33:21.574+03:00"
                            ]
                          },
                          "client": {
                            "contact_text": [
                              null,
                              "Кирилл\nзабронировал 24-25 июня, Тверская 18\n500/сут"
                            ],
                            "contact_text_for_ios": [
                              null,
                              "24-25 июня; Тверская 18; Кирилл; 500"
                            ],
                            "modified_at": [
                              null,
                              "2025-06-16T11:30:17.195+03:00"
                            ]
                          },
                          "event_calendar_payments": [
                            {
                              "24902385": {
                                "rent_id": 113386019,
                                "rent_payment_invoice_id": 117228,
                                "user_id": 96663,
                                "amount": 500,
                                "is_approved": false,
                                "note": null,
                                "timezone": "Europe/Moscow",
                                "paid_at": "2025-06-16T11:30:43.966+03:00",
                                "paymentable_type": null,
                                "paymentable_id": null,
                                "refunded": null,
                                "type": "payment",
                                "payment_type": "income",
                                "email": null,
                                "parent_payment_id": null,
                                "payment_system": "manual",
                                "paid_user_id": null,
                                "is_delete": false,
                                "refund_data": null,
                                "refund_started_at": null,
                                "moneta_payment_state": null,
                                "creation_origin": "internal",
                                "moneta_transaction_id": null,
                                "uuid": null,
                                "secure_id": "vBWPUdGmsM"
                              }
                            },
                            {
                              "24902540": {
                                "rent_id": 113386019,
                                "rent_payment_invoice_id": 104427,
                                "user_id": 96663,
                                "amount": 2000,
                                "is_approved": false,
                                "note": null,
                                "timezone": "Europe/Moscow",
                                "paid_at": null,
                                "paymentable_type": "Moneta::Income",
                                "paymentable_id": 2174830,
                                "refunded": null,
                                "type": "deposit",
                                "payment_type": "income",
                                "email": null,
                                "parent_payment_id": null,
                                "payment_system": "moneta",
                                "paid_user_id": null,
                                "is_delete": false,
                                "refund_data": null,
                                "refund_started_at": null,
                                "moneta_payment_state": null,
                                "creation_origin": "internal",
                                "moneta_transaction_id": null,
                                "uuid": null,
                                "secure_id": "KBbCuT0EaW"
                              }
                            }
                          ]
                        },
                        "crm_entity_id": null,
                        "bitrix_lead_id": null
                      }
                    }
                    

Частые вопросы

1. Будут ли выгружены все бронирования, сделанные до подключения Webhook?

Нет, Webhook будут отправляться только по новым событиям.

2. Будет ли отправлен Webhook об изменениях брони, если даты уже прошли?

Webhook будет отправляться по всем событиям. Если бронь была создана до подключения хука, то хук на создание брони не придёт. Однако все изменения по брони будут поступать.

3. Как повторно отправить выгрузку через Webhook?

Для активации хука нужно изменить бронирование.

4. Сколько времени длится передача данных через Webhook?

Обычно передача данных занимает всего несколько секунд.

5. У вас есть внешний API?

На данный момент у нас нет внешнего партнёрского API, которое мы официально поддерживаем и сопровождаем.

6. Остались вопросы?

Напишите, пожалуйста, на почту: partners@realtycalendar.ru