BookingWhizz Webhooks API Documentation

  
                

Introduction

Welcome to the BookingWhizz Webhooks API, designed for seamless integration with hospitality management systems. This API enables hotels, property management systems (PMS), and travel platforms to centralize guest profiles, reservations, and stay data for improved guest experience, booking automation, loyalty programs, and revenue tracking.

How It Works

The API consists of three main webhook endpoints:

  • Guest Profile Webhook – Captures guest details and preferences.
  • Reservation Webhook – Manages reservation data including check-in/out, source tracking, and market segmentation.
  • Stay Data Webhook – Tracks room charges, payments, and revenue for loyalty programs and financial insights.

All webhook requests require authentication headers (Client ID & Password) and must be formatted in JSON.

Authentication

Each API request requires Basic Authentication using a Client ID and Password. Credentials must be included in the request headers.

How to Get API Credentials

To obtain your API credentials, please email: support@bookingwhizz.com

PROFILES

API Endpoint

https://webhooks.bookingwhizz.com/{engine-name}/profile


                    


                
                    <?php
                    $curl = curl_init();
                    curl_setopt_array($curl, array(
                    CURLOPT_URL => 'https://webhooks.bookingwhizz.com/{engine-name}/profiles',
                    CURLOPT_RETURNTRANSFER => true,
                    CURLOPT_ENCODING => '',
                    CURLOPT_MAXREDIRS => 10,
                    CURLOPT_TIMEOUT => 0,
                    CURLOPT_FOLLOWLOCATION => true,
                    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                    CURLOPT_CUSTOMREQUEST => 'POST',
                    CURLOPT_HTTPHEADER => array(
                        'client-id: Test',
                        'password: 1234567',
                        'Content-Type: application/json'
                        ),
                    ));

                    $response = curl_exec($curl);

                    curl_close($curl);
                    echo $response;
                    ?>
                                

Used to send guest details, preferences, and personal information.

POST call to the following url :
https://webhooks.bookingwhizz.com/{engine-name}/profile



Request example :
    {
    "id":"123",
    "accommodationId":"00512",
    "profileType":"1", // 1 for GUEST, 2 for Company
    "title":"Mr",
    "firstName":"John",
    "middleName":"",
    "lastName":"Smith",
    "gender":"Male",
    "email":"test@gmail.com",
    "phoneNumber":"+1234567890",
    "languageCode":"EN",
    "nationality":"Indian",
    "dateOfBirth":"21/07/96",
    "placeOfBirth":"",
    "company":"",
    "notes":"",
    "address":"Street no 12, Delhi, India",
    "city":"Delhi",
    "postalCode":"123",
    "country":"India",
    "createdAt":"2025-11-04 06:39:04",
    "updatedAt":"2025-11-04 06:39:04",
    }
        
Response: { "success": true, "message": "Created Successfully." }

HEADER

Field Type Description
client-id String (required) The client-id associated with the user. This is typically used for user authentication or account identification
password String (required) The user's password used for authentication. This field is required for post data

BODY

PATH PARAMETER TYPE Req/Opt Description
id String Required The unique identifier for the Guests resource
accommodationId Numeric Required Property Code
profileType Numeric Required Profile type Guest, Company, Travel Agent
title String Optional One or more words used before the person's name. In some contexts it may signify veneration, an official position, or a professional or academic qualification.
firstName String Required The first name of the guest the resource is for.
middleName String Optional The middle name of the guest the resource is for.
lastName String Required The last name of the guest the resource is for.
gender String Optional There is special case for gender, as per the ISO/IEC 5218 standard, if the PMS doesn't provide the information the value returned will not be null, and instead will be 0. This special case does not exempt gender from the caveat linked above
email String Required Email addresses, the PMS has record of, for the guest in question.
phoneNumber String Required Telephone numbers, the PMS has record of, for the guest in question.
languageCode String Optional Language of the guest in ISO 639-3.
nationality String Required Nationality, the PMS has record of, for the guest in question in ISO 3166-1 alpha-3 format.
dateOfBirth String Optional Date of birth, the PMS has record of, for the guest in question in ISO-8601 format.
placeOfBirth String Optional Place of birth, the PMS has record of, for the guest in question.
Company String Optional
notes String Optional A free text field for notes that the PMS holds on the guest in question.
address String Optional Addresses, the PMS has record of, for the guest in question.
city String Required City, the PMS has record of, for the guest
postalCode String Optional Postal Code, the PMS has record of, for the guest.
country String Required Country Name, the PMS has record of, for the guest in question in.
createdAt DateTime Required YYYY-MM-DD h:s:i
updatedAt DateTime Required YYYY-MM-DD h:s:i

