4. Booking Creation#

During this step, the availability item that has been created in the options step and edited up until now is used to create a booking on the supplier’s system. This is done through the following endpoint.

createBooking#

Given an availability ID, the endpoint returns a booking ID and a list of the chosen options and tickets.


Path

POST /booking-flow/v1/bookings


Input example

Request Header

Mandatory

Example

Format

Usage

externalClientId

No

ABCDEF

Alphanumeric, 255 maximum length

A string that the CustomerSystem can use to associate a booking to a specific traveler

Request Param

Mandatory

Example

Format

Usage

resellerRef

yes

bookingIdentifer

Alphanumeric, 255 maximum length

It represents the booking identifer from client side

Body:

{
    "availabilityId" : "01d0597b-a819-478b-b32d-f99290b70e88",
    "resellerRef": "bookingIdentifer"
}
Output body example
{
    "id": "60cdd167-e2ff-4746-b609-c2bee07d9985",
    "availabilityDateTime": "2023-12-19T12:00+01:00[Europe/Paris]",
    "resellerRef": "MY_COMPANY",
    "status": "ON_HOLD",
    "paymentStatus": "ON_HOLD",
    "creationDate": "2023-12-14T08:53:05.349042915Z",
    "availability": {
        "id": "01d0597b-a819-478b-b32d-f99290b70e88",
        "availabilityDate": "2023-12-19",
        "availabilityOptions": [
            {
                "label": "Ticket Type",
                "level": "0",
                "id": "24deeda6-bcda-4c04-9659-e2ca2b2beedc",
                "selectedOptionId": "528446",
                "optionChoices": {
                    "528446": "Eiffel ,2 Day Bus Pass &Cruise"
                }
            },
            {
                "label": "Start Time",
                "level": "1",
                "id": "01d28c41-0b26-4d3a-a0ec-229125e07c63",
                "selectedOptionId": "420013_20231219",
                "optionChoices": {
                    "420013_20231219": "12:00"
                }
            }
        ],
        "unitOptions": [
            {
                "label": "Adult",
                "id": "143731",
                "restrictions": {
                    "minQuantity": 1,
                    "maxQuantity": 10,
                    "accompagniedBy": []
                },
                "price": {
                    "retail": 114.9,
                    "currency": "EUR"
                },
                "unitQuantity": 2,
                "minAge": 13,
                "maxAge": 99
            },
            {
                "label": "Child",
                "id": "112820",
                "restrictions": {
                    "minQuantity": 1,
                    "maxQuantity": 10,
                    "accompagniedBy": []
                },
                "price": {
                    "retail": 99.9,
                    "currency": "EUR"
                },
                "unitQuantity": 1,
                "minAge": 4,
                "maxAge": 12
            },
            {
                "label": "Infant",
                "id": "112821",
                "restrictions": {
                    "minQuantity": 1,
                    "maxQuantity": 10,
                    "accompagniedBy": []
                },
                "price": {
                    "retail": 0.0,
                    "currency": "EUR"
                },
                "unitQuantity": 0,
                "minAge": 0,
                "maxAge": 3
            }
        ],
        "maxParticipants": 10,
        "minParticipants": 1,
        "isOptionStepCompleted": true,
        "isPricingStepCompleted": true
    },
    "cancellation": {
        "isCancellable": false,
        "cancellationPolicy": []
    },
    "isQuestionStepComplete": false,
    "travelerDetails": {
        "externalClientId": "ABCDEF"
    }
}

Note

  • The booking status will be ON_HOLD until confirmation.

  • Booking creation does not imply any “Hold” process on supplier side, and no ticket is reserved until the booking is successfully confirmed