Last updated

processBooking - V3 migration guide


In V2, you can use the processBooking endpoint to book products previously selected from the hotelAvailability and/or blockAvailability endpoints.

For V3 we have split the V2 processBooking functionality into two endpoints to provide a more streamlined, transparent and efficient booking process.

For more information, see /orders/preview and /orders/create.

  1. Use /orders/preview to obtain final price information and payment details for an order, so that the traveller can confirm the details before placing the order.
  • The /orders/preview response also returns an order token, the token contains encapsulated details about the order, which you will pass to the /orders/create request.
  • Using this token reduces the risk of data mismatch errors and provides a more efficient booking experience.
  1. Use /orders/create to book the requested products and process payment for the order.

Use the following tables to identify how to migrate request query parameters and response fields from a V2 processBooking call to the appropriate V3 equivalent.

Attention

Do not assume that mapped parameters or fields work in exactly the same way in V3 as they did in V2.

V3 is a significant redesign of the Demand API and some things work very differently. Use this documentation, the API Reference, and your own experimentation and testing to make sure that you migrate each V2 call correctly.

Request parameter mappings

The following tables show:

/orders/preview mappings

V2 - processBooking:
query parameter
Maps to V3 - /orders/preview:
request body field
block_ids,
block_quantities
accommodation.products.id

Note: In V3, you do not specify a quantity for multiple products. Instead, you specify each instance as a separate item in the products array, using the same id.
booker_country,
booker_ip
booker.country
checkinaccommodation.checkin
checkoutaccommodation.checkout
guest_quantitiesaccommodation.products.allocation
hotel_idaccommodation.id
currencycurrency
user_platformbooker.platform
room1products.allocation
travel_purposebooker.travel_purpose

/orders/create mappings

V2 - processBooking:
query parameter
Maps to V3 - /orders/create:
request body field
affiliate_labelaccommodation.label
booker_country,
booker_ip
booker.address.country
booker_telephonebooker.telephone
booker_addressbooker.address
booker_citybooker.address.city
booker_companybooker.company
booker_firstnamebooker.name.first_name
booker_languagebooker.language
booker_lastnamebooker.name.last_name
booker_zipbooker.address.post_code
cc_cardholderpayment.card.cardholder
cc_cvcpayment.card.cvc
cc_expiration_datepayment.card.expiry_date
cc_numberpayment.card.number
commentsaccommodation.remarks:
> special_requests
extras=auth_form_urlpayment.business_information:
> authorisation_form
extras=receipt_urlpayment.include_receipt
guest_emailsproducts.guests.email
guest_namesproducts.guests.name
hour_of_arrivalaccommodation.remarks:
> estimated_arrival_time
pay_now,
payment_timing
payment.timing
Note: V3 handles payments differently to V2.
payment_methodpayment.method
Note: V3 handles payments differently to V2.
vc_company_for_auth_formpayment.business_information:
> company
vc_company_vat_number_for_invoicespayment.business_information:
> billing.vat
vc_invoice_emailpayment.business_information:
> billing.email
vc_itemised_chargespayment.business_information:
> authorisation_form.chargeble_items

Parameters with no V3 equivalent

V2 - processBooking:
query parameter
No V3 equivalent:
affiliate_id You must include the affiliate id in the X-Affiliate-Id header of each /orders/preview or /orders/create request. For more information, see Authentication and authorisation.
addon_pricesNot available
bed_preferences,
bedtype_preferences
You can specify the id of the preferred bed configuration in /orders/create, in the accommodation.products.bed_configuration request field. (You can obtain the available bed_configuration ids from /accommodations/details.)
cc_typeNot available
extras=hotel_contact_infoYou can obtain this information from /accommodations/details.
forwarded_user_agentNot available
guest_ccNot available. Use booker.country in /orders/preview instead.
incremental_pricesNot required
next_tripsNot available
options=allow_pastNot required
options=booker_mailinglist_signupNot available
request_idNot available
show_test,
test_mode
Not available

Use the Demand API sandbox server (https://demandapi-sandbox.booking.com) for testing.
smoking_preferencesNot available
vc_invoice,
vc_invoice_to_guest
Not required. Use payment.business_information.billing.email to specify where to send the invoice.
vc_itemised_charge_breakfast
vc_itemised_charge_food_beverage
vc_itemised_charge_internet
vc_itemised_charge_parking
vc_itemised_charge_phone
vc_itemised_charge_taxes
vc_itemised_charge_total
Not available
vc_phones_for_auth_form_pinNot available
Important

In V2 there are multiple endpoints (canChangeRoomReservation, changeHotelReservation and changeRoomReservation) to modify reservation details such as arrival date, departure, credit card details, etc.

Note there are currently no equivalents for those in V3 (This is subject to 2025 roadmap planning).

Response schema mappings

This section contains the following tables:

/orders/preview response mappings

No fields from the V2 processBooking response map to the V3 /orders/preview response.

/orders/create response mappings

V2 - processBooking:
response field
V3 - /orders/create:
response field
pincodeaccommodation.pincode
receipt_urlpayment.receipt_url
reservation_idaccommodation.reservation

An order id is also returned. See Reservation ids and order ids

/accommodations/details response mappings

V2 - processBooking:
response field
V3 - /accommodations/details:
response field
hotel_contact_info:
> hotel_telephone
contacts:
> general.telephone
> reservation.telephone

Fields with no V3 equivalent

V2 - processBooking:
response field
No V3 equivalent:
notes
auth_form_urlNot available
gmaps_urlNot available
next_trips:
> name
> id
Not available