menu

Important Implementations

Island Hopper Search


1. In the GetHotelResultResponse "Isislandhopper: true" node need to pass to get the results from Island Hopper

2. Only below cities results will be available for the IslandHopper

1. Mauritius

2. Maldives

3. La Digue Island|Seychelles

4. Mahe|Seychelles

5. Praslin Island|Seychelles

6. Bali

7. Athens

8. Mykonos

9. Santorini

10. Crete

11. Paros

12. Naxos

New functionality has been implemented for the Maldives city where your accommodation in the Maldives is booked at more than one resort island/local island/vessel for the duration of your stay.

There is a new node that you will be receiving in gethotelresult response and you need to integrate the same as per below:

Get Hotel Result:

In the get hotel result response you will be receiving the node "IsSplitStay": true".

"IsSplitStay": "True"

Get Hotel Room:

If in the Get Hotel Result you will get the node is split stay true, then you need to call the room request twice, for two different stays. Please refer to the below request:

Room 1 request:

{

"EndUserIp": "192.168.10.117",

"TokenId": "513faecd-ba92-4147-b40a-b45967bf4e35",

"TraceId": "bc0119c0-2475-45d3-8d8f-8a1ed6e9afcb",

"ResultIndex": "1",

"CheckInDate": "12/05/2022",

"NoOfNights": 2,

"HotelCode": "20823848",

"IsTransferRestricted": false

}

Room 2 request:

{

"ResultIndex": 1,

"HotelCode": "20823848",

"TokenId": "513faecd-ba92-4147-b40a-b45967bf4e35",

"TraceId": "bc0119c0-2475-45d3-8d8f-8a1ed6e9afcb",

"EndUserIp": "203.122.10.18",

"CheckInDate": "14/05/2022",

"NoOfNights": 2,

"IsTransferRestricted": false

}

Block Room Request:

Two different request needs to be called for two different stays w.r.t room.

Book Room Request:

Two different request needs to be called for two different stays w.r.t room.

Please refer to the flow for clarification.

Get hotel Results ( response - issplitstay:true ) - Get Hotel room ( Stay 1 ) - Block ( Stay 1) - Book ( Stay 1) - Getbookingdetails ( Stay 1) - Get Hotel room ( Stay 2) - Block ( Stay 2) - Book ( Stay 2) - Getbookingdetails ( Stay 2).

PAN Validation

IMPORTANT POINTS

1) Now if IsSamePANForAllAllowed = true then will see the noOfPANRequired

2) noOfPANRequired is the no of unique pan required per booking, and this is for normal booking.

3) For corporate IsSamePANForAllowed works as it is before.

4) If IsCorporateBookingAllowed = true API will be allowed to make corporate booking else not.

5) If IsAgencyOwnPANAllowed = true API will be allowed to use their your own pan else not

Refer to the attached hotelblockresponse and Getbookingdetails for the above details.

Client need to refer the below nodes in Hotel Block Method response to check whether PAN/Passport is required at Hotel Book method. If value is 'True' then it is mandatory to pass the details--

Below additional node need to be passed in Book/voucher request-

Hotel Block Method Response Below Two Array:


