MojoBoxx Cabs Booking API Documentation

Comprehensive suite of endpoints for cab booking, ride management, and real-time driver tracking.

Overview

This API collection provides a comprehensive suite of endpoints designed to facilitate seamless cab booking, ride management, and real-time driver tracking. These APIs enable developers to integrate robust transportation functionalities into their applications, offering users a streamlined experience for requesting and managing cab services.

Core Functionalities:

Funnel Diagrams

Common Request Headers:

Login

Endpoint: /auth/v1/login

Method: POST

Idempotent: No

Description: Authenticates a user and returns a JWT (JSON Web Token) for subsequent API requests.

Validation:

  • username (String, Required)
  • password (String, Required)

Sample cURL Request:

curl --location '{{baseUrl}}/auth/v1/login' \
               --header 'accept: application/json' \
               --header 'Content-Type: application/json' \
               --data-raw '{
                     "username": "username",
                     "password": "password"
               }'

Request Example:

{ "username": "xyz", "password": "xyz1234" }

Response Example:

{ "message": "Login successful", "code": 200, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expiresAt": 1746216087463 }
  • message (String) - A success message indicating the login was successful.
  • code (Number) - HTTP status code representing the result of the operation (200 = success).
  • token (String) - JWT token to be used for authenticated requests.
  • expiresAt (Number) - Expiry timestamp (in milliseconds since epoch) for the token validity.

Error Responses:

{ "message": "Invalid credentials", "code": 401 }
{ "message": "\"username\" is required", "code": 400 }
{ "message": "\"password\" is required", "code": 400 }
{ "status": "failure", "message": "Internal server error", "code": 500, "error": "error message", "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

City List

Endpoint: /api/v1/booking/cityList

Method: GET

Idempotent: YES

Description: Fetches a list of pickup points (airports and terminals) based on the search query, suported by mojoboxx.

Validation:

  • search (String, Required): Search term for filtering city or airport codes (e.g., DEL).

Sample cURL Request:

curl --location '{{baseUrl}}/api/v1/booking/cityList?search=DEL' \
               --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
               --header 'Authorization: ••••••' \
               --data ''

Request Example:

/api/v1/booking/cityList?search=DEL

Response Example:

{ "status": "success", "message": "Pickup points fetched successfully", "code": 200, "data": [{ "id": 1, "airportCode": "DEL", "terminalId": "T1", "sourceName": "IGI Airport-T1", "sourceCity": "Delhi", "sourceLatitude": "28.5610630", "sourceLongitude": "77.1197200" }] }
  • status (String) - Indicates the status of the response (e.g., "success").
  • message (String) - A message describing the result of the API call.
  • code (Number) - HTTP status code representing the result (200 = success).
  • data (Array) - List of pickup points. Each object in the array contains:
    • id (Number) - Unique identifier for the pickup point.
    • airportCode (String) - Code of the airport (e.g., "DEL").
    • terminalId (String) - Identifier for the terminal (e.g., "T1").
    • sourceName (String) - Name of the pickup location.
    • sourceCity (String) - City where the pickup point is located.
    • sourceLatitude (String) - Latitude of the pickup location.
    • sourceLongitude (String) - Longitude of the pickup location.

Error Responses:

{ "status": "failure", "message": "Invalid query parameters: \"search\" is not allowed to be empty", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Access denied. No token provided.", "code": 401 }
{ "status": "failure", "message": "Internal server error'", "code": 500, "error": "error message", "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

Batch Fare

Endpoint:/api/v1/booking/getCabBatchFares

Method: GET

Idempotent: YES

Description: Fetches a list of pickup points (airports and terminals) based on the search query, suported by mojoboxx.

Validation:

  • code (String, Required): Search term for airport codes (e.g., DEL).

Sample cURL Request:

curl --location '{{baseUrl}}/api/v1/booking/getCabBatchFares?code=DEL' \
               --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
               --header 'Authorization: Bearer ***************' \
               --data ''

Request Example:

/api/v1/booking/getCabBatchFares?code=DEL

Response Example:

{ "status": "success", "message": "Cab batch fares fetched successfully", "code": 200, "data": [ { "id": 17, "city": "Delhi", "code": "DEL", "area": "Delhi/NCR", "minKm": 1, "maxKm": 5, "vehicleType": "SEDAN", "minFare": 199, "maxFare": 237, "travelType": "departure" } ], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
  • status: success – Indicates the API call was successful.
  • message: "Cab batch fares fetched successfully" – Confirmation message.
  • code: 200 – Standard HTTP success status code.
  • data:
    • id: 17 – Unique identifier for this fare batch entry.
    • city: "Delhi" – Name of the city.
    • code: "DEL" – Airport or city code.
    • area: "Delhi/NCR" – Specific area under the city.
    • minKm: 1 – Minimum kilometer range for the fare.
    • maxKm: 5 – Maximum kilometer range for the fare.
    • vehicleType: "SEDAN" – Type of vehicle applicable for this fare range.
    • minFare: 199 – Minimum fare for this distance and vehicle.
    • maxFare: 237 – Maximum fare possible within this range.
    • travelType: "departure" – Indicates this fare is for airport drop-offs.
  • correlationId: "6731c8eb-8509-49b8-b526-8184f8c917b3" – Unique request trace ID for debugging or tracking.

Error Responses:

{ "status": "failure", "message": "Invalid query parameters: \"Airport code\" is required", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Access denied. No token provided.", "code": 401 }
{ "status": "failure", "message": "No fares found for given code", "code": 404, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Internal server error'", "code": 500, "error": "error message", "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Access denied. No token provided.", "code": 401 }

Fare Search

Endpoint: /api/v1/booking/fareSearch

Method: POST

Idempotent: No

Description: Search for available cab fares based on source and destination.

Validation:

  • sourceName (String, Required): Name of the source location.
  • sourceLatitude (Float, Required): Latitude of the source location.
  • sourceLongitude (Float, Required): Longitude of the source location.
  • sourceCity (String, Required): City of the source location.
  • destinationName (String, Required): Name of the destination location.
  • destinationLatitude (Float, Required): Latitude of the destination location.
  • destinationLongitude (Float, Required): Longitude of the destination location.
  • destinationCity (String, Required): City of the destination location.
  • startDatetime (String, Required): Start time of the ride in ISO 8601 format.
  • cityCode (String, Required): City code (e.g., DEL for Delhi). (airportCode from /cityList object)
  • travelType (String, Required): Type of travel (e.g., Departure or Arrival).
  • kilometer (String, Required): Distance between source and destination
  • duration (String, Required): Time duraion in minute of travel.

Sample cURL Request:

curl --location '{{baseUrl}}/api/v1/booking/fareSearch' \
                  --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
                  --header 'Content-Type: application/json' \
                  --header 'Authorization: ••••••' \
                  --header 'Cookie: connect.sid=s%3AMeJ4ENxUdNkFaWVGsxkXVs1-7I7tQJWc.FsL7nl%2B7j8EVzsBx%2Fj5drPOyqBd6mu6JRxbLKkYKgPk' \
                  --data '{
                     "sourceName": "Shadra, Delhisssd Inssdssdia",
                     "sourceLatitude": 28.6893144,
                     "sourceLongitude": 77.2919663,
                     "sourceCity": "Delhi",
                     "destinationName": "IGI Airport-T3",
                     "destinationLatitude": 28.5550838,
                     "destinationLongitude": 77.0844015,
                     "destinationCity": "Delhi",
                     "startDatetime": "2025-05-05T11:55:00Z",
                     "cityCode": "DEL",
                     "travelType": "Departure",
                     "kilometer": 15,
                     "duration": 15
                  }'

Request Example:

{ "sourceName": "Shadra, Delhi", "sourceLatitude": 28.6893144, "sourceLongitude": 77.2919663, "sourceCity": "Delhi", "destinationName": "IGI Airport-T3", "destinationLatitude": 28.5550838, "destinationLongitude": 77.0844015, "destinationCity": "Delhi", "startDatetime": "2025-05-05T11:55:00Z", "cityCode": "DEL", "travelType": "Departure", "kilometer": 15, "duration": 15 }
Response Example:
{ "status": "success", "message": "Fare fetched successfully", "code": 200, "data": [ { "airConditioned": true, "title": "Quick Ride", "cabPartner": "QUICKRIDE", "image": "https://cdn.bookairportcab.com/quikride.png", "model": "Dzire, Etios or similar", "seats": 4, "subcategory": "ECONOMY", "vehicleType": "SEDAN", "cabId": "8f0df0a8-2a48-429c-b175-2c4d4f8449c0", "fareId": "FFVC:Sedan:1759064:110520251850:1746863674542:456226695", "searchId": "8579881b-b193-493d-bf3e-04fe25c2c069|a887dae0cf34649a01f3592efb8e001863c750482881868a0e76deef0bfeb77d", "features": { "extraKmFare": 10, "fuelType": "PETROL", "freeCancellationTill": 30, "ridesToday": 250 }, "expiryTime": 1746865434076, "inclusion": [ "Includes Base Fare, Driver Day allowance, GST (5.0%) in the costing." ], "exclusion": [ "Once you exceed your 34 KMs limits, you will be charged extra 15.49 per KM.", "For Sedan, waitingCharge 1.75/min is applied after 20 minutes.\n" ], "facilities": [ "For Sedan, maximum seating capacity is 4 and maximum 2 bags are allowed." ], "infos": [ "Ride fare may vary based on the traveled distance", "Fare includes one pick up and one drop only; no break is allowed in this trip.", "The booking will be for cab type (HatchBack, Sedan or SUV) and we do not commit on providing any preferred cab model.", "Pets are not allowed.", "Driver shall wait for 20 minutes at pickup location. Post that, your cab will be cancelled without making any refund. Extension is possible based on the mutual understanding between customer and driver. Waiting charges will be applicable for all such extensions." ], "tag": "Sponsored", "fare": 608, "maxFare": 699.2, "baseFare": 468.33, "tollCharges": false, "tax": 41.14, "serviceCharge": 98.53, "extraDetails": { "totalFare": 608, "rideFare": 468.33, "gstOnRideFare": 23.4, "serviceFees": 98.53, "gstOnServiceFees": 17.74, "tollCharges": 0, "interStateCharges": 0, "parkingCharges": 0, "driverBata": 0, "nightCharges": 0, "additionalCharges": 0, "tollChargesIncluded": false, "interStateTaxesIncluded": false, "extraKmFare": 10, "extraHourFare": 0, "seatCapacity": 4, "luggageCapacity": 2 } }, { "airConditioned": true, "title": "Gozo Cabs", "cabPartner": "GOZOCABS", "image": "https://cdn.bookairportcab.com/gozo.webp", "model": "Dzire, Toyota Etios, Tata Indigo or equivalent CNG", "seats": 4, "subcategory": "ECONOMY", "vehicleType": "SEDAN", "cabId": "aef8bd9e-2c17-43eb-ba26-bf7774137b3f", "fareId": "73", "searchId": "1c5beff9-d128-462e-8530-1e8f6d4e593f|a887dae0cf34649a01f3592efb8e001863c750482881868a0e76deef0bfeb77d", "features": { "extraKmFare": 20, "fuelType": "CNG", "freeCancellationTill": 30, "ridesToday": 250 }, "expiryTime": 1746865434078, "inclusion": [ "Night charges (10 PM to 6 AM)", "State Tax", "15 Kms", "Toll charges", "Driver Allowance", "Only one pickup and drop (One included)" ], "exclusion": [ "Waiting charges beyond 30 mins will be additional", "Fare beyond 15 kms will be charged differently" ], "facilities": [], "infos": [], "tag": "Recommended", "fare": 1070, "maxFare": 1230.5, "baseFare": 1019, "tollCharges": 0, "tax": 51, "serviceCharge": 0, "extraDetails": { "totalFare": 1070, "rideFare": 1019, "gstOnRideFare": 51, "serviceFees": null, "gstOnServiceFees": null, "tollCharges": null, "interStateCharges": null, "parkingCharges": null, "driverBata": null, "nightCharges": null, "additionalCharges": null, "tollChargesIncluded": 1, "interStateTaxesIncluded": null, "extraKmFare": 20, "extraHourFare": 0, "seatCapacity": 4, "luggageCapacity": null } }, { "airConditioned": true, "title": "Gozo Cabs", "cabPartner": "GOZOCABS", "image": "https://cdn.bookairportcab.com/gozo.webp", "model": "Indica, Swift, Alto, Ford Figo or equivalent CNG", "seats": 4, "subcategory": "ECONOMY", "vehicleType": "SEDAN", "cabId": "23406907-42a5-458f-a797-35326775a41b", "fareId": "72", "searchId": "1e90eed9-2ab2-4e9f-a177-8e540d3cb78f|a887dae0cf34649a01f3592efb8e001863c750482881868a0e76deef0bfeb77d", "features": { "extraKmFare": 19, "fuelType": "CNG", "freeCancellationTill": 30, "ridesToday": 250 }, "expiryTime": 1746865434081, "inclusion": [ "Night charges (10 PM to 6 AM)", "State Tax", "15 Kms", "Toll charges", "Driver Allowance", "Only one pickup and drop (One included)" ], "exclusion": [ "Waiting charges beyond 30 mins will be additional", "Fare beyond 15 kms will be charged differently" ], "facilities": [], "infos": [], "tag": "Recommended", "fare": 1044, "maxFare": 1200.6, "baseFare": 994, "tollCharges": 0, "tax": 50, "serviceCharge": 0, "extraDetails": { "totalFare": 1044, "rideFare": 994, "gstOnRideFare": 50, "serviceFees": null, "gstOnServiceFees": null, "tollCharges": null, "interStateCharges": null, "parkingCharges": null, "driverBata": null, "nightCharges": null, "additionalCharges": null, "tollChargesIncluded": 1, "interStateTaxesIncluded": null, "extraKmFare": 19, "extraHourFare": 0, "seatCapacity": 4, "luggageCapacity": null } }, { "airConditioned": true, "cabPartner": "SIGNATURE", "image": "https://cdn.bookairportcab.com/signature.jpg", "title": "Signature", "model": "Unknown", "seats": 4, "subcategory": "ECONOMY", "vehicleType": "SEDAN", "cabId": "22b93e54-03d9-417f-a617-51a1f8a0855a", "fareId": "f680edbc-0713-4530-9eb3-c9f41e1f2cb1", "searchId": "2bb98630-4c0a-4d80-a38a-cec35796eee0|a887dae0cf34649a01f3592efb8e001863c750482881868a0e76deef0bfeb77d", "features": { "extraKmFare": 20, "fuelType": "PETROL", "freeCancellationTill": 30, "ridesToday": 250 }, "expiryTime": 1746865434100, "inclusion": [ "Night charges (10 PM to 6 AM)", "State Tax", "15 Kms", "Toll charges", "Driver Allowance", "Only one pickup and drop (One included)" ], "exclusion": [ "Waiting charges beyond 30 mins will be additional", "Fare beyond 15 kms will be charged differently" ], "facilities": [], "infos": [], "tag": "Female Friendly", "fare": 399, "maxFare": 458.85, "baseFare": 0, "tollCharges": 0, "tax": 0, "serviceCharge": 0, "extraDetails": { "totalFare": 399, "rideFare": null, "gstOnRideFare": null, "serviceFees": null, "gstOnServiceFees": null, "tollCharges": null, "interStateCharges": null, "parkingCharges": null, "driverBata": null, "nightCharges": null, "additionalCharges": null, "tollChargesIncluded": null, "interStateTaxesIncluded": null, "extraKmFare": null, "extraHourFare": null, "seatCapacity": 4, "luggageCapacity": 2 } } ], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
  • status: The status of the API response.
    • Possible values: success, failure.
  • message: A descriptive message about the response (e.g., "Fare fetched successfully").
  • code: The HTTP status code of the response (e.g., 200).
  • data: An array of available cab options.
    • Each cab option contains the following keys:
      • airConditioned: Indicates if the cab is air-conditioned.
        • Possible values: true, false.
      • title: The name or title of the cab service (e.g., "Quick Ride", "Gozo Cabs").
      • cabPartner: The partner providing the cab service.
        • Possible values:
          • QUICKRIDE: Quick Ride partner.
          • GOZOCABS: Gozo Cabs partner.
          • SIGNATURE: Signature partner.
      • image: A URL to the partner's logo or image.
      • model: The type of vehicle (e.g., "Dzire, Etios or similar").
      • seats: The seating capacity of the vehicle.
      • subcategory: The category of the cab.
        • Possible values:
          • ECONOMY: Budget-friendly options.
          • PREMIUM: High-end options.
      • vehicleType: The type of vehicle.
        • Possible values:
          • SEDAN: Sedan vehicles.
          • SUV: SUV vehicles.
          • HATCHBACK: Hatchback vehicles.
      • cabId: A unique identifier for the cab.
      • fareId: A unique identifier for the fare.
      • searchId: A unique identifier for the search session.
      • features: Additional features of the cab.
        • extraKmFare: The fare charged per extra kilometer.
        • fuelType: The type of fuel used by the vehicle.
          • Possible values:
            • PETROL: Petrol vehicles.
            • DIESEL: Diesel vehicles.
            • CNG: CNG vehicles.
            • ELECTRIC: Electric vehicles.
        • freeCancellationTill: The time (in minutes) until which cancellation is free.
        • ridesToday: The number of rides completed by the partner today.
      • expiryTime: The timestamp (in milliseconds) when the fare expires.
      • inclusion: A list of items included in the fare (e.g., "Base Fare, Driver Day allowance, GST").
      • exclusion: A list of items excluded from the fare (e.g., "Waiting charges beyond 30 mins").
      • facilities: Additional facilities provided by the cab (e.g., "Maximum seating capacity is 4").
      • infos: Informational messages about the ride (e.g., "Ride fare may vary based on the traveled distance").
      • tag: A label or tag for the cab (e.g., "Sponsored", "Recommended" ,"Female Friendly").
      • fare: The total fare for the ride.
      • maxFare: The maximum fare for the ride (calculated as fare + (fare * 0.15)).
      • baseFare: The base fare for the ride.(rideFare = baseFare)
      • tollCharges: Indicates if toll charges are included.
        • Possible values: true, false.
      • tax: The tax amount included in the fare.(In QuickRide it is a sum of gstOnRideFare gstOnServiceFees)
      • serviceCharge: The service charge included in the fare.
      • extraDetails: Additional details about the fare breakdown.
        • totalFare: The total amount to be paid for the ride, including all applicable charges.
        • rideFare: The base fare for the ride, excluding taxes and additional charges.(rideFare = baseFare)
        • gstOnRideFare: The GST (Goods and Services Tax) applied on the ride fare.
        • serviceFees: Any service or convenience fees added to the booking.
        • gstOnServiceFees: GST applied on the service fees.
        • tollCharges: Any toll taxes applicable during the ride.
        • interStateCharges: Charges applied when the ride crosses state borders.
        • parkingCharges: Charges incurred for parking during the ride.
        • driverBata: Daily allowance or extra payment made to the driver.
        • nightCharges: Additional charges applicable for rides during night hours.
        • additionalCharges: Any other extra charges that don’t fall into specific categories.
        • tollChargesIncluded: Indicates whether toll charges are included in the fare (true/false).
        • interStateTaxesIncluded: Indicates whether interstate taxes are included in the fare (true/false).
        • extraKmFare: Per-kilometer charge for distance traveled beyond the included limit.
        • extraHourFare: Per-hour charge if the ride exceeds the allowed time limit.
        • seatCapacity: The number of passengers the vehicle can accommodate.
        • luggageCapacity: The number of luggage pieces the vehicle can carry comfortably.
  • correlationId: A unique identifier for tracing the request.

Error Responses:

{ "status": "failure", "message": "Invalid request parameters: \"sourceName\" is required", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Invalid request parameters: startDatetime must be at least 30 minutes ahead of the current time (IST)", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Access denied. No token provided.", "code": 401 }
{ "status": "failure", "message": "Internal server error'", "code": 500, "error": "error message", "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

Prebook

Endpoint: /api/v1/booking/prebook

Method: POST

Idempotent: No

Description: Locks the fare for a specific cab and returns a unique booking ID.

Validation:

  • userName (String, Required): User's full name.
  • mobile (String, Required): User's mobile number.
    • Must be a valid 10-digit number.
    • If prefixed with '+91', the '+91' should be removed.
  • email (String, Required): User's email address.
    • Must be a valid email format (e.g., user@example.com).
  • membershipId (Number, Optional): User's membership ID.
    • Must be a valid number if provided.
  • searchId (String, Required): Unique search ID for the booking (from fareSerach Result).
  • otherDetails (String, Optional): Additional details about the booking.
    • Can be an empty string if no additional details are provided.

Sample cURL Request:

curl --location '{{baseUrl}}/api/v1/booking/prebook' \
          --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
          --header 'Content-Type: application/json' \
          --header 'Authorization: Bearer ********' \
          --header 'Cookie: connect.sid=s%3AMeJ4ENxUdNkFaWVGsxkXVs1-7I7tQJWc.FsL7nl%2B7j8EVzsBx%2Fj5drPOyqBd6mu6JRxbLKkYKgPk' \
          --data-raw '{
              "userName": "CustomerName",
              "mobile": "8046800969",
              "email": "info@mojoboxx.com",
              "otherDetails": "Customer prefers early pickup.",
              "searchId": "7bea3bde-7f44-4b82-aae1-b045f699510b|833aba8e01d7b873141272368dd15a1d00ec5cf8f2e76db3acf5863e119e9932"
          }'

Request Example:

{ "userName": "CustomerName", "mobile": "8046800969", "email": "info@mojoboxx.com", "otherDetails": "Customer prefers early pickup.", "searchId": "6ea0067f-103b-457c-bb66-37b35aebc30f|833aba8e01d7b873141272368dd15a1d00ec5cf8f2e76db3acf5863e119e9932" }

Response Example:

{ "status": "success", "message": "Booking created successfully", "code": 201, "data": { "bookingId": "JCRWE0305200052554JZU" }, "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
  • status (String) - Indicates the status of the response (e.g., "success").
  • message (String) - A message describing the result of the API call.
  • code (Number) - HTTP status code representing the result (201 = resource created).
  • data (Object) - Contains booking-related details:
    • bookingId (String) - Unique identifier for the created booking.
  • correlationId (String) - Unique identifier used for tracking/logging the request-response cycle.

Error Responses:

{ "status": "failure", "message": "No fare data found in cache", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }   
{ "status": "failure", "message": "Invalid request parameters: \"userName\" is required", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Access denied. No token provided.", "code": 401 }
                
{ "status": "failure", "message": "Internal server error'", "code": 500, "error": "error message", "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

Payment Confirmation

Endpoint: /api/v1/booking/paymentConfirmation

Method: POST

Idempotent: No

Description: Locks the fare for a specific cab and returns a unique booking ID.

Validation:

  • bookingId (String, Required):Unique ID of the booking for which the payment is being confirmed.

Sample cURL Request:

curl --location '{{baseUrl}}/api/v1/booking/paymentConfirmation' \
               --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
               --header 'Content-Type: application/json' \
               --header 'Authorization: Bearer *********************' \
               --data '{
                  "bookingId": "JCRWE050520175319U3KS",
                     "amount" : 382,
                     "paymentRefId": "TXN277378648"
               }'
               

Request Example:

{ "bookingId": "JCRWE050520175319U3KS", "amount" : 382, "paymentRefId": "TXN277378648" }

Response Example:

{ "status": "success", "message": "Payment confirmed successfully", "code": 200, "data": { "transactionId": "TXN1348978984", "bookingId": "JCRWE030520013443NFPR" }, "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
  • status (String) - Indicates the status of the response (e.g., "success").
  • message (String) - A message describing the result of the API call.
  • code (Number) - HTTP status code representing the result (200 = success).
  • data (Object) - Contains payment confirmation details:
    • transactionId (String) - Unique identifier for the confirmed transaction.
    • bookingId (String) - Unique identifier of the associated booking.
  • correlationId (String) - Unique identifier used for tracking/logging the request-response cycle.

Error Responses:

{ "status": "failure", "message": "Booking ID does not exist.", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }  
{ "status": "failure", "message": "Invalid request parameters: \"bookingId\" is required", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Access denied. No token provided.", "code": 401 }
{ "status": "failure", "message": "Internal server error'", "code": 500, "error": "error message", "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
 { "status": "failure", "message": "PayType FULL | PaidAmount 1037.00 | RemainingAmount 0.00", "code": 409, "data": { "transactionId": "TXN5128052713", "bookingId": "JCRWE0605201447131KYR" }, "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

Booking Details

Endpoint: /api/v1/booking/bookingDetails

Method: GET

Idempotent: YES

Description: Fetch booking details by booking ID.

Validation:

  • bookingId (String, Required):Unique ID of the booking for which you want to see details.

Sample cURL Request:

curl --location '{{baseUrl}}/api/v1/booking/bookingDetails?bookingId=JCRWE0205201259223OBR' \
          --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
          --header 'Authorization: ••••••' \
          --header 'Cookie: connect.sid=s%3AMeJ4ENxUdNkFaWVGsxkXVs1-7I7tQJWc.FsL7nl%2B7j8EVzsBx%2Fj5drPOyqBd6mu6JRxbLKkYKgPk' \
          --data ''
          

Request Example:

/api/v1/booking/bookingDetails?bookingId=JCRWE0205201259223OBR

Response Example:

{ "status": "success", "message": "Booking fetched successfully", "code": 200, "data": [ { "bookingId": "JCRWE290820152549XY5L", "parentBookingId": "JCRWE290820152549XY5L", "userName": "Ishan Upneja", "mobile": "7838184345", "email": "a@b.com", "gender": null, "image": "https://cdn.bookairportcab.com/June-30-2025/QR-84.png", "imageMobile": "https://cdn.bookairportcab.com/June-30-2025/QR-38.png", "pickupTime": "2025-09-02T15:20:00.000Z", "dropOffTime": "2025-09-02T16:40:00.000Z", "cabPartner": "QUICKRIDE", "referenceNumber": "FFVC:Sedan:1941238:020920251520:1756461333865:-2076301933", "bookingTime": "2025-08-29T09:55:49.000Z", "sourceName": "Maharaja Surajmal Marg, Vishwas Nagar Extension, Vishwas Nagar, Shahdara, Delhi, 110032, India", "sourceLatitude": "28.6576294000", "sourceLongitude": "77.3025110000", "destinationName": "Terminal 3, Delhi 110037", "destinationLatitude": "28.5550838000", "destinationLongitude": "77.0844015000", "cityCode": "DEL", "kilometer": 31, "totalFare": 709, "couponCode": null, "discountApplied": 0, "paidAmount": 509, "remainingAmount": 200, "paymentStatus": "PARTIALLY_PAID", "tripProgress": 100, "payType": "PARTIAL", "paymentMethod": "PARTNER_PG", "travelType": "departure", "otherDetails": "Customer booking through ixigo app", "features": { "freeCancellationTill": 30, "extraKmFare": 13, "fuelType": "PETROL" }, "driverName": "Driver517718", "driverMobile": "+971539350719", "vehicleNumber": "DL99A6508", "otp": "2191", "vehicleType": "SEDAN", "fuelType": "PETROL", "seats": 4, "airConditioned": 1, "extraPerKm": 13, "inclusion": [ "Night charges (10 PM to 6 AM)", "State Tax", "Toll charges", "Driver Allowance" ], "exclusion": { "waitingCharges": { "inclusionDuration": 30, "afterwardsChargesPerMin": 2 }, "distanceCharges": { "inclusionDistance": 28, "afterwardsChargesPerKm": 13 } }, "facilities": [], "infos": [], "fareDetails": { "baseFare": 515.81, "tax": 81.84, "tollCharges": 0, "serviceCharge": 111.35 }, "status": "COMPLETED", "isBooked": 1, "supportEmail": "care@bookairportcab.com", "supportContact": "08046800969", "cabPartnerResponse": null, "cancellationCharge": 0, "refundAmount": 509, "subcategory": "ECONOMY", "model": "Dzire, Etios or similar", "sourceAddress": "null", "sourceState": "null", "destinationAddress": "null", "destinationState": "null", "rating": 4, "ratingCount": 62, "filterTag": "SEDAN", "journeyType": "AIRPORT", "driverLocations": [ { "id": 167, "event": "Left For pickup", "order_referance_no": "JCRWE290820152549XY5L", "latitude": "28.7019083", "longitude": "77.2378752", "timestamp": "1756469928679", "device_id": "webapp1", "sync_date": "2025-08-29", "sync_datetime": "2025-08-29 17:48:52", "sync_timestamp": "1756469932174", "total_travelled_fare": "0", "partner": "QUICKRIDE" }, { "id": 168, "event": "arrived", "order_referance_no": "JCRWE290820152549XY5L", "latitude": "28.6576294000", "longitude": "77.3025110000", "timestamp": "1756469929566", "device_id": "webapp1", "sync_date": "2025-08-29", "sync_datetime": "2025-08-29 17:48:52", "sync_timestamp": "1756469932993", "total_travelled_fare": "0", "partner": "QUICKRIDE" } ], "expiryTime": "1756463094345", "whatsappConsent": true, "memberShipId": null, "extraDetails": { "totalFare": 709, "rideFare": 515.81, "gstOnRideFare": 61.8, "serviceFees": 111.35, "gstOnServiceFees": 20.04, "tollCharges": 0, "interStateCharges": 0, "parkingCharges": 0, "driverBata": 0, "nightCharges": 0, "additionalCharges": 0, "tollChargesIncluded": false, "interStateTaxesIncluded": false, "extraKmFare": 13, "extraHourFare": 0, "seatCapacity": 4, "luggageCapacity": 2, "airportEntryFeeAmount": 0 } } ], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

Booking Details Response Explanation:

  • status: The status of the API response.
    • Possible values: success, failure.
  • message: A descriptive message about the response (e.g., "Fetched booking history for a given user successfully").
  • code: The HTTP status code of the response (e.g., 200).
  • data: Contains the booking history and pagination details.
    • bookings: An array of booking objects.
      • Each booking contains the following keys:
        • bookingId: A unique identifier for the booking.
        • pickupTime: The scheduled pickup time in ISO 8601 format.
        • cabPartner: The partner providing the cab service.
          • Possible values:
            • QUICKRIDE: Quick Ride partner.
            • SIGNATURE: Signature partner.
            • GOZOCABS: Gozo Cabs partner.
        • referenceNumber: A unique reference number for the booking.
        • bookingTime: The time when the booking was created in ISO 8601 format.
        • sourceName: The name of the pickup location.
        • destinationName: The name of the drop-off location.
        • cityCode: The city code (e.g., DEL for Delhi).
        • kilometer: The distance of the ride in kilometers.
        • totalFare: The total fare for the ride.
        • paidAmount: The amount already paid by the user.
        • remainingAmount: The amount remaining to be paid.
        • paymentStatus: The status of the payment.
          • Possible values:
            • PAID: Payment is fully completed.
            • UNPAID: No payment has been made.
            • PARTIALLY_PAID: Partial payment has been made.
        • payType: The type of payment.
          • Possible values:
            • FULL: Full payment.
            • PARTIAL: Partial payment.
            • CASH: Cash payment.
        • paymentMethod: The method of payment (e.g., PARTNER_PG).
        • travelType: The type of travel (e.g., departure).
        • otherDetails: Additional details about the booking.
        • driverName: The name of the driver (if assigned).
        • driverMobile: The mobile number of the driver (if assigned).
        • vehicleNumber: The vehicle number (if assigned).
        • otp: OTP for user to share with driver (if assigned).
        • vehicleType: The type of vehicle.
          • Possible values:
            • SEDAN: Sedan vehicles.
            • HATCHBACK: Hatchback vehicles.
            • SUV: SUV vehicles.
        • fuelType: The type of fuel used by the vehicle.
          • Possible values:
            • PETROL: Petrol vehicles.
            • DIESEL: Diesel vehicles.
            • CNG: CNG vehicles.
            • ELECTRIC: Electric vehicles.
        • seats: The seating capacity of the vehicle.
        • airConditioned: Indicates if the cab is air-conditioned.
          • Possible values: 1 (Yes), 0 (No).
        • extraPerKm: The fare charged per extra kilometer.
        • inclusion: A list of items included in the fare (e.g., "Base Fare, Driver Day allowance, GST").
        • exclusion: A list of items excluded from the fare (e.g., "Waiting charges beyond 30 mins").
        • facilities: Additional facilities provided by the cab (e.g., "Maximum seating capacity is 4").
        • infos: Informational messages about the ride (e.g., "Ride fare may vary based on the traveled distance").
        • fareDetails: A breakdown of the fare.
          • baseFare: The base fare for the ride.
          • tax: The tax amount included in the fare.
          • tollCharges: The toll charges included in the fare.
          • serviceCharge: The service charge included in the fare.
        • status: The status of the booking.
          • Possible values:
            • PREBOOK: Booking is prebooked.
            • BOOKING_CONFIRMED: Booking is confirmed.
            • CANCELLED: Booking is cancelled.
            • COMPLETED: Booking is completed.
        • isBooked: Indicates if the booking is finalized.
          • Possible values: 1 (Yes), 0 (No).
        • extraDetails: Additional details about the fare breakdown.
          • totalFare: The total amount to be paid for the ride, including all applicable charges.
          • rideFare: The base fare for the ride, excluding taxes and additional charges.(rideFare = baseFare)
          • gstOnRideFare: The GST (Goods and Services Tax) applied on the ride fare.
          • serviceFees: Any service or convenience fees added to the booking.
          • gstOnServiceFees: GST applied on the service fees.
          • tollCharges: Any toll taxes applicable during the ride.
          • interStateCharges: Charges applied when the ride crosses state borders.
          • parkingCharges: Charges incurred for parking during the ride.
          • driverBata: Daily allowance or extra payment made to the driver.
          • nightCharges: Additional charges applicable for rides during night hours.
          • additionalCharges: Any other extra charges that don’t fall into specific categories.
          • tollChargesIncluded: Indicates whether toll charges are included in the fare (true/false).
          • interStateTaxesIncluded: Indicates whether interstate taxes are included in the fare (true/false).
          • extraKmFare: Per-kilometer charge for distance traveled beyond the included limit.
          • extraHourFare: Per-hour charge if the ride exceeds the allowed time limit.
          • seatCapacity: The number of passengers the vehicle can accommodate.
          • luggageCapacity: The number of luggage pieces the vehicle can carry comfortably.
    • currentPage: The current page number in the paginated response.
    • limit: The number of records per page.
    • totalRecords: The total number of booking records available.
    • totalPages: The total number of pages available.
  • correlationId: A unique identifier for tracing the request.

Error Responses:

{ "status": "failure", "message": "Booking ID does not exist", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Missing bookingId", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Access denied. No token provided.", "code": 401 }
{ "status": "failure", "message": "Internal server error'", "code": 500, "error": "error message", "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" } 

Booking History

Endpoint: /api/v1/booking/bookingHistory

Method: POST

Idempotent: YES

Description: Fetch booking details by booking ID.

Validation:

  • mobileNumber (String, Required): Mobile number of the user. Must be a valid 10-digit number.
  • page (Number, Optional): Page number for pagination. Must be greater than or equal to 1. Defaults to 1.
  • limit (Number, Optional): Number of records per page. Must be between 1 and 10. Defaults to 2.
  • search (String, Optional): Search term for filtering bookings. Can be an empty string.
  • rides (String, Optional): Filter for ride type. Valid values are:
    • upcoming: Fetch upcoming rides.
    • past: Fetch past rides.
    • all: Fetch all rides (default).
  • status (String, Optional): Filter for booking status. Valid values are:
    • PREBOOK
    • PAYMENT_CAPTURED
    • BOOKING_CONFIRMED
    • CANCELLED
    • COMPLETED

Request Example:

 { "mobileNumber": "9599962319", "page": 1, "limit": 2, "rides": "", "status": "" } 

Sample cURL Request:

curl --location '{{baseUrl}}/api/v1/booking/bookingHistory' \
               --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
               --header 'Content-Type: application/json' \
               --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NCwidXNlcm5hbWUiOiJpeGlnbyIsInBhcnRuZXJfbmFtZSI6Iml4aWdvIiwiY2xpZW50X2lkIjoiSVhHIiwiaWF0IjoxNzQ2MjQ2OTQ5LCJleHAiOjE3NDYyNTA1NDl9.3ol0Zis0-nu503s_v20bVTe-6O0Q6lMppiJLBU4MD0I' \
               --header 'Cookie: connect.sid=s%3AMeJ4ENxUdNkFaWVGsxkXVs1-7I7tQJWc.FsL7nl%2B7j8EVzsBx%2Fj5drPOyqBd6mu6JRxbLKkYKgPk' \
               --data '{
                  "mobileNumber":"9599962319",
                  "page":1,
                  "limit" : 1,
                  "rides" : "",
                  "status" : ""
               }'

Response Example:

{ "status": "success", "message": "Fetched booking history for a given user successfully", "code": 200, "data": { "bookings": [ { "bookingId": "JCRWE100520135933DM5X", "pickupTime": "2025-05-11T18:50:00.000Z", "cabPartner": "QUICKRIDE", "referenceNumber": "FFVC:Sedan:1759097:110520251850:1746865762731:98228327", "bookingTime": "2025-05-10T08:29:35.000Z", "sourceName": "Shadra, Delhisssd Inssdssdia", "destinationName": "IGI Airport-T3", "cityCode": "DEL", "kilometer": 15, "totalFare": 622, "paidAmount": 622, "remainingAmount": 0, "paymentStatus": "PAID", "payType": "FULL", "paymentMethod": "PARTNER_PG", "travelType": "departure", "otherDetails": "Customer prefers early pickup.", "driverName": null, "driverMobile": null, "vehicleNumber": null, "vehicleType": "SEDAN", "fuelType": "PETROL", "seats": 4, "airConditioned": 1, "extraPerKm": 10, "inclusion": [ "Includes Base Fare, Driver Day allowance, GST (5.0%) in the costing." ], "exclusion": [ "Once you exceed your 35 KMs limits, you will be charged extra 15.49 per KM.", "For Sedan, waitingCharge 1.75/min is applied after 20 minutes.\n" ], "facilities": [ "For Sedan, maximum seating capacity is 4 and maximum 2 bags are allowed." ], "infos": [ "Ride fare may vary based on the traveled distance", "Fare includes one pick up and one drop only; no break is allowed in this trip.", "The booking will be for cab type (HatchBack, Sedan or SUV) and we do not commit on providing any preferred cab model.", "Pets are not allowed.", "Driver shall wait for 20 minutes at pickup location. Post that, your cab will be cancelled without making any refund. Extension is possible based on the mutual understanding between customer and driver. Waiting charges will be applicable for all such extensions." ], "fareDetails": { "baseFare": 480.03, "tax": 42, "tollCharges": 0, "serviceCharge": 99.97 }, "status": "BOOKING_CONFIRMED", "isBooked": 1, "extraDetails": { "totalFare": 622, "rideFare": 480.03, "gstOnRideFare": 24, "serviceFees": 99.97, "gstOnServiceFees": 18, "tollCharges": 0, "interStateCharges": 0, "parkingCharges": 0, "driverBata": 0, "nightCharges": 0, "additionalCharges": 0, "tollChargesIncluded": false, "interStateTaxesIncluded": false, "extraKmFare": 10, "extraHourFare": 0, "seatCapacity": 4, "luggageCapacity": 2 } }, { "bookingId": "JCRWE1005201257276YQV", "pickupTime": "2025-05-11T18:50:00.000Z", "cabPartner": "SIGNATURE", "referenceNumber": "a7accaac-7ddc-4589-a8ac-5f349babfbf9", "bookingTime": "2025-05-10T07:27:28.000Z", "sourceName": "Shadra, Delhisssd Inssdssdia", "destinationName": "IGI Airport-T3", "cityCode": "DEL", "kilometer": 15, "totalFare": 389, "paidAmount": 0, "remainingAmount": 389, "paymentStatus": "UNPAID", "payType": null, "paymentMethod": null, "travelType": "departure", "otherDetails": "Customer prefers early pickup.", "driverName": null, "driverMobile": null, "vehicleNumber": null, "vehicleType": "HATCHBACK", "fuelType": "PETROL", "seats": 4, "airConditioned": 1, "extraPerKm": 20, "inclusion": [ "Night charges (10 PM to 6 AM)", "State Tax", "15 Kms", "Toll charges", "Driver Allowance", "Only one pickup and drop (One included)" ], "exclusion": [ "Waiting charges beyond 30 mins will be additional", "Fare beyond 15 kms will be charged differently" ], "facilities": [], "infos": [], "fareDetails": { "baseFare": 389, "tax": 0, "tollCharges": 0, "serviceCharge": 0 }, "status": "PREBOOK", "isBooked": 0, "extraDetails": { "totalFare": 389, "rideFare": null, "gstOnRideFare": null, "serviceFees": null, "gstOnServiceFees": null, "tollCharges": null, "interStateCharges": null, "parkingCharges": null, "driverBata": null, "nightCharges": null, "additionalCharges": null, "tollChargesIncluded": null, "interStateTaxesIncluded": null, "extraKmFare": null, "extraHourFare": null, "seatCapacity": 4, "luggageCapacity": 2 } } ], "currentPage": 1, "limit": 2, "totalRecords": 35, "totalPages": 18 }, "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

Booking History Response Explanation:

  • status: The status of the API response.
    • Possible values: success, failure.
  • message: A descriptive message about the response (e.g., "Fetched booking history for a given user successfully").
  • code: The HTTP status code of the response (e.g., 200).
  • data: Contains the booking history and pagination details.
    • bookings: An array of booking objects.
      • Each booking contains the following keys:
        • bookingId: A unique identifier for the booking.
        • pickupTime: The scheduled pickup time in ISO 8601 format.
        • cabPartner: The partner providing the cab service.
          • Possible values:
            • QUICKRIDE: Quick Ride partner.
            • SIGNATURE: Signature partner.
            • GOZOCABS: Gozo Cabs partner.
        • referenceNumber: A unique reference number for the booking.
        • bookingTime: The time when the booking was created in ISO 8601 format.
        • sourceName: The name of the pickup location.
        • destinationName: The name of the drop-off location.
        • cityCode: The city code (e.g., DEL for Delhi).
        • kilometer: The distance of the ride in kilometers.
        • totalFare: The total fare for the ride.
        • paidAmount: The amount already paid by the user.
        • remainingAmount: The amount remaining to be paid.
        • paymentStatus: The status of the payment.
          • Possible values:
            • PAID: Payment is fully completed.
            • UNPAID: No payment has been made.
            • PARTIALLY_PAID: Partial payment has been made.
        • payType: The type of payment.
          • Possible values:
            • FULL: Full payment.
            • PARTIAL: Partial payment.
            • CASH: Cash payment.
        • paymentMethod: The method of payment (e.g., PARTNER_PG).
        • travelType: The type of travel (e.g., departure).
        • otherDetails: Additional details about the booking.
        • driverName: The name of the driver (if assigned).
        • driverMobile: The mobile number of the driver (if assigned).
        • vehicleNumber: The vehicle number (if assigned).
        • vehicleType: The type of vehicle.
          • Possible values:
            • SEDAN: Sedan vehicles.
            • HATCHBACK: Hatchback vehicles.
            • SUV: SUV vehicles.
        • fuelType: The type of fuel used by the vehicle.
          • Possible values:
            • PETROL: Petrol vehicles.
            • DIESEL: Diesel vehicles.
            • CNG: CNG vehicles.
            • ELECTRIC: Electric vehicles.
        • seats: The seating capacity of the vehicle.
        • airConditioned: Indicates if the cab is air-conditioned.
          • Possible values: 1 (Yes), 0 (No).
        • extraPerKm: The fare charged per extra kilometer.
        • inclusion: A list of items included in the fare (e.g., "Base Fare, Driver Day allowance, GST").
        • exclusion: A list of items excluded from the fare (e.g., "Waiting charges beyond 30 mins").
        • facilities: Additional facilities provided by the cab (e.g., "Maximum seating capacity is 4").
        • infos: Informational messages about the ride (e.g., "Ride fare may vary based on the traveled distance").
        • fareDetails: A breakdown of the fare.
          • baseFare: The base fare for the ride.
          • tax: The tax amount included in the fare.
          • tollCharges: The toll charges included in the fare.
          • serviceCharge: The service charge included in the fare.
        • status: The status of the booking.
          • Possible values:
            • PREBOOK: Booking is prebooked.
            • BOOKING_CONFIRMED: Booking is confirmed.
            • CANCELLED: Booking is cancelled.
            • COMPLETED: Booking is completed.
        • isBooked: Indicates if the booking is finalized.
          • Possible values: 1 (Yes), 0 (No).
        • extraDetails: Additional details about the fare breakdown.
          • totalFare: The total amount to be paid for the ride, including all applicable charges.
          • rideFare: The base fare for the ride, excluding taxes and additional charges.(rideFare = baseFare)
          • gstOnRideFare: The GST (Goods and Services Tax) applied on the ride fare.
          • serviceFees: Any service or convenience fees added to the booking.
          • gstOnServiceFees: GST applied on the service fees.
          • tollCharges: Any toll taxes applicable during the ride.
          • interStateCharges: Charges applied when the ride crosses state borders.
          • parkingCharges: Charges incurred for parking during the ride.
          • driverBata: Daily allowance or extra payment made to the driver.
          • nightCharges: Additional charges applicable for rides during night hours.
          • additionalCharges: Any other extra charges that don’t fall into specific categories.
          • tollChargesIncluded: Indicates whether toll charges are included in the fare (true/false).
          • interStateTaxesIncluded: Indicates whether interstate taxes are included in the fare (true/false).
          • extraKmFare: Per-kilometer charge for distance traveled beyond the included limit.
          • extraHourFare: Per-hour charge if the ride exceeds the allowed time limit.
          • seatCapacity: The number of passengers the vehicle can accommodate.
          • luggageCapacity: The number of luggage pieces the vehicle can carry comfortably.
    • currentPage: The current page number in the paginated response.
    • limit: The number of records per page.
    • totalRecords: The total number of booking records available.
    • totalPages: The total number of pages available.
  • correlationId: A unique identifier for tracing the request.

Error Responses:

{ "status": "failure", "message": "Invalid request parameters: \"mobileNumber\" is required", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
 { "status": "failure", "message": "No booking history found for the given mobileNumber", "code": 404, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" } 
 { "status": "failure", "message": "Internal server error'", "code": 500, "error": "error message", "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" } 
{ "status": "failure", "message": "Access denied. No token provided.", "code": 401 } 

Cancel Booking

Endpoint: /api/v1/booking/cancelBooking

Method: POST

Idempotent: No

Description: Cancel booking by booking ID.

Validation:

  • bookingId (String, Required):Unique ID of the booking for which you want to see details.
  • cancelledBy (String, Required):Possible values are USER, ADMIN, PARTNER
  • cancellationReason (String, Required):Reason of cancellation.
  • Booking must be cancelled at least 1 minute before the Pickup Time.
  • There is no charge on booking cancellation.
  • Bookings with status CANCELLED or COMPLETED cannot be cancelled again

Sample cURL Request:

curl --location '{{baseUrl}}/api/v1/booking/cancelBooking' \
               --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
               --header 'Content-Type: application/json' \
               --header 'Authorization: Bearer ***************' \
               --data '{
                  "bookingId": "JCRWE0205201259223OBR",
                  "cancelledBy": "USER",
                  "cancellationReason": "Change in plan"
               }'
                

Request Example:

{ "bookingId": "JCRWE0205201259223OBR", "cancelledBy": "USER", "cancellationReason": "Change in plan" }

Response Example:

{ "status": "success", "message": "Booking cancelled successfully", "code": 200, "data": { "bookingId": "JCRWE0205201259223OBR", "status": "Cancelled", "cancellation_reason": "Change in plan" }, "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
  • status (String) - Indicates the response status (e.g., "success").
  • message (String) - Describes the outcome of the cancellation request.
  • code (Number) - HTTP status code (e.g., 200 = success).
  • data (Object) - Contains details of the cancelled booking:
    • bookingId (String) - Unique identifier of the cancelled booking.
    • status (String) - Status of the booking (e.g., "CANCELLED").
    • cancellation_reason (String) - Reason provided for the cancellation.
  • correlationId (String) - Unique request identifier for traceability and logging.

Error Responses:

{ "status": "failure", "message": "Invalid request parameters: \"bookingId\" is required", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "No booking found for the given bookingId", "code": 404, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Access denied. No token provided.", "code": 401 }
{ "status": "failure", "message": "Internal server error'", "code": 500, "error": "error message", "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" } 
{ "status": "failure", "message": "Booking is already in CANCELLED status", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" } 
{ "status": "failure", "message": "Booking is already in COMPLETE status", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" } 
{ "status": "failure", "message": "Booking cannot be cancelled within 1 minute of start time", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

Update Date Time of Booking

Endpoint: /api/v1/booking/updatePickupTime

Method: POST

Idempotent: No

Description: Update Date Time of the booking.

Validation:

  • bookingId (String, Required):Unique ID of the booking for which you want to see details.
  • startDateTime (String, Required): Start time of the ride in ISO 8601 format.
  • startDatetime must be 60 minutes ahead of the current time in IST.

Sample cURL Request:

curl --location '{{baseUrl}}/api/v1/booking/updatePickupTime' \
                     --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
                     --header 'Content-Type: application/json' \
                     --header 'Authorization: Bearer ***************' \
                     --header 'Cookie: connect.sid=s%3AUAx_FY815MA3PcNvuaZyMhZusjr0o0gf.GI8JdVkoNwa5F1lgWwlvoKFRvzsG97lQoRpUiaQKvXQ' \
                     --data '{
                        "bookingId": "JCRWE270420124526O1FU",
                        "startDateTime": "2025-05-05T18:30:00.000Z"
                     }
                     '
                  

Request Example:

{ "bookingId": "JCRWE270420124526O1FU", "startDateTime": "2025-05-05T18:30:00.000Z" } 

Response Example:

{ "status": "success", "message": "Pickup time updated successfully", "code": 200, "data": [ { "bookingId": "JCRWE100520135933DM5X", "pickupTime": "2025-05-12T18:30:00.000Z", "cabPartner": "QUICKRIDE", "referenceNumber": "FFVC:Sedan:1759097:110520251850:1746865762731:98228327", "bookingTime": "2025-05-10T08:29:35.000Z", "sourceName": "Shadra, Delhisssd Inssdssdia", "destinationName": "IGI Airport-T3", "cityCode": "DEL", "kilometer": 15, "totalFare": 622, "paidAmount": 622, "remainingAmount": 0, "paymentStatus": "PAID", "payType": "FULL", "paymentMethod": "PARTNER_PG", "travelType": "departure", "otherDetails": "Customer prefers early pickup.", "driverName": null, "driverMobile": null, "vehicleNumber": null, "vehicleType": "SEDAN", "fuelType": "PETROL", "seats": 4, "airConditioned": 1, "extraPerKm": 10, "inclusion": [ "Includes Base Fare, Driver Day allowance, GST (5.0%) in the costing." ], "exclusion": [ "Once you exceed your 35 KMs limits, you will be charged extra 15.49 per KM.", "For Sedan, waitingCharge 1.75/min is applied after 20 minutes.\n" ], "facilities": [ "For Sedan, maximum seating capacity is 4 and maximum 2 bags are allowed." ], "infos": [ "Ride fare may vary based on the traveled distance", "Fare includes one pick up and one drop only; no break is allowed in this trip.", "The booking will be for cab type (HatchBack, Sedan or SUV) and we do not commit on providing any preferred cab model.", "Pets are not allowed.", "Driver shall wait for 20 minutes at pickup location. Post that, your cab will be cancelled without making any refund. Extension is possible based on the mutual understanding between customer and driver. Waiting charges will be applicable for all such extensions." ], "fareDetails": { "baseFare": 480.03, "tax": 42, "tollCharges": 0, "serviceCharge": 99.97 }, "status": "BOOKING_CONFIRMED", "isBooked": 1, "extraDetails": { "totalFare": 622, "rideFare": 480.03, "gstOnRideFare": 24, "serviceFees": 99.97, "gstOnServiceFees": 18, "tollCharges": 0, "interStateCharges": 0, "parkingCharges": 0, "driverBata": 0, "nightCharges": 0, "additionalCharges": 0, "tollChargesIncluded": false, "interStateTaxesIncluded": false, "extraKmFare": 10, "extraHourFare": 0, "seatCapacity": 4, "luggageCapacity": 2 } } ], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

Updated Booking Details Response Explanation:

  • status: The status of the API response.
    • Possible values: success, failure.
  • message: A descriptive message about the response (e.g., "Pickup time updated successfully").
  • code: The HTTP status code of the response (e.g., 200).
  • data: Contains the booking history and pagination details.
    • bookings: An array of booking objects.
      • Each booking contains the following keys:
        • bookingId: A unique identifier for the booking.
        • pickupTime: The scheduled pickup time in ISO 8601 format.
        • cabPartner: The partner providing the cab service.
          • Possible values:
            • QUICKRIDE: Quick Ride partner.
            • SIGNATURE: Signature partner.
            • GOZOCABS: Gozo Cabs partner.
        • referenceNumber: A unique reference number for the booking.
        • bookingTime: The time when the booking was created in ISO 8601 format.
        • sourceName: The name of the pickup location.
        • destinationName: The name of the drop-off location.
        • cityCode: The city code (e.g., DEL for Delhi).
        • kilometer: The distance of the ride in kilometers.
        • totalFare: The total fare for the ride.
        • paidAmount: The amount already paid by the user.
        • remainingAmount: The amount remaining to be paid.
        • paymentStatus: The status of the payment.
          • Possible values:
            • PAID: Payment is fully completed.
            • UNPAID: No payment has been made.
            • PARTIALLY_PAID: Partial payment has been made.
        • payType: The type of payment.
          • Possible values:
            • FULL: Full payment.
            • PARTIAL: Partial payment.
            • CASH: Cash payment.
        • paymentMethod: The method of payment (e.g., PARTNER_PG).
        • travelType: The type of travel (e.g., departure).
        • otherDetails: Additional details about the booking.
        • driverName: The name of the driver (if assigned).
        • driverMobile: The mobile number of the driver (if assigned).
        • vehicleNumber: The vehicle number (if assigned).
        • vehicleType: The type of vehicle.
          • Possible values:
            • SEDAN: Sedan vehicles.
            • HATCHBACK: Hatchback vehicles.
            • SUV: SUV vehicles.
        • fuelType: The type of fuel used by the vehicle.
          • Possible values:
            • PETROL: Petrol vehicles.
            • DIESEL: Diesel vehicles.
            • CNG: CNG vehicles.
            • ELECTRIC: Electric vehicles.
        • seats: The seating capacity of the vehicle.
        • airConditioned: Indicates if the cab is air-conditioned.
          • Possible values: 1 (Yes), 0 (No).
        • extraPerKm: The fare charged per extra kilometer.
        • inclusion: A list of items included in the fare (e.g., "Base Fare, Driver Day allowance, GST").
        • exclusion: A list of items excluded from the fare (e.g., "Waiting charges beyond 30 mins").
        • facilities: Additional facilities provided by the cab (e.g., "Maximum seating capacity is 4").
        • infos: Informational messages about the ride (e.g., "Ride fare may vary based on the traveled distance").
        • fareDetails: A breakdown of the fare.
          • baseFare: The base fare for the ride.
          • tax: The tax amount included in the fare.
          • tollCharges: The toll charges included in the fare.
          • serviceCharge: The service charge included in the fare.
        • status: The status of the booking.
          • Possible values:
            • PREBOOK: Booking is prebooked.
            • BOOKING_CONFIRMED: Booking is confirmed.
            • CANCELLED: Booking is cancelled.
            • COMPLETED: Booking is completed.
        • isBooked: Indicates if the booking is finalized.
          • Possible values: 1 (Yes), 0 (No).
        • extraDetails: Additional details about the fare breakdown.
          • totalFare: The total amount to be paid for the ride, including all applicable charges.
          • rideFare: The base fare for the ride, excluding taxes and additional charges.(rideFare = baseFare)
          • gstOnRideFare: The GST (Goods and Services Tax) applied on the ride fare.
          • serviceFees: Any service or convenience fees added to the booking.
          • gstOnServiceFees: GST applied on the service fees.
          • tollCharges: Any toll taxes applicable during the ride.
          • interStateCharges: Charges applied when the ride crosses state borders.
          • parkingCharges: Charges incurred for parking during the ride.
          • driverBata: Daily allowance or extra payment made to the driver.
          • nightCharges: Additional charges applicable for rides during night hours.
          • additionalCharges: Any other extra charges that don’t fall into specific categories.
          • tollChargesIncluded: Indicates whether toll charges are included in the fare (true/false).
          • interStateTaxesIncluded: Indicates whether interstate taxes are included in the fare (true/false).
          • extraKmFare: Per-kilometer charge for distance traveled beyond the included limit.
          • extraHourFare: Per-hour charge if the ride exceeds the allowed time limit.
          • seatCapacity: The number of passengers the vehicle can accommodate.
          • luggageCapacity: The number of luggage pieces the vehicle can carry comfortably.
    • currentPage: The current page number in the paginated response.
    • limit: The number of records per page.
    • totalRecords: The total number of booking records available.
    • totalPages: The total number of pages available.
  • correlationId: A unique identifier for tracing the request.

Error Responses:

{ "status": "failure", "message": "Invalid request parameters: startDatetime must be between the current time and exactly 60 minutes ahead of the current time in IST", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Invalid request parameters: \"startDateTime\" is required", "code": 400, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "No booking found for the given bookingId", "code": 404, "data": [], "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }

Webhook

Endpoint: /partnerEndpoint

Method: POST

Idempotent: No

Description: This API is used to consume all events related to a trip.

Events :

TRIP_LOCATION : This event will notify about driver left and driver arrived for customer location
DRIVER_CAB_DETAILS :This event will notify about driver and vehicle details
CAB_LOCATION : This event will notify about cab location in every 2-3 sec (depending on cab partner)
TRIP_DETAILS : This event will notify about all trip details

Sample cURL Request:

curl --location '{{baseUrl}}/partnerEndpoint' \
                     --header 'correlationId: 6731c8eb-8509-49b8-b526-8184f8c917b3' \
                     --header 'Content-Type: application/json' \
                     --header 'Authorization: Bearer ***************' \
                     --data '{
                        "bookingId": "MB123456",
                        "eventName": "CAB_LOCATION",
                        "eventDescription": "This event will notify about cab location ",
                        "timeStamp": 177774698798,
                        "tripTracking": {
                           "latitude": "18.5204",
                           "longitude": "73.8567",
                           "syncTimestamp": "2025-05-09T10:20:00Z"
                        }
                        }
                     '
                  

Request Example:

{ "bookingId": "JCRWE2604201640292LC1", "eventName": "DRIVER_CAB_DETAILS", "eventDescription": "This event will notify about driver and vehicle details", "timeStamp": 177774698798, "cabDetails": { "driver": { "chauffeur_id": "100006", "chauffeur_name": "Shahzaib", "chauffeur_mobile_number": "+971543001228", "chauffeur_image": "https://objectstore.e2enetworks.net/qt-img/P/QT-ia1725121065243.png" }, "vehicle": { "vehicle_id": "100006", "vehicle_name": "ECONOMY SEDAN", "vehicle_color": "Null", "vehicle_registration_number": "Null", "vehicle_type": "ECONOMY SEDAN" } }, "driverDetailsEvent": { "sync_date": "2025-05-09", "sync_datetime": "2025-05-09T10:10:00Z", "sync_timestamp": "2025-05-09T10:10:00Z", "partner": "wavescab", "is_reassigned": 0 } } 
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "TRIP_LOCATION", "eventDescription": "This event will notify about driver left and driver arrived for customer location", "timeStamp": 177774698798, "cabLocationUpdate": { "event": "Left For pickup", "latitude": "18.5204", "longitude": "73.8567", "syncTimestamp": "2025-05-09T10:04:59Z", "totalTravelledFare": "0", "extra_travelled_km": "0", "extra_travelled_fare": "0", "isReassign": 0, "partner": "WAVESCAB" } }
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "TRIP_LOCATION", "eventDescription": "This event will notify about driver left and driver arrived for customer location", "timeStamp": 177774698798, "cabLocationUpdate": { "event": "arrived", "latitude": "18.5204", "longitude": "73.8567", "syncTimestamp": "2025-05-09T10:04:59Z", "totalTravelledFare": "0", "extra_travelled_km": "0", "extra_travelled_fare": "0", "isReassign": 0, "partner": "WAVESCAB" } }
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "TRIP_DETAILS", "eventDescription": "This event will notify about all trip details", "timeStamp": 177774698798, "tripDetails": { "tripEvent": "start", "reason": "frer", "extraTravelledKm": "frer", "extraTravelledFare": "frer", "totalTravelledFare": "frer", "nightCharges": "100.00", "couponCode": "", "totalTravelledKm": "0", "paymentMethod": "", "amountToBeCollected": "", "advanceAmountPaid": "", "baseFare": "0", "serviceFee": "0", "tax": "0", "discount": "0", "totalFare": "0" } }
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "TRIP_DETAILS", "eventDescription": "This event will notify about all trip details", "timeStamp": 177774698798, "tripDetails": { "tripEvent": "stop", "reason": "frer", "extraTravelledKm": "frer", "extraTravelledFare": "frer", "totalTravelledFare": "frer", "nightCharges": "100.00", "couponCode": "", "totalTravelledKm": "0", "paymentMethod": "", "amountToBeCollected": "", "advanceAmountPaid": "", "baseFare": "0", "serviceFee": "0", "tax": "0", "discount": "0", "totalFare": "0" } }
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "CAB_LOCATION", "eventDescription": "This event will notify about cab location ", "timeStamp": 177774698798, "tripTracking": { "latitude": "18.5204", "longitude": "73.8567", "syncTimestamp": "2025-05-09T10:20:00Z" } }   
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "PREBOOK", "eventDescription": "This event will notify about prebook", "timeStamp": 177774698798, "details": { "status": "success", "bookingId": "JCRWE2604201640292LC1" } }   
{ "bookingId" : null, "eventName": "PREBOOK", "eventDescription": "This event will notify about prebook", "timeStamp": 177774698798, "details": { "status": "failure", "bookingId": null, "searchId": "edc20637-88a7-45fe-a6d4-cb0acfe2f4de|2dda377812e3741c038c26915b5ddbbf594072ed1b25a0371011a34bf8f2d3cc" } }  
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "PAYMENT_S2S", "eventDescription": "This event will notify about payment has been varify by S2S call", "timeStamp": 177774698798, "details": { "amount":100 } } 
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "PAYMENT_RECEIVED", "eventDescription": "This event will notify about payment has been received and captured in Mojoboxx", "timeStamp": 177774698798, "details": { "amount":100 } }
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "PAYMENT_FAILURE", "eventDescription": "This event will notify about payment has been Failed", "timeStamp": 177774698798, "details": { "amount": 100 } }
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "CAB_PARTNER_BOOKING", "eventDescription": "This event will notify about cab partner booking status success or failure", "timeStamp": 177774698798, "details": { "status": "success" } }
{ "bookingId": "JCRWE2604201640292LC1", "eventName": "CAB_PARTNER_BOOKING", "eventDescription": "This event will notify about cab partner booking status success or failure and as a fallback another cab will be book", "timeStamp": 177774698798, "details": { "status": "failure", "cabPartnerResponse" : "response/error" } }

Response Example:

{ "status": "success", "message": "Event consume successfully", "code": 200, "correlationId": "154634" }

Error Responses:

{ "status": "failure", "message": "Invalid payload", "code": 400, "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }
{ "status": "failure", "message": "Internal server error", "code": 500, "correlationId": "6731c8eb-8509-49b8-b526-8184f8c917b3" }