BOOKING DATA


                    
     <?php
     $curl = curl_init();
     curl_setopt_array($curl, array(
     CURLOPT_URL => 'https://webhooks.bookingwhizz.com/{engine-name}/bookings',
     CURLOPT_RETURNTRANSFER => true,
     CURLOPT_ENCODING => '',
     CURLOPT_MAXREDIRS => 10,
     CURLOPT_TIMEOUT => 0,
     CURLOPT_FOLLOWLOCATION => true,
     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
     CURLOPT_CUSTOMREQUEST => 'POST',
     CURLOPT_HTTPHEADER => array(
         'client-id: Test',
         'password: 1234567',
         'Content-Type: application/json'
         ),

    $response = curl_exec($curl);

     curl_close($curl);
     echo $response;
     ?>
                 

Used to handle reservation details, source tracking, and market segmentation.

POST call to the following url :
https://webhooks.bookingwhizz.com/{engine-name}/bookings



 Request Sample:
     {
        "accommodationId":"00512",
        "data":{
        "reservationId":"68003",
        "type":"BOOKING_CREATED",
        "externalReference":"",
        "checkInDate":"2022-11-28",
        "checkOutDate":"2022-11-30",
        "arrivalTime":"10:00",
        "departureTime":"14:00",
        "bookingStatus":"EXPECTED",
        "adults":1,
        "children":0,
        "roomQuantity":1,
        "marketCode":"COR",
        "marketDescription":"Corporate Negotiated Rates",
        "sourceCode":"HST",
        "sourceDescription":"Hotel Sales Team",
        "createdAt":"2025-11-04 06:39:04",
        "updatedAt":"2025-11-04 06:39:04",
        "roomDetails":[
        {
        "roomNumber":"527",
        "roomType":"EXK",
        "ratePlanType":"Bed & Breakfast",
        "rateCode":"BNB",
        "netAmount":100.00,
        "taxAmount":20.00,
        "grossAmount":120.00,
        "currencyCode":"USD",
        "guestProfile":[
        {
        "id":"123",
        "accommodationId":"00512",
        "profileType":"1",
        "title":"Mr",
        "firstName":"John",
        "middleName":"",
        "lastName":"Smith",
        "gender":"Male",
        "email":"test@gmail.com",
        "phoneNumber":"+1234567890",
        "languageCode":"EN",
        "nationality":"Indian",
        "dateOfBirth":"21/07/96",
        "placeOfBirth":"",
        "company":"",
        "notes":"",
        "addresses":"Street no 12, Delhi, India",
        "city":"Delhi",
        "postalCode":"123",
        "country":"India",
        "createdAt":"2025-11-04 06:39:04",
        "updatedAt":"2025-11-04 06:39:04",
                                    }
                                ]
                            }
                        ]
                }
            }

            
Response: { "success": true, "message": "Created Successfully." }

HEADER

Field Type Description
client-id String (required) The client-id associated with the user. This is typically used for user authentication or account identification
password String (required) The user's password used for authentication. This field is required for post data

BODY

PATH PARAMETER TYPE Req/Opt DESCRIPTION
reservationId String Required This is the unique identifier for this booking. In most cases, hotel staff or guests won't know about or use this number.
reference String Optional The identifier hotel staff uses to look up the booking in their system. For guests who called in to make a booking (as opposed to booked through external channels like online travel agencies), this is the confirmation identifier they receive.
status String Required Booking Status (RESERVED, CHECKED_IN, CHECKED_OUT, NO_SHOW, CANCELLED).
externalReferences String Optional References generated by external systems that the guest or booker might use for to identify the booking. This could be the confirmation number a online travel agency like Booking.com uses in their system, as opposed to the reference that is generated in the hotel system. As bookings are created through multiple systems, they might have multiple external references. As an example, a booking created by HRS through a Global Distribution System (GDS) might have a confirmation number generated by HRS as well as a GDS Personal Record Number.
ratePlanId String Required
rateCode String Optional
market String Optional Used to identify the market segment this booking belongs to. Hotels often use this information to track performance in certain segments, e.g. business travel, individual guests or guests who stay through wholesale contracts. These values vary by hotel and aren't globally mapped.
source String Required Used by hotels to identify the source of business (e.g. mail, telephone, fax, central reservations, specific travel agencies like Booking.com or Expedia). These values vary by hotel and aren't globally mapped.
origin String Optional Typically used by hotels to identify the technical source of a Booking. These are often values like mail, telephone, fax, central reservations, travel agency or global distribution systems. These values vary by hotel and aren't globally mapped.
channelManager String Optional This field will be populated with the name of the channel manager that this booking was generated through. Channel manager software is used to distribute rates across channels (e.g. tens of online travel agencies) and limit availability to avoid overbooking.
arrivalDate String Required Date format (YYYY-MM-DD)
departureDate String Required Date format (YYYY-MM-DD)
arrivalTime String Optional Hours:Minutes
departureTime String Optional Hours:Minutes
areaId String Optional Room Id.
notes String Optional If guest has special request or any notes related to reservation.
requestedAreaTypeId Date Optional
adultCount Integer Required
childCount Integer Optional
infantCount Integer Optional
netAmount Float Optional
grossAmount Float Required
taxAmount Float Required
taxRate String Optional
currencyCode String Required Currency Code, the PMS has record of, for the guest in question in ISO-4217 format.
guestId String Required If multiple insert with comma.
allocationId String Optional Room Number
cancelledAt DateTime Optional Format: YYYY-MM-DD h:s:i
createdAt DateTime Required Format: YYYY-MM-DD h:s:i
updatedAt DateTime Required Format: YYYY-MM-DD h:s:i

STAY DATA



    <?php
    $curl = curl_init();
    curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://webhooks.bookingwhizz.com/{engine-name}/stays',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => array(
        'client-id: Test',
        'password: 1234567',
        'Content-Type: application/json'
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;
    ?>
                

Tracks room charges, payments, and stay revenue for loyalty programs and financial tracking.

POST call to the following url :
https://webhooks.bookingwhizz.com/{engine-name}/stays


Request Sample:
    {
     "accommodationId":"00512",
     "data":{
     "reservationId ":"68003",
     "type":"STAY_DATA",
     "externalReference":"",
     "checkInDate":"2022-11-28",
     "checkOutDate":"2022-11-30",
     "adults":1,
     "children":0,
     "roomQuantity":0,
     "marketCode":"COR",
     "marketDescription":"Corporate Negotiated Rates",
     "sourceCode":"HST",
     "sourceDescription":"Hotel Sales Team",
     "createdAt":"2025-11-04 06:39:04",
     "updatedAt":"2025-11-04 06:39:04",
     "roomDetails":[
     {
     "roomNumber":"527",
     "roomType":"EXK",
     "ratePlanType":"Bed & Breakfast",
     "rateCode":"BNB",
     "netAmount":130.00,
     "taxAmount":23.00,
     "grossAmount":153.00,
     "charges":[
     {
     "id":"1352595",
     "billId":"68398",
     "netAmount":100.00,
     "taxAmount":20.00,
     "grossAmount":120.00,
     "currencyCode":"USD",
     "description":"TRF",
     "chargedAt":0,
     "notes":"ROOM TARIFF",
     "chargeCode":"ROOM"
     },
     {
     "id":"1352595",
     "billId":"68398",
     "netAmount":30.00,
     "taxAmount":3.00,
     "grossAmount":33.00,
     "currencyCode":"USD",
     "description":"TRF",
     "chargedAt":0,
     "notes":"F & B Revenue",
     "chargeCode":"FBREVENUE"
     }
     ],
     "payments":[
     {
     "id":"1355258",
     "billId":"68398",
     "amount":153.00,
     "currencyCode":"USD",
     "paymentMethod":"CRD",
     "paidAt":0,
     "notes":"CREDIT CARD"
     }
     ],
     "guestProfile":[
     {
     "id":"123",
     "accommodationId":"00512",
     "profileType":"1",
     "title":"Mr",
     "firstName":"John",
     "middleName":"",
     "lastName":"Smith",
     "gender":"Male",
     "email":"test@gmail.com",
     "phoneNumber":"+1234567890",
     "languageCode":"EN",
     "nationality":"Indian",
     "dateOfBirth":"21/07/96",
     "placeOfBirth":"",
     "company":"",
     "notes":"",
     "addresses":"Street no 12, Delhi, India",
     "city":"Delhi",
     "postalCode":"123",
     "country":"India",
     "createdAt":"2025-11-04 06:39:04",
     "updatedAt":"2025-11-04 06:39:04",
                        }
                      ]
                    }
                 ]
             }
        }

            
Response: { "success": true, "message": "Created Successfully." }

HEADER

Field Type Description
client-id String (required) The client-id associated with the user. This is typically used for user authentication or account identification
password String (required) The user's password used for authentication. This field is required for post data

BODY

PATH PARAMETER TYPE Req/Opt DESCRIPTION
id String Required This is the unique identifier for this stay. In most cases, hotel staff or guests won't know about or use this number.
reservationId String Required The identifier hotel staff uses to look up the booking in their system. For guests who called in to make a booking (as opposed to booked through external channels like online travel agencies), this is the confirmation identifier they receive.
complimentary String Optional Reservation is complimentary (Y/N).
status String Optional Booking Status (CHECKED_OUT)
rateCode String Optional
market String Optional Used to identify the market segment this booking belongs to. Hotels often use this information to track performance in certain segments, e.g. business travel, individual guests or guests who stay through wholesale contracts. These values vary by hotel and aren't globally mapped.
source String Optional Used by hotels to identify the source of business (e.g. mail, telephone, fax, central reservations, specific travel agencies like Booking.com or Expedia). These values vary by hotel and aren't globally mapped.
origin String Optional Typically used by hotels to identify the technical source of a Booking. These are often values like mail, telephone, fax, central reservations, travel agency or global distribution systems. These values vary by hotel and aren't globally mapped.
notes String Optional
arrivalDate String Required Date format (YYYY-MM-DD).
departureDate String Required Date format (YYYY-MM-DD).
areaTypeId String Optional Room name of the booking.
chargedAt DateTime Optional
totalRevenue Float Required Total revenue of reservation.
roomRevenue Float Required Total room revenue of reservation.
fbRevenue Float Required Total revenue of Food and Beverages.
otherRevenue Float Required
currencyCode String Required Currency Code, the PMS has record of, for the guest in question in ISO-4217 format.
createdAt DateTime Required YYYY-MM-DD h:s:i
updatedAt DateTime Required YYYY-MM-DD h:s:i