MENU navbar-image

Introduction

if need change locale pass to header "locale" with value "en" or "ua" or "pl

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

Bus flight

Bus flights

Get list of bus flights

requires authentication

Get list of bus flights

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/bus-flights?page=1&per_page=10&status=open&bus_route_number=UA+1234556&departure_date=2021-01-01&from_departure_point_id=1&to_departure_point_id=1&without_connecting=1&date_range[from]=2021-01-01&date_range[to]=2021-01-01&bus_route_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/bus-flights"
);

const params = {
    "page": "1",
    "per_page": "10",
    "status": "open",
    "bus_route_number": "UA 1234556",
    "departure_date": "2021-01-01",
    "from_departure_point_id": "1",
    "to_departure_point_id": "1",
    "without_connecting": "1",
    "date_range[from]": "2021-01-01",
    "date_range[to]": "2021-01-01",
    "bus_route_id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 22754,
            "departure_date": "2026-08-26T08:30:00.000000Z",
            "sale_end_time_before_departure": 60,
            "driver_visibility_time_before_departure": 180,
            "arrival_date": "2026-08-26T20:30:00.000000Z",
            "hours_in_travel": 12,
            "route": {
                "id": 512,
                "number": "LAT-87023639",
                "name": "Brno - Wroclaw",
                "ticket_hint": "Please arrive at the platform 20 minutes before departure.",
                "translations": {
                    "name": {
                        "en": "Brno - Wroclaw",
                        "ua": "Brno - Wroclaw"
                    },
                    "ticket_hint": {
                        "en": "Please arrive at the platform 20 minutes before departure.",
                        "ua": "Please arrive at the platform 20 minutes before departure."
                    }
                },
                "sale_end_time_before_departure": 60,
                "driver_visibility_time_before_departure": 180,
                "status": "active",
                "carrier_name": null,
                "payment_time": 30,
                "sale_depth": 45,
                "flight_generation_depth": 60,
                "number_of_seats": 52,
                "seat_selection_allowed": true,
                "seat_selection_not_allowed_date_from": "2027-02-18",
                "seat_selection_not_allowed_date_to": "2027-02-25",
                "seat_selection_availability": "online_payment",
                "without_companion": true,
                "without_companion_price": 12,
                "min_price": [
                    {
                        "currency_id": 88,
                        "price": 63
                    }
                ],
                "forbidden_sale_date_from": null,
                "forbidden_sale_date_to": null,
                "created_at": "2026-08-18T07:35:30.000000Z",
                "updated_at": "2026-08-18T07:35:30.000000Z"
            },
            "status": "open",
            "payment_time": 30,
            "sale_depth": 45,
            "number_of_seats": 52,
            "carrier_name": null,
            "seat_selection_allowed": true,
            "seat_selection_not_allowed_date_from": "2026-08-24",
            "seat_selection_not_allowed_date_to": "2026-08-25",
            "seat_selection_availability": "online_payment",
            "without_companion": true,
            "min_price": [
                {
                    "currency_id": 88,
                    "price": 51
                }
            ],
            "forbidden_sale_date_from": null,
            "forbidden_sale_date_to": null,
            "created_at": "2026-08-18T07:35:30.000000Z",
            "updated_at": "2026-08-18T07:35:30.000000Z"
        },
        {
            "id": 22755,
            "departure_date": "2026-08-22T08:30:00.000000Z",
            "sale_end_time_before_departure": 60,
            "driver_visibility_time_before_departure": 180,
            "arrival_date": "2026-08-22T20:30:00.000000Z",
            "hours_in_travel": 12,
            "route": {
                "id": 514,
                "number": "LAT-17783449",
                "name": "Lviv - Bucharest",
                "ticket_hint": "Please arrive at the platform 20 minutes before departure.",
                "translations": {
                    "name": {
                        "en": "Lviv - Bucharest",
                        "ua": "Lviv - Bucharest"
                    },
                    "ticket_hint": {
                        "en": "Please arrive at the platform 20 minutes before departure.",
                        "ua": "Please arrive at the platform 20 minutes before departure."
                    }
                },
                "sale_end_time_before_departure": 60,
                "driver_visibility_time_before_departure": 180,
                "status": "active",
                "carrier_name": null,
                "payment_time": 30,
                "sale_depth": 45,
                "flight_generation_depth": 60,
                "number_of_seats": 52,
                "seat_selection_allowed": true,
                "seat_selection_not_allowed_date_from": "2027-02-18",
                "seat_selection_not_allowed_date_to": "2027-02-25",
                "seat_selection_availability": "online_payment",
                "without_companion": true,
                "without_companion_price": 12,
                "min_price": [
                    {
                        "currency_id": 88,
                        "price": 46
                    }
                ],
                "forbidden_sale_date_from": null,
                "forbidden_sale_date_to": null,
                "created_at": "2026-08-18T07:35:31.000000Z",
                "updated_at": "2026-08-18T07:35:31.000000Z"
            },
            "status": "open",
            "payment_time": 30,
            "sale_depth": 45,
            "number_of_seats": 52,
            "carrier_name": null,
            "seat_selection_allowed": true,
            "seat_selection_not_allowed_date_from": "2026-08-20",
            "seat_selection_not_allowed_date_to": "2026-08-21",
            "seat_selection_availability": "online_payment",
            "without_companion": true,
            "min_price": [
                {
                    "currency_id": 88,
                    "price": 87
                }
            ],
            "forbidden_sale_date_from": null,
            "forbidden_sale_date_to": null,
            "created_at": "2026-08-18T07:35:31.000000Z",
            "updated_at": "2026-08-18T07:35:31.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "next",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request   

GET integration-api/bus-flights

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Query Parameters

page   integer   

Page number Example: 1

per_page   integer   

Items per page Example: 10

status   string   

Status Example: open

bus_route_number   string   

Bus route number Example: UA 1234556

departure_date   string   

Departure date Example: 2021-01-01

from_departure_point_id   integer   

From departure point id Example: 1

to_departure_point_id   integer   

To departure point id Example: 1

without_connecting   integer   

Without connection Example: 1

date_range   string[]   

Date range

bus_route_id   integer   

Bus route id Example: 1

Show bus flights

requires authentication

Get list of bus flights

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/bus-flights/207" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/bus-flights/207"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 22756,
        "departure_date": "2026-08-21T08:30:00.000000Z",
        "sale_end_time_before_departure": 60,
        "driver_visibility_time_before_departure": 180,
        "arrival_date": "2026-08-21T20:30:00.000000Z",
        "hours_in_travel": 12,
        "route": {
            "id": 516,
            "number": "LAT-16040243",
            "name": "Krakow - Lviv",
            "ticket_hint": "Please arrive at the platform 20 minutes before departure.",
            "translations": {
                "name": {
                    "en": "Krakow - Lviv",
                    "ua": "Krakow - Lviv"
                },
                "ticket_hint": {
                    "en": "Please arrive at the platform 20 minutes before departure.",
                    "ua": "Please arrive at the platform 20 minutes before departure."
                }
            },
            "sale_end_time_before_departure": 60,
            "driver_visibility_time_before_departure": 180,
            "status": "active",
            "carrier_name": null,
            "payment_time": 30,
            "sale_depth": 45,
            "flight_generation_depth": 60,
            "number_of_seats": 52,
            "seat_selection_allowed": true,
            "seat_selection_not_allowed_date_from": "2027-02-18",
            "seat_selection_not_allowed_date_to": "2027-02-25",
            "seat_selection_availability": "online_payment",
            "without_companion": true,
            "without_companion_price": 12,
            "min_price": [
                {
                    "currency_id": 88,
                    "price": 73
                }
            ],
            "additional_price_settings": [
                {
                    "id": 1961,
                    "name": "Early booking discount",
                    "percent": "10.00",
                    "period": "departure_date",
                    "date_from": "2026-08-19",
                    "date_to": "2026-09-01",
                    "is_active": true,
                    "bus_route_id": 516,
                    "created_at": "2026-08-18T07:35:32.000000Z",
                    "updated_at": "2026-08-18T07:35:32.000000Z"
                }
            ],
            "forbidden_sale_date_from": null,
            "forbidden_sale_date_to": null,
            "created_at": "2026-08-18T07:35:32.000000Z",
            "updated_at": "2026-08-18T07:35:32.000000Z"
        },
        "bus": {
            "id": 766,
            "name": "Mercedes-Benz Sprinter",
            "number": "AA 2643 zj",
            "status": "active",
            "created_at": "2026-08-18T07:35:32.000000Z",
            "updated_at": "2026-08-18T07:35:32.000000Z"
        },
        "user": {
            "id": 9465,
            "first_name": "Natalia",
            "last_name": "Kovalenko",
            "middle_name": "Petrovych",
            "full_name": "Natalia Kovalenko Petrovych",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Natalia Kovalenko",
            "phone": "+380995098870",
            "email": "hollie89@example.org",
            "subscribe_to_newsletter": false,
            "status": "active",
            "need_change_password": false,
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "no_penalty_return_window_minutes": 0,
            "send_sms_order_post_payment_link": true,
            "send_email_notification_for_passenger": true,
            "hide_transfer_details": false,
            "created_at": "2026-08-18T07:35:32.000000Z",
            "updated_at": "2026-08-18T07:35:32.000000Z"
        },
        "driver": {
            "id": 9464,
            "first_name": "Iryna",
            "last_name": "Tkachenko",
            "middle_name": "Petrovych",
            "full_name": "Iryna Tkachenko Petrovych",
            "work_phone": null,
            "gender": null,
            "birthday": null
        },
        "dispatcher": {
            "id": 9466,
            "first_name": "Andrii",
            "last_name": "Kovalenko",
            "middle_name": "Ivanovych",
            "full_name": "Andrii Kovalenko Ivanovych",
            "work_phone": null,
            "gender": null,
            "birthday": null
        },
        "status": "open",
        "payment_time": 30,
        "sale_depth": 45,
        "number_of_seats": 52,
        "carrier_name": null,
        "occupiedSeats": [
            {
                "id": 420342,
                "bus_flight_id": 22756,
                "from_departure_point_id": 13999,
                "to_departure_point_id": 14000,
                "seat_number": 26,
                "type": "reserved",
                "created_at": "2026-08-18T07:35:33.000000Z",
                "updated_at": "2026-08-18T07:35:33.000000Z"
            }
        ],
        "seat_selection_allowed": true,
        "seat_selection_not_allowed_date_from": "2026-08-19",
        "seat_selection_not_allowed_date_to": "2026-08-20",
        "seat_selection_availability": "online_payment",
        "without_companion": true,
        "baggage_transportation_conditions": [
            {
                "id": 30243,
                "name": "Additional suitcase",
                "description": null,
                "translations": {
                    "name": {
                        "en": "Additional suitcase",
                        "ua": "Additional suitcase"
                    },
                    "description": []
                },
                "prices": [
                    {
                        "currency_id": 88,
                        "price": 25
                    }
                ],
                "created_at": "2026-08-18T07:35:32.000000Z",
                "updated_at": "2026-08-18T07:35:32.000000Z"
            }
        ],
        "return_conditions": [
            {
                "id": 71572,
                "departure_start": 48,
                "departure_end": 24,
                "retention_percentage": 10,
                "created_at": "2026-08-18T07:35:32.000000Z",
                "updated_at": "2026-08-18T07:35:32.000000Z"
            }
        ],
        "currencies": [
            {
                "id": 342,
                "display_name": "RWF",
                "code": "RWF",
                "symbol": "RWF",
                "is_active": true,
                "created_at": "2026-08-18T07:35:32.000000Z",
                "updated_at": "2026-08-18T07:35:32.000000Z"
            }
        ],
        "min_price": [
            {
                "currency_id": 88,
                "price": 64
            }
        ],
        "prices": [
            {
                "id": 116742592,
                "from_departure_point_id": 13996,
                "to_departure_point_id": 13997,
                "price": [
                    {
                        "amount": 78,
                        "currency_id": 88
                    }
                ],
                "is_active": true,
                "is_forbidden": false
            }
        ],
        "schedules": [
            {
                "id": 1885086,
                "departure_point_id": 13998,
                "departure_point": {
                    "id": 13998,
                    "name": "International Coach Terminal",
                    "translations": {
                        "name": {
                            "en": "International Coach Terminal",
                            "ua": "International Coach Terminal"
                        }
                    },
                    "city": {
                        "id": 8223,
                        "name": "Brno",
                        "slug": null,
                        "translations": {
                            "name": {
                                "en": "Brno",
                                "ua": "Brno"
                            }
                        },
                        "population": 2162078,
                        "lat": null,
                        "lng": null,
                        "number_of_bus_routes": 0,
                        "visibility": true,
                        "country_id": 9,
                        "created_at": "2026-08-18T07:35:32.000000Z",
                        "updated_at": "2026-08-18T07:35:32.000000Z"
                    },
                    "lat": "47.99337200",
                    "lng": "22.54694700",
                    "visibility": true,
                    "created_at": "2026-08-18T07:35:32.000000Z",
                    "updated_at": "2026-08-18T07:35:32.000000Z"
                },
                "arrival_time": "16:00",
                "departure_time": "14:30",
                "days_in_road": 0,
                "platform": "P4",
                "has_landing": true,
                "has_disembarkation": true,
                "is_connecting": false,
                "is_connecting_start_endpoint": false,
                "position": 5,
                "sale_status": "open",
                "is_active": true,
                "has_transfer": false,
                "maybe_transfer": false,
                "hint": "Boarding starts 20 minutes before departure.",
                "translations": {
                    "hint": {
                        "en": "Boarding starts 20 minutes before departure.",
                        "ua": "Boarding starts 20 minutes before departure."
                    }
                },
                "created_at": "2026-08-18T07:35:32.000000Z",
                "updated_at": "2026-08-18T07:35:32.000000Z"
            }
        ],
        "forbidden_sale_date_from": null,
        "forbidden_sale_date_to": null,
        "payment_methods": [
            {
                "id": 79,
                "name": "spot",
                "display_name": "Pay at boarding",
                "logo_path": "payment-methods/spot.svg",
                "created_at": "2026-08-18T07:35:32.000000Z",
                "updated_at": "2026-08-18T07:35:32.000000Z"
            }
        ],
        "carrier": {
            "id": 286,
            "name": "Baltic Coach",
            "hotline_phone": null,
            "edrpou": null,
            "disclaimer": null,
            "insurance_description": null,
            "insurance_company_name": null,
            "insurance_company_address": null,
            "logo_url": null,
            "insurance_logo_url": null,
            "translations": {
                "disclaimer": [],
                "insurance_description": [],
                "insurance_company_name": [],
                "insurance_company_address": []
            }
        },
        "created_at": "2026-08-18T07:35:32.000000Z",
        "updated_at": "2026-08-18T07:35:32.000000Z"
    }
}
 

