Cyberesa Developers V2027.0.x
Hotel API · Booking flow

HotelBookingCreation()

This function is dedicated to creating the booking.

Request

XML
<HotelBookingCreationREQ>
  <Credential>
    <Login>?</Login>
    <Password>?</Password>
  </Credential>
  <User>?</User>
  <Language>?</Language>
  <FromDate>?</FromDate>
  <ToDate>?</ToDate>
  <HotelID>?</HotelID>
  <HotelTitle>?</HotelTitle>
  <QuoteId>?</QuoteId>
  <IdToken>?</IdToken>
  <Nationality>XX</Nationality>
  <SourceMarket>?</SourceMarket>
  <Source>?</Source>
  <Recommandation>?</Recommandation>
  <CodePromo>?</CodePromo>
  <expectedprice tolerance="’?’">?</expectedprice>
  <onlyavailable>?</onlyavailable>
  <Timeout>?</Timeout>
  <HotelCollect>?</HotelCollect>
  <SelectedRooms>
    <SelectedRoom id="’1’" title="?" >
      <Adult>2</Adult>
      <Child>0</Child>
      <Infant>0</Infant>
      <OfferId>?</OfferId>
      <Boarding id="’?’" title="?"/>
      <Customers>
        <Customer holder=”true”>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age></Age>
        </Customer>
        <Customer>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age></Age>
        </Customer>
      </Customers>
    <Recommandation>?</Recommandation>
    </SelectedRoom>
    <SelectedRoom id="’2’">
      <Adult>1</Adult>
      <Child>0</Child>
      <Infant>0</Infant>
      <OfferId>?</OfferId>
      <Boarding id="’?’" />
      <Customers>
        <Customer>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age></Age>
        </Customer>
      </Customers>
    <Recommandation>?</Recommandation>
    </SelectedRoom>
    <SelectedRoom id="’3’">
      <Adult>1</Adult>
      <Child>2</Child>
      <Infant>0</Infant>
      <Boarding id="’?’" />
      <OfferId>?</OfferId>
      <Customers>
        <Customer>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age></Age>
        </Customer>
        <Customer>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age>3</Age>
        </Customer>
        <Customer>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age>6</Age>
        </Customer>
      </Customers>
    <Recommandation>?</Recommandation>
    </SelectedRoom>
    <SelectedRoom id="’4’">
      <Adult>2</Adult>
      <Child>2</Child>
      <Infant>0</Infant>
      <OfferId>?</OfferId>
      <Boarding id="’?’" />
      <Customers>
        <Customer>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age></Age>
        </Customer>
        <Customer>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age></Age>
        </Customer>
        <Customer>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age>4</Age>
        </Customer>
        <Customer>
          <Civility>?</Civility>
          <FirstName>?</FirstName>
          <LastName>?</LastName>
          <Age>7</Age>
        </Customer>
      </Customers>
    <Recommandation>?</Recommandation>
    </SelectedRoom>
    …
  </SelectedRooms>
  <IdAssignedUserPayment></IdAssignedUserPayment>
  <PaymentMode>
    <Id>?</Id>
    <TotalRate>?</TotalRate>
  </PaymentMode>
  <Kit>
    <PaymentGateway>?</PaymentGateway>
    <SecurityCode>?</SecurityCode>
    <IdAutorisation>?</IdAutorisation>
    <CardType>?</CardType>
    <CardBank>?</CardBank>
    <BankCountry>?</BankCountry>
    <CardNumber>?</CardNumber>
    <ClientLastName>?</ClientLastName>
    <ClientFirstName>?</ClientFirstName>
    <ClientEmail>?</ClientEmail>
  </Kit>
  <PaymentDetails>
    <Name>?</Name>
    <CardNumber>?</CardNumber>
    <CVC>?</CVC>
    <ExpiryDate>?</ExpiryDate>
  </PaymentDetails>
  <Customer>
    <Id>?</Id>
    <Email>?</Email>
  </Customer>
