Booking Response
Response
| Attribute | Type | Description |
|---|---|---|
| booking_id | string | Unique booking ID |
| booking_reference | string | Unique booking code. REQUIRED for all future transactions through api |
| booking_name | string | Booking name provided while booking |
| pickup_date | date | pickup date. Format: YYYY-MM-DD |
| pickup_time | time | pickup time. Format HH:MM |
| price | object | Price details of the booking (refer below for more info) |
| non_refundable | boolean | ‘true’ if the rate is Non-refundable. Otherwise, cancellation policies applicable. |
| payment_status | string | Status of the payment. |
| currency | string | Three-letter ISO currency code of the price |
| booking_date | datetime | The date when booking was made |
| status | string | Booking status will be one of the following: 1. confirmed, 2. failed, 3. rejected, 4. pending |
| holder | object | Lead passenger details. Defined in the Holder section in Booking Request |
| transfer | object | Transfer element |
| supports_amendment | boolean | “true” if amendments are allowed |
| supports_cancellation | boolean | “true” if cancellations are allowed |
| booking_comment | string | Optional booking comments passed along to the transfer |
| additional_info | object | Additional information if any. Object of dynamic key value pairs. Eg: { “comments”: “comments come here”, “pickup-Instruction”: “Extra-person charges may apply” |
Price
| Attribute | Type | Description |
|---|---|---|
| total | float | Booking amount |
| breakdown | object | Dynamic key value pairs with values being an array of charge details. Refer below for charge details and sample response. |
Charge Details
| Attribute | Type | Description |
|---|---|---|
| name | string | Name of the charge. |
| included | boolean | ‘true’ if the charge is already included in the price. |
| amount_type | string | Defines the type of amount: ‘value’ represents flatfee ‘percent’ represents percentage |
| amount | float | flatfee or percentage value. |
| mandatory | boolean | ‘true’ if this must be paid either at booking. Otherwise, this has to be paid only if you need the supplement/facility. |
| currency | string | Three-letter ISO currency code |
| comments | string | Description or any notes for the charge if available. |
Sample response for ‘price’ element:
Sample response for ‘price’ element:
{
"total": 8850,
"breakdown": {
"servicetax": [{
"name": "GRNServiceTax",
"included": true,
"currency": "INR",
"amount_type": "value",
"amount": 1349.87
}],
"net": [{
"name": "Net",
"included": true,
"currency": "INR",
"amount_type": "value",
"amount": 7499.25
}]
}
}
Transfer
| Attribute | Type | Description |
|---|---|---|
| transfer_code | string | GRN transfer code |
| name | string | Name of the transfer |
| paxes | array | List of the pax in the booking |
| booking_items | array | List of booking items |
| transfer_time | hh:mm |
Booking Item:
| Attribute | Type | Description |
|---|---|---|
| vehicles | array | List of Vehicle elements. vehicles that are part of the booking item. |
| non_refundable | boolean | ‘true’ if the rate is Non-refundable. Otherwise, cancellation policies applicable. |
| rate_comments | object | Additional rate information, if any Object of dynamic key value pairs. Eg: { comments”: “comments come here”, “additional rate info”: “additional details come here” |
| other_inclusions | array | List of additional inclusions (strings), if available |
| cancellation_policy | object | Cancellation policy |
| price | float | Price of the booking item |
| currency | string | Currency of the price. |
| pickup_details | object | See Pickup Details Structure mentioned below |
| dropoff_details | object | See DropOff Details Structure mentioned below |
PickUp Details:
| Attribute | Type | Description |
|---|---|---|
| city_code | string | The city code of the pickup_location |
| pickup_type | string | H - Hotel, S - Station, A - Airport, P - Port, C - City |
| pickup_code | string | Pickup_code of the transfer |
| string | ||
| flight_number train_name address |
string | Depending on the pickup location selected it can have either of the following keys. flight_number - airport (A) train_name - station (S) address and postal_code - city (C) hotel_code - hotel (H) ship_name - port (P) |
| arrival_time | time | arrival_time in pickup_details, departure_time in drop_off_details |
DropOff Details:
| Attribute | Type | Description |
|---|---|---|
| city_code | string | The city code of the dropoff_location |
| dropoff_type | string | H - Hotel, S - Station, A - Airport, P - Port, C - City |
| dropoff_code | string | dropoff_code of the transfer |
| string | ||
| flight_number train_name address |
string | Depending on the dropoff location selected it can have either of the following keys. flight_number - airport (A) train_name - station (S) address and postal_code - city (C) hotel_code - hotel (H) |
| departure_time | time | departure_time in dropoff_details |
Vehicle
| Attribute | Type | Description |
|---|---|---|
| vehicle_type | string | Vehicle type |
| vehicle_code | string | Vehicle code |
| max_vehicle_occupancy | array | An object representing maximum vehicle occupancy.This will be returned when no_of_adults is not available. |
| max_luggage | string | Max luggage allowed key |
| pax_ids | array | List of pax identification details. Represents pax allocation to the vehicle |
| no_of_children | integer | Number of children if available |
| no_of_adults | integer | Number of adults if available |
| no_of_infants | integer | Number of infants if available |
| preferred_language | string | Language selected |
Max Vehicle Occupancy
| Attribute | Type | Description |
|---|---|---|
| max_pax | integer | Maximum number of total guests allowed |
| max_adults | integer | Maximum number of adults allowed |
| max_children | integer | Maximum number of children allowed |
Error Codes
| HTTP Status Code | Error Code | Description |
| 200 | 1504 | Invalid search ID or it may have expired |
| 200 | 5102 | Field[name] value/type is invalid |
| 200 | 5101 | Field[name] value/type is required |
| 200 | 7108 | pickup date must be valid and in ISO8601 format (YYYY-MM-DD) |
| 200 | 7109 | pickup date cannot be older than today |
| 200 | 2006 | Need confirmation from supplier |
| 200 | 5140 | Unknown Error at Supplier’s end |
| 200 | 5144 | Exceeded request limit |
| 200 | 2004 | The booking item is not available/sold out |
| 200 | 2005 | price mismatch |
| 200 | 7126 | Rate key ‘Field[value]’ and the vechiles specified do not match |
| 200 | 5113 | No of booking_items per request cannot exceed 10 |
| 200 | 7114 | Paxes data does not match with the given vehicle |
| 200 | 5134 | Age is required for type Children |
| 200 | 7127 | Only One vehicle For The Given Rate Can Be Booked |
| 200 | 7126 | Rate key and the vehicles specified do not match |
| 200 | 5124 | Existing Itinerary |
| 200 | 7010 | vehicles in the booking request doesn’t match with the vehicles in the search request |
| 200 | 5120 | Request timed out at supplier’s end |
| 403 | 5003 | Not authorised |
| 200 | 6000 | Supplier error: Error[message] |
| 401 | 1102 | Invalid API key |
| 200 | 5106 | Children ages should be between 0 and 18 |
| 200 | 1505 | Insufficient credit to create the booking |
| 200 | 5149 | Search and Booking mismatch |
Sample Booking Response
{
"transfer": {
"transfer_time": "01.45",
"transfer_code": "T!02412425306",
"paxes": [{
"type": "AD",
"surname": "Patrick",
"pax_id": 1,
"name": "James"
},
{
"type": "AD",
"surname": "Patrick",
"pax_id": 2,
"name": "Harry"
}
],
"name": "London Heathrow Airport to London Gatwick Airport with a Driver speaking the Local Language only",
"booking_items": [{
"vehicles": [{
"vehicle_name": "Standard Car",
"vehicle_code": "SA",
"preferred_language": "E",
"max_vehicle_occupancy": {
"max_pax": 2
},
"max_luggage": "2"
}],
"rate_comments": {
"transfer_conditions": "IMPORTANT: All infants and children must ride in an age and size appropriate child safety seat or booster seat. Customers are responsible for providing their own safety seats."
},
"price": 8850,
"pickup_details": {
"pickup_type": "A",
"pickup_code": "A!LHR",
"flight_number": "test flight",
"country_code": "GB",
"city_code": "C!057980",
"arrival_time": "13.00",
"airport_name": "London Heathrow Airport"
},
"non_refundable": false,
"includes_ac": null,
"dropoff_details": {
"flight_number": "test flight",
"dropoff_type": "A",
"dropoff_code": "A!LGW",
"departure_time": "23.00",
"country_code": "GB",
"city_code": "C!022202",
"airport_name": "London Gatwick Airport"
},
"currency": "INR",
"cancellation_policy": {
"under_cancellation": false,
"details": [{
"from": "2017-10-08T00:00:00",
"flat_fee": 8324.25,
"currency": "INR"
}],
"cancel_by_date": "2017-10-07T23:59:59",
"amount_type": "value"
}
}]
},
"supports_cancellation": true,
"supports_amendment": false,
"status": "confirmed",
"search_id": "2yndxx6zxj6p7gr3odvy62qf7u",
"price": {
"total": 8850,
"breakdown": {
"servicetax": [{
"name": "GRNServiceTax",
"included": true,
"currency": "INR",
"amount_type": "value",
"amount": 1349.87
}],
"net": [{
"name": "Net",
"included": true,
"currency": "INR",
"amount_type": "value",
"amount": 7499.25
}]
}
},
"pickup_time": "23:15",
"pickup_date": "2017-10-12",
"payment_status": "paid",
"holder": {
"title": "Mrs.",
"surname": "James",
"phone_number": "8801622227333",
"name": "Patrick",
"email": "jamie@abc.com",
"client_nationality": "IN"
},
"date": "2017-07-03T13:27:26",
"currency": "INR",
"booking_reference": "kcty6gszj5mxj4bppe5ygxfetq",
"booking_name": "transfers test",
"booking_id": "GRN-T-201707-000019",
"booking_comment": "transfers test booking"
}