Request   

GET integration-api/bus-flights/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

URL Parameters

id   integer   

The ID of the bus flight. Example: 207

Bus route

Bus routes

Get all bus routes

requires authentication

Get all bus routes

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/bus-routes?page=1&search=000+111&status=active&city_from_id=1&city_to_id=2&departure_date=2021-01-01&from_departure_point_id=1&to_departure_point_id=1&without_connecting=1&include_schedule=1&per_page=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/bus-routes"
);

const params = {
    "page": "1",
    "search": "000 111",
    "status": "active",
    "city_from_id": "1",
    "city_to_id": "2",
    "departure_date": "2021-01-01",
    "from_departure_point_id": "1",
    "to_departure_point_id": "1",
    "without_connecting": "1",
    "include_schedule": "1",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 508,
            "number": "LAT-23279120",
            "name": "Berlin - Wroclaw",
            "ticket_hint": "Please arrive at the platform 20 minutes before departure.",
            "translations": {
                "name": {
                    "en": "Berlin - Wroclaw",
                    "ua": "Berlin - Wroclaw"
                },
                "ticket_hint": {
                    "en": "Please arrive at the platform 20 minutes before departure.",
                    "ua": "Please arrive at the platform 20 minutes before departure."
                }
            },
            "sale_end_time_before_departure": 60,
            "driver_visibility_time_before_departure": 180,
            "status": "active",
            "city_from": {
                "id": 8194,
                "name": "Berlin",
                "slug": null,
                "translations": {
                    "name": {
                        "en": "Berlin",
                        "ua": "Berlin"
                    }
                },
                "population": 1315786,
                "lat": null,
                "lng": null,
                "number_of_bus_routes": 0,
                "visibility": true,
                "country_id": 8,
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "city_to": {
                "id": 8195,
                "name": "Wroclaw",
                "slug": null,
                "translations": {
                    "name": {
                        "en": "Wroclaw",
                        "ua": "Wroclaw"
                    }
                },
                "population": 1252722,
                "lat": null,
                "lng": null,
                "number_of_bus_routes": 0,
                "visibility": true,
                "country_id": 7,
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "user": {
                "id": 9412,
                "first_name": "Iryna",
                "last_name": "Melnyk",
                "middle_name": "Mykhailivna",
                "full_name": "Iryna Melnyk Mykhailivna",
                "work_phone": null,
                "gender": null,
                "birthday": null,
                "name": "Iryna Melnyk",
                "phone": "+380882438304",
                "email": "justyn.barrows@example.net",
                "subscribe_to_newsletter": false,
                "status": "active",
                "need_change_password": false,
                "percent_of_withdrawal": 0,
                "percent_of_discount": 0,
                "no_penalty_return_window_minutes": 0,
                "send_sms_order_post_payment_link": true,
                "send_email_notification_for_passenger": true,
                "hide_transfer_details": false,
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "carrier_name": null,
            "payment_time": 30,
            "sale_depth": 45,
            "flight_generation_depth": 60,
            "number_of_seats": 52,
            "seat_selection_allowed": true,
            "seat_selection_not_allowed_date_from": "2027-02-18",
            "seat_selection_not_allowed_date_to": "2027-02-25",
            "seat_selection_availability": "online_payment",
            "without_companion": true,
            "without_companion_price": 12,
            "min_price": [
                {
                    "currency_id": 88,
                    "price": 58
                }
            ],
            "forbidden_sale_date_from": null,
            "forbidden_sale_date_to": null,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        },
        {
            "id": 509,
            "number": "LAT-02706662",
            "name": "Bucharest - Prague",
            "ticket_hint": "Please arrive at the platform 20 minutes before departure.",
            "translations": {
                "name": {
                    "en": "Bucharest - Prague",
                    "ua": "Bucharest - Prague"
                },
                "ticket_hint": {
                    "en": "Please arrive at the platform 20 minutes before departure.",
                    "ua": "Please arrive at the platform 20 minutes before departure."
                }
            },
            "sale_end_time_before_departure": 60,
            "driver_visibility_time_before_departure": 180,
            "status": "active",
            "city_from": {
                "id": 8198,
                "name": "Bucharest",
                "slug": null,
                "translations": {
                    "name": {
                        "en": "Bucharest",
                        "ua": "Bucharest"
                    }
                },
                "population": 846531,
                "lat": null,
                "lng": null,
                "number_of_bus_routes": 0,
                "visibility": true,
                "country_id": 40,
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "city_to": {
                "id": 8199,
                "name": "Prague",
                "slug": null,
                "translations": {
                    "name": {
                        "en": "Prague",
                        "ua": "Prague"
                    }
                },
                "population": 1043154,
                "lat": null,
                "lng": null,
                "number_of_bus_routes": 0,
                "visibility": true,
                "country_id": 9,
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "user": {
                "id": 9417,
                "first_name": "Andrii",
                "last_name": "Bondarenko",
                "middle_name": "Petrovych",
                "full_name": "Andrii Bondarenko Petrovych",
                "work_phone": null,
                "gender": null,
                "birthday": null,
                "name": "Andrii Bondarenko",
                "phone": "+380559225271",
                "email": "wuckert.elody@example.com",
                "subscribe_to_newsletter": false,
                "status": "active",
                "need_change_password": false,
                "percent_of_withdrawal": 0,
                "percent_of_discount": 0,
                "no_penalty_return_window_minutes": 0,
                "send_sms_order_post_payment_link": true,
                "send_email_notification_for_passenger": true,
                "hide_transfer_details": false,
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "carrier_name": null,
            "payment_time": 30,
            "sale_depth": 45,
            "flight_generation_depth": 60,
            "number_of_seats": 52,
            "seat_selection_allowed": true,
            "seat_selection_not_allowed_date_from": "2027-02-18",
            "seat_selection_not_allowed_date_to": "2027-02-25",
            "seat_selection_availability": "online_payment",
            "without_companion": true,
            "without_companion_price": 12,
            "min_price": [
                {
                    "currency_id": 88,
                    "price": 94
                }
            ],
            "forbidden_sale_date_from": null,
            "forbidden_sale_date_to": null,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "next",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request   

GET integration-api/bus-routes

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Query Parameters

page   string   

Page number Example: 1

search   string   

Search string Example: 000 111

status   string   

Status Example: active

city_from_id   string   

City from ID Example: 1

city_to_id   string   

City to ID Example: 2

departure_date   string   

Departure date Example: 2021-01-01

from_departure_point_id   integer   

From departure point id Example: 1

to_departure_point_id   integer   

To departure point id Example: 1

without_connecting   integer   

Without connection Example: 1

include_schedule   integer   

Include bus route schedule Example: 1

per_page   integer   

Items per page Example: 10

Show bus route

requires authentication

Get bus route

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/bus-routes/82" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/bus-routes/82"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 510,
        "number": "LAT-05008294",
        "name": "Kyiv - Warsaw",
        "ticket_hint": "Please arrive at the platform 20 minutes before departure.",
        "translations": {
            "name": {
                "en": "Kyiv - Warsaw",
                "ua": "Kyiv - Warsaw"
            },
            "ticket_hint": {
                "en": "Please arrive at the platform 20 minutes before departure.",
                "ua": "Please arrive at the platform 20 minutes before departure."
            }
        },
        "sale_end_time_before_departure": 60,
        "driver_visibility_time_before_departure": 180,
        "status": "active",
        "city_from": {
            "id": 8202,
            "name": "Kyiv",
            "slug": null,
            "translations": {
                "name": {
                    "en": "Kyiv",
                    "ua": "Kyiv"
                }
            },
            "population": 2800584,
            "lat": null,
            "lng": null,
            "number_of_bus_routes": 0,
            "visibility": true,
            "country_id": 6,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        },
        "city_to": {
            "id": 8203,
            "name": "Warsaw",
            "slug": null,
            "translations": {
                "name": {
                    "en": "Warsaw",
                    "ua": "Warsaw"
                }
            },
            "population": 1866933,
            "lat": null,
            "lng": null,
            "number_of_bus_routes": 0,
            "visibility": true,
            "country_id": 7,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        },
        "user": {
            "id": 9422,
            "first_name": "Andrii",
            "last_name": "Shevchenko",
            "middle_name": "Ivanovych",
            "full_name": "Andrii Shevchenko Ivanovych",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Andrii Shevchenko",
            "phone": "+380444465120",
            "email": "tianna34@example.com",
            "subscribe_to_newsletter": false,
            "status": "active",
            "need_change_password": false,
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "no_penalty_return_window_minutes": 0,
            "send_sms_order_post_payment_link": true,
            "send_email_notification_for_passenger": true,
            "hide_transfer_details": false,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        },
        "bus": {
            "id": 756,
            "name": "Mercedes-Benz Sprinter",
            "number": "AA 2252 df",
            "status": "active",
            "created_at": "2026-08-18T07:35:30.000000Z",
            "updated_at": "2026-08-18T07:35:30.000000Z"
        },
        "driver": {
            "id": 9424,
            "first_name": "Iryna",
            "last_name": "Tkachenko",
            "middle_name": "Oleksandrivna",
            "full_name": "Iryna Tkachenko Oleksandrivna",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Iryna Tkachenko",
            "phone": "+380216939296",
            "email": "estanton@example.net",
            "subscribe_to_newsletter": false,
            "status": "active",
            "need_change_password": false,
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "no_penalty_return_window_minutes": 0,
            "send_sms_order_post_payment_link": true,
            "send_email_notification_for_passenger": true,
            "hide_transfer_details": false,
            "created_at": "2026-08-18T07:35:30.000000Z",
            "updated_at": "2026-08-18T07:35:30.000000Z"
        },
        "dispatcher": {
            "id": 9425,
            "first_name": "Maksym",
            "last_name": "Bondarenko",
            "middle_name": "Ivanovych",
            "full_name": "Maksym Bondarenko Ivanovych",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Maksym Bondarenko",
            "phone": "+380146010373",
            "email": "delphine96@example.net",
            "subscribe_to_newsletter": false,
            "status": "active",
            "need_change_password": false,
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "no_penalty_return_window_minutes": 0,
            "send_sms_order_post_payment_link": true,
            "send_email_notification_for_passenger": true,
            "hide_transfer_details": false,
            "created_at": "2026-08-18T07:35:30.000000Z",
            "updated_at": "2026-08-18T07:35:30.000000Z"
        },
        "carrier_name": null,
        "payment_time": 30,
        "sale_depth": 45,
        "flight_generation_depth": 60,
        "number_of_seats": 52,
        "seat_selection_allowed": true,
        "seat_selection_not_allowed_date_from": "2027-02-18",
        "seat_selection_not_allowed_date_to": "2027-02-25",
        "seat_selection_availability": "online_payment",
        "without_companion": true,
        "without_companion_price": 12,
        "baggage_transportation_conditions": [
            {
                "id": 30242,
                "name": "Additional suitcase",
                "description": null,
                "translations": {
                    "name": {
                        "en": "Additional suitcase",
                        "ua": "Additional suitcase"
                    },
                    "description": []
                },
                "prices": [
                    {
                        "currency_id": 88,
                        "price": 25
                    }
                ],
                "created_at": "2026-08-18T07:35:30.000000Z",
                "updated_at": "2026-08-18T07:35:30.000000Z"
            }
        ],
        "return_conditions": [
            {
                "id": 71571,
                "departure_start": 48,
                "departure_end": 24,
                "retention_percentage": 50,
                "created_at": "2026-08-18T07:35:30.000000Z",
                "updated_at": "2026-08-18T07:35:30.000000Z"
            }
        ],
        "currencies": [
            {
                "id": 341,
                "display_name": "TTD",
                "code": "TTD",
                "symbol": "TTD",
                "is_active": true,
                "created_at": "2026-08-18T07:35:30.000000Z",
                "updated_at": "2026-08-18T07:35:30.000000Z"
            }
        ],
        "min_price": [
            {
                "currency_id": 88,
                "price": 88
            }
        ],
        "seat_selection_blocks": [
            {
                "id": 37497,
                "entity_type": "bus_route",
                "entity_id": 510,
                "from_departure_point_id": 13994,
                "to_departure_point_id": 13995,
                "from_position": 0,
                "to_position": 1,
                "seat_number": 31,
                "created_at": "2026-08-18T07:35:30.000000Z",
                "updated_at": "2026-08-18T07:35:30.000000Z"
            }
        ],
        "forbidden_sale_date_from": null,
        "forbidden_sale_date_to": null,
        "payment_methods": [
            {
                "id": 78,
                "name": "stripe",
                "display_name": "Card payment",
                "logo_path": "payment-methods/stripe.svg",
                "created_at": "2026-08-18T07:35:30.000000Z",
                "updated_at": "2026-08-18T07:35:30.000000Z"
            }
        ],
        "notification_settings": {
            "notify_about_ticket_sales": true,
            "notify_about_ticket_sales_email": "daryl.baumbach@beer.info",
            "notify_about_ticket_refund": false,
            "notify_about_ticket_refund_email": "garrison49@harber.com",
            "notify_before_departure": true,
            "notify_before_departure_email": "skiles.camren@ortiz.com",
            "notify_before_departure_time": 206
        },
        "transfer_types": [
            {
                "id": 23,
                "bus_route_id": 510,
                "name": "City center transfer",
                "is_active": true,
                "created_at": "2026-08-18T07:35:30.000000Z",
                "updated_at": "2026-08-18T07:35:30.000000Z"
            }
        ],
        "carrier": {
            "id": 277,
            "name": "EuroBus Express",
            "hotline_phone": null,
            "edrpou": null,
            "disclaimer": null,
            "insurance_description": null,
            "insurance_company_name": null,
            "insurance_company_address": null,
            "logo_url": null,
            "insurance_logo_url": null,
            "translations": {
                "disclaimer": [],
                "insurance_description": [],
                "insurance_company_name": [],
                "insurance_company_address": []
            }
        },
        "created_at": "2026-08-18T07:35:30.000000Z",
        "updated_at": "2026-08-18T07:35:30.000000Z"
    }
}
 

Request   

GET integration-api/bus-routes/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

URL Parameters

id   integer   

The ID of the bus route. Example: 82

External tickets

External source tickets

Search external bus flights tickets

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/external-tickets?from_departure_point_id=6&to_departure_point_id=4&from_departure_city_id=5&to_departure_city_id=3&departure_date=velit&number_of_passengers=20&currency_code=qui"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/external-tickets"
);

const params = {
    "from_departure_point_id": "6",
    "to_departure_point_id": "4",
    "from_departure_city_id": "5",
    "to_departure_city_id": "3",
    "departure_date": "velit",
    "number_of_passengers": "20",
    "currency_code": "qui",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));



fetch(url, {
    method: "GET",
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 997
access-control-allow-origin: *
 

{
    "message": "Unauthorized"
}
 

Request   

GET integration-api/external-tickets

Query Parameters

from_departure_point_id   integer   

ID of the departure point from which the bus flight departs Example: 6

to_departure_point_id   integer   

ID of the departure point to which the bus flight arrives Example: 4

from_departure_city_id   integer   

ID of the city from which the bus flight departs Example: 5

to_departure_city_id   integer   

ID of the city to which the bus flight arrives Example: 3

departure_date   string   

Date of departure in format YYYY-MM-DD Example: velit

number_of_passengers   integer   

Number of passengers for the bus flight search Example: 20

currency_code   string   

Currency code for the search results Example: qui

Buy external bus flight tickets

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/integration-api/external-tickets/buy" \
    --header "Content-Type: application/json" \
    --data "{
    \"trip_data_bundle\": \"ut\",
    \"passengers\": [
        \"dignissimos\"
    ],
    \"payment_method_id\": 13
}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/external-tickets/buy"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "trip_data_bundle": "ut",
    "passengers": [
        "dignissimos"
    ],
    "payment_method_id": 13
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 996
access-control-allow-origin: *
 

{
    "message": "Unauthorized"
}
 

Request   

POST integration-api/external-tickets/buy

Headers

Content-Type      

Example: application/json

Body Parameters

trip_data_bundle   string   

Serialized trip data bundle containing trip details Example: ut

passengers   string[]   

Array of passengers with their details

*   object  optional  
first_name   string   

First name of the passenger Example: maxime

last_name   string   

Last name of the passenger Example: sed

phone   string   

Phone number of the passenger Example: voluptatem

email   string   

Email of the passenger (optional) Example: idach@example.net

seat   string   

Seat number for the passenger (optional) Example: recusandae

comment   string   

Comment for the passenger (optional) Example: eveniet

discount_id   string   

ID of the discount to be applied for the passenger (optional) Example: magni

additional_data   string[]   

Additional data for the passenger (optional)

payment_method_id   integer   

ID of the payment method to be used for the purchase Example: 13

Get external bus flight details

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/integration-api/external-tickets" \
    --header "Content-Type: application/json" \
    --data "{
    \"data_bundle\": \"et\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/external-tickets"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "data_bundle": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 995
access-control-allow-origin: *
 

{
    "message": "Unauthorized"
}
 

Request   

POST integration-api/external-tickets

Headers

Content-Type      

Example: application/json

Body Parameters

data_bundle   string   

Serialized trip data bundle containing trip details Example: et

Geo

Geo data

Get a country

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/countries/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/countries/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 56,
        "name": "Saint Helena",
        "translations": {
            "name": {
                "en": "Saint Helena",
                "ua": "Saint Helena"
            }
        },
        "code": "DJ",
        "timezone": "Europe/Kiev",
        "created_at": "2026-08-18T07:35:29.000000Z",
        "updated_at": "2026-08-18T07:35:29.000000Z"
    }
}
 

Request   

GET integration-api/countries/{country}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

URL Parameters

country   integer   

Country ID Example: 1

Get all cities

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/cities?page=1&search=New+York&country=1&per_page=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/cities"
);

const params = {
    "page": "1",
    "search": "New York",
    "country": "1",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 8178,
            "name": "Prague",
            "slug": null,
            "translations": {
                "name": {
                    "en": "Prague",
                    "ua": "Prague"
                }
            },
            "departure_points": [
                {
                    "id": 13987,
                    "name": "Airport Bus Terminal",
                    "translations": {
                        "name": {
                            "en": "Airport Bus Terminal",
                            "ua": "Airport Bus Terminal"
                        }
                    },
                    "lat": "48.15579100",
                    "lng": "28.07611100",
                    "visibility": true,
                    "created_at": "2026-08-18T07:35:29.000000Z",
                    "updated_at": "2026-08-18T07:35:29.000000Z"
                }
            ],
            "country": {
                "id": 57,
                "name": "Spain",
                "translations": {
                    "name": {
                        "en": "Spain",
                        "ua": "Spain"
                    }
                },
                "code": "SM",
                "timezone": "Europe/Kiev",
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "population": 2965795,
            "lat": null,
            "lng": null,
            "number_of_bus_routes": 0,
            "visibility": true,
            "country_id": 57,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        },
        {
            "id": 8180,
            "name": "Kyiv",
            "slug": null,
            "translations": {
                "name": {
                    "en": "Kyiv",
                    "ua": "Kyiv"
                }
            },
            "departure_points": [
                {
                    "id": 13988,
                    "name": "International Coach Terminal",
                    "translations": {
                        "name": {
                            "en": "International Coach Terminal",
                            "ua": "International Coach Terminal"
                        }
                    },
                    "lat": "49.00596800",
                    "lng": "20.20107700",
                    "visibility": true,
                    "created_at": "2026-08-18T07:35:29.000000Z",
                    "updated_at": "2026-08-18T07:35:29.000000Z"
                }
            ],
            "country": {
                "id": 58,
                "name": "Micronesia",
                "translations": {
                    "name": {
                        "en": "Micronesia",
                        "ua": "Micronesia"
                    }
                },
                "code": "TG",
                "timezone": "Europe/Kiev",
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "population": 2427350,
            "lat": null,
            "lng": null,
            "number_of_bus_routes": 0,
            "visibility": true,
            "country_id": 58,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "next",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request   

GET integration-api/cities

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Query Parameters

page   integer   

Page number Example: 1

search   string   

Search string Example: New York

country   integer   

Filter by country id Example: 1

per_page   integer   

Items per page Example: 10

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/cities/search?query=New+York" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/cities/search"
);

const params = {
    "query": "New York",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 8182,
            "name": "Prague",
            "slug": null,
            "translations": {
                "name": {
                    "en": "Prague",
                    "ua": "Prague"
                }
            },
            "departure_points": [
                {
                    "id": 13989,
                    "name": "International Coach Terminal",
                    "translations": {
                        "name": {
                            "en": "International Coach Terminal",
                            "ua": "International Coach Terminal"
                        }
                    },
                    "lat": "43.99274100",
                    "lng": "29.14924500",
                    "visibility": true,
                    "created_at": "2026-08-18T07:35:29.000000Z",
                    "updated_at": "2026-08-18T07:35:29.000000Z"
                }
            ],
            "country": {
                "id": 59,
                "name": "Gabon",
                "translations": {
                    "name": {
                        "en": "Gabon",
                        "ua": "Gabon"
                    }
                },
                "code": "UY",
                "timezone": "Europe/Kiev",
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "population": 1551556,
            "lat": null,
            "lng": null,
            "number_of_bus_routes": 0,
            "visibility": true,
            "country_id": 59,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=2",
        "prev": null,
        "next": "/?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "links": [
            {
                "url": null,
                "label": "previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": "/?page=2",
                "label": "2",
                "page": 2,
                "active": false
            },
            {
                "url": "/?page=2",
                "label": "next",
                "page": 2,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 1,
        "to": 1,
        "total": 2
    }
}
 

Get a city

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/cities/267" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/cities/267"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 998
access-control-allow-origin: *
 

{
    "message": "Unauthorized"
}
 

Request   

GET integration-api/cities/{city}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

URL Parameters

city   integer   

The city. Example: 267

Get all departure points

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/departure-points?page=1&search=New+York&city=1&per_page=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/departure-points"
);

const params = {
    "page": "1",
    "search": "New York",
    "city": "1",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 13991,
            "name": "Main Railway Station",
            "translations": {
                "name": {
                    "en": "Main Railway Station",
                    "ua": "Main Railway Station"
                }
            },
            "city": {
                "id": 8187,
                "name": "Krakow",
                "slug": null,
                "translations": {
                    "name": {
                        "en": "Krakow",
                        "ua": "Krakow"
                    }
                },
                "population": 1620497,
                "lat": null,
                "lng": null,
                "number_of_bus_routes": 0,
                "visibility": true,
                "country_id": 7,
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "lat": "41.70069000",
            "lng": "28.10258100",
            "visibility": true,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        },
        {
            "id": 13992,
            "name": "West Bus Terminal",
            "translations": {
                "name": {
                    "en": "West Bus Terminal",
                    "ua": "West Bus Terminal"
                }
            },
            "city": {
                "id": 8189,
                "name": "Odesa",
                "slug": null,
                "translations": {
                    "name": {
                        "en": "Odesa",
                        "ua": "Odesa"
                    }
                },
                "population": 1946257,
                "lat": null,
                "lng": null,
                "number_of_bus_routes": 0,
                "visibility": true,
                "country_id": 6,
                "created_at": "2026-08-18T07:35:29.000000Z",
                "updated_at": "2026-08-18T07:35:29.000000Z"
            },
            "lat": "43.38536300",
            "lng": "24.45050600",
            "visibility": true,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "next",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request   

GET integration-api/departure-points

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Query Parameters

page   integer   

Page number Example: 1

search   string   

Search string Example: New York

city   integer   

Filter by city id Example: 1

per_page   integer   

Items per page Example: 10

Get a departure point

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/departure-points/87" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/departure-points/87"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 13993,
        "name": "International Coach Terminal",
        "translations": {
            "name": {
                "en": "International Coach Terminal",
                "ua": "International Coach Terminal"
            }
        },
        "city": {
            "id": 8191,
            "name": "Kyiv",
            "slug": null,
            "translations": {
                "name": {
                    "en": "Kyiv",
                    "ua": "Kyiv"
                }
            },
            "population": 2741859,
            "lat": null,
            "lng": null,
            "number_of_bus_routes": 0,
            "visibility": true,
            "country_id": 6,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        },
        "lat": "46.35402300",
        "lng": "22.74454000",
        "visibility": true,
        "created_at": "2026-08-18T07:35:29.000000Z",
        "updated_at": "2026-08-18T07:35:29.000000Z"
    }
}
 

Request   

GET integration-api/departure-points/{departurePoint_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

URL Parameters

departurePoint_id   integer   

The ID of the departurePoint. Example: 87

Orders

Show order

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/orders/18"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/orders/18"
);



fetch(url, {
    method: "GET",
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 33326,
        "uuid": null,
        "public_id": "sZQO8jaGonyxSfH",
        "paid_at": null,
        "tickets": [
            {
                "id": 37529,
                "type": "internal",
                "target_departure_date": "2026-09-06T08:30:00.000000Z",
                "target_arrival_date": "2026-09-06T20:30:00.000000Z",
                "target_minutes_in_travel": 720,
                "public_id": "LgsbpHOn63VwWUc",
                "data_for_qr_code": "LgsbpHOn63VwWUc",
                "price": "37.53",
                "price_adjustment_percent": "0.00",
                "order_id": 33326,
                "first_name": "Natalia",
                "last_name": "Shevchenko",
                "phone": "+380306116650",
                "email": "nikolaus.estella@example.org",
                "birthday": "2000-12-09",
                "passenger_type": "adult",
                "departure_date": "2026-09-06T08:30:00.000000Z",
                "bus_flight_id": 22771,
                "canceled_at": null,
                "cancel_comment": null,
                "status": "pending",
                "seat_change_allowed": true,
                "comment": "Window seat preferred.",
                "is_processed": false,
                "external_route_name": null,
                "external_ticket_id": null,
                "external_discount_name": null,
                "external_from_departure_point_name": null,
                "external_to_departure_point_name": null,
                "is_external": false,
                "created_at": "2026-08-18T07:35:40.000000Z",
                "updated_at": "2026-08-18T07:35:40.000000Z"
            }
        ],
        "user": {
            "id": 9610,
            "first_name": "Natalia",
            "last_name": "Kravchenko",
            "middle_name": "Petrovych",
            "full_name": "Natalia Kravchenko Petrovych",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Natalia Kravchenko",
            "phone": "+380672808963",
            "email": "samson.hyatt@example.net",
            "subscribe_to_newsletter": false,
            "status": "active",
            "need_change_password": false,
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "no_penalty_return_window_minutes": 0,
            "send_sms_order_post_payment_link": true,
            "send_email_notification_for_passenger": true,
            "hide_transfer_details": false,
            "created_at": "2026-08-18T07:35:40.000000Z",
            "updated_at": "2026-08-18T07:35:40.000000Z"
        },
        "agent_id": null,
        "currency": {
            "id": 344,
            "display_name": "BYN",
            "code": "BYN",
            "symbol": "BYN",
            "is_active": true,
            "created_at": "2026-08-18T07:35:40.000000Z",
            "updated_at": "2026-08-18T07:35:40.000000Z"
        },
        "status": "pending",
        "total_price": "80.13",
        "payment_on_the_spot": false,
        "order_group_id": null,
        "direction": "outbound",
        "data_source": null,
        "expired_at": null,
        "created_at": "2026-08-18T07:35:40.000000Z",
        "updated_at": "2026-08-18T07:35:40.000000Z"
    }
}
 

Request   

GET integration-api/orders/{order_id}

URL Parameters

order_id   integer   

The ID of the order. Example: 18

Download pdf of order tickets

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/orders/18/download-tickets" \
    --header "Content-Type: application/json" \
    --data "{
    \"format\": \"pdf\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/orders/18/download-tickets"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "format": "pdf"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 993
access-control-allow-origin: *
 

{
    "message": "Unauthorized"
}
 

Request   

GET integration-api/orders/{order_id}/download-tickets

Headers

Content-Type      

Example: application/json

URL Parameters

order_id   integer   

The ID of the order. Example: 18

orderId   string   

ID of the order Example: 1

Body Parameters

format   string  optional  

Format of the downloaded file (pdf, or base64) Example: pdf

Passengers

Passengers

Cancel ticket

Cancel ticket

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/integration-api/cancel-ticket/quisquam" \
    --header "Content-Type: application/json" \
    --data "{
    \"cancel_reason_id\": 1,
    \"cancel_comment\": \"Comment\",
    \"clear_occupied_seats\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/cancel-ticket/quisquam"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cancel_reason_id": 1,
    "cancel_comment": "Comment",
    "clear_occupied_seats": true
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 37525,
        "type": "internal",
        "target_departure_date": "2026-08-30T08:30:00.000000Z",
        "target_arrival_date": "2026-08-30T20:30:00.000000Z",
        "target_minutes_in_travel": 720,
        "public_id": "eWZW6l8wVqSMWtF",
        "data_for_qr_code": "eWZW6l8wVqSMWtF",
        "price": "55.87",
        "price_adjustment_percent": "0.00",
        "order_id": 33322,
        "first_name": "Olena",
        "last_name": "Bondarenko",
        "phone": "+380006400134",
        "email": "rosella.larson@example.org",
        "birthday": "1997-04-24",
        "passenger_type": "adult",
        "departure_date": "2026-08-30T08:30:00.000000Z",
        "bus_flight_id": 22766,
        "canceled_at": null,
        "cancel_comment": null,
        "status": "pending",
        "seat_change_allowed": true,
        "comment": "Window seat preferred.",
        "is_processed": false,
        "external_route_name": null,
        "external_ticket_id": null,
        "external_discount_name": null,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2026-08-18T07:35:37.000000Z",
        "updated_at": "2026-08-18T07:35:37.000000Z"
    }
}
 

Request   

PATCH integration-api/cancel-ticket/{ticket}

Headers

Content-Type      

Example: application/json

URL Parameters

ticket   string   

Example: quisquam

Body Parameters

cancel_reason_id   integer   

Cancel reason id Example: 1

cancel_comment   string   

Cancel comment Example: Comment

clear_occupied_seats   boolean   

Clear occupied seats Example: true

Accept partially payment

Accept partially payment

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/integration-api/accept-partially-payment/voluptates" \
    --header "Content-Type: application/json" \
    --data "{
    \"amount\": 100,
    \"payment_method_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/accept-partially-payment/voluptates"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "amount": 100,
    "payment_method_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 37527,
        "type": "internal",
        "target_departure_date": "2026-08-30T08:30:00.000000Z",
        "target_arrival_date": "2026-08-30T20:30:00.000000Z",
        "target_minutes_in_travel": 720,
        "public_id": "GeQgUcnUYI5A2XB",
        "data_for_qr_code": "GeQgUcnUYI5A2XB",
        "price": "60.66",
        "price_adjustment_percent": "0.00",
        "order_id": 33324,
        "first_name": "Natalia",
        "last_name": "Melnyk",
        "phone": "+380649838189",
        "email": "una42@example.org",
        "birthday": "2001-12-03",
        "passenger_type": "adult",
        "departure_date": "2026-08-30T08:30:00.000000Z",
        "bus_flight_id": 22769,
        "canceled_at": null,
        "cancel_comment": null,
        "status": "pending",
        "seat_change_allowed": true,
        "comment": "Window seat preferred.",
        "prepayments": [
            {
                "id": 10616,
                "ticket_id": 37527,
                "currency_id": 88,
                "payment_method_id": 83,
                "amount": 14.72,
                "created_at": "2026-08-18T07:35:39.000000Z",
                "updated_at": "2026-08-18T07:35:39.000000Z"
            }
        ],
        "prepayments_amount": 14.72,
        "is_processed": false,
        "external_route_name": null,
        "external_ticket_id": null,
        "external_discount_name": null,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2026-08-18T07:35:39.000000Z",
        "updated_at": "2026-08-18T07:35:39.000000Z"
    }
}
 

Request   

POST integration-api/accept-partially-payment/{ticket}

Headers

Content-Type      

Example: application/json

URL Parameters

ticket   string   

Example: voluptates

Body Parameters

amount   number   

Amount Example: 100

payment_method_id   integer   

Payment method id Example: 1

Return ticket

Return ticket

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/integration-api/return-ticket/aut"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/return-ticket/aut"
);



fetch(url, {
    method: "PATCH",
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 37528,
        "type": "internal",
        "target_departure_date": "2026-08-26T08:30:00.000000Z",
        "target_arrival_date": "2026-08-26T20:30:00.000000Z",
        "target_minutes_in_travel": 720,
        "public_id": "R3bTeNhrwyV9tK2",
        "data_for_qr_code": "R3bTeNhrwyV9tK2",
        "price": "36.50",
        "price_adjustment_percent": "0.00",
        "order_id": 33325,
        "first_name": "Serhii",
        "last_name": "Melnyk",
        "phone": "+380887834049",
        "email": "sadye.ratke@example.com",
        "birthday": "1984-08-24",
        "passenger_type": "adult",
        "departure_date": "2026-08-26T08:30:00.000000Z",
        "bus_flight_id": 22770,
        "canceled_at": null,
        "cancel_comment": null,
        "status": "pending",
        "seat_change_allowed": true,
        "comment": "Window seat preferred.",
        "is_processed": false,
        "external_route_name": null,
        "external_ticket_id": null,
        "external_discount_name": null,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2026-08-18T07:35:39.000000Z",
        "updated_at": "2026-08-18T07:35:39.000000Z",
        "penalty": 100
    }
}
 

Request   

PATCH integration-api/return-ticket/{ticket_id}

URL Parameters

ticket_id   string   

The ID of the ticket. Example: aut

Profile

Profile

Show profile

requires authentication

Show profile

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/profile" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/profile"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 999
access-control-allow-origin: *
 

{
    "message": "Unauthorized"
}
 

Request   

GET integration-api/profile

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

System settings

System Setting

Get all currency

Get all currency

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/currencies"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/currencies"
);



fetch(url, {
    method: "GET",
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 339,
            "display_name": "NIO",
            "code": "NIO",
            "symbol": "NIO",
            "is_active": true,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        },
        {
            "id": 340,
            "display_name": "CUP",
            "code": "CUP",
            "symbol": "CUP",
            "is_active": true,
            "created_at": "2026-08-18T07:35:29.000000Z",
            "updated_at": "2026-08-18T07:35:29.000000Z"
        }
    ]
}
 