</HotelBookingCreationREQ>
RootSub RootDescriptionValeurs & FormatTag
CredentialMandatory
LoginLoginText
PasswordPasswordText
UserCurrent user IDNumericMandatory
LanguageCyberesa language codeNumeric
1: French
2: English
Mandatory
HotelIDThe selected hotelTextMandatory
HotelTitlethe Hotel titleTextMandatory If B2C with <source>
QuoteIdbooking operation codeNumericMandatory
IdTokenA unique Token id, you can pass in request in order to send the reservation id of the buyer to the seller and in case of time-out, to verify later if the booking goes through or not via calling the BookingList APITextOptional
NationalityNationality of the client, if available2 letters in uppercase iso-code : FR GB DE IT ROOptional
SourceMarketSource market of the reservation, if available2 letters in uppercase iso-code : FR GB DE IT ROOptional
SourceID Source of the 3rd party supplierNumericMandatory if reservation is through a 3rd party supplier
CodePromoCode promo to be used when calculating final priceTextOptional
expectedpriceExpected price of the booking. If not respected than booking creation will failNumericMandatory
expectedprice : @toleranceHow much %pc is tolerated if expectedprice is different from real priceNumericOptional "0" or "1" or …
onlyavailableBooking creation will fail if onlyAvailable is True and booking is not availableBoolean (True/False)Optional
RecommandationClient recommandations for the bookingTextOptional. Use with precaution to not include recommandation that may impact total price of the booking
Timeoutmaximum accepted response time in milliseconds, if it takes beyond that limit then cancel the bookingNumericOptional
FromDateSearch start datedd/mm/yyyyMandatory
ToDateSearch end datedd/mm/yyyyMandatory
HotelCollectIndicates whether the client will pay directly at the hotel (hotel-collect) or to the vendor (vendor-collect)Boolean (True/False)Optional
SelectedRoomsSelectedRooms:SelectedRoom:@idId of the selected roomNumericMandatory
SelectedRooms:SelectedRoom:Offer Identifier for the selected room.TextMandatory for international api bookings
SelectedRooms:SelectedRoom:Titlethe room titleTextMandatory If B2C with <source>
SelectedRooms:SelectedRoom:AdultAdult count for the current room configurationNumericMandatory
SelectedRooms:SelectedRoom:ChildChild count for the current room configurationNumericMandatory
SelectedRooms:SelectedRoom:InfantInfant count for the current room configurationNumericOptional
SelectedRooms:SelectedRoom:OfferIdOfferId (offer identifier)TextMandatory if returned in HotelQuoteRES. Use same value in HotelQuoteRES
SelectedRooms:SelectedRoom:Recommandationrecommandations for this roomTextOptional. Use with precaution to not include recommandation that may impact total price of the booking
SelectedRooms:SelectedRoom: Boarding:@idId of the selected boardingNumericMandatory
SelectedRooms:SelectedRoom: Boarding:Titlethe boarding titleTextMandatory If B2C with <source>
SelectedRooms:SelectedRoom:CustomersDetails of room’s passengersTextMandatory
SelectedRooms: SelectedRoom:Passengers: Customer:CivilityCurrent passenger civility
Possible values : Mr or Mrs or Ms
TextMandatory
SelectedRooms: SelectedRoom:Passengers: Customer:FirstNameCurrent passenger first nameTextMandatory
SelectedRooms: SelectedRoom:Passengers: Customer:LastNameCurrent passenger last nameTextMandatory
SelectedRooms: SelectedRoom:Passengers: AgeChild age (only for children, DO NOT PASS for adults !!!)NumericMandatory for children DO NOT PASS for adults !!!
IdAssignedUserPaymentCurrent agent: Available only for B2CNumericonly for B2C API
PaymentModePaymentMode : IdSelected payment mode
1: OnlineDownPayment
2: OnlineFullPayment
3: POSFullPayment
4: POSDownPayment
5: HotelCollect
Numericonly for B2C API
PaymentMode : TotalRateThe total amount paidNumericonly for B2C API
KitOptional
Kit: PaymentGatewayPayment mode : Available only for B2CNumeric4 : offline
6 : sps
8 : mtc
Note : booking status will be reserved when you send 4 other case will be confirmed
Kit:SecurityCode3DSBoolean1
0
Kit:IdAutorisationId of autorisationText
Kit:CardTypeType of cardText
Kit:CardBankBank of cardText
Kit:BankCountryCountry of bankText
Kit:CardNumberNumber of cardText
Kit:ClientLastNameLast name of clientText
Kit:ClientFirstNameFirst name of clientText
Kit:ClientEmailEmail of clientText
PaymentDetails
PaymentDetails: NameName of payment card ownerTextMandatory if PaymentDetails node exist
PaymentDetails: CardNumberCard Number of the bank cardTextMandatory if PaymentDetails node exist
PaymentDetails: CVCCVC codeTextOptional if PaymentDetails node exist
PaymentDetails: ExpirationDateCard expiration date in AAAAMM format.Text: AAAAMM
Example:
202012
Mandatory if PaymentDetails node exist
CustomerAvailable only in B2Conly for B2C API
Customer:IdId of customerNumeric
Customer:EmailEmail of customerText

