Reservation Webhooks

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.created
  • reservation.updated
  • reservation.cancelled

Payload


Main Payload

FieldTypeFormat / ExampleDescription
reservationNumberString"007004731"MiniHotel reservation number.
sourceString"BookingEngine", "BOOKING", "EXPEDIA", "TELEPHONE"Reservation source.
statusString"OK", "IN", "OUT", "CL"Current reservation status. For cancelled reservations, the status is CL.
headerObject{}Main reservation and guest details.
membersArray[]Reservation guests / members.
otaInfoObject{}OTA / portal reservation information.
totalObject{}Reservation total amount and currency.
timestampStringyyyy-MM-dd HH:mm:ss / "2026-02-03 00:03:29"UTC datetime indicating when the event/change was generated.

Header

FieldTypeFormat / ExampleDescription
firstNameString"John"Guest first name.
lastNameString"Doe"Guest last name.
idNumberString"123456789"Guest ID or passport number, when available.
emailString"[email protected]"Guest email address, when available.
phoneString"+1 555 123 4567"Guest phone number, when available.
countryCodeString"US"Guest country code, usually ISO 2-letter country code.
cityString"New York"Guest city, when available.
checkInDateStringyyyy-MM-ddTHH:mm:ss / "2026-02-03T15:00:00"Reservation check-in datetime.
checkOutDateStringyyyy-MM-ddTHH:mm:ss / "2026-02-05T11:00:00"Reservation check-out datetime.
roomsArray[]Rooms included in the reservation.

Rooms

FieldTypeFormat / ExampleDescription
roomNumberString"0101"Assigned room number.
roomTypeString"DBL"Assigned room type/code.

Members

FieldTypeFormat / ExampleDescription
statusString"OK", "IN", "OUT", "CL"Member status.
serialString"00001"Member serial number.
roomNumberString"0101"Assigned room number.
firstNameString"Jane"Guest first name.
lastNameString"Smith"Guest last name.
idNumberString"987654321"Guest ID or passport number, when available.
emailString"[email protected]"Guest email address, when available.
phoneString"+1 555 987 6543"Guest phone number, when available.
checkInDateStringyyyy-MM-ddTHH:mm:ss / "2026-02-03T15:00:00"Guest/room check-in datetime.
checkOutDateStringyyyy-MM-ddTHH:mm:ss / "2026-02-05T11:00:00"Guest/room check-out datetime.
guestCountObject{}Guest count breakdown.
lockKeysArray[]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.

FieldTypeFormat / ExampleDescription
roomString"002"Room number associated with the lock and access key.
keyString"9999"Key or PIN used to unlock the room door.
lockIdString"13651465"Lock identifier used for integration setup purposes.
lockNameString"Lock 123"Lock name used for integration setup and identification.

Guest Count

FieldTypeFormat / ExampleDescription
adultsNumber2Number of adults.
childsNumber1Number of children.
babiesNumber0Number of babies.
youthNumber0Number of youth guests.

OTA Info

FieldTypeFormat / ExampleDescription
portalResNumberString"1234567890"OTA / portal reservation number.
portalString"BOOKING"OTA / portal name.
portalInternalIdString"BOOKING"OTA / portal internal ID.

Total

FieldTypeFormat / ExampleDescription
amountNumber450.00Reservation total amount.
currencyString"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.