Booking API Endpoint
This endpoint is used to finalize an activity booking after successfully completing the Search and Recheck steps.
It validates traveler details, payment information, and mandatory booking questions before confirming the reservation.
Once the request is successfully processed:
- The system verifies availability and pricing for the selected
ratekey. - Performs real-time booking confirmation.
- Returns a unique booking reference ID, along with confirmation details such as total amount, booking status, and cancellation policies.
Overview
Method: POST
URL: /api/activity/booking
Api-Key: Required (Api Key Header)
Content-Type: application/json
Accept: application/json
Request
Request Fields
| Field | Type | Description |
|---|---|---|
| search_id * | string | Unique identifier obtained from the recheck response. |
| agent_reference * | string | Custom booking reference generated by the agent. |
| booking_name * | string | Name or title used to identify the booking internally. |
| purpose_of_travel * | integer | Purpose of the trip (e.g., 1 = Leisure, 2 = Business). |
| booking_item * | object (Booking Item Object) | Details of the selected activity item to book. |
| credit_card * | object (Credit Card Object) | Card details used for payment authorization. |
| holder * | object (Holder Object) | Primary contact details of the booking holder. |
| payment_type * | enum("AT_WEB", "AT_AGENT") | Type of payment flow. "AT_WEB" for card-based web payments. |
| temp_id * | string | Temporary identifier used for session tracking. |
| travellers * | array of (Traveller Object) | List of travelers included in the booking. |
Booking Item Object Structure
| Field | Type | Description |
|---|---|---|
| group_code * | string | Group code of the selected activity (from search/recheck). |
| ratekey * | string | Unique rate key identifying the selected activity option. |
| question_answers | array of (Question Answer Object) | List of answers to booking questions (if required). |
Question Answer Object Structure
| Field | Type | Description |
|---|---|---|
| question_code * | string | Unique code for the booking question. |
| answer * | string | Response provided by the agent/traveler. |
| traveller_number | integer | Index of the traveller the answer is realted. Indext starts with 1. |
| unit | string | Unit of the answer |
Notes
- All mandatory booking questions must be answered in this section.
- Conditional questions must be sent only when their condition applies.
- Each question that requires an answer must have exactly one value.
- If
type=PER_TRAVELLER, the same question must be answered for each traveler. - If question contains the field
allowed_answersthen answer to that question must be one of the allowed answers. - If question contains the field
unitsthen asswer must be provided along with theunitfield.
Credit Card Object Structure
| Field | Type | Description |
|---|---|---|
| address_line1 * | string | Cardholder billing address. |
| card_cv2 * | string | CVV/CVC security code of the card. |
| card_number * | string | Credit card number. |
| card_type * | enum("VI", "MC", "AX", "DC") | Card type (VI = Visa, MC = MasterCard, etc.). |
| city_name * | string | Billing city name. |
| expiry_month * | string | Expiration month of the card (MM format). |
| expiry_year * | string | Expiration year of the card (YYYY format). |
| family_name * | string | Cardholder’s last name. |
| given_name * | string | Cardholder’s first name. |
Holder Object Structure
| Field | Type | Description |
|---|---|---|
| client_nationality * | string | Nationality of the booking holder (ISO country code). |
| email * | string | Email address of the booking holder. |
| name * | string | First name of the holder. |
| phone_number * | string | Contact phone number of the holder. |
| surname * | string | Last name of the holder. |
| title * | enum("Mr.", "Ms.", "Mrs.", "Dr.") | Title of the holder. |
Traveller Object Structure
| Field | Type | Description |
|---|---|---|
| age * | string | Age of the traveler. |
| name * | string | First name of the traveler. |
| surname * | string | Last name of the traveler. |
| title * | enum("Mr.", "Ms.", "Mrs.", "Dr.") | Traveler title. |
| type * | enum("AD", "CH", "IN", "SR", "YO") | Traveler type (AD = Adult, CH = Child, etc.). |
Example Request
{
"search_id": "e522cifnrfeuuze5k7itymtzqa",
"agent_reference": "agent_reference_007",
"booking_name": "test-booking-007",
"purpose_of_travel": 2,
"booking_item": {
"group_code": "u6lql4djuarcpwkxusoq",
"ratekey": "qw4vlpr44mvcpwkrv2iw2f4cw3j2xsfb6w3oxabjrzab55ppddmx3bppeucsh2eesyrq",
"question_answers": [
{
"question_code": "DOB",
"answer": "2024-12-19"
"traverller_number": 1
},
{
"question_code": "DOB",
"answer": "2024-12-13"
"traverller_number": 2
},
{
"question_code": "PHONE_NUMBER",
"answer": "9090909090"
},
{
"question_code": "HEIGHT",
"answer": 5.5
"unit": "feet"
"traverller_number": 1
},
{
"question_code": "HEIGHT",
"answer": 80
"unit": "cm"
"traverller_number": 2
}
]
},
"credit_card": {
"address_line1": "Delhi",
"card_cv2": "123",
"card_number": "4012008888880000",
"card_type": "VI",
"city_name": "Delhi",
"expiry_month": "08",
"expiry_year": "2025",
"family_name": "Alpha",
"given_name": "Beta"
},
"holder": {
"client_nationality": "FR",
"email": "ankanna@grnconnect.com",
"name": "Ankanna",
"phone_number": "+919494507287",
"surname": "Malreddy",
"title": "Mr."
},
"payment_type": "AT_WEB",
"temp_id": "temp_id_007",
"travellers": [
{
"age": "30",
"name": "Dinesh",
"surname": "Rajagopal",
"title": "Mr.",
"type": "AD"
},
{
"age": "5",
"name": "Levi Jaxon",
"surname": "Malreddy",
"title": "Mr.",
"type": "CH"
}
]
}