Response

XML
<HotelBookingCreationRES>
  <ErrorResult id="?">
    <Message>?</Message>
  </ErrorResult>
  <User>?</User>
  <FromDate>?</FromDate>
  <ToDate>?</ToDate>
  <Language>?</Language>
  <Currency>?</Currency>
  <City id="’?’">?</City>
  <Destination id="’?’">?</Destination>
  <HotelID>?</HotelID>
  <HotelTitle>?</HotelTitle>
  <Category>?</Category>
  <OrderDetails id="’?’" idtoken="’?’" password="’?’" OfferId=”?”>
    <CancellationPolicies>
      <CancellationPolicy>
        <FromDate>?</FromDate>
        <Fees>?</Fees>
      </CancellationPolicy>
    </CancellationPolicies>
    <NoShowPolicy>
      <Fee>?</Fee>
    </NoShowPolicy>
    <Rooms>
      <Room id="’?’">
        <Adult>?</Adult>
        <Child>?</Child>
        <Infant>?</Infant>
        <Title>?</Title>
        <Boarding id="?">
          <Rate>?</Rate>
          <Title>?</Title>
    <TariffNotes>?</TariffNotes>
        </Boarding>
        <Passengers>
          <Passenger>
            <Civility>?</Civility>
            <FirstName>?</FirstName>
            <LastName>?</LastName>
            <Age>?</Age>
            <Reduction id="’?’">?</Reduction>
          </Passenger>
        </Passengers>
        <Supplements>
    <Supplement>
   <Title>?</Title>
   <Rate currency=””>?</Rate>
  </Supplement>
       </Supplements>
      </Room>
    </Rooms>
    <State id="’?’">?</State>
    <TotalNetRate>?</TotalNetRate>
    <TotalRate>?</TotalRate>
    <GlobalSupplement>?</GlobalSupplement>
  </OrderDetails>
  <HotelCheckinUrl>https://www.website.com/checkin/0000-0000</HotelCheckinUrl>
  <HotelCheckinStartingDate>01/01/2021</HotelCheckinStartingDate>
  <PaymentDetails>
    <TransactionId>?</TransactionId>
    <AuthorizationId>?</AuthorizationId>
  </PaymentDetails>
  <PaymentMode>
    <Id>?</Id>
    <TotalRate>?</TotalRate>
  </PaymentMode>