"ValidationInfo": {
"ValidationAtConfirm": {
"IsPANMandatory": false,
"IsPassportMandatory": false,
"IsSamePANForAllAllowed": true,
"IsCrpPANMandatory": false,
"IsCrpPassportMandatory": false,
"IsCrpSamePANForAllAllowed": true,
"IsEmailMandatory": false,
"IsCorporateBookingAllowed": true,
"IsAgencyOwnPANAllowed": true,
"NoOfPANRequired": 4,
"IsPANCopyPANMandatory": true,
"IsPassportCopyMandatory": true,
"IsCrpPassportCopyMandatory": false
},
"ValidationAtVoucher": {
"IsPANMandatory": true,
"IsPassportMandatory": true,
"IsSamePANForAllAllowed": true,
"IsCrpPANMandatory": true,
"IsCrpPassportMandatory": true,
"IsCrpSamePANForAllAllowed": true,
"IsEmailMandatory": false,
"IsCorporateBookingAllowed": true,
"IsAgencyOwnPANAllowed": true,
"NoOfPANRequired": 4
"IsPANCopyPANMandatory": true,
"IsPassportCopyMandatory": true,
"IsCrpPassportCopyMandatory": false

Document Max Size - 200 kb
ENUMS
public enum TypeOfDocument
{
NotSet = 0,
PassportFront1 = 1,
PassportFront2 = 2,
PassportAdressPage1 = 3,
PassportBack2 = 4,
BTQForm = 5,
TravellerCheque = 6,
PassportRenew = 7,
PAN = 8,
IndentityForm = 9
}
FORMAT
{
JPG = 0,
PNG = 1,
JPEG = 2,
PDF = 3,
BMP = 4
}

Pan & Passport Validation

1) If you want to create corporate Bookings, Refer below nodes in block response for PAN and Passport:

  • "IsCrpPANMandatory": false,
  • "IsCrpPassportMandatory": false,
  • "IsCrpSamePANForAllAllowed": true,
  • Also, Need to send "IsCorporate": true, in Book request.

    Points to be Remember in Corp Booking:

    Agency Not allowed to give their own Corporate PAN.
    Agency Not allowed to give TBO Corporate PAN as It will be show error message- "TBO PAN not allowed, Please enter guest PAN Number."
    Parents/Guardian PAN will not be consider for Corporate Bookings.

    2) If you are doing normal Booking, Refer below Validations in Hotel Block Respone.

    "IsPANMandatory": false,
  • In case of "IsPANMandatory": false in ValidationAtConfirm, then no need to pass the PAN Details at the time of HOLD/Confirm.
  • In case of "IsPANMandatory": true in ValidationAtConfirm, then need to pass the PAN Details at the time of HOLD/Confirm.

  • In case of "IsPANMandatory": false in ValidationAtVoucher, then no need to pass the PAN Details at the time of Voucher
  • In case of "IsPANMandatory": true in ValidationAtVoucher, then need to pass the PAN Details at the time of Voucher.

  • "IsSamePANForAllAllowed": true
  • In Case of "IsSamePANForAllAllowed": true, then you can consider the same PAN Number for all Passanger PAN details in book HOLD/Confirm.
  • In Case of "IsSamePANForAllAllowed": False, So in that case need to pass PAN details of all individual passanger in book HOLD/Confirm.


  • 3) Hotel Voucher Passport Validation.

    "IsPassportMandatory": false,
  • In case of "IsPassportMandatory": false in ValidationAtConfirm, then no need to pass the Passport Details at the time of HOLD/Confirm.
  • In case of "IsPassportMandatory": true in ValidationAtConfirm, then need to pass the Passport Details at the time of HOLD/Confirm.

  • In case of "IsPassportMandatory": false in ValidationAtVoucher, then no need to pass the Passport Details at the time of Voucher
  • In case of "IsPassportMandatory": true in ValidationAtVoucher, then need to pass the Passport Details at the time of Voucher.

  • Validation Points to Remember:


  • In case of Adult, pax need to pass his/her name according to the PAN/Passport number and should only pass correct PAN/Passport number to avoid booking failure.
  • In case of pax is providing PAN/Passport then we will consider only pax pan/passport and Parent/Guardian details will be discarded. If pax PAN/Passport is incorrect then booking will be failed.

  • if guest does not have their PAN card then they can provide parent/guradin pan in request in below format
    "GuardianDetails":
    {
    "Title": "Mr",
    "FirstName": "ANKIT",
    "LastName": "MEHTA",
    "PAN": "GSBPM2112A"
    },

    Nationality Validation

  • ALL Foreign Nationalities will be allowed for domestic destinations.
  • For International Destinations, Only Indian nationality will be allowed. Search result will not be available if client will pass any other nationality for International destination.
  • Package Fare Validation

    Please consider below points for clarification:


    In Block Response: 

    Two nodes will be provided "IsPackageDetailsMandatory": true and "IsPackageFare": true. If "IsPackageDetailsMandatory" is true then "IsPackageFare" will always be received true. But if "IsPackageFare" is true then "IsPackageDetailsMandatory" can be true or false.

    In Book Request:

    In case you receive "IsPackageFare": true in Block response then you need to pass same in Book Request. Additionally if you get IsPackageDetailsMandatory": true in Block Response then following details need to be passed in Book request.

    "ArrivalTransport":
    {
    "ArrivalTransportType": 0, (Flight = 0, surface = 1)
    "TransportInfoId": "Ab 777",
    "Time": "2019-05-21T18:18:00"
    },

    In case you receive "IsDepartureDetailsMandatory": true in Block response then you need to pass same in Book Request. Additionally if you get IsDepartureDetailsMandatory":"true" in Block Response then following details need to be passed in Book request.

    "DepartureTransport":
    {
    "DepartureTransportType": 0,
    "TransportInfoId": "Ab 777"
    "Time": "2023-10-21T12:43:45"
    },

    The above transport details are not static, it should be pass according to the client and the specific booking.

    For Example:
    If the client is reaching the hotel by flight then pass "ArrivalTransportType": 0, in "TransportInfoId" pass the flight number and in "Time" pass the time of the flight & vice versa for the surface details.