Order Booking Finish
https://api.worldota.net/api/b2b/v3/hotel/order/booking/finish/
Process for completing the reservation.
The reservation is carried out asynchronously, which means that the partner launches the process via the API, and then repeatedly requests Order Booking Finish Status (or you can receive the Order Status Webhook when the processing of the reservation is finished).
Please note the requirements for guests’ names when making test reservations (they are mentioned in the description of the corresponding request parameter).
If an invalid user’s data is used, all of that user’s data from that reservation call may be added to the stop-list.
Request example
curl --location 'https://api.worldota.net/api/b2b/v3/hotel/order/booking/finish/' \
--header 'Content-Type: application/json' \
--data-raw '{
"user": {
"email": "[email protected]",
"comment": "comment",
"phone": "12312321"
},
"supplier_data": {
"first_name_original": "test",
"last_name_original": "test",
"phone": "123123",
"email": "[email protected]"
},
"partner": {
"partner_order_id": "asd123"
},
"language": "en",
"rooms": [
{
"guests": [
{
"first_name": "Marty",
"last_name": "Quatro"
},
{
"first_name": "Marta",
"last_name": "Quatro"
}
]
}
],
"payment_type": {
"type": "hotel",
"amount": "40.85",
"currency_code": "EUR"
}
}'
Request body
Book timeout in seconds.
- The minimum value is
10
. - The maximum value is
600
.
The language.
The possible values:
ar
—Arabic.bg
–Bulgarian.cs
–Czech.de
–German.el
–Greek.en
–English.es
–Spanish.fr
–French.he
–Hebrew.hu
–Hungarian.it
–Italian.ja
–Japanese.kk
–Kazakh.ko
–Korean.nl
–Dutch.pl
–Polish.pt
–Portuguese.pt_PT
–Portuguese (Portugal).ro
–Romanian.ru
–Russian.sq
–Albanian.sr
–Serbian.th
–Thai.tr
–Turkish.uk
–Ukrainian.vi
–Vietnamese.zh_CN
–Simplified Chinese.
Order payment information.
The payment type.
- The possible values:
now
. Use it to allow the user to pay for the booking via the ETG payment system:- Request the Order Booking Form call and get the card details.
- Request the Credit Card Data Tokenization call with the card details.
hotel
. Use it to allow the user to pay for the booking upon check-in at the hotel. The user won’t be charged now.
The amount currency code in the ISO 4217 format.
- The length is
3
characters. - The possible values:
AED
.AFN
.ALL
.AMD
.ANG
.AOA
.ARS
.AUD
.AWG
.AZN
.BAM
.BBD
.BDT
.BGN
.BHD
.BIF
.BMD
.BND
.BOB
.BOV
.BRL
.BSD
.BTN
.BWP
.BYR
.BYN
.BZD
.CAD
.CDF
.CHE
.CHF
.CHW
.CLF
.CLP
.CNY
.COP
.COU
.CRC
.CUC
.CUP
.CVE
.CZK
.DJF
.DKK
.DOP
.DZD
.EGP
.ERN
.ETB
.EUR
.FJD
.FKP
.GBP
.GEL
.GHS
.GIP
.GMD
.GNF
.GTQ
.GYD
.HKD
.HNL
.HRK
.HTG
.HUF
.IDR
.ILS
.INR
.IQD
.IRR
.ISK
.JMD
.JOD
.JPY
.KES
.KGS
.KHR
.KMF
.KPW
.KRW
.KWD
.KYD
.KZT
.LAK
.LBP
.LKR
.LRD
.LSL
.LTL
.LVL
.LYD
.MAD
.MDL
.MGA
.MKD
.MMK
.MNT
.MOP
.MRO
.MUR
.MVR
.MWK
.MXN
.MXV
.MYR
.MZN
.NAD
.NGN
.NIO
.NOK
.NPR
.NZD
.OMR
.PAB
.PEN
.PGK
.PHP
.PKR
.PLN
.PYG
.QAR
.RON
.RSD
.RUB
.RWF
.SAR
.SBD
.SCR
.SDG
.SEK
.SGD
.SHP
.SLL
.SOS
.SRD
.SSP
.STD
.SVC
.SYP
.SZL
.THB
.TJS
.TMT
.TND
.TOP
.TRY
.TTD
.TWD
.TZS
.UAH
.UGX
.USD
.USN
.USS
.UYI
.UYU
.UZS
.VEF
.VND
.VUV
.WST
.XAF
.XAG
.XAU
.XBA
.XBB
.XBC
.XBD
.XCD
.XDR
.XFU
.XOF
.XPD
.XPF
.XPT
.XSU
.XTS
.XUA
.YER
.ZAR
.ZMW
.ZWL
.
Universally unique identifier (UUID4) token of the booking payment operation.
It needs to be transferred in orders with “is_need_credit_card_data”: true payment types and should be the same with the Credit Card Data Tokenization (B2B, Affiliate) method.
Universally unique identifier (UUID4) token of the booking payment check.
It needs to be transferred in orders with “is_need_credit_card_data”: true payment types and should be the same with the Credit Card Data Tokenization (B2B, Affiliate) method.
The URL at your side to redirect the user to. It is done by the payment gateway after 3-D secure verification. The reason the ETG needs it.
This field is required if the rate you are booking has the payment_types
field with the now
value.
The field data_3ds
of the Order Booking Finish Status call will have the null
value if:
- You don’t pass this field.
- The bank requires 3-D secure verification.
- Must have the HTTPS scheme.
- Might have GET parameters.
- The minimum length is
1
character. - The maximum length is
256
character.
Guest data for the rooms.
Guests data.
Guest’s first name.
- The minimum length is
1
character. - The maximum length is
50
characters. - The match pattern:
^[^\W\d_]+([^\W\d_]*[\u0590-\u05FF\u0900-\u097F\u0980-\u09FF\u0E00-\u0E7F'\-,.’\s]*)*$
.
Guest’s last name (for test purposes "Ratehawk"
is required).
- The minimum length is
1
character. - The maximum length is
50
characters. - The match pattern:
^[^\W\d_]+([^\W\d_]*[\u0590-\u05FF\u0900-\u097F\u0980-\u09FF\u0E00-\u0E7F'\-,.’\s]*)*$
.
The guest additional information.
The contact details of the user who initiated the booking.
required : depends on available to you suppliers, ask your account manager
To ensure a smooth booking process, some of our suppliers require the contact details of the user who initiated the booking.
Please note that the mandatory requirement for these fields may vary depending on the available to you suppliers. We recommend discussing with your account manager to determine if this information is required for a particular case.
First name of the user who initiates the booking.
required : depends on available to you suppliers, ask your account manager
Last name of the user who initiates the booking.
required : depends on available to you suppliers, ask your account manager
Email of the user who initiates the booking.
required : depends on available to you suppliers, ask your account manager
Partner’s information.
Resell price for the client in the contract currency. The value of this parameter (the resell price) is accepted if transferred (even if automatic completion of the resale price value is activated) and is displayed in the confirmatory accounting documents for the partners.
- The minimum value is
1
.
Response example
{
"data": null,
"debug": null,
"error": null,
"status": "ok"
}
Errors’ description
book_hash_not_found
An internal error in case we could not recognize the book_hash
.
booking_form
An attempt to make a booking without the first Order Booking Form step.
booking_form_expired
In case Order Booking Form has beed expired.
Please request a new Order Booking Form with a different partner_order_id
.
chosen_payment_type_was_not_available_on_booking_form
The payment type you have provided in the Order Booking Finish step was not available on the Order Booking Form.
credit_card_required
A credit card is required to complete the booking.
double_booking_finish
An attempt to complete the same booking for the second time (while the status of the first attempt is not an error).
email
Not a valid email address.
exceed_limit
In case the credit limit is not enough for the reservation.
To discuss changes to this limit please contact your account manager.
incorrect_chosen_payment_type
Incorrect payment type.
incorrect_guest_name
Values of parameters first_name
and last_name
should be consistent with Regex.
incorrect_guests_number
Number of guests (names) is more than the request was initially made for or there is no adult guest.
incorrect_children_data
Number of children (names) is more than the request was initially made for or age is not provided correct.
incorrect_rooms_number
Amount of rooms is more than the request was initially made for.
insufficient_b2b_balance
The credit limit is reached.
To discuss changes to this limit, contact your account manager.
order_not_found
No order found by partner_order_id
.
rate_not_found
The rate wasn’t found. Probably too much time has passed since the search request. Another search request is needed.
return_path_required
In case return_path
is not transferred while trying to book a rate with payment_types.type:"now"
.
unauthorized_group_booking
In case you are trying to make more than 9 with the conditions:
- Reservations in the same hotel.
- Reservations for the same dates.
- In one request.
To make a group booking, contact the API support team or fill in the group booking form on the site.
arrival_date_differs_from_checkin_date
Estimated arrival date at the hotel should be equal to or the day after the arrival date.
not_enough_credit_card_data
In case, when init_uuid or pay_uuid is not transferred while trying to book the rate with "is_need_credit_card_data": true
payment type.
incorrect_init_uuid_format
The value of the parameter should be consistent with Regex ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$
.
incorrect_pay_uuid_format
The value of the parameter should be consistent with Regex ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$
.
sandbox_restriction
You cannot book a hotel other than test_hotel_do_not_book
with a sandbox API-key.
supplier_data_required
The supplier_data object is mandatory for your integration and it absence may cause errors in the system. Please ensure that all required supplier_data fields are included in your integration to avoid any disruption in functionality.
timeout
, unknown
, and 5xx
If you get errors timeout
, unknown
, or other 5хх
status code from this call, it doesn’t necessarily mean the booking isn’t created. These errors may occur because of the ETG services’ timeout. To check the booking creation, send the Order Booking Finish Status request.