Request   

GET integration-api/currencies

Get all cancel reasons

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/cancel-reasons?per_page=10"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/cancel-reasons"
);

const params = {
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));



fetch(url, {
    method: "GET",
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 38,
            "name": "Duplicate booking",
            "slug": null
        },
        {
            "id": 39,
            "name": "Payment was not completed",
            "slug": null
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "previous",
                "page": null,
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "next",
                "page": null,
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request   

GET integration-api/cancel-reasons

Query Parameters

per_page   integer   

Items per page Example: 10

Get all payment methods

Get all payment methods

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/payment-methods"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/payment-methods"
);



fetch(url, {
    method: "GET",
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 84,
            "name": "liqpay",
            "display_name": "LiqPay",
            "logo_path": "payment-methods/liqpay.svg",
            "created_at": "2026-08-18T07:35:40.000000Z",
            "updated_at": "2026-08-18T07:35:40.000000Z"
        },
        {
            "id": 85,
            "name": "liqpay",
            "display_name": "LiqPay",
            "logo_path": "payment-methods/liqpay.svg",
            "created_at": "2026-08-18T07:35:40.000000Z",
            "updated_at": "2026-08-18T07:35:40.000000Z"
        }
    ]
}
 

Request   

GET integration-api/payment-methods

Tickets

