PUTBookings

Update Booking

/api/v1/bookings/{bookingNumber}

Update an existing booking number using the same grouped model as create. You can update customer details, shared booking metadata (guests, payments, customerNote, resellerReference, resellerSource, resellerNote), and per-product item fields by sending items entries keyed by productCode. If an item changes reservationDateTime or quantities, that product allocation is released and recreated inside the same transaction.

Authentication Required

Include Bearer token in Authorization header: Authorization: Bearer YOUR_TOKEN

Path Parameters

NameTypeRequiredDescription
bookingNumberstringYesUnique booking number identifier to update

Request Body Fields

FieldTypeRequiredDescription
itemsarrayNoPer-product item updates. Each entry must identify the existing product by productCode.
items[].productCodestringYesExisting product code inside the booking number to update
items[].reservationDateTimestringNoNew reservation date or datetime for that product item
items[].quantitiesarrayNoReplacement quantity lines for that product item
items[].quantities[].labelstringYesQuantity line label (e.g. adult, child, senior)
items[].quantities[].quantitynumberYesNumber of units for the quantity line (must be > 0)
items[].quantities[].pricenumberYesUnit price for the quantity line (>= 0)
customerobjectNoCustomer fields to update (title, names, phone, email, address, etc.)
customer.firstNamestringNoCustomer first name
customer.lastNamestringNoCustomer last name
customer.titlestringNoCustomer title
customer.emailstringNoCustomer email address
customer.phonestringNoCustomer phone number
customer.addressstringNoCustomer street address
customer.citystringNoCustomer city
customer.countrystringNoCustomer country
customer.postCodestringNoCustomer postal / ZIP code
guestsarrayNoReplace the guest list shared by the booking
paymentsarrayNoReplace the payment records shared by the booking
customerNotestringNoShared customer note for the booking number
resellerReferencestringNoShared reseller booking reference
resellerSourcestringNoShared reseller source / channel
resellerNotestringNoShared reseller note for the booking number

Request Body Example

Example:

{
  "items": [
    {
      "productCode": "P811C6RV",
      "reservationDateTime": "2026-03-27T14:00:00",
      "quantities": [
        {
          "label": "adult",
          "quantity": 2,
          "price": 75
        },
        {
          "label": "child",
          "quantity": 1,
          "price": 40
        }
      ]
    }
  ],
  "customer": {
    "phone": "+33687654321",
    "address": "15 Avenue de l Opera, Paris"
  },
  "guests": [
    {
      "title": "Mr",
      "firstName": "John",
      "lastName": "Doe",
      "age": 37
    },
    {
      "title": "Mrs",
      "firstName": "Jane",
      "lastName": "Doe",
      "age": 35
    }
  ],
  "payments": [
    {
      "method": "CREDIT_CARD",
      "amount": 190,
      "currency": "EUR",
      "reference": "txn-2026-03-20-001"
    }
  ],
  "customerNote": "Wheelchair accessible entrance requested",
  "resellerReference": "RS-TRAVELMATE-9912",
  "resellerSource": "mytravelmate",
  "resellerNote": "VIP customer, prioritize fast check-in"
}

Response

Success Response Example:

{
  "success": true,
  "booking": {
    "bookingNumber": "PC2236PAQ",
    "items": [
      {
        "productCode": "P811C6RV",
        "reservationDate": "2026-03-27",
        "reservationTime": "14:00",
        "quantities": [
          {
            "label": "adult",
            "quantity": 2,
            "price": 75
          },
          {
            "label": "child",
            "quantity": 1,
            "price": 40
          }
        ],
        "resource": {
          "code": "RES-LOUVRE-PM",
          "name": "Louvre Afternoon Entry",
          "type": "ticket"
        }
      }
    ],
    "guests": [
      {
        "title": "Mr",
        "firstName": "John",
        "lastName": "Doe",
        "age": 37
      },
      {
        "title": "Mrs",
        "firstName": "Jane",
        "lastName": "Doe",
        "age": 35
      }
    ],
    "payments": [
      {
        "method": "CREDIT_CARD",
        "amount": 190,
        "currency": "EUR",
        "reference": "txn-2026-03-20-001"
      }
    ],
    "customerNote": "Wheelchair accessible entrance requested",
    "resellerReference": "RS-TRAVELMATE-9912",
    "resellerSource": "mytravelmate",
    "resellerNote": "VIP customer, prioritize fast check-in",
    "status": "created",
    "customer": {
      "title": "Mr",
      "firstName": "John",
      "lastName": "Doe",
      "phone": "+33687654321",
      "email": "[email protected]"
    }
  }
}

Error Response

Error Example:

{
  "success": false,
  "error": {
    "code": "INVALID_REQUEST",
    "message": "items[0] must include reservationDateTime or quantities"
  }
}

Available Errors

HTTP StatusCodeMeaning
401UNAUTHORIZEDInvalid or missing authentication token
400INVALID_REQUESTInvalid or unsupported payload
403FORBIDDENPartner and Booking do not match
404NOT_FOUNDNo bookings found for the given booking number or no booking items found for a productCode
409CONFLICTcanceled bookings cannot be updated
500INTERNAL_SERVER_ERRORFailed to update booking