Changelog

Stay up to date with our latest technical enhancements.


Changelog - February 2025

Welcome to February 2025 changelog.

This month we've focused on improvements to orders and accommodation features in Demand API v3.1. These are some of the key highlights:

Orders

/orders/create

| Replacement | 3d secure authentication_value |

We have included the authentication_value field in the payment.card.authentication.3d_secure object within orders/create response.

  • It accommodates 3D Secure's authenticationValue.
  • It replaces cavv, which was used for the deprecated 3D Secure v1, a version no longer supported by Demand API V3.

Example:

"authentication": {
  "3d_secure": {
    "authentication_value": "AAAAAAAAAAAAAAA4l4AAAAAAAAA=",
    "eci": "05",
    "transaction": "00000000-0000-0000-0000-000000000000"
  }
}

For more details refer to the Credit card + SCA use case

| Addition | booker_address_required |

Previously when creating an order all fields of the booker.address object were mandatory. However, from now on only the country field is required:

"booker": {
  "address": {
    "country": "nl"
  }
}

The other fields within the booker.address object are subject to the value returned in the booker_address_required field within the accommodations/details response.

  • If the /accommodations/details endpoint indicates that the booker's address is needed ( via the booker_address_required=true flag), the full address is mandatory in the orders/create request.
  • If the booker_address_required flag is false, the booker's address can be omitted.

Example of accommodations/details response with booker_address_required=true

{
  "request_id": "01jmmjn081ta8d5a0kt83sgg1d",
  "data": [
    {
      "id": 10507360,
      "name": {
        "en-gb": "Demand API Sandbox Hotel Orion"
      },
      "accommodation_type": 204,
      "booker_address_required": true,
      "brands": [],
      "checkin_checkout_times": {...},

Example of orders/create response with booker.address filled:

"booker": {
    "address": {
      "address_line": "Road-1, house-2",
      "city": "Amsterdam",
      "country": "nl",
      "post_code": "11111"
    },

Refer to the orders/create guide for more details and examples.

| Addition | confirmation id and checkin_number | third party inventory properties |

Two new fields have been included in the orders/create response for third-party inventory properties:

checkin_numberThe number required at the time of check-in. It allows guests to confirm their order at the accommodation.
confirmation_numberUsed in conjunction with the pincode to verify the customer's order and assist with customer support or troubleshooting.

Example of the order response:

{
  "accommodation": {
    "order": "509430129718799",
    "pincode": "0000",
    "reservation": 12345678,
    "third_party_inventory": {
      "checkin_number": "123456789",
      "confirmation_number": "12345678912345678912"
    }
  }
}

Refer to the third_party_inventory guidelines for further details.

/orders/preview

| Addition | inventory_type | third party inventory properties |

You can find now the inventory_type object in both accommodations/availability and orders/preview endpoints.

  • This object indicates whether the property comes from a third-party inventory and the sort of rate that is applied, in this case "sell" rate:

Example of orders/preview response:

      "third_party_inventory": true,
      "inventory": {
        "third_party": true,
        "type": "sell"
      }  

Find more details in the Third-party repository quick guide.


Accommodation

accommodations/search

| Addition | product stock |

The number_available_at_this_price field indicates the available stock for each product ID (in units).

  • It was already available in the /availability and /bulk-availability endpoints.
  • Now you can also find it within the [/accommodations/search](accommodations/search response.

Example:

"products": [{
    "id": "1050736002_377311511_0_2_0",
    ...
    "maximum_occupancy": {
      "adults": 2,
      "children": null,
      "total": 2
    },
    "number_available_at_this_price": 10,
    ...
    "price": {
      "book": 184.00,
      "total": 184.00
    },
    "room": 1050736002
    ...

accommodations/details

| New functionality | DSA compliance | host_type and trader_verified |

We have added two new fields in the accommodations/details response, to comply with the Digital Services Act (“DSA”) legislation.

  • host_type: Specifies the type of host for the accommodation (professional, private or unknown).
  • trader_verified: Indicates whether the property has been successfully verified in line to Booking.com internal verification processes. This helps filter out non-verified properties for travellers in the European Economic Area (EEA), based on the booker's country.

These fields are available when requesting the /accommodations/details endpoint with the description extras parameter.

For more information, refer to the DSA compliance guide.

| Enhancement | Facilities details |

The following facilities-related information have been added in /accommodation/detail response:

Internet, parking, restaurant, swimming pool, together with specific details such as the type of connection, the charging model, pricing, location, reservation requirements, etc.

For a complete list and examples, refer to the accommodations/details guide.

| Addition | meal_prices |

We have added meal_prices in accommodations/details response to indicate meal pricing for breakfast, lunch, and dinner:

Example:

{
  "meal_prices": {
    "breakfast": 20,
    "dinner": null,
    "lunch": null
  }
}

| Addition | domestic_no_cc |

We have included the domestic_no_cc field within the payment object.

Example:

"payment": {
  "amex_cvc_required": false,
  "cvc_required": false,
  "domestic_no_cc": false,
  "methods": {
    "cards": [...],
    "cash": true,
    "virtual_cards": [
      1,
      2,
      3
    ]
  }
}

/accommodations/bulk-availability

| Addition | Cancellation schedule |

We have included the cancellation schedule within the policies.cancellation object in the /accommodations/bulk-availability response.

  • This field provides the cancellation timeline and estimated pricing.

Example:

"policies": {
  "cancellation": {
    "free_cancellation_until": "2025-08-08T22:59:59+00:00",
    "type": "free_cancellation",
    "schedule": [
      {
        "from": "now",
        "price": 0
      },
      {
        "from": "2025-08-08T23:00:00+00:00",
        "price": 1189.63
      }
    ]
  }
}
Important

Car rentals

cars/search

**| Addition | payment_timing filter | **

Users can now filter car rental search results based on payment timing options: pay_local, pay_now or part_pay.

Example of car rental search request with payment timing filter:

{
    "booker": {
        "country": "us"
    },
    "currency": "USD",
    "driver": {
        "age": 35
    },
    "route": {
        "pickup": {
            "datetime": "2025-07-21T10:00:00",
            "location": {
                "airport": "LAX"
            }
        },
        "dropoff": {
            "datetime": "2025-07-24T10:00:00",
            "location": {
                "airport": "LAX"
            }
        }
    },
    "payment": {
        "timings": ["pay_now", "part_pay"]
    }
}

Changelog archive

Documentation