Tickets

Search free tickets

Search free tickets

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/tickets?from_city_id=1&to_city_id=2&from_departure_point_id=1&to_departure_point_id=2&departure_date=2021-10-10&date_range[from]=2021-10-10&date_range[to]=2021-10-20&number_of_passengers=1&return_date=2021-10-10&bus_route_id=1"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/tickets"
);

const params = {
    "from_city_id": "1",
    "to_city_id": "2",
    "from_departure_point_id": "1",
    "to_departure_point_id": "2",
    "departure_date": "2021-10-10",
    "date_range[from]": "2021-10-10",
    "date_range[to]": "2021-10-20",
    "number_of_passengers": "1",
    "return_date": "2021-10-10",
    "bus_route_id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));



fetch(url, {
    method: "GET",
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 22759,
            "target_departure_date": null,
            "target_arrival_date": null,
            "target_minutes_in_travel": null,
            "target_from_departure_point_id": 0,
            "target_to_departure_point_id": 0,
            "sale_end_time_before_departure": 60,
            "status": "open",
            "payment_time": 30,
            "sale_depth": 45,
            "number_of_seats": 52,
            "route_name": "Wroclaw - Warsaw",
            "route_number": "LAT-34679206",
            "route_ticket_hint": "Please arrive at the platform 20 minutes before departure.",
            "carrier_name": "LAT Lines",
            "seat_selection_allowed": true,
            "seat_selection_not_allowed_date_from": "2026-08-23T00:00:00.000000Z",
            "seat_selection_not_allowed_date_to": "2026-08-24T00:00:00.000000Z",
            "seat_selection_availability": "online_payment",
            "without_companion": true,
            "without_companion_price_percent": 12,
            "selected_seats_prices": null,
            "bus": {
                "id": 773,
                "name": "Neoplan Tourliner",
                "number": "AA 3829 gw",
                "status": "active",
                "schema": {
                    "id": 860,
                    "name": "Neoplan Tourliner 56 seats",
                    "mark": "Mercedes-Benz",
                    "model": "Sprinter",
                    "number_of_seats": 56,
                    "number_of_floors": 1,
                    "rows": 14,
                    "columns": 4,
                    "items": [
                        {
                            "id": 40661,
                            "type": "seat",
                            "name": "Seat 1",
                            "translations": {
                                "name": {
                                    "en": "Seat 1"
                                }
                            },
                            "seat_number": 1,
                            "row_number": 1,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40662,
                            "type": "seat",
                            "name": "Seat 2",
                            "translations": {
                                "name": {
                                    "en": "Seat 2"
                                }
                            },
                            "seat_number": 2,
                            "row_number": 1,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40663,
                            "type": "seat",
                            "name": "Seat 3",
                            "translations": {
                                "name": {
                                    "en": "Seat 3"
                                }
                            },
                            "seat_number": 3,
                            "row_number": 1,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40664,
                            "type": "seat",
                            "name": "Seat 4",
                            "translations": {
                                "name": {
                                    "en": "Seat 4"
                                }
                            },
                            "seat_number": 4,
                            "row_number": 1,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40665,
                            "type": "seat",
                            "name": "Seat 5",
                            "translations": {
                                "name": {
                                    "en": "Seat 5"
                                }
                            },
                            "seat_number": 5,
                            "row_number": 2,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40666,
                            "type": "seat",
                            "name": "Seat 6",
                            "translations": {
                                "name": {
                                    "en": "Seat 6"
                                }
                            },
                            "seat_number": 6,
                            "row_number": 2,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40667,
                            "type": "seat",
                            "name": "Seat 7",
                            "translations": {
                                "name": {
                                    "en": "Seat 7"
                                }
                            },
                            "seat_number": 7,
                            "row_number": 2,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40668,
                            "type": "seat",
                            "name": "Seat 8",
                            "translations": {
                                "name": {
                                    "en": "Seat 8"
                                }
                            },
                            "seat_number": 8,
                            "row_number": 2,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40669,
                            "type": "seat",
                            "name": "Seat 9",
                            "translations": {
                                "name": {
                                    "en": "Seat 9"
                                }
                            },
                            "seat_number": 9,
                            "row_number": 3,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40670,
                            "type": "seat",
                            "name": "Seat 10",
                            "translations": {
                                "name": {
                                    "en": "Seat 10"
                                }
                            },
                            "seat_number": 10,
                            "row_number": 3,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40671,
                            "type": "seat",
                            "name": "Seat 11",
                            "translations": {
                                "name": {
                                    "en": "Seat 11"
                                }
                            },
                            "seat_number": 11,
                            "row_number": 3,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40672,
                            "type": "seat",
                            "name": "Seat 12",
                            "translations": {
                                "name": {
                                    "en": "Seat 12"
                                }
                            },
                            "seat_number": 12,
                            "row_number": 3,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40673,
                            "type": "seat",
                            "name": "Seat 13",
                            "translations": {
                                "name": {
                                    "en": "Seat 13"
                                }
                            },
                            "seat_number": 13,
                            "row_number": 4,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40674,
                            "type": "seat",
                            "name": "Seat 14",
                            "translations": {
                                "name": {
                                    "en": "Seat 14"
                                }
                            },
                            "seat_number": 14,
                            "row_number": 4,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40675,
                            "type": "seat",
                            "name": "Seat 15",
                            "translations": {
                                "name": {
                                    "en": "Seat 15"
                                }
                            },
                            "seat_number": 15,
                            "row_number": 4,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40676,
                            "type": "seat",
                            "name": "Seat 16",
                            "translations": {
                                "name": {
                                    "en": "Seat 16"
                                }
                            },
                            "seat_number": 16,
                            "row_number": 4,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40677,
                            "type": "seat",
                            "name": "Seat 17",
                            "translations": {
                                "name": {
                                    "en": "Seat 17"
                                }
                            },
                            "seat_number": 17,
                            "row_number": 5,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40678,
                            "type": "seat",
                            "name": "Seat 18",
                            "translations": {
                                "name": {
                                    "en": "Seat 18"
                                }
                            },
                            "seat_number": 18,
                            "row_number": 5,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40679,
                            "type": "seat",
                            "name": "Seat 19",
                            "translations": {
                                "name": {
                                    "en": "Seat 19"
                                }
                            },
                            "seat_number": 19,
                            "row_number": 5,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40680,
                            "type": "seat",
                            "name": "Seat 20",
                            "translations": {
                                "name": {
                                    "en": "Seat 20"
                                }
                            },
                            "seat_number": 20,
                            "row_number": 5,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40681,
                            "type": "seat",
                            "name": "Seat 21",
                            "translations": {
                                "name": {
                                    "en": "Seat 21"
                                }
                            },
                            "seat_number": 21,
                            "row_number": 6,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40682,
                            "type": "seat",
                            "name": "Seat 22",
                            "translations": {
                                "name": {
                                    "en": "Seat 22"
                                }
                            },
                            "seat_number": 22,
                            "row_number": 6,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40683,
                            "type": "seat",
                            "name": "Seat 23",
                            "translations": {
                                "name": {
                                    "en": "Seat 23"
                                }
                            },
                            "seat_number": 23,
                            "row_number": 6,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40684,
                            "type": "seat",
                            "name": "Seat 24",
                            "translations": {
                                "name": {
                                    "en": "Seat 24"
                                }
                            },
                            "seat_number": 24,
                            "row_number": 6,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40685,
                            "type": "seat",
                            "name": "Seat 25",
                            "translations": {
                                "name": {
                                    "en": "Seat 25"
                                }
                            },
                            "seat_number": 25,
                            "row_number": 7,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40686,
                            "type": "seat",
                            "name": "Seat 26",
                            "translations": {
                                "name": {
                                    "en": "Seat 26"
                                }
                            },
                            "seat_number": 26,
                            "row_number": 7,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40687,
                            "type": "seat",
                            "name": "Seat 27",
                            "translations": {
                                "name": {
                                    "en": "Seat 27"
                                }
                            },
                            "seat_number": 27,
                            "row_number": 7,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40688,
                            "type": "seat",
                            "name": "Seat 28",
                            "translations": {
                                "name": {
                                    "en": "Seat 28"
                                }
                            },
                            "seat_number": 28,
                            "row_number": 7,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40689,
                            "type": "seat",
                            "name": "Seat 29",
                            "translations": {
                                "name": {
                                    "en": "Seat 29"
                                }
                            },
                            "seat_number": 29,
                            "row_number": 8,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40690,
                            "type": "seat",
                            "name": "Seat 30",
                            "translations": {
                                "name": {
                                    "en": "Seat 30"
                                }
                            },
                            "seat_number": 30,
                            "row_number": 8,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40691,
                            "type": "seat",
                            "name": "Seat 31",
                            "translations": {
                                "name": {
                                    "en": "Seat 31"
                                }
                            },
                            "seat_number": 31,
                            "row_number": 8,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40692,
                            "type": "seat",
                            "name": "Seat 32",
                            "translations": {
                                "name": {
                                    "en": "Seat 32"
                                }
                            },
                            "seat_number": 32,
                            "row_number": 8,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40693,
                            "type": "seat",
                            "name": "Seat 33",
                            "translations": {
                                "name": {
                                    "en": "Seat 33"
                                }
                            },
                            "seat_number": 33,
                            "row_number": 9,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40694,
                            "type": "seat",
                            "name": "Seat 34",
                            "translations": {
                                "name": {
                                    "en": "Seat 34"
                                }
                            },
                            "seat_number": 34,
                            "row_number": 9,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40695,
                            "type": "seat",
                            "name": "Seat 35",
                            "translations": {
                                "name": {
                                    "en": "Seat 35"
                                }
                            },
                            "seat_number": 35,
                            "row_number": 9,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40696,
                            "type": "seat",
                            "name": "Seat 36",
                            "translations": {
                                "name": {
                                    "en": "Seat 36"
                                }
                            },
                            "seat_number": 36,
                            "row_number": 9,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40697,
                            "type": "seat",
                            "name": "Seat 37",
                            "translations": {
                                "name": {
                                    "en": "Seat 37"
                                }
                            },
                            "seat_number": 37,
                            "row_number": 10,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40698,
                            "type": "seat",
                            "name": "Seat 38",
                            "translations": {
                                "name": {
                                    "en": "Seat 38"
                                }
                            },
                            "seat_number": 38,
                            "row_number": 10,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40699,
                            "type": "seat",
                            "name": "Seat 39",
                            "translations": {
                                "name": {
                                    "en": "Seat 39"
                                }
                            },
                            "seat_number": 39,
                            "row_number": 10,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40700,
                            "type": "seat",
                            "name": "Seat 40",
                            "translations": {
                                "name": {
                                    "en": "Seat 40"
                                }
                            },
                            "seat_number": 40,
                            "row_number": 10,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40701,
                            "type": "seat",
                            "name": "Seat 41",
                            "translations": {
                                "name": {
                                    "en": "Seat 41"
                                }
                            },
                            "seat_number": 41,
                            "row_number": 11,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40702,
                            "type": "seat",
                            "name": "Seat 42",
                            "translations": {
                                "name": {
                                    "en": "Seat 42"
                                }
                            },
                            "seat_number": 42,
                            "row_number": 11,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40703,
                            "type": "seat",
                            "name": "Seat 43",
                            "translations": {
                                "name": {
                                    "en": "Seat 43"
                                }
                            },
                            "seat_number": 43,
                            "row_number": 11,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40704,
                            "type": "seat",
                            "name": "Seat 44",
                            "translations": {
                                "name": {
                                    "en": "Seat 44"
                                }
                            },
                            "seat_number": 44,
                            "row_number": 11,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40705,
                            "type": "seat",
                            "name": "Seat 45",
                            "translations": {
                                "name": {
                                    "en": "Seat 45"
                                }
                            },
                            "seat_number": 45,
                            "row_number": 12,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40706,
                            "type": "seat",
                            "name": "Seat 46",
                            "translations": {
                                "name": {
                                    "en": "Seat 46"
                                }
                            },
                            "seat_number": 46,
                            "row_number": 12,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40707,
                            "type": "seat",
                            "name": "Seat 47",
                            "translations": {
                                "name": {
                                    "en": "Seat 47"
                                }
                            },
                            "seat_number": 47,
                            "row_number": 12,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40708,
                            "type": "seat",
                            "name": "Seat 48",
                            "translations": {
                                "name": {
                                    "en": "Seat 48"
                                }
                            },
                            "seat_number": 48,
                            "row_number": 12,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40709,
                            "type": "seat",
                            "name": "Seat 49",
                            "translations": {
                                "name": {
                                    "en": "Seat 49"
                                }
                            },
                            "seat_number": 49,
                            "row_number": 13,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40710,
                            "type": "seat",
                            "name": "Seat 50",
                            "translations": {
                                "name": {
                                    "en": "Seat 50"
                                }
                            },
                            "seat_number": 50,
                            "row_number": 13,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40711,
                            "type": "seat",
                            "name": "Seat 51",
                            "translations": {
                                "name": {
                                    "en": "Seat 51"
                                }
                            },
                            "seat_number": 51,
                            "row_number": 13,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40712,
                            "type": "seat",
                            "name": "Seat 52",
                            "translations": {
                                "name": {
                                    "en": "Seat 52"
                                }
                            },
                            "seat_number": 52,
                            "row_number": 13,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 40713,
                            "type": "seat",
                            "name": "Seat 53",
                            "translations": {
                                "name": {
                                    "en": "Seat 53"
                                }
                            },
                            "seat_number": 53,
                            "row_number": 14,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 40714,
                            "type": "seat",
                            "name": "Seat 54",
                            "translations": {
                                "name": {
                                    "en": "Seat 54"
                                }
                            },
                            "seat_number": 54,
                            "row_number": 14,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 40715,
                            "type": "seat",
                            "name": "Seat 55",
                            "translations": {
                                "name": {
                                    "en": "Seat 55"
                                }
                            },
                            "seat_number": 55,
                            "row_number": 14,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 40716,
                            "type": "seat",
                            "name": "Seat 56",
                            "translations": {
                                "name": {
                                    "en": "Seat 56"
                                }
                            },
                            "seat_number": 56,
                            "row_number": 14,
                            "column_number": 4,
                            "floor_number": 1
                        }
                    ],
                    "created_at": "2026-08-18T07:35:33.000000Z",
                    "updated_at": "2026-08-18T07:35:33.000000Z"
                },
                "services": [],
                "images": [
                    {
                        "id": 36,
                        "name": "explicabo",
                        "file_name": "dqhokgmf.jpg",
                        "mime_type": "image/jpeg",
                        "size": 408463,
                        "url": "https://testapi.ticketbus365.com/storage/36/dqhokgmf.jpg",
                        "created_at": "2026-08-18T07:35:33.000000Z",
                        "updated_at": "2026-08-18T07:35:33.000000Z"
                    },
                    {
                        "id": 37,
                        "name": "media-librarybKGOMJ",
                        "file_name": "bus.jpg",
                        "mime_type": "text/plain",
                        "size": 18,
                        "url": "https://testapi.ticketbus365.com/storage/37/bus.jpg",
                        "created_at": "2026-08-18T07:35:33.000000Z",
                        "updated_at": "2026-08-18T07:35:33.000000Z"
                    }
                ],
                "created_at": "2026-08-18T07:35:33.000000Z",
                "updated_at": "2026-08-18T07:35:33.000000Z"
            },
            "driver": {
                "id": 9496,
                "first_name": "Serhii",
                "last_name": "Kovalenko",
                "middle_name": "Petrovych",
                "full_name": "Serhii Kovalenko Petrovych",
                "work_phone": null,
                "gender": null,
                "birthday": null
            },
            "dispatcher": {
                "id": 9497,
                "first_name": "Natalia",
                "last_name": "Kovalenko",
                "middle_name": "Petrovych",
                "full_name": "Natalia Kovalenko Petrovych",
                "work_phone": null,
                "gender": null,
                "birthday": null
            },
            "occupiedSeats": [
                {
                    "id": 420343,
                    "bus_flight_id": 22759,
                    "from_departure_point_id": 14005,
                    "to_departure_point_id": 14004,
                    "seat_number": 34,
                    "type": "reserved",
                    "created_at": "2026-08-18T07:35:35.000000Z",
                    "updated_at": "2026-08-18T07:35:35.000000Z"
                }
            ],
            "baggage_transportation_conditions": [
                {
                    "id": 30244,
                    "name": "Standard luggage up to 20 kg",
                    "description": null,
                    "translations": {
                        "name": {
                            "en": "Standard luggage up to 20 kg",
                            "ua": "Standard luggage up to 20 kg"
                        },
                        "description": []
                    },
                    "prices": [
                        {
                            "currency_id": 88,
                            "price": 10
                        }
                    ],
                    "created_at": "2026-08-18T07:35:35.000000Z",
                    "updated_at": "2026-08-18T07:35:35.000000Z"
                }
            ],
            "schedules": [
                {
                    "id": 1885089,
                    "departure_point_id": 14003,
                    "departure_point": {
                        "id": 14003,
                        "name": "International Coach Terminal",
                        "translations": {
                            "name": {
                                "en": "International Coach Terminal",
                                "ua": "International Coach Terminal"
                            }
                        },
                        "city": {
                            "id": 8235,
                            "name": "Wroclaw",
                            "slug": null,
                            "translations": {
                                "name": {
                                    "en": "Wroclaw",
                                    "ua": "Wroclaw"
                                }
                            },
                            "population": 2364022,
                            "lat": null,
                            "lng": null,
                            "number_of_bus_routes": 0,
                            "visibility": true,
                            "country_id": 7,
                            "created_at": "2026-08-18T07:35:34.000000Z",
                            "updated_at": "2026-08-18T07:35:34.000000Z"
                        },
                        "lat": "48.51521900",
                        "lng": "21.49118700",
                        "visibility": true,
                        "created_at": "2026-08-18T07:35:34.000000Z",
                        "updated_at": "2026-08-18T07:35:34.000000Z"
                    },
                    "arrival_time": "19:00",
                    "departure_time": "17:30",
                    "days_in_road": 0,
                    "platform": "P9",
                    "has_landing": true,
                    "has_disembarkation": true,
                    "is_connecting": false,
                    "is_connecting_start_endpoint": false,
                    "position": 0,
                    "sale_status": "open",
                    "is_active": true,
                    "has_transfer": false,
                    "maybe_transfer": false,
                    "hint": "Boarding starts 20 minutes before departure.",
                    "translations": {
                        "hint": {
                            "en": "Boarding starts 20 minutes before departure.",
                            "ua": "Boarding starts 20 minutes before departure."
                        }
                    },
                    "created_at": "2026-08-18T07:35:34.000000Z",
                    "updated_at": "2026-08-18T07:35:34.000000Z"
                }
            ],
            "payment_methods": [
                {
                    "id": 80,
                    "name": "spot",
                    "display_name": "Pay at boarding",
                    "logo_path": "payment-methods/spot.svg",
                    "created_at": "2026-08-18T07:35:35.000000Z",
                    "updated_at": "2026-08-18T07:35:35.000000Z"
                }
            ],
            "discounts": [
                {
                    "id": 216062,
                    "discount_type_id": 57,
                    "discount_type": {
                        "id": 57,
                        "name": "Child discount",
                        "translations": {
                            "name": {
                                "en": "Child discount",
                                "ua": "Child discount"
                            }
                        },
                        "created_at": "2026-08-18T07:35:35.000000Z",
                        "updated_at": "2026-08-18T07:35:35.000000Z"
                    },
                    "discount_value": 20,
                    "created_at": "2026-08-18T07:35:35.000000Z",
                    "updated_at": "2026-08-18T07:35:35.000000Z"
                }
            ],
            "carrier": {
                "id": 292,
                "name": "LAT Lines",
                "hotline_phone": null,
                "edrpou": null,
                "disclaimer": null,
                "insurance_description": null,
                "insurance_company_name": null,
                "insurance_company_address": null,
                "logo_url": null,
                "insurance_logo_url": null,
                "translations": {
                    "disclaimer": [],
                    "insurance_description": [],
                    "insurance_company_name": [],
                    "insurance_company_address": []
                }
            },
            "prices": [
                {
                    "id": 116742593,
                    "from_departure_point_id": 14001,
                    "to_departure_point_id": 14002,
                    "price": [
                        {
                            "amount": 63,
                            "currency_id": 88
                        }
                    ],
                    "is_active": true,
                    "is_forbidden": false
                }
            ],
            "created_at": "2026-08-18T07:35:33.000000Z",
            "updated_at": "2026-08-18T07:35:33.000000Z"
        },
        {
            "id": 22762,
            "target_departure_date": null,
            "target_arrival_date": null,
            "target_minutes_in_travel": null,
            "target_from_departure_point_id": 0,
            "target_to_departure_point_id": 0,
            "sale_end_time_before_departure": 60,
            "status": "open",
            "payment_time": 30,
            "sale_depth": 45,
            "number_of_seats": 52,
            "route_name": "Chisinau - Kyiv",
            "route_number": "LAT-75025322",
            "route_ticket_hint": "Please arrive at the platform 20 minutes before departure.",
            "carrier_name": "EuroBus Express",
            "seat_selection_allowed": true,
            "seat_selection_not_allowed_date_from": "2026-08-26T00:00:00.000000Z",
            "seat_selection_not_allowed_date_to": "2026-08-27T00:00:00.000000Z",
            "seat_selection_availability": "online_payment",
            "without_companion": true,
            "without_companion_price_percent": 12,
            "selected_seats_prices": null,
            "bus": {
                "id": 780,
                "name": "MAN Lion Coach",
                "number": "AA 1447 ps",
                "status": "active",
                "schema": {
                    "id": 867,
                    "name": "MAN Lion Coach 52 seats",
                    "mark": "Setra",
                    "model": "S 515 HD",
                    "number_of_seats": 52,
                    "number_of_floors": 1,
                    "rows": 13,
                    "columns": 4,
                    "items": [
                        {
                            "id": 41041,
                            "type": "seat",
                            "name": "Seat 1",
                            "translations": {
                                "name": {
                                    "en": "Seat 1"
                                }
                            },
                            "seat_number": 1,
                            "row_number": 1,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41042,
                            "type": "seat",
                            "name": "Seat 2",
                            "translations": {
                                "name": {
                                    "en": "Seat 2"
                                }
                            },
                            "seat_number": 2,
                            "row_number": 1,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41043,
                            "type": "seat",
                            "name": "Seat 3",
                            "translations": {
                                "name": {
                                    "en": "Seat 3"
                                }
                            },
                            "seat_number": 3,
                            "row_number": 1,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41044,
                            "type": "seat",
                            "name": "Seat 4",
                            "translations": {
                                "name": {
                                    "en": "Seat 4"
                                }
                            },
                            "seat_number": 4,
                            "row_number": 1,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41045,
                            "type": "seat",
                            "name": "Seat 5",
                            "translations": {
                                "name": {
                                    "en": "Seat 5"
                                }
                            },
                            "seat_number": 5,
                            "row_number": 2,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41046,
                            "type": "seat",
                            "name": "Seat 6",
                            "translations": {
                                "name": {
                                    "en": "Seat 6"
                                }
                            },
                            "seat_number": 6,
                            "row_number": 2,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41047,
                            "type": "seat",
                            "name": "Seat 7",
                            "translations": {
                                "name": {
                                    "en": "Seat 7"
                                }
                            },
                            "seat_number": 7,
                            "row_number": 2,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41048,
                            "type": "seat",
                            "name": "Seat 8",
                            "translations": {
                                "name": {
                                    "en": "Seat 8"
                                }
                            },
                            "seat_number": 8,
                            "row_number": 2,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41049,
                            "type": "seat",
                            "name": "Seat 9",
                            "translations": {
                                "name": {
                                    "en": "Seat 9"
                                }
                            },
                            "seat_number": 9,
                            "row_number": 3,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41050,
                            "type": "seat",
                            "name": "Seat 10",
                            "translations": {
                                "name": {
                                    "en": "Seat 10"
                                }
                            },
                            "seat_number": 10,
                            "row_number": 3,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41051,
                            "type": "seat",
                            "name": "Seat 11",
                            "translations": {
                                "name": {
                                    "en": "Seat 11"
                                }
                            },
                            "seat_number": 11,
                            "row_number": 3,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41052,
                            "type": "seat",
                            "name": "Seat 12",
                            "translations": {
                                "name": {
                                    "en": "Seat 12"
                                }
                            },
                            "seat_number": 12,
                            "row_number": 3,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41053,
                            "type": "seat",
                            "name": "Seat 13",
                            "translations": {
                                "name": {
                                    "en": "Seat 13"
                                }
                            },
                            "seat_number": 13,
                            "row_number": 4,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41054,
                            "type": "seat",
                            "name": "Seat 14",
                            "translations": {
                                "name": {
                                    "en": "Seat 14"
                                }
                            },
                            "seat_number": 14,
                            "row_number": 4,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41055,
                            "type": "seat",
                            "name": "Seat 15",
                            "translations": {
                                "name": {
                                    "en": "Seat 15"
                                }
                            },
                            "seat_number": 15,
                            "row_number": 4,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41056,
                            "type": "seat",
                            "name": "Seat 16",
                            "translations": {
                                "name": {
                                    "en": "Seat 16"
                                }
                            },
                            "seat_number": 16,
                            "row_number": 4,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41057,
                            "type": "seat",
                            "name": "Seat 17",
                            "translations": {
                                "name": {
                                    "en": "Seat 17"
                                }
                            },
                            "seat_number": 17,
                            "row_number": 5,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41058,
                            "type": "seat",
                            "name": "Seat 18",
                            "translations": {
                                "name": {
                                    "en": "Seat 18"
                                }
                            },
                            "seat_number": 18,
                            "row_number": 5,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41059,
                            "type": "seat",
                            "name": "Seat 19",
                            "translations": {
                                "name": {
                                    "en": "Seat 19"
                                }
                            },
                            "seat_number": 19,
                            "row_number": 5,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41060,
                            "type": "seat",
                            "name": "Seat 20",
                            "translations": {
                                "name": {
                                    "en": "Seat 20"
                                }
                            },
                            "seat_number": 20,
                            "row_number": 5,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41061,
                            "type": "seat",
                            "name": "Seat 21",
                            "translations": {
                                "name": {
                                    "en": "Seat 21"
                                }
                            },
                            "seat_number": 21,
                            "row_number": 6,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41062,
                            "type": "seat",
                            "name": "Seat 22",
                            "translations": {
                                "name": {
                                    "en": "Seat 22"
                                }
                            },
                            "seat_number": 22,
                            "row_number": 6,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41063,
                            "type": "seat",
                            "name": "Seat 23",
                            "translations": {
                                "name": {
                                    "en": "Seat 23"
                                }
                            },
                            "seat_number": 23,
                            "row_number": 6,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41064,
                            "type": "seat",
                            "name": "Seat 24",
                            "translations": {
                                "name": {
                                    "en": "Seat 24"
                                }
                            },
                            "seat_number": 24,
                            "row_number": 6,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41065,
                            "type": "seat",
                            "name": "Seat 25",
                            "translations": {
                                "name": {
                                    "en": "Seat 25"
                                }
                            },
                            "seat_number": 25,
                            "row_number": 7,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41066,
                            "type": "seat",
                            "name": "Seat 26",
                            "translations": {
                                "name": {
                                    "en": "Seat 26"
                                }
                            },
                            "seat_number": 26,
                            "row_number": 7,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41067,
                            "type": "seat",
                            "name": "Seat 27",
                            "translations": {
                                "name": {
                                    "en": "Seat 27"
                                }
                            },
                            "seat_number": 27,
                            "row_number": 7,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41068,
                            "type": "seat",
                            "name": "Seat 28",
                            "translations": {
                                "name": {
                                    "en": "Seat 28"
                                }
                            },
                            "seat_number": 28,
                            "row_number": 7,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41069,
                            "type": "seat",
                            "name": "Seat 29",
                            "translations": {
                                "name": {
                                    "en": "Seat 29"
                                }
                            },
                            "seat_number": 29,
                            "row_number": 8,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41070,
                            "type": "seat",
                            "name": "Seat 30",
                            "translations": {
                                "name": {
                                    "en": "Seat 30"
                                }
                            },
                            "seat_number": 30,
                            "row_number": 8,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41071,
                            "type": "seat",
                            "name": "Seat 31",
                            "translations": {
                                "name": {
                                    "en": "Seat 31"
                                }
                            },
                            "seat_number": 31,
                            "row_number": 8,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41072,
                            "type": "seat",
                            "name": "Seat 32",
                            "translations": {
                                "name": {
                                    "en": "Seat 32"
                                }
                            },
                            "seat_number": 32,
                            "row_number": 8,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41073,
                            "type": "seat",
                            "name": "Seat 33",
                            "translations": {
                                "name": {
                                    "en": "Seat 33"
                                }
                            },
                            "seat_number": 33,
                            "row_number": 9,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41074,
                            "type": "seat",
                            "name": "Seat 34",
                            "translations": {
                                "name": {
                                    "en": "Seat 34"
                                }
                            },
                            "seat_number": 34,
                            "row_number": 9,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41075,
                            "type": "seat",
                            "name": "Seat 35",
                            "translations": {
                                "name": {
                                    "en": "Seat 35"
                                }
                            },
                            "seat_number": 35,
                            "row_number": 9,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41076,
                            "type": "seat",
                            "name": "Seat 36",
                            "translations": {
                                "name": {
                                    "en": "Seat 36"
                                }
                            },
                            "seat_number": 36,
                            "row_number": 9,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41077,
                            "type": "seat",
                            "name": "Seat 37",
                            "translations": {
                                "name": {
                                    "en": "Seat 37"
                                }
                            },
                            "seat_number": 37,
                            "row_number": 10,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41078,
                            "type": "seat",
                            "name": "Seat 38",
                            "translations": {
                                "name": {
                                    "en": "Seat 38"
                                }
                            },
                            "seat_number": 38,
                            "row_number": 10,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41079,
                            "type": "seat",
                            "name": "Seat 39",
                            "translations": {
                                "name": {
                                    "en": "Seat 39"
                                }
                            },
                            "seat_number": 39,
                            "row_number": 10,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41080,
                            "type": "seat",
                            "name": "Seat 40",
                            "translations": {
                                "name": {
                                    "en": "Seat 40"
                                }
                            },
                            "seat_number": 40,
                            "row_number": 10,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41081,
                            "type": "seat",
                            "name": "Seat 41",
                            "translations": {
                                "name": {
                                    "en": "Seat 41"
                                }
                            },
                            "seat_number": 41,
                            "row_number": 11,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41082,
                            "type": "seat",
                            "name": "Seat 42",
                            "translations": {
                                "name": {
                                    "en": "Seat 42"
                                }
                            },
                            "seat_number": 42,
                            "row_number": 11,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41083,
                            "type": "seat",
                            "name": "Seat 43",
                            "translations": {
                                "name": {
                                    "en": "Seat 43"
                                }
                            },
                            "seat_number": 43,
                            "row_number": 11,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41084,
                            "type": "seat",
                            "name": "Seat 44",
                            "translations": {
                                "name": {
                                    "en": "Seat 44"
                                }
                            },
                            "seat_number": 44,
                            "row_number": 11,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41085,
                            "type": "seat",
                            "name": "Seat 45",
                            "translations": {
                                "name": {
                                    "en": "Seat 45"
                                }
                            },
                            "seat_number": 45,
                            "row_number": 12,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41086,
                            "type": "seat",
                            "name": "Seat 46",
                            "translations": {
                                "name": {
                                    "en": "Seat 46"
                                }
                            },
                            "seat_number": 46,
                            "row_number": 12,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41087,
                            "type": "seat",
                            "name": "Seat 47",
                            "translations": {
                                "name": {
                                    "en": "Seat 47"
                                }
                            },
                            "seat_number": 47,
                            "row_number": 12,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41088,
                            "type": "seat",
                            "name": "Seat 48",
                            "translations": {
                                "name": {
                                    "en": "Seat 48"
                                }
                            },
                            "seat_number": 48,
                            "row_number": 12,
                            "column_number": 4,
                            "floor_number": 1
                        },
                        {
                            "id": 41089,
                            "type": "seat",
                            "name": "Seat 49",
                            "translations": {
                                "name": {
                                    "en": "Seat 49"
                                }
                            },
                            "seat_number": 49,
                            "row_number": 13,
                            "column_number": 1,
                            "floor_number": 1
                        },
                        {
                            "id": 41090,
                            "type": "seat",
                            "name": "Seat 50",
                            "translations": {
                                "name": {
                                    "en": "Seat 50"
                                }
                            },
                            "seat_number": 50,
                            "row_number": 13,
                            "column_number": 2,
                            "floor_number": 1
                        },
                        {
                            "id": 41091,
                            "type": "seat",
                            "name": "Seat 51",
                            "translations": {
                                "name": {
                                    "en": "Seat 51"
                                }
                            },
                            "seat_number": 51,
                            "row_number": 13,
                            "column_number": 3,
                            "floor_number": 1
                        },
                        {
                            "id": 41092,
                            "type": "seat",
                            "name": "Seat 52",
                            "translations": {
                                "name": {
                                    "en": "Seat 52"
                                }
                            },
                            "seat_number": 52,
                            "row_number": 13,
                            "column_number": 4,
                            "floor_number": 1
                        }
                    ],
                    "created_at": "2026-08-18T07:35:35.000000Z",
                    "updated_at": "2026-08-18T07:35:35.000000Z"
                },
                "services": [],
                "images": [
                    {
                        "id": 44,
                        "name": "et",
                        "file_name": "msnbvvyf.jpg",
                        "mime_type": "image/jpeg",
                        "size": 499443,
                        "url": "https://testapi.ticketbus365.com/storage/44/msnbvvyf.jpg",
                        "created_at": "2026-08-18T07:35:35.000000Z",
                        "updated_at": "2026-08-18T07:35:35.000000Z"
                    },
                    {
                        "id": 45,
                        "name": "media-libraryE2kuS7",
                        "file_name": "bus.jpg",
                        "mime_type": "text/plain",
                        "size": 18,
                        "url": "https://testapi.ticketbus365.com/storage/45/bus.jpg",
                        "created_at": "2026-08-18T07:35:35.000000Z",
                        "updated_at": "2026-08-18T07:35:35.000000Z"
                    }
                ],
                "created_at": "2026-08-18T07:35:35.000000Z",
                "updated_at": "2026-08-18T07:35:35.000000Z"
            },
            "driver": {
                "id": 9527,
                "first_name": "Olena",
                "last_name": "Kravchenko",
                "middle_name": "Ivanovych",
                "full_name": "Olena Kravchenko Ivanovych",
                "work_phone": null,
                "gender": null,
                "birthday": null
            },
            "dispatcher": {
                "id": 9528,
                "first_name": "Iryna",
                "last_name": "Kovalenko",
                "middle_name": "Oleksandrivna",
                "full_name": "Iryna Kovalenko Oleksandrivna",
                "work_phone": null,
                "gender": null,
                "birthday": null
            },
            "occupiedSeats": [
                {
                    "id": 420344,
                    "bus_flight_id": 22762,
                    "from_departure_point_id": 14010,
                    "to_departure_point_id": 14009,
                    "seat_number": 18,
                    "type": "bought",
                    "created_at": "2026-08-18T07:35:36.000000Z",
                    "updated_at": "2026-08-18T07:35:36.000000Z"
                }
            ],
            "baggage_transportation_conditions": [
                {
                    "id": 30245,
                    "name": "Bicycle transportation",
                    "description": null,
                    "translations": {
                        "name": {
                            "en": "Bicycle transportation",
                            "ua": "Bicycle transportation"
                        },
                        "description": []
                    },
                    "prices": [
                        {
                            "currency_id": 88,
                            "price": 25
                        }
                    ],
                    "created_at": "2026-08-18T07:35:36.000000Z",
                    "updated_at": "2026-08-18T07:35:36.000000Z"
                }
            ],
            "schedules": [
                {
                    "id": 1885092,
                    "departure_point_id": 14008,
                    "departure_point": {
                        "id": 14008,
                        "name": "West Bus Terminal",
                        "translations": {
                            "name": {
                                "en": "West Bus Terminal",
                                "ua": "West Bus Terminal"
                            }
                        },
                        "city": {
                            "id": 8247,
                            "name": "Odesa",
                            "slug": null,
                            "translations": {
                                "name": {
                                    "en": "Odesa",
                                    "ua": "Odesa"
                                }
                            },
                            "population": 326523,
                            "lat": null,
                            "lng": null,
                            "number_of_bus_routes": 0,
                            "visibility": true,
                            "country_id": 6,
                            "created_at": "2026-08-18T07:35:36.000000Z",
                            "updated_at": "2026-08-18T07:35:36.000000Z"
                        },
                        "lat": "48.93584800",
                        "lng": "29.95496000",
                        "visibility": true,
                        "created_at": "2026-08-18T07:35:36.000000Z",
                        "updated_at": "2026-08-18T07:35:36.000000Z"
                    },
                    "arrival_time": "19:00",
                    "departure_time": "17:30",
                    "days_in_road": 0,
                    "platform": "P5",
                    "has_landing": true,
                    "has_disembarkation": true,
                    "is_connecting": false,
                    "is_connecting_start_endpoint": false,
                    "position": 4,
                    "sale_status": "open",
                    "is_active": true,
                    "has_transfer": false,
                    "maybe_transfer": false,
                    "hint": "Boarding starts 20 minutes before departure.",
                    "translations": {
                        "hint": {
                            "en": "Boarding starts 20 minutes before departure.",
                            "ua": "Boarding starts 20 minutes before departure."
                        }
                    },
                    "created_at": "2026-08-18T07:35:36.000000Z",
                    "updated_at": "2026-08-18T07:35:36.000000Z"
                }
            ],
            "payment_methods": [
                {
                    "id": 81,
                    "name": "spot",
                    "display_name": "Pay at boarding",
                    "logo_path": "payment-methods/spot.svg",
                    "created_at": "2026-08-18T07:35:36.000000Z",
                    "updated_at": "2026-08-18T07:35:36.000000Z"
                }
            ],
            "discounts": [
                {
                    "id": 216063,
                    "discount_type_id": 58,
                    "discount_type": {
                        "id": 58,
                        "name": "Child discount",
                        "translations": {
                            "name": {
                                "en": "Child discount",
                                "ua": "Child discount"
                            }
                        },
                        "created_at": "2026-08-18T07:35:36.000000Z",
                        "updated_at": "2026-08-18T07:35:36.000000Z"
                    },
                    "discount_value": 10,
                    "created_at": "2026-08-18T07:35:36.000000Z",
                    "updated_at": "2026-08-18T07:35:36.000000Z"
                }
            ],
            "carrier": {
                "id": 298,
                "name": "EuroBus Express",
                "hotline_phone": null,
                "edrpou": null,
                "disclaimer": null,
                "insurance_description": null,
                "insurance_company_name": null,
                "insurance_company_address": null,
                "logo_url": null,
                "insurance_logo_url": null,
                "translations": {
                    "disclaimer": [],
                    "insurance_description": [],
                    "insurance_company_name": [],
                    "insurance_company_address": []
                }
            },
            "prices": [
                {
                    "id": 116742594,
                    "from_departure_point_id": 14006,
                    "to_departure_point_id": 14007,
                    "price": [
                        {
                            "amount": 106,
                            "currency_id": 88
                        }
                    ],
                    "is_active": true,
                    "is_forbidden": false
                }
            ],
            "created_at": "2026-08-18T07:35:35.000000Z",
            "updated_at": "2026-08-18T07:35:35.000000Z"
        }
    ],
    "return_flights_data": []
}
 

