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_answers then answer to that question must be one of the allowed answers.
  • If question contains the field units then asswer must be provided along with the unit field.

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"
    }
  ]
}