Q1 ) How long we can delay in booking after blocking a seat?
Ans ) You can confirm blocked seats in another 8 minutes of timespan , otherwise you may face error as 'SEAT NO MORE AVAILABLE' error.
Q2 ) How to convert the the below time
formats to exact time format like 10:15 A.M, 11:25 P.M etc.
1.[arrivalTime] => 510
2.[departureTime] => 1140
Ans ) Time Format are explained in minutes. We are providing
time in Minutes for all the Buses in 'Available Trips' from the
start of the day.
Minutes should be divided by 60 to get the
time formats.
Consider the below two examples, the time starts
from 00:00am.
1)For example if the droping time is 1095
1095/60 = 18 and remainder is 15
Journey Day = 18 /24 = 0
Hour = 18%24 = 18, Minutes = 15
=> 18 hrs 15 min
=>
06:15 pm (same day as doj )
2)For example if the dropping time
is 1600
1600/60=26 and remainder is 40
Journey Day =
26/24 = 1
Hour = 26%24 = 2, Minutes = 40
=>2:40am of
the next day(next day from doj)
Q3 ) Is there any API to call Seat layout ?
Ans ) The seat layout needs to be generated using the seat
array map returned from the API /trip details.
Seat layout: Click here to know more about Seat Layout
Q4 ) What are the length and character restrictions on
names and other fields?
Ans ) There is no restriction to the
length and character for the "Name" field, it takes 255 characters
which is indefinite for almost all practical situations. In case of
phone number field it is validated to exactly 10 digits and does not
accepts any special characters.
Q5)How to be confirmed if the ticket is blocked or not?
Ans) To confirm this please have a look on the following details:
If the ticket is
confirmed then ticket details will be displayed in following order
{"busType":"Volvo A/C Multi Axle SemiSleeper
(2+2)","cancellationPolicy":"0:6:100:0;6:8:60:0;8:10:50:0;10:12:30:0;12:-1:15:0","dateOfIssue":"2013-01-01T10:35:41+05:30","destinationCityId":"102","doj":"2013-01-02T00:00:00+05:30","inventoryId":
"100000007324327302","inventoryItems":
[{"fare":"1400.00","ladiesSeat":"true","passenger":{"address":"","age":"19","email":"josephine.abraham@riya.travel","gender":"FEMALE","idNumber"
:"20031307012004","idType":"NONE","mobile":"9946571567","name":"NEETHU
SARA
MATHEW","primary":"true","title":"Ms"},"seatName":"H1-"},{"fare":"1400.00","ladiesSeat":"true","passenger":{"age":"16","email":"","gender":"FEMALE
","mobile":"","name":"NIDHI MERLIN
MATHEW","primary":"false","title":"Ms"},"seatName":"K3-"}],"partialCancellationAllowed":"true","pickUpContactNo":"","pickUpLocationAddress":"After
Deepa Juction,Opp.hdfc bank","pickupLocation":"Deepa
Junction","pickupLocationId":"48360","pickupLocationLandmark":"After
Deepa Juction,Opp.hdfc bank","pickupTime":"945","pnr":"ORED83004-Via
Ernakulam
Thrissur","sourceCityId":"2282","status":"BOOKED","tin":"SF23300891659","travels":"Kallada
Travels (Suresh Kallada)"}
Also, partners can call checkBookedTicket api. It returns the ticket object if the ticket was confirmed otherwise gives error in standard API format.
Q6) What is the significance of Mticket flag which
we are sending in available trips?
Ans ) The Mticket flag which is being sent in getAvailableTrips()
method has to be implemented at partner's end.
If this flag is
TRUE for a particular operator then Mticket(SMS ticket) will be considered valid and mobile ticket can be produced
at the time of journey for that particular operator.
The JSON response is:
{"availableTrips":[{"arrivalTime":"1740","availableSeats":"24","boardingTimes":[{"bpId":"86872","location":"Chandanagar","time":"1290"},{"bpId":"86840","location":"Miyapur","time":"1305"},{"bpId":"250444","location":"Nizampet","time":"1320"},(2+2)","cancellationPolicy":"0:5:100:0;5:12:40:0;12:24:25:0;24:-1:10:0","departureTime":"1290","droppingTimes":{"bpId":"36795","location":"Police
ControlRoom","time":"300"},"fares":"400","id":"100000007994179758","idProofRequired":"false",
"partialCancellationAllowed":"true","travels":"SVKDT
TRAVELS","mTicketEnabled":"true"},{"arrivalTime":"1740","availableSeats":"18","boardingTimes":[{"bpId":"203409","location":"Chandanagar","time":"1275"},{"bpId":"203410","location":"Miyapur","time":"1290"}
"forcedSeats": "femaleseat1,femaleseat2@maleseat1,maleseat2"
Sample Response:
{
"maxSeatsPerTicket": “6”,
“forcedSeats”: ”U11@”,
"seats": [
{"available": "true",
Q1 ) How to interpret the cancellation policy
string?
Ans ) The entire string is a comma seperated list of
having four parts seperated by semi colon.
" From Time : To Time : Cancellation Rate : percentage or absolute."
Case 1 : "0:12:100:0;12:-1:10:0"
0:12:100:0; means if the customer cancels the ticket within
12 hours of cancellationCalculationTimestamp then cancellation amount will be 100%. (
e.g. cancellationCalculationTimestamp : 8:00 pm and if we cancel anytime between
8:00am to 8:00 pm then cancellation amount will be 100%)
12:-1:10:0 means if the customer cancel the ticket anytime
before 12 hours of cancellationCalculationTimestamp then cancellation amount will be
10%. ( e.g. cancellationCalculationTimestamp: 8:00 pm and if we cancel anytime before
8:00 am then cancellation amount is 10%.)
Case 2 : "8:24:50:0;24:48:25:0;48:-1:10:0"
The ticket is NonCancellable or 100% cancellation charges is applicable if the customer tries to cancel the ticket within 8 hours from cancellationCalculationTimestamp. This is called NonCancellableTime.
Note that if the cancellation policy string starts with a value other than 0, then the ticket is non cancellable up to the mentioned value in (hours) from cancellationCalculationTimestamp. Kindly invoke getTicket() method to fetch the cancellation policy string after confirming the booking.
Cancellation policy will be calculated from cancellationCalculationTimestamp shared in getTicket() method and availableTrips ().
It is calculated on the base fare.
Q2 ) Can I cancel list of seats partially?How?
Ans ) Whenever you are cancelling any ticket
partially or entirely you need to send the list of all the seat number(s) that
are to be cancelled.
But if the partial cancellation is allowed from operator's end then
if the primary passenger is cancelled then whole ticket gets
cancelled which is not recommended.
This has to be
implemented from partner's end that whenever primary passenger is
being cancelled then they have to throw the message that the "primary
passenger can not be cancelled".
New attributes: list of fareDetails object added in search results. Object definition is given below.
{New attributes : baseFare,serviceTaxPercentage,serviceTaxAbsolute, operatorServiceChargeAbsolute and operatorServiceChargePercentage.
fare = baseFare + serviceTaxAbsolute + operatorServiceChargeAbsolute
Its not mandatory for serviceTaxPercentage, serviceTaxAbsolute, operatorServiceChargePercentage and operatorServiceChargeAbsolute to have a non zero values.
While booking the ticket, please pass fare in tripdetails api response as fare in blockTicket request.
Note : Operator service charges OSC will not be refunded, if ticket is cancelled except in case of bus cancellation.