Real-time Push Reservation

Real-time push reservations provide your application with instant notifications of new/updated reservations as
they are received by HotelRunner.

Create a Callback URL

When we have new updates to send your server, we do a simple POST with a payload containing updates to a URL on your server.
This callback URL must be HTTPS and support POST method.

https://yourdomain.com/callback

The POST you will see coming will look like this:

var data = new FormData();
data.append("data", "STRING_JSON_RESERVATION_DATA");
var xhr = new XMLHttpRequest();
xhr.open("POST", "https://yourdomain.com/callback?token={TOKEN}&hr_id={HR_ID}");
xhr.send(data);

The above url includes JSON data structured like this:

{
      "reason": "modify",
      "hr_number": "R754208185",
      "provider_number": "32423234422",
      "channel": "bookingcom",
      "channel_display": "Booking.com",
      "state": "confirmed",
      "modified": false,
      "guest": "John Doe",
      "cancel_reason": null,
      "completed_at": "2015-01-21T10:01:25Z",
      "updated_at": "2015-01-21T09:02:51Z",
      "sub_total": 370.0,
      "extras_total": 0.0,
      "adjustments_total": 0.0,
      "tax_total": 30.0,
      "total": 400.0,
      "currency": "EUR",
      "checkin_date": "2015-01-11",
      "checkout_date": "2015-01-12",
      "note": null,
      "payment": "credit_card",
      "requires_response": true,
      "address": {
        "city": "Istanbul",
        "state": "",
        "country": "Turkey",
        "country_code": "TR",
        "phone": "90955223454",
        "email": "guest@example.net",
        "street": "Bagdat Cad. Istanbul",
        "street_2": null
      },
      "rooms": [
        {
          "state": "confirmed",
          "rate_code": "NR:HR:10105",
          "inv_code": "HR:10105",
          "non_refundable": true,
          "price": 200.0,
          "nights": 1,
          "total_guest": 2,
          "total_adult": 2,
          "child_ages": [

          ],
          "name": "Queen Room - Disability Access - Deluxe Rate",
          "checkin_date": "2015-01-11",
          "checkout_date": "2015-01-12",
          "extra_info": "Room Extra Info:Modern bir şekilde dekore edilmiş bu stüdyoda çalışma masası ve özel banyo bulunmaktadır.\nMeal Plan:Kahvaltı oda fiyatına dahildir.\nNon-Smoking Room",
          "daily_prices": [
            {
              "date": "2015-01-11",
              "price": "200.0"
            }
          ],
          "extras": [

          ]
        },
        {
          "state": "confirmed",
          "rate_code": "HR:10105",
          "inv_code": "HR:10105",
          "non_refundable": false,
          "price": 200.0,
          "nights": 1,
          "total_guest": 2,
          "total_adult": 2,
          "child_ages": [

          ],
          "name": "Single Room - Non Refundable Rate",
          "checkin_date": "2015-01-11",
          "checkout_date": "2015-01-12",
          "extra_info": "Room Extra Info:Modern bir şekilde dekore edilmiş bu stüdyoda çalışma masası ve özel banyo bulunmaktadır.\nMeal Plan:Kahvaltı oda fiyatına dahildir.\nNon-Smoking Room",
          "daily_prices": [
            {
              "date": "2015-01-11",
              "price": "200.0"
            }
          ],
          "extras": [

          ]
        }
      ]
 }


The above command should return json structured like this:

 {
    'status': 'ok'
 }

Reservation Object

Name Description
reason Reason of push notification: (modify, cancel, confirm)
hr_number Reservation code on HotelRunner
provider_number Reservation code on Sales Channel (can be blank*)
channel Sales channel code
channel_display Sales channel name
state Reservation status on HotelRunner (reserved,confirmed, canceled)*
modified Indicates that whether the reservation has been modified after your last activity.
guest Guest name, who made the reservation
cancel_reason Cancel reason (can be blank*)
completed_at The time that shows when HotelRunner received the reservation (UTC)
updated_at The time that shows when HotelRunner received the latest update (UTC)
sub_total Sub total (tax not included)
extras_total Extras total (tax not included)
adjustments_total Adjustments total (Price adjustments total that made by Property Admin)
tax_total Tax total
total Grand total
currency Currency (ISO-4217)
checkin_date Check-in Date
checkout_date Check-out Date
note Guest note (can be blank*)
payment Payment method information (credit_card, bank_transfer, cash, paypal)
requires_response Indicates the ability of a PMS that can be able to send state updates or not.
address See address json structure.
rooms > inv_code Inventory Code (Allocation group).
rooms > rate_code Rate Code.
rooms > state The line item state in reservation. (reserved,confirmed, canceled)*

*blank: Empty or Null

*payment: We don't share credit card information.

*reserved: Initial state of reservation.

*confirmed: Next state of reservation when Hotelier confirms it.