</HotelBookingCreationRES>
RacineSous racineDescriptionValeurs & FormatTag
ErrorResultOperation State
ErrorResult:@idId of current errorNumeric
MessageAppropriate messageText
UserCurrent user IDNumeric
FromDateSearch start datedd/mm/yyyy
ToDateSearch end datedd/mm/yyyy
LanguageLanguage codeText
CurrencyCurrency codeNumeric
CityCity NameText
City :@IdCity IdNumeric
DestinationDestination NameText
Destination :@IdDestination IDNumeric
HotelID :@IdId of the selected HotelText
HotelTitleHotel NameText
CategoryHotel CategoryNumeric
OderDetails :@idId of the order
OderDetails :@idTokenId Token of the orderNumeric
OderDetails :@passwordOrder password
OderDetails :@OfferIdthe offer identifier for some 3rd party suppliersText
CancellationPoliciesCancellationPolicies
CancellationPolicies :CancellationPolicy :FromDateCancellationPolicy start datedd/mm/yyyy
CancellationPolicies :CancellationPolicy :FeesCancellation Policy fee rateDecimal
NoShowPolicyNoShow Policy
NoShowPolicy :FeeNoShow policy fee rateDecimal
Rooms :Room :@idId of the current selected roomNumeric
Rooms :Room :AdultAdult’s count of the current selected roomNumeric
Rooms :Room :ChildChildren count of the current selected roomNumeric
Rooms :Room :InfantInfants count of the current selected roomNumeric
Rooms :Room :TitleSelected Room TitleText
Rooms:Room:SupplementSupplement of the roomText
Rooms :Room :Boarding :@idId of the selected boardingNumeric
Rooms :Room :Boarding :RateRate of the current selected boardingNumeric
Rooms :Room :Boarding :TariffNotesDisplay any comment about the related rate like "You will pay upon arrival a tax charge of XXX for the YY night(s)"
or if NRF: "This booking is non-refundable"..etc.
Text
Rooms :Room :Boarding :TitleSelected Boarding TitleText
Rooms :Room :Passengers :PassengerOne Passenger details for the current selected room
Rooms :Room :Passengers :Passenger :CivilityCivility of the current passengerText
Rooms :Room :Passengers :Passenger :FirstNameFirstName of the current passengerText
Rooms :Room :Passengers :Passenger :LastNameLastName of the current passengerText
Rooms :Room :Passengers :Passenger :AgeAge of child passengerNumberOptional
Rooms :Room :Passengers :Passenger : Reduction:@idId of reductionNumericOptional
Rooms :Room :Passengers :Passenger : ReductionTitle of reductionTextOptional
Rooms :Room :Supplements:SupplementSupplements details for the current roomTextOptionnel
Rooms :Room :Supplements:Supplement:TitleSupplement TitleText
Rooms :Room :Supplements:Supplement:RateRate of the supplementText
Rooms :Room :Supplements:Supplement:Rate:@currencyCurrency code of the rateNumeric
TotalRateTotal order rateNumeric
TotalNetRateTotal order net rate (cost)NumericOptional (B2C distribution)
StateOrder stateText
State:@idId stateNumeric4 : The hotel is available and your booking is confirmed, a voucher is issued
1 : The hotel is available and your booking is confirmed as reserved, no voucher is issued
0 : the hotel is not available is your booking is saved as onrequest
HotelCheckinUrlURL of hotel online express check-in page for this booking.TextIf returned, this link must be displayed on the reservation voucher. Customers are supposed to check-in online before arrival to the hotel.
HotelCheckinStartingDateThe starting date when the hotel online express check-in is open.dd/mm/yyyyStarting from this date online check-in is open. This information should be shown to the customer.
PaymentDetails
PaymentDetails: TransactionIdPayment Transaction Id numberNumericPayment Transaction number (if paid by bank card)
PaymentDetails:AuthorizationIdPayment Authorization codeNumericPayment Authorization code (if paid by bank card)
GlobalSupplementGlobal SupplementNumeric
HotelArrivalHourCheckIn HourTextOptional
HotelDepartureHourCheckOut HourTextOptional
PaymentModePaymentMode:IdSelected payment mode
1: OnlineDownPayment
2: OnlineFullPayment
3: POSFullPayment
4: POSDownPayment
5: HotelCollect
Numericonly for B2C API
PaymentMode: TotalRatethe total amount paidNumericonly for B2C API
CYBERESA SARL au capital de 560 000 TND (R.C : B2437152011 – M.F : 1189611/V) Siège social : Immeuble 3S, Lotissement Ennassim, 1073 Montplaisir - Tunis - TUNISIE · Tél : +216 71 947 401 - Fax : +216 70 201 010 - Site web : www.cyberesa.net - Email : info@cyberesa.net
© Cyberesa · Hotel API V2027.0.x · updated 09/10/2026