Request   

GET integration-api/tickets

Query Parameters

from_city_id   integer  optional  

From city id Example: 1

to_city_id   integer  optional  

To city id Example: 2

from_departure_point_id   string  optional  

From departure point id Example: 1

to_departure_point_id   string  optional  

To departure point id Example: 2

departure_date   string   

Departure date Example: 2021-10-10

date_range   string[]   

Date range

date_range.from   string   

Date range from Example: 2021-10-10

date_range.to   string   

Date range to Example: 2021-10-20

number_of_passengers   string   

Number of passengers Example: 1

return_date   string   

Return date Example: 2021-10-10

bus_route_id   string   

Filter by bus route id Example: 1

Get single flight details

Get flight details

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/flight-details/1/1/2"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/flight-details/1/1/2"
);



fetch(url, {
    method: "GET",
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 994
access-control-allow-origin: *
 

{
    "message": "Unauthorized"
}
 

Request   

GET integration-api/flight-details/{id}/{fromDeparturePointId}/{toDeparturePointId}

URL Parameters

id   string   

Bus flight id Example: 1

fromDeparturePointId   string   

From departure point id Example: 1

toDeparturePointId   string   

To departure point id Example: 2

Buy ticket

Buy ticket

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/integration-api/tickets" \
    --header "Content-Type: application/json" \
    --data "{
    \"there\": {
        \"agent_id\": 1,
        \"bus_flight_id\": 1,
        \"from_departure_point_id\": 1,
        \"to_departure_point_id\": 2,
        \"passengers\": [
            {
                \"first_name\": \"John\",
                \"last_name\": \"Doe\",
                \"phone_number\": \"123456789\",
                \"email\": \"example@example.com\",
                \"birthday\": \"1990-10-10\",
                \"passenger_type\": \"adult\",
                \"baggage\": [
                    {
                        \"id\": 1,
                        \"quantity\": 1
                    }
                ]
            }
        ],
        \"seat_numbers\": [
            1,
            2
        ],
        \"without_companion\": true
    },
    \"back\": {
        \"bus_flight_id\": 1,
        \"from_departure_point_id\": 1,
        \"to_departure_point_id\": 2,
        \"passengers\": [
            {
                \"first_name\": \"John\",
                \"last_name\": \"Doe\",
                \"phone_number\": \"123456789\",
                \"email\": \"example@example.com\",
                \"birthday\": \"1990-10-10\",
                \"passenger_type\": \"adult\",
                \"comment\": \"Some comment\",
                \"discount_id\": 1,
                \"baggage\": [
                    {
                        \"id\": 1,
                        \"quantity\": 1
                    }
                ]
            }
        ],
        \"seat_numbers\": [
            1,
            2
        ],
        \"without_companion\": true
    },
    \"payment_method_id\": 1,
    \"currency_id\": 1,
    \"send_tickets_to_email\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/tickets"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "there": {
        "agent_id": 1,
        "bus_flight_id": 1,
        "from_departure_point_id": 1,
        "to_departure_point_id": 2,
        "passengers": [
            {
                "first_name": "John",
                "last_name": "Doe",
                "phone_number": "123456789",
                "email": "example@example.com",
                "birthday": "1990-10-10",
                "passenger_type": "adult",
                "baggage": [
                    {
                        "id": 1,
                        "quantity": 1
                    }
                ]
            }
        ],
        "seat_numbers": [
            1,
            2
        ],
        "without_companion": true
    },
    "back": {
        "bus_flight_id": 1,
        "from_departure_point_id": 1,
        "to_departure_point_id": 2,
        "passengers": [
            {
                "first_name": "John",
                "last_name": "Doe",
                "phone_number": "123456789",
                "email": "example@example.com",
                "birthday": "1990-10-10",
                "passenger_type": "adult",
                "comment": "Some comment",
                "discount_id": 1,
                "baggage": [
                    {
                        "id": 1,
                        "quantity": 1
                    }
                ]
            }
        ],
        "seat_numbers": [
            1,
            2
        ],
        "without_companion": true
    },
    "payment_method_id": 1,
    "currency_id": 1,
    "send_tickets_to_email": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 33321,
        "uuid": null,
        "public_id": "DBlUPsx31WaTbS7",
        "paid_at": null,
        "tickets": [
            {
                "id": 37524,
                "type": "internal",
                "target_departure_date": "2026-08-21T08:30:00.000000Z",
                "target_arrival_date": "2026-08-21T20:30:00.000000Z",
                "target_minutes_in_travel": 720,
                "public_id": "H1qTVtlDrOmLhj1",
                "data_for_qr_code": "H1qTVtlDrOmLhj1",
                "price": "78.86",
                "price_adjustment_percent": "0.00",
                "order_id": 33321,
                "first_name": "Olena",
                "last_name": "Shevchenko",
                "phone": "+380254615656",
                "email": "gertrude47@example.com",
                "birthday": "2007-08-03",
                "passenger_type": "adult",
                "departure_date": "2026-08-21T08:30:00.000000Z",
                "bus_flight_id": 22765,
                "canceled_at": null,
                "cancel_comment": null,
                "status": "pending",
                "seat_change_allowed": true,
                "comment": "Window seat preferred.",
                "is_processed": false,
                "external_route_name": null,
                "external_ticket_id": null,
                "external_discount_name": null,
                "external_from_departure_point_name": null,
                "external_to_departure_point_name": null,
                "is_external": false,
                "created_at": "2026-08-18T07:35:36.000000Z",
                "updated_at": "2026-08-18T07:35:36.000000Z"
            }
        ],
        "agent_id": null,
        "status": "pending",
        "total_price": "153.83",
        "payment_on_the_spot": false,
        "order_group_id": null,
        "direction": "outbound",
        "data_source": null,
        "expired_at": null,
        "created_at": "2026-08-18T07:35:36.000000Z",
        "updated_at": "2026-08-18T07:35:36.000000Z"
    },
    "payment_method_data": {
        "data": "array",
        "type": "string"
    }
}
 

