Scheduled hourly push of reservation data (Confirm or Cancel) to your registered push-book webhook, plus full inbound payload reference.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Scheduled push-booking (cron)
Nuitee Cloud documentation describes an hourly job that pushes reservations to the URL you registered with POST /push/webhook/pushbook.
Push booking runs automatically via a cron job every 1 hour. The service fetches bookings, builds the reservation payload, and forwards it to your configured push-book webhook. No manual API call is required for scheduled delivery.
Confirm with onboarding: exact cron expression, timezone (UTC vs property local), status filter, retry policy, and lookback window for missed reservations may vary by deployment.
What you should implement
- Idempotent processing by
reservation_id - Accept repeated POSTs for the same booking
- Return HTTP 2xx quickly; defer heavy PMS work to a queue if needed
Inbound payload (Nuitee Cloud → your webhook)
Below is the Request payload that Nuitee Cloud sends to the webhook url.
{
"hotelId": "hopper_13",
"reservations": {
"reservation": [
{
"reservation_datetime": "2025-02-18T16:14:54",
"propertyname": "IDOU New York",
"reservation_id": "55191",
"special_request": "Late check-in requested",
"totalamountaftertax": "120.00",
"totaltax": "10.00",
"currencycode": "USD",
"status": "Cancel",
"customer": {
"first_name": "nuitee",
"last_name": "travel"
},
"paymentcarddetail": {
"CardHolderName": "nuitee travel",
"CardType": "VI",
"ExpireDate": "01/2030",
"CardNumber": "4111111111111111",
"cvv": "123"
},
"room": [
{
"arrival_date": "2025-03-01",
"departure_date": "2025-03-02",
"room_id": "RMID56890",
"room_name": "Double Room",
"price": [
{
"date": "2025-03-01",
"rate_id": "RTID",
"rate_name": "RTID",
"amountaftertax": "120.00"
}
],
"first_name": "nuitee",
"last_name": "travel",
"taxes": [
{
"name": "VAT",
"value": "10.00"
}
],
"amountaftertax": "120.00",
"GuestCount": [
{
"AgeQualifyingCode": "10",
"Count": "2"
}
]
}
]
}
]
}
}Request body structure
When we call your webhook, the request body has this structure. All fields use string values unless noted.
Payment information: All reservations may include Virtual Credit Card (VCC) details for payment.
| Path | Type | Description |
|---|---|---|
| Root | ||
hotelId | string | Supplier property code — must match mapping from /push/hotels |
reservations | object | Container for reservation data |
reservations.reservation | array | List of reservation objects |
| reservation | ||
reservation_datetime | string | Created time YYYY-MM-DDTHH:mm:ss |
propertyname | string | Property display name |
reservation_id | string | Unique reservation id — use for idempotency |
special_request | string | Guest remarks |
totalamountaftertax | string | Total including tax |
totaltax | string | Total tax |
currencycode | string | ISO currency (e.g. USD) |
status | string | Confirm — new/confirmed; Cancel — cancelled |
| reservation.customer | object | Primary guest |
customer.first_name | string | Guest first name |
customer.last_name | string | Guest last name |
| reservation.paymentcarddetail | object | VCC / card details when applicable |
paymentcarddetail.CardHolderName | string | Name on card |
paymentcarddetail.CardType | string | e.g. VI, MC |
paymentcarddetail.ExpireDate | string | e.g. 01/2030 |
paymentcarddetail.CardNumber | string | Card number |
paymentcarddetail.cvv | string | Security code |
| reservation.room | array | Room stay(s) |
room.arrival_date | string | Check-in YYYY-MM-DD |
room.departure_date | string | Check-out YYYY-MM-DD |
room.room_id | string | Supplier room code — same as roomId in products/ARI |
room.room_name | string | Room type name |
room.price | array | Per-date price breakdown |
room.first_name | string | Guest first name for room |
room.last_name | string | Guest last name for room |
room.taxes | array | Tax lines |
room.taxes[].name | string | Tax name |
room.taxes[].value | string | Tax amount |
room.amountaftertax | string | Room total after tax |
room.GuestCount | array | Guest counts by age code |
room.GuestCount[].AgeQualifyingCode | string | e.g. 10 adult, 8 child |
room.GuestCount[].Count | string | Count in category |
| room.price (each element) | Same rate plan for all stay dates; rate_id / rate_name constant with different nightly amountaftertax per date | |
price[].date | string | Rate date YYYY-MM-DD |
price[].rate_id | string | Supplier rate code — same as rateId in products/ARI |
price[].rate_name | string | Rate plan name |
price[].amountaftertax | string | Nightly amount (typically tax-inclusive) |
Expected response (your webhook → Nuitee Cloud)
Return HTTP 2xx when you accept the reservation. Error body format (when applicable):
{
"code": 500,
"message": "An unexpected error occurred",
"requestId": "b47ead9ed7c8d18243bcd68e6260062e",
"bookingId": "123456"
}requestId and bookingId may be present on some platform flows — confirm with onboarding.
Manual push API
POST /push/webhook/booking can trigger an on-demand push of a single booking to your webhook when enabled. See Push booking for registration of your URL.
Related
- Push booking webhook — registration
- Bookings overview