reservation.created
reservation.updated
reservation.cancelled
Reservation webhooks send real-time events whenever a reservation is created, updated, or cancelled in MiniHotel.
These events apply to reservations from all sources, including reservations created manually by MiniHotel users, reservations received through the Booking Engine, OTA reservations, reservations created or updated by integrated partners, and reservations from any other connected source.
The payload structure is the same for reservation.created, reservation.updated, and reservation.cancelled. For cancelled reservations, the webhook is sent with the same payload structure, and the reservation status is returned as CL.
The payload may include multiple rooms in the rooms array as well as in the members array.
The event type is indicated by the notificationType field:
reservation.createdreservation.updatedreservation.cancelled
Payload
Main Payload
| Field | Type | Format / Example | Description |
|---|---|---|---|
reservationNumber | String | "007004731" | MiniHotel reservation number. |
source | String | "BookingEngine", "BOOKING", "EXPEDIA", "TELEPHONE" | Reservation source. |
status | String | "OK", "IN", "OUT", "CL" | Current reservation status. For cancelled reservations, the status is CL. |
header | Object | {} | Main reservation and guest details. |
members | Array | [] | Reservation guests / members. |
otaInfo | Object | {} | OTA / portal reservation information. |
total | Object | {} | Reservation total amount and currency. |
timestamp | String | yyyy-MM-dd HH:mm:ss / "2026-02-03 00:03:29" | UTC datetime indicating when the event/change was generated. |
Header
| Field | Type | Format / Example | Description |
|---|---|---|---|
firstName | String | "John" | Guest first name. |
lastName | String | "Doe" | Guest last name. |
idNumber | String | "123456789" | Guest ID or passport number, when available. |
email | String | "[email protected]" | Guest email address, when available. |
phone | String | "+1 555 123 4567" | Guest phone number, when available. |
countryCode | String | "US" | Guest country code, usually ISO 2-letter country code. |
city | String | "New York" | Guest city, when available. |
checkInDate | String | yyyy-MM-ddTHH:mm:ss / "2026-02-03T15:00:00" | Reservation check-in datetime. |
checkOutDate | String | yyyy-MM-ddTHH:mm:ss / "2026-02-05T11:00:00" | Reservation check-out datetime. |
rooms | Array | [] | Rooms included in the reservation. |
Rooms
| Field | Type | Format / Example | Description |
|---|---|---|---|
roomNumber | String | "0101" | Assigned room number. |
roomType | String | "DBL" | Assigned room type/code. |
Members
| Field | Type | Format / Example | Description |
|---|---|---|---|
status | String | "OK", "IN", "OUT", "CL" | Member status. |
serial | String | "00001" | Member serial number. |
roomNumber | String | "0101" | Assigned room number. |
firstName | String | "Jane" | Guest first name. |
lastName | String | "Smith" | Guest last name. |
idNumber | String | "987654321" | Guest ID or passport number, when available. |
email | String | "[email protected]" | Guest email address, when available. |
phone | String | "+1 555 987 6543" | Guest phone number, when available. |
checkInDate | String | yyyy-MM-ddTHH:mm:ss / "2026-02-03T15:00:00" | Guest/room check-in datetime. |
checkOutDate | String | yyyy-MM-ddTHH:mm:ss / "2026-02-05T11:00:00" | Guest/room check-out datetime. |
guestCount | Object | {} | Guest count breakdown. |
lockKeys | Array | [] | Smart-lock access information for the assigned room, when available. |
Lock Keys
The lockKeys array contains access and setup information for the smart lock associated with the member's assigned room. Currently, only TTLock integrations are supported.
| Field | Type | Format / Example | Description |
|---|---|---|---|
room | String | "002" | Room number associated with the lock and access key. |
key | String | "9999" | Key or PIN used to unlock the room door. |
lockId | String | "13651465" | Lock identifier used for integration setup purposes. |
lockName | String | "Lock 123" | Lock name used for integration setup and identification. |
Guest Count
| Field | Type | Format / Example | Description |
|---|---|---|---|
adults | Number | 2 | Number of adults. |
childs | Number | 1 | Number of children. |
babies | Number | 0 | Number of babies. |
youth | Number | 0 | Number of youth guests. |
OTA Info
| Field | Type | Format / Example | Description |
|---|---|---|---|
portalResNumber | String | "1234567890" | OTA / portal reservation number. |
portal | String | "BOOKING" | OTA / portal name. |
portalInternalId | String | "BOOKING" | OTA / portal internal ID. |
Total
| Field | Type | Format / Example | Description |
|---|---|---|---|
amount | Number | 450.00 | Reservation total amount. |
currency | String | "USD" | Reservation currency code, usually ISO 4217. |
Payload Examples
New Reservation Example
{
"eventID": "597828f9-5870-473c-afe6-022771d72b66",
"notificationID": 206,
"hotelCode": "sandbox",
"notificationType": "reservation.created",
"payload": {
"reservationNumber": "007004731",
"source": "TELEPHONE",
"status": "OK",
"header": {
"firstName": "John",
"lastName": "Connor",
"idNumber": "3655221",
"email": "[email protected]",
"phone": "+1 25365 23256",
"countryCode": "US",
"city": "Florida",
"checkInDate": "2026-06-20T10:01:00",
"checkOutDate": "2026-06-22T09:45:00",
"rooms": [
{
"roomNumber": "101",
"roomType": "DBL"
},
{
"roomNumber": "205",
"roomType": "TWN"
}
]
},
"members": [
{
"status": "",
"serial": "00001",
"roomNumber": "101",
"firstName": "John",
"lastName": "Connor",
"idNumber": "3655221",
"email": "[email protected]",
"phone": "+1 25365 23256",
"checkInDate": "2026-06-20T00:00:00",
"checkOutDate": "2026-06-22T00:00:00",
"guestCount": {
"adults": 1,
"childs": 0,
"babies": 0,
"youth": 0
},
"lockKeys": [
{
"room": "101",
"key": "9999",
"lockId": "13651465",
"lockName": "Room 101 Lock"
}
]
},
{
"status": "",
"serial": "00002",
"roomNumber": "205",
"firstName": "Sarah",
"lastName": "Connor",
"idNumber": "3655222",
"email": "[email protected]",
"phone": "+1 25365 23257",
"checkInDate": "2026-06-20T00:00:00",
"checkOutDate": "2026-06-22T00:00:00",
"guestCount": {
"adults": 1,
"childs": 1,
"babies": 0,
"youth": 0
},
"lockKeys": [
{
"room": "205",
"key": "8888",
"lockId": "13651466",
"lockName": "Room 205 Lock"
}
]
}
],
"otaInfo": {
"portalResNumber": "X000001",
"portal": "BOOKING",
"portalInternalId": "BOOKING1"
},
"total": {
"amountAfterTaxes": 2000.00,
"currency": "EUR"
},
"timestamp": "2026-06-10 13:57:30"
}
}
Modified Reservation Example
This is a partial example. The webhook is sent with the same payload structure as reservation.created.
{
"eventID": "597828f9-5870-473c-afe6-022771d72b66",
"notificationID": 207,
"hotelCode": "sandbox",
"notificationType": "reservation.updated",
"payload": {
"reservationNumber": "007004731",
"source": "TELEPHONE",
"status": "WL",
"timestamp": "2026-06-10 14:10:00"
}
}
Cancelled Reservation Example
This is a partial example. The webhook is sent with the same payload structure as reservation.created.
{
"eventID": "597828f9-5870-473c-afe6-022771d72b66",
"notificationID": 207,
"hotelCode": "sandbox",
"notificationType": "reservation.cancelled",
"payload": {
"reservationNumber": "007004731",
"source": "TELEPHONE",
"status": "CL",
"timestamp": "2026-06-10 14:10:00"
}
}
OK: Confirmed
OK1–OK9: Mostly available for custom use
OK2: Confirmed – Channel Manager / OTAs
OK4: Confirmed – Booking Engine (Homepage)
WL: Waiting List
PN: Pending
IN: Checked-in
OUT: Checked-out
CL: Cancelled
BL: Blacklisted
LWP: Left Without Payment
BID: Bid / Quote
CLOSE: Closed Room
ALC: Allocation
PRE: Pre-authorization
ℹ️ Additional status values can be customized in the system setup.