Request   

POST integration-api/tickets

Headers

Content-Type      

Example: application/json

Body Parameters

there   string[]   

Bus flight id

agent_id   integer  optional  

Agent id Example: 1

bus_flight_id   integer   

Bus flight id Example: 1

from_departure_point_id   integer   

From departure point id Example: 1

to_departure_point_id   integer   

To departure point id Example: 2

passengers   string[]   

Passengers

*   object  optional  
first_name   string   

First name Example: John

last_name   string   

Last name Example: Doe

phone_number   string   

Phone number Example: 123456789

email   string  optional  

Email Example: example@example.com

birthday   string  optional  

Birthday (required if child) Example: 1990-10-10

passenger_type   string   

Passenger type adult or child Example: adult

comment   string  optional  

Comment Example: Some comment

discount_id   integer  optional  

Discount id Example: 1

baggage   string[]  optional  

Baggage

*   object  optional  
id   integer   

Baggage id Example: 1

quantity   integer   

Baggage quantity Example: 1

seat_numbers   string[]  optional  

Seat numbers

without_companion   boolean  optional  

Without companion Example: true

back   string[]  optional  

Bus flight id. Structure equal "there"

payment_method_id   string   

Payment method id Example: 1

currency_id   string  optional  

Currency id. Required for integration Example: 1

