This is an old revision of the document!
Avia Booking API v1.0 Manual
To use an API, you have to get an API key from the back office system (http://zimmu.com/booking) and set a domain origin that call an API.
API Authentication
In version 1.0 API make authentication via API’s key and domain origin.
API Request Method
API can use both POST and GET method, then it can pass parameter from JQuery.post() or JQuery.get() or Web form.
API output format
API will output a data in JSON format as shown below:
The sample output from GET_PROVINCE_LIST method, to make the JSON data readable in the browser use a Chrome extension called JSONView
Then you can reproduce an output from JSON data to be a web form or show in data table. A code can write in PHP Curl or JQuery Ajax.
Method Definition
1. GET_PROVINCE_LIST
get a province list to do a select box for source and destination.
parameter: {key}&{method}
2. GET_STATION
after select source or destination province, use this method to get a list of station for source | destination
parameter: {key}&{method}&{provinceID}&{type}
{type} = source | destination
3. GET_TIME_TABLE
get a list of trip schedule when we know a source | destination station and date
parameter: {key}&{method}&{from}&{to}&{date}
{from} | {to} = source | destination station ID
{date} format in Y-m-d such as 2018-03-29
4. GET_SEAT_PLAN
When you selected car and then this method will show the seat of that car you selected before.
parameter: {key}&{method}&{serviceID}
{serviceID} = user selected trip
5. PUT_BOOKING
when user completed a booking data this method will be use to put a booking data back to datacenter
parameter: {key}&{method}&{serviceID}&{passengerName}&{telNo}& {passportNo}&{email}&{amoutOfSeat}&{serviceCode}
{serviceID} = user selected trip
{passengerName} and {telNo} are mandatory
{passportNo} and {email} are optional
{amoutOfSeat} = total number of booking seats
{serviceCode} = payment method (optional)
default - 00: Credit/Debit Card | PayPal , 02: Counter service
* this method will output a booking number to use for reference
6. PUT_BOOKING_SEAT when user completed a booking data this method will be use to put a booking data back to datacenter.
The method PUT_BOOKING_SEAT will add the seat data that different from PUT_BOOKING.
parameter: {key}&{method}&{serviceID}&{passengerName}&{telNo}& {passportNo}&{email}&{amoutOfSeat}&{serviceCode}&{seletedSeat}
{serviceID} = user selected trip
{passengerName} and {telNo} are mandatory
{passportNo} and {email} are optional
{amoutOfSeat} = total number of booking seats
{serviceCode} = payment method (optional)
{seletedSeat} = consist of “{seatName}-{selectionFee}” example “1A-10,2A-10,…”
default - 00: Credit/Debit Card | PayPal , 02: Counter service
* this method will output a booking number to use for reference
7. CONFIRM_PAYMENT
after put a booking data, payment via credit/debit card or PayPal must process in 10 minutes, payment via other method must process before midnight or 4 hours before departure time, otherwise a booking will be cancelled
parameter: {key}&{method}&{bookingNo}&{process_by}
{process_by} = payment vendor name (Counter service, PayPal, …)
* this method will output a record field “success” or “failure”
8. GET_BOOKING
you can get a booking data via use of booking number to produce a ticket or QR code or send to an user email
parameter: {key}&{method}&{bookingNo}
* use a ticket serial number to produce a QR code
9. REFUND_BOOKING
This Method use for return the ticket. When customer return the ticket the agency will be fee deducted 30 baht.
parameter: {key}&{method}&{bookingNo}
{bookingNo} = booking number
* this method will return: Data of refunded value and refunded fee.
Example code by PHP Curl
Code with get_province_list method:
To work with other method you can modify a code in line 19 with new method and it’s parameter.
get_station method:
get_time_table method:
get_seat_plan method:
put_booking method:
* Note that we will use 1 passenger data for all seats in same booking. If you need passenger data separate to each seat you must put in difference booking number
put_booking_seat method:
* Note that we will use 1 passenger data for all seats in same booking. If you need passenger data separate to each seat you must put in difference booking number
get_booking method:
API registration requirement please follow the link below