Webhook Event Types
Reference for the payload shape of every event Hostex emits. Read the
Usage Guide first for headers, delivery semantics,
and security.
All payloads share the envelope:
{
"event": "<event_name>",
"data": { /* event-specific, documented below */ },
"timestamp": "2026-05-22T02:51:12Z"
}
Payload field names match the corresponding
GET /<resource>
response in the OpenAPI spec — see the API Reference section for
per-field types.
reservation_created
reservation_createdFired when a new reservation lands in Hostex — from any channel
(Airbnb, Booking.com, custom-channel via POST /reservations, etc.).
{
"event": "reservation_created",
"data": {
"reservation_code": "ABC123",
"stay_code": "ABC123",
"channel_type": "airbnb",
"property_id": 12345,
"check_in_date": "2026-06-01",
"check_out_date": "2026-06-05",
"status": "accepted",
"guest": {
"name": "Jane Doe",
"email": "[email protected]",
"phone": "+1 555 123 4567"
},
"booked_at": "2026-05-22T02:50:00+00:00"
}
}
Use it to: index a new booking, trigger an onboarding email, create a
cleaning task for the day before check-in.
reservation_updated
reservation_updatedFired when an existing reservation changes in any of these ways:
- Status transition (e.g.
accepted→cancelled). - Date / guest-count change.
- Property reassignment (allocate / move-to-box).
- Charge / financial change (added or modified
ReservationCharge). - Tag attached or detached.
note(host-side reservation remarks) edited.
{
"event": "reservation_updated",
"data": {
"reservation_code": "ABC123",
"stay_code": "ABC123",
"channel_type": "airbnb",
"property_id": 12345,
"status": "cancelled",
"...": "..."
}
}
Tip: the payload only confirms that the reservation changed; if you need
the post-change snapshot, call GET /reservations?id=<...> and read the
fresh state. Avoid trying to diff payloads — the same reservation can
emit several reservation_updated events in quick succession.
property_availability_updated
property_availability_updatedFired when a property's Hostex-side availability is changed via
POST /availabilities (or the equivalent portal action). Not fired for
channel-side calendar updates — see listing_calendar_updated for those.
{
"event": "property_availability_updated",
"data": {
"property_id": 12345,
"start_date": "2026-06-01",
"end_date": "2026-06-30",
"available": false,
"source": "openapi"
}
}
listing_calendar_updated
listing_calendar_updatedFired when a channel-side listing's calendar changes (prices,
inventories, restrictions) — either via POST /listings/* from your
integration or via Hostex's own channel-sync.
{
"event": "listing_calendar_updated",
"data": {
"channel_account_id": 9876,
"channel_type": "airbnb",
"listing_id": "12345-ABC",
"property_id": 12345,
"fields_changed": ["price", "min_nights"],
"start_date": "2026-06-01",
"end_date": "2026-06-30"
}
}
Use it to: keep your own price intelligence / channel-manager bridge
in sync without polling POST /listings/calendar.
message_created
message_createdFired when a new message arrives in any conversation thread (inbound
from the guest, outbound from your own POST /conversations/{id} calls,
or sent from inside the Host Portal).
{
"event": "message_created",
"data": {
"message_id": "msg_abc",
"conversation_id": "thread_xyz",
"channel_type": "airbnb",
"sender_role": "guest",
"sender_name": "Jane Doe",
"display_type": "Text",
"content": "Hi! What time can I check in?",
"created_at": "2026-05-22T02:51:12+00:00"
}
}
Pair with GET /conversations/{id} for full thread context (activities,
note, etc.). This is the recommended trigger for live inbox UIs.
review_created
review_createdFired when a new review is created — either by the guest, the host
(via POST /reviews/{reservation_code}), or the host portal.
{
"event": "review_created",
"data": {
"reservation_code": "ABC123",
"channel_type": "airbnb",
"property_id": 12345,
"review_status": "reviewed",
"rating": 5,
"comment": "Lovely stay!",
"...": "..."
}
}
review_updated
review_updatedFired when an existing review is updated — typically when the host
adds, edits, or removes a reply.
{
"event": "review_updated",
"data": {
"reservation_code": "ABC123",
"channel_type": "airbnb",
"property_id": 12345,
"rating": 5,
"host_reply": "Thanks for staying with us!",
"...": "..."
}
}
Forward compatibility
Hostex may add new events or new fields to existing events at any time
without bumping the v3 API version. Your handler must:
- Ignore unknown event types (drop or log; do not crash).
- Ignore unknown fields within known events.
- Re-derive state from the API when the payload is not enough —
the webhook is a "something changed, go look" signal, not a full
change feed.
When new events are added, they will be announced in the
Changelog.