send_tickets_to_email   string  optional  

Send tickets to email Example: true

Show my ticket

Get ticket by id

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/ticket/z2zcwP3Z"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/ticket/z2zcwP3Z"
);



fetch(url, {
    method: "GET",
}).then(response => response.json());

Example response (200):


{
    "data": {
        "id": 37526,
        "type": "internal",
        "target_departure_date": "2026-09-03T08:30:00.000000Z",
        "target_arrival_date": "2026-09-03T20:30:00.000000Z",
        "target_minutes_in_travel": 720,
        "public_id": "snVq8jaGonyxSfH",
        "data_for_qr_code": "snVq8jaGonyxSfH",
        "price": "73.34",
        "price_adjustment_percent": "0.00",
        "currency": {
            "id": 343,
            "display_name": "KHR",
            "code": "KHR",
            "symbol": "KHR",
            "is_active": true,
            "created_at": "2026-08-18T07:35:38.000000Z",
            "updated_at": "2026-08-18T07:35:38.000000Z"
        },
        "order": {
            "id": 33323,
            "uuid": null,
            "public_id": "5Vk0QZnCRf8JQLj",
            "paid_at": null,
            "agent_id": null,
            "status": "pending",
            "total_price": "166.12",
            "payment_on_the_spot": false,
            "order_group_id": null,
            "direction": "outbound",
            "data_source": null,
            "expired_at": null,
            "created_at": "2026-08-18T07:35:38.000000Z",
            "updated_at": "2026-08-18T07:35:38.000000Z"
        },
        "order_id": 33323,
        "bus_flight": {
            "id": 22767,
            "departure_date": "2026-09-17T08:30:00.000000Z",
            "sale_end_time_before_departure": 60,
            "driver_visibility_time_before_departure": 180,
            "arrival_date": "2026-09-17T20:30:00.000000Z",
            "hours_in_travel": 12,
            "bus": {
                "id": 791,
                "name": "Mercedes-Benz Sprinter",
                "number": "AA 0128 ce",
                "status": "active",
                "created_at": "2026-08-18T07:35:38.000000Z",
                "updated_at": "2026-08-18T07:35:38.000000Z"
            },
            "status": "open",
            "payment_time": 30,
            "sale_depth": 45,
            "number_of_seats": 52,
            "carrier_name": null,
            "seat_selection_allowed": true,
            "seat_selection_not_allowed_date_from": "2026-09-15",
            "seat_selection_not_allowed_date_to": "2026-09-16",
            "seat_selection_availability": "online_payment",
            "without_companion": true,
            "min_price": [
                {
                    "currency_id": 88,
                    "price": 69
                }
            ],
            "schedules": [],
            "forbidden_sale_date_from": null,
            "forbidden_sale_date_to": null,
            "created_at": "2026-08-18T07:35:38.000000Z",
            "updated_at": "2026-08-18T07:35:38.000000Z"
        },
        "from_departure_point": {
            "id": 14015,
            "name": "International Coach Terminal",
            "translations": {
                "name": {
                    "en": "International Coach Terminal",
                    "ua": "International Coach Terminal"
                }
            },
            "lat": "40.89645500",
            "lng": "28.34860000",
            "visibility": true,
            "created_at": "2026-08-18T07:35:38.000000Z",
            "updated_at": "2026-08-18T07:35:38.000000Z"
        },
        "to_departure_point": {
            "id": 14016,
            "name": "West Bus Terminal",
            "translations": {
                "name": {
                    "en": "West Bus Terminal",
                    "ua": "West Bus Terminal"
                }
            },
            "lat": "47.38272600",
            "lng": "22.69787300",
            "visibility": true,
            "created_at": "2026-08-18T07:35:38.000000Z",
            "updated_at": "2026-08-18T07:35:38.000000Z"
        },
        "first_name": "Iryna",
        "last_name": "Bondarenko",
        "phone": "+380072012622",
        "email": "conn.darion@example.net",
        "birthday": "1967-01-19",
        "passenger_type": "adult",
        "departure_date": "2026-09-03T08:30:00.000000Z",
        "occupied_seats": [
            {
                "id": 420345,
                "bus_flight_id": 22768,
                "from_departure_point_id": 14018,
                "to_departure_point_id": 14017,
                "seat_number": 10,
                "type": "reserved",
                "created_at": "2026-08-18T07:35:39.000000Z",
                "updated_at": "2026-08-18T07:35:39.000000Z"
            }
        ],
        "bus_flight_id": 22767,
        "canceled_at": null,
        "cancel_comment": null,
        "status": "pending",
        "seat_change_allowed": true,
        "comment": "Window seat preferred.",
        "prepayments": [
            {
                "id": 10615,
                "ticket_id": 37526,
                "currency_id": 88,
                "payment_method_id": 82,
                "amount": 32.33,
                "created_at": "2026-08-18T07:35:39.000000Z",
                "updated_at": "2026-08-18T07:35:39.000000Z"
            }
        ],
        "prepayments_amount": 32.33,
        "is_processed": false,
        "external_route_name": null,
        "external_ticket_id": null,
        "external_discount_name": null,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2026-08-18T07:35:38.000000Z",
        "updated_at": "2026-08-18T07:35:38.000000Z"
    }
}
 

Request   

GET integration-api/ticket/{id}

URL Parameters

id   string   

Ticket public id Example: z2zcwP3Z

Get ticket qr code in base64

Get ticket qr code in base64

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/integration-api/ticket/z2zcwP3Z/qr-code"
const url = new URL(
    "https://testapi.ticketbus365.com/integration-api/ticket/z2zcwP3Z/qr-code"
);



fetch(url, {
    method: "GET",
}).then(response => response.json());

Example response (200):


{
    "data": {
        "qr_code_image": "base64_encoded_string",
        "qr_code_data": "string_data"
    }
}
 

Request   

GET integration-api/ticket/{id}/qr-code

URL Parameters

id   string   

Ticket public id Example: z2zcwP3Z