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": 18005,
"departure_date": "2026-07-28T08:30:00.000000Z",
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"arrival_date": "2026-07-28T20:30:00.000000Z",
"hours_in_travel": 12,
"route": {
"id": 724,
"number": "LAT-675",
"name": "Bucharest - Chisinau",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Bucharest - Chisinau",
"ua": "Bucharest - Chisinau"
},
"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-01-03",
"seat_selection_not_allowed_date_to": "2027-01-10",
"without_companion": true,
"without_companion_price": 12,
"min_price": [
{
"currency_id": 88,
"price": 79
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.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-07-26",
"seat_selection_not_allowed_date_to": "2026-07-27",
"without_companion": true,
"min_price": [
{
"currency_id": 88,
"price": 49
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
},
{
"id": 18006,
"departure_date": "2026-07-15T08:30:00.000000Z",
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"arrival_date": "2026-07-15T20:30:00.000000Z",
"hours_in_travel": 12,
"route": {
"id": 726,
"number": "LAT-358",
"name": "Bucharest - Bucharest",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Bucharest - Bucharest",
"ua": "Bucharest - 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-01-03",
"seat_selection_not_allowed_date_to": "2027-01-10",
"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-07-03T07:42:07.000000Z",
"updated_at": "2026-07-03T07:42:07.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-07-13",
"seat_selection_not_allowed_date_to": "2026-07-14",
"without_companion": true,
"min_price": [
{
"currency_id": 88,
"price": 92
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-07-03T07:42:07.000000Z",
"updated_at": "2026-07-03T07:42:07.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": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 18007,
"departure_date": "2026-07-16T08:30:00.000000Z",
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"arrival_date": "2026-07-16T20:30:00.000000Z",
"hours_in_travel": 12,
"route": {
"id": 728,
"number": "LAT-557",
"name": "Odesa - Odesa",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Odesa - Odesa",
"ua": "Odesa - Odesa"
},
"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-01-03",
"seat_selection_not_allowed_date_to": "2027-01-10",
"without_companion": true,
"without_companion_price": 12,
"min_price": [
{
"currency_id": 88,
"price": 38
}
],
"additional_price_settings": [
{
"id": 59,
"name": "Early booking discount",
"percent": "10.00",
"period": "sale_date",
"date_from": "2026-07-04",
"date_to": "2026-07-17",
"is_active": true,
"bus_route_id": 728,
"created_at": "2026-07-03T07:42:07.000000Z",
"updated_at": "2026-07-03T07:42:07.000000Z"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-07-03T07:42:07.000000Z",
"updated_at": "2026-07-03T07:42:07.000000Z"
},
"bus": {
"id": 1238,
"name": "MAN Lion Coach",
"number": "AA 2598 ot",
"status": "active",
"created_at": "2026-07-03T07:42:07.000000Z",
"updated_at": "2026-07-03T07:42:07.000000Z"
},
"user": {
"id": 6661,
"first_name": "Andrii",
"last_name": "Kravchenko",
"middle_name": "Ivanovych",
"full_name": "Andrii Kravchenko Ivanovych",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Andrii Kravchenko",
"phone": "+380174154021",
"email": "alba.glover@example.net",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
},
"driver": {
"id": 6660,
"first_name": "Natalia",
"last_name": "Kravchenko",
"middle_name": "Ivanovych",
"full_name": "Natalia Kravchenko Ivanovych",
"work_phone": null,
"gender": null,
"birthday": null
},
"dispatcher": {
"id": 6662,
"first_name": "Iryna",
"last_name": "Bondarenko",
"middle_name": "Ivanovych",
"full_name": "Iryna Bondarenko 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": 56328,
"bus_flight_id": 18007,
"from_departure_point_id": 612,
"to_departure_point_id": 613,
"seat_number": 40,
"type": "reserved",
"created_at": "2026-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
}
],
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-07-14",
"seat_selection_not_allowed_date_to": "2026-07-15",
"without_companion": true,
"baggage_transportation_conditions": [
{
"id": 21987,
"name": "Pet carrier",
"description": null,
"translations": {
"name": {
"en": "Pet carrier",
"ua": "Pet carrier"
},
"description": []
},
"prices": [
{
"currency_id": 88,
"price": 15
}
],
"created_at": "2026-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
}
],
"return_conditions": [
{
"id": 56977,
"departure_start": 48,
"departure_end": 24,
"retention_percentage": 20,
"created_at": "2026-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
}
],
"currencies": [
{
"id": 990,
"display_name": "MXN",
"code": "MXN",
"symbol": "MXN",
"is_active": true,
"created_at": "2026-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
}
],
"min_price": [
{
"currency_id": 88,
"price": 76
}
],
"prices": [
{
"id": 19963343,
"from_departure_point_id": 609,
"to_departure_point_id": 610,
"price": [
{
"amount": 118,
"currency_id": 88
}
],
"is_active": true,
"is_forbidden": false
}
],
"schedules": [
{
"id": 675091,
"departure_point_id": 611,
"departure_point": {
"id": 611,
"name": "West Bus Terminal",
"translations": {
"name": {
"en": "West Bus Terminal",
"ua": "West Bus Terminal"
}
},
"city": {
"id": 8310,
"name": "Odesa",
"translations": {
"name": {
"en": "Odesa",
"ua": "Odesa"
}
},
"population": 2856928,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2026-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
},
"lat": "43.33696000",
"lng": "28.03648000",
"visibility": true,
"created_at": "2026-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
},
"arrival_time": "13:00",
"departure_time": "11:30",
"days_in_road": 0,
"platform": "P10",
"has_landing": true,
"has_disembarkation": true,
"is_connecting": false,
"is_connecting_start_endpoint": false,
"position": 3,
"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-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"payment_methods": [
{
"id": 187,
"name": "stripe",
"display_name": "Card payment",
"logo_path": "payment-methods/stripe.svg",
"created_at": "2026-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
}
],
"carrier": {
"id": 164,
"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": []
}
},
"created_at": "2026-07-03T07:42:08.000000Z",
"updated_at": "2026-07-03T07:42:08.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 720,
"number": "LAT-973",
"name": "Bucharest - Wroclaw",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Bucharest - Wroclaw",
"ua": "Bucharest - 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": 8283,
"name": "Bucharest",
"translations": {
"name": {
"en": "Bucharest",
"ua": "Bucharest"
}
},
"population": 1963960,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 248,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"city_to": {
"id": 8284,
"name": "Wroclaw",
"translations": {
"name": {
"en": "Wroclaw",
"ua": "Wroclaw"
}
},
"population": 376336,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 7,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"user": {
"id": 6608,
"first_name": "Andrii",
"last_name": "Melnyk",
"middle_name": "Petrovych",
"full_name": "Andrii Melnyk Petrovych",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Andrii Melnyk",
"phone": "+380929599884",
"email": "alphonso79@example.net",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.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-01-03",
"seat_selection_not_allowed_date_to": "2027-01-10",
"without_companion": true,
"without_companion_price": 12,
"min_price": [
{
"currency_id": 88,
"price": 83
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
{
"id": 721,
"number": "LAT-747",
"name": "Bucharest - Chisinau",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Bucharest - Chisinau",
"ua": "Bucharest - Chisinau"
},
"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": 8287,
"name": "Bucharest",
"translations": {
"name": {
"en": "Bucharest",
"ua": "Bucharest"
}
},
"population": 2056725,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 248,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"city_to": {
"id": 8288,
"name": "Chisinau",
"translations": {
"name": {
"en": "Chisinau",
"ua": "Chisinau"
}
},
"population": 279172,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 249,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"user": {
"id": 6613,
"first_name": "Andrii",
"last_name": "Bondarenko",
"middle_name": "Mykhailivna",
"full_name": "Andrii Bondarenko Mykhailivna",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Andrii Bondarenko",
"phone": "+380109085122",
"email": "nelle14@example.net",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.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-01-03",
"seat_selection_not_allowed_date_to": "2027-01-10",
"without_companion": true,
"without_companion_price": 12,
"min_price": [
{
"currency_id": 88,
"price": 67
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.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": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 722,
"number": "LAT-336",
"name": "Bucharest - Warsaw",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Bucharest - Warsaw",
"ua": "Bucharest - 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": 8291,
"name": "Bucharest",
"translations": {
"name": {
"en": "Bucharest",
"ua": "Bucharest"
}
},
"population": 2685606,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 250,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
},
"city_to": {
"id": 8292,
"name": "Warsaw",
"translations": {
"name": {
"en": "Warsaw",
"ua": "Warsaw"
}
},
"population": 1528422,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 7,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
},
"user": {
"id": 6618,
"first_name": "Maksym",
"last_name": "Kovalenko",
"middle_name": "Mykhailivna",
"full_name": "Maksym Kovalenko Mykhailivna",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Maksym Kovalenko",
"phone": "+380155905221",
"email": "regan49@example.org",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
},
"bus": {
"id": 1228,
"name": "Setra S 515 HD",
"number": "AA 6622 ok",
"status": "active",
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
},
"driver": {
"id": 6620,
"first_name": "Olena",
"last_name": "Bondarenko",
"middle_name": "Petrovych",
"full_name": "Olena Bondarenko Petrovych",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Olena Bondarenko",
"phone": "+380987738895",
"email": "trinity52@example.net",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
},
"dispatcher": {
"id": 6621,
"first_name": "Olena",
"last_name": "Kravchenko",
"middle_name": "Mykhailivna",
"full_name": "Olena Kravchenko Mykhailivna",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Olena Kravchenko",
"phone": "+380200427488",
"email": "ipadberg@example.net",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.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-01-03",
"seat_selection_not_allowed_date_to": "2027-01-10",
"without_companion": true,
"without_companion_price": 12,
"baggage_transportation_conditions": [
{
"id": 21986,
"name": "Bicycle transportation",
"description": null,
"translations": {
"name": {
"en": "Bicycle transportation",
"ua": "Bicycle transportation"
},
"description": []
},
"prices": [
{
"currency_id": 88,
"price": 0
}
],
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
}
],
"return_conditions": [
{
"id": 56976,
"departure_start": 48,
"departure_end": 24,
"retention_percentage": 50,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
}
],
"currencies": [
{
"id": 989,
"display_name": "JOD",
"code": "JOD",
"symbol": "JOD",
"is_active": true,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
}
],
"min_price": [
{
"currency_id": 88,
"price": 37
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"payment_methods": [
{
"id": 186,
"name": "liqpay",
"display_name": "LiqPay",
"logo_path": "payment-methods/liqpay.svg",
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
}
],
"notification_settings": {
"notify_about_ticket_sales": true,
"notify_about_ticket_sales_email": "turner.okey@hotmail.com",
"notify_about_ticket_refund": true,
"notify_about_ticket_refund_email": "beth01@yahoo.com",
"notify_before_departure": false,
"notify_before_departure_email": "hudson.frieda@heathcote.net",
"notify_before_departure_time": 1248
},
"transfer_types": [
{
"id": 2,
"bus_route_id": 722,
"name": "Airport shuttle",
"is_active": true,
"created_at": "2026-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
}
],
"carrier": {
"id": 155,
"name": "Continental Bus",
"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-07-03T07:42:06.000000Z",
"updated_at": "2026-07-03T07:42:06.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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=4&to_departure_point_id=17&from_departure_city_id=14&to_departure_city_id=19&departure_date=recusandae&number_of_passengers=13¤cy_code=quod"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/external-tickets"
);
const params = {
"from_departure_point_id": "4",
"to_departure_point_id": "17",
"from_departure_city_id": "14",
"to_departure_city_id": "19",
"departure_date": "recusandae",
"number_of_passengers": "13",
"currency_code": "quod",
};
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"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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\": \"explicabo\",
\"passengers\": [
\"voluptatum\"
],
\"payment_method_id\": 3
}"
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": "explicabo",
"passengers": [
"voluptatum"
],
"payment_method_id": 3
};
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"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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\": \"facere\"
}"
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": "facere"
};
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"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 239,
"name": "Latvia",
"translations": {
"name": {
"en": "Latvia",
"ua": "Latvia"
}
},
"code": "LV",
"timezone": "Europe/Riga",
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 8267,
"name": "Istanbul",
"translations": {
"name": {
"en": "Istanbul",
"ua": "Istanbul"
}
},
"departure_points": [
{
"id": 602,
"name": "Central Bus Station",
"translations": {
"name": {
"en": "Central Bus Station",
"ua": "Central Bus Station"
}
},
"lat": "48.20727600",
"lng": "23.68393000",
"visibility": true,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
}
],
"country": {
"id": 240,
"name": "Turkey",
"translations": {
"name": {
"en": "Turkey",
"ua": "Turkey"
}
},
"code": "TR",
"timezone": "Europe/Istanbul",
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"population": 1450351,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 240,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
{
"id": 8269,
"name": "Vienna",
"translations": {
"name": {
"en": "Vienna",
"ua": "Vienna"
}
},
"departure_points": [
{
"id": 603,
"name": "Central Bus Station",
"translations": {
"name": {
"en": "Central Bus Station",
"ua": "Central Bus Station"
}
},
"lat": "42.11828300",
"lng": "22.54994200",
"visibility": true,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
}
],
"country": {
"id": 241,
"name": "Austria",
"translations": {
"name": {
"en": "Austria",
"ua": "Austria"
}
},
"code": "AT",
"timezone": "Europe/Vienna",
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"population": 2826839,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 241,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.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": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Search cities (new)
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": 8271,
"name": "Riga",
"translations": {
"name": {
"en": "Riga",
"ua": "Riga"
}
},
"departure_points": [
{
"id": 604,
"name": "Airport Bus Terminal",
"translations": {
"name": {
"en": "Airport Bus Terminal",
"ua": "Airport Bus Terminal"
}
},
"lat": "41.56662400",
"lng": "28.29437700",
"visibility": true,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
}
],
"country": {
"id": 243,
"name": "Latvia",
"translations": {
"name": {
"en": "Latvia",
"ua": "Latvia"
}
},
"code": "LV",
"timezone": "Europe/Riga",
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"population": 607415,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 243,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.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": "« Назад",
"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": "Вперед »",
"page": 2,
"active": false
}
],
"path": "/",
"per_page": 1,
"to": 1,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 606,
"name": "Central Bus Station",
"translations": {
"name": {
"en": "Central Bus Station",
"ua": "Central Bus Station"
}
},
"city": {
"id": 8276,
"name": "Kyiv",
"translations": {
"name": {
"en": "Kyiv",
"ua": "Kyiv"
}
},
"population": 352648,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"lat": "42.35792100",
"lng": "29.30164500",
"visibility": true,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
{
"id": 607,
"name": "Main Railway Station",
"translations": {
"name": {
"en": "Main Railway Station",
"ua": "Main Railway Station"
}
},
"city": {
"id": 8278,
"name": "Bucharest",
"translations": {
"name": {
"en": "Bucharest",
"ua": "Bucharest"
}
},
"population": 1861206,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 246,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"lat": "44.60669200",
"lng": "26.79477800",
"visibility": true,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.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": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 608,
"name": "Main Railway Station",
"translations": {
"name": {
"en": "Main Railway Station",
"ua": "Main Railway Station"
}
},
"city": {
"id": 8280,
"name": "Odesa",
"translations": {
"name": {
"en": "Odesa",
"ua": "Odesa"
}
},
"population": 2079182,
"lat": null,
"lng": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
"lat": "49.04804200",
"lng": "26.64630400",
"visibility": true,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 6131,
"uuid": null,
"public_id": "6VEDgxZbenF4rY5",
"paid_at": null,
"tickets": [
{
"id": 6265,
"type": "internal",
"target_departure_date": "2026-07-24T08:30:00.000000Z",
"target_arrival_date": "2026-07-24T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "EjyChxLZ9ck8reB",
"price": "76.24",
"price_adjustment_percent": "0.00",
"order_id": 6131,
"first_name": "Iryna",
"last_name": "Bondarenko",
"phone": "+380904344490",
"email": "mante.jarrell@example.com",
"birthday": "1996-07-31",
"passenger_type": "adult",
"departure_date": "2026-07-24T08:30:00.000000Z",
"bus_flight_id": 18016,
"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-07-03T07:42:11.000000Z",
"updated_at": "2026-07-03T07:42:11.000000Z"
}
],
"user": {
"id": 6744,
"first_name": "Natalia",
"last_name": "Melnyk",
"middle_name": "Oleksandrivna",
"full_name": "Natalia Melnyk Oleksandrivna",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Natalia Melnyk",
"phone": "+380567391012",
"email": "lavonne69@example.org",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-07-03T07:42:11.000000Z",
"updated_at": "2026-07-03T07:42:11.000000Z"
},
"agent_id": null,
"currency": {
"id": 992,
"display_name": "SEK",
"code": "SEK",
"symbol": "SEK",
"is_active": true,
"created_at": "2026-07-03T07:42:11.000000Z",
"updated_at": "2026-07-03T07:42:11.000000Z"
},
"status": "pending",
"total_price": "91.44",
"payment_on_the_spot": false,
"order_group_id": null,
"direction": "outbound",
"expired_at": null,
"created_at": "2026-07-03T07:42:11.000000Z",
"updated_at": "2026-07-03T07:42:11.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Passengers
Passengers
Cancel ticket
Cancel ticket
Example request:
curl --request PATCH \
"https://testapi.ticketbus365.com/integration-api/cancel-ticket/dolorem" \
--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/dolorem"
);
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": 6261,
"type": "internal",
"target_departure_date": "2026-07-09T08:30:00.000000Z",
"target_arrival_date": "2026-07-09T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "UklxLWZg9DAJQ7X",
"price": "113.62",
"price_adjustment_percent": "0.00",
"order_id": 6127,
"first_name": "Natalia",
"last_name": "Shevchenko",
"phone": "+380971546030",
"email": "gerson17@example.net",
"birthday": "2005-08-11",
"passenger_type": "adult",
"departure_date": "2026-07-09T08:30:00.000000Z",
"bus_flight_id": 18011,
"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-07-03T07:42:09.000000Z",
"updated_at": "2026-07-03T07:42:09.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Accept partially payment
Accept partially payment
Example request:
curl --request POST \
"https://testapi.ticketbus365.com/integration-api/accept-partially-payment/et" \
--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/et"
);
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": 6263,
"type": "internal",
"target_departure_date": "2026-07-19T08:30:00.000000Z",
"target_arrival_date": "2026-07-19T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "UkllLWZg9DAJQ7X",
"price": "62.08",
"price_adjustment_percent": "0.00",
"order_id": 6129,
"first_name": "Serhii",
"last_name": "Tkachenko",
"phone": "+380083022388",
"email": "wiley42@example.com",
"birthday": "1991-06-01",
"passenger_type": "adult",
"departure_date": "2026-07-19T08:30:00.000000Z",
"bus_flight_id": 18014,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": "Window seat preferred.",
"prepayments": [
{
"id": 259,
"ticket_id": 6263,
"currency_id": 88,
"payment_method_id": 189,
"amount": 29.98,
"created_at": "2026-07-03T07:42:11.000000Z",
"updated_at": "2026-07-03T07:42:11.000000Z"
}
],
"prepayments_amount": 29.98,
"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-07-03T07:42:10.000000Z",
"updated_at": "2026-07-03T07:42:10.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Return ticket
Return ticket
Example request:
curl --request PATCH \
"https://testapi.ticketbus365.com/integration-api/return-ticket/rerum"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/return-ticket/rerum"
);
fetch(url, {
method: "PATCH",
}).then(response => response.json());Example response (200):
{
"data": {
"id": 6264,
"type": "internal",
"target_departure_date": "2026-07-14T08:30:00.000000Z",
"target_arrival_date": "2026-07-14T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "gXjwHJdmfrXBVPa",
"price": "106.50",
"price_adjustment_percent": "0.00",
"order_id": 6130,
"first_name": "Andrii",
"last_name": "Tkachenko",
"phone": "+380336044325",
"email": "judd.damore@example.org",
"birthday": "1970-05-08",
"passenger_type": "adult",
"departure_date": "2026-07-14T08:30:00.000000Z",
"bus_flight_id": 18015,
"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-07-03T07:42:11.000000Z",
"updated_at": "2026-07-03T07:42:11.000000Z",
"penalty": 100
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 987,
"display_name": "JMD",
"code": "JMD",
"symbol": "JMD",
"is_active": true,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
},
{
"id": 988,
"display_name": "AZN",
"code": "AZN",
"symbol": "AZN",
"is_active": true,
"created_at": "2026-07-03T07:42:05.000000Z",
"updated_at": "2026-07-03T07:42:05.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 110,
"name": "Route was cancelled by carrier",
"slug": null
},
{
"id": 111,
"name": "Passenger requested cancellation",
"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": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 190,
"name": "cash",
"display_name": "Cash",
"logo_path": "payment-methods/cash.svg",
"created_at": "2026-07-03T07:42:11.000000Z",
"updated_at": "2026-07-03T07:42:11.000000Z"
},
{
"id": 191,
"name": "stripe",
"display_name": "Card payment",
"logo_path": "payment-methods/stripe.svg",
"created_at": "2026-07-03T07:42:11.000000Z",
"updated_at": "2026-07-03T07:42:11.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 207,
"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": 0,
"status": "completed",
"payment_time": 15,
"sale_depth": 15,
"number_of_seats": 15,
"route_name": "Киев-Чернигов",
"route_number": "1111",
"route_ticket_hint": null,
"carrier_name": "test",
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"without_companion_price_percent": 0,
"selected_seats_prices": null,
"bus": {
"id": 148,
"name": "Автобус",
"number": "WK 77296",
"status": "active",
"schema": {
"id": 179,
"name": "Автобус",
"mark": "VANHOOL",
"model": "Astron T917",
"number_of_seats": 59,
"number_of_floors": 1,
"rows": 5,
"columns": 17,
"items": [
{
"id": 40093,
"type": "seat",
"name": "Seat 1",
"translations": {
"name": {
"en": "Seat 1"
}
},
"seat_number": 55,
"row_number": 1,
"column_number": 1,
"floor_number": 1
},
{
"id": 40094,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 53,
"row_number": 1,
"column_number": 2,
"floor_number": 1
},
{
"id": 40095,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 49,
"row_number": 1,
"column_number": 3,
"floor_number": 1
},
{
"id": 40096,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 45,
"row_number": 1,
"column_number": 4,
"floor_number": 1
},
{
"id": 40097,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 41,
"row_number": 1,
"column_number": 5,
"floor_number": 1
},
{
"id": 40098,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 37,
"row_number": 1,
"column_number": 6,
"floor_number": 1
},
{
"id": 40099,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 33,
"row_number": 1,
"column_number": 7,
"floor_number": 1
},
{
"id": 40100,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 31,
"row_number": 1,
"column_number": 8,
"floor_number": 1
},
{
"id": 40101,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 29,
"row_number": 1,
"column_number": 9,
"floor_number": 1
},
{
"id": 40102,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 25,
"row_number": 1,
"column_number": 10,
"floor_number": 1
},
{
"id": 40103,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 21,
"row_number": 1,
"column_number": 11,
"floor_number": 1
},
{
"id": 40104,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 17,
"row_number": 1,
"column_number": 12,
"floor_number": 1
},
{
"id": 40105,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 13,
"row_number": 1,
"column_number": 13,
"floor_number": 1
},
{
"id": 40106,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 9,
"row_number": 1,
"column_number": 14,
"floor_number": 1
},
{
"id": 40107,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 5,
"row_number": 1,
"column_number": 15,
"floor_number": 1
},
{
"id": 40108,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 1,
"row_number": 1,
"column_number": 16,
"floor_number": 1
},
{
"id": 40109,
"type": "driver_seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 1,
"column_number": 17,
"floor_number": 1
},
{
"id": 40110,
"type": "seat",
"name": "Seat 18",
"translations": {
"name": {
"en": "Seat 18"
}
},
"seat_number": 56,
"row_number": 2,
"column_number": 1,
"floor_number": 1
},
{
"id": 40111,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 54,
"row_number": 2,
"column_number": 2,
"floor_number": 1
},
{
"id": 40112,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 50,
"row_number": 2,
"column_number": 3,
"floor_number": 1
},
{
"id": 40113,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 46,
"row_number": 2,
"column_number": 4,
"floor_number": 1
},
{
"id": 40114,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 42,
"row_number": 2,
"column_number": 5,
"floor_number": 1
},
{
"id": 40115,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 38,
"row_number": 2,
"column_number": 6,
"floor_number": 1
},
{
"id": 40116,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 34,
"row_number": 2,
"column_number": 7,
"floor_number": 1
},
{
"id": 40117,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 32,
"row_number": 2,
"column_number": 8,
"floor_number": 1
},
{
"id": 40118,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 30,
"row_number": 2,
"column_number": 9,
"floor_number": 1
},
{
"id": 40119,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 26,
"row_number": 2,
"column_number": 10,
"floor_number": 1
},
{
"id": 40120,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 22,
"row_number": 2,
"column_number": 11,
"floor_number": 1
},
{
"id": 40121,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 18,
"row_number": 2,
"column_number": 12,
"floor_number": 1
},
{
"id": 40122,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 14,
"row_number": 2,
"column_number": 13,
"floor_number": 1
},
{
"id": 40123,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 10,
"row_number": 2,
"column_number": 14,
"floor_number": 1
},
{
"id": 40124,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 6,
"row_number": 2,
"column_number": 15,
"floor_number": 1
},
{
"id": 40125,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 2,
"row_number": 2,
"column_number": 16,
"floor_number": 1
},
{
"id": 40126,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 2,
"column_number": 17,
"floor_number": 1
},
{
"id": 40127,
"type": "seat",
"name": "Seat 35",
"translations": {
"name": {
"en": "Seat 35"
}
},
"seat_number": 57,
"row_number": 3,
"column_number": 1,
"floor_number": 1
},
{
"id": 40128,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 2,
"floor_number": 1
},
{
"id": 40129,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 3,
"floor_number": 1
},
{
"id": 40130,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 4,
"floor_number": 1
},
{
"id": 40131,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 5,
"floor_number": 1
},
{
"id": 40132,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 6,
"floor_number": 1
},
{
"id": 40133,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 7,
"floor_number": 1
},
{
"id": 40134,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 8,
"floor_number": 1
},
{
"id": 40135,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 9,
"floor_number": 1
},
{
"id": 40136,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 10,
"floor_number": 1
},
{
"id": 40137,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 11,
"floor_number": 1
},
{
"id": 40138,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 12,
"floor_number": 1
},
{
"id": 40139,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 13,
"floor_number": 1
},
{
"id": 40140,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 14,
"floor_number": 1
},
{
"id": 40141,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 15,
"floor_number": 1
},
{
"id": 40142,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 16,
"floor_number": 1
},
{
"id": 40143,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 17,
"floor_number": 1
},
{
"id": 40144,
"type": "seat",
"name": "Seat 52",
"translations": {
"name": {
"en": "Seat 52"
}
},
"seat_number": 58,
"row_number": 4,
"column_number": 1,
"floor_number": 1
},
{
"id": 40145,
"type": "none",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 4,
"column_number": 2,
"floor_number": 1
},
{
"id": 40146,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 51,
"row_number": 4,
"column_number": 3,
"floor_number": 1
},
{
"id": 40147,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 47,
"row_number": 4,
"column_number": 4,
"floor_number": 1
},
{
"id": 40148,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 43,
"row_number": 4,
"column_number": 5,
"floor_number": 1
},
{
"id": 40149,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 39,
"row_number": 4,
"column_number": 6,
"floor_number": 1
},
{
"id": 40150,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 35,
"row_number": 4,
"column_number": 7,
"floor_number": 1
},
{
"id": 40151,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 4,
"column_number": 8,
"floor_number": 1
},
{
"id": 40152,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 4,
"column_number": 9,
"floor_number": 1
},
{
"id": 40153,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 27,
"row_number": 4,
"column_number": 10,
"floor_number": 1
},
{
"id": 40154,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 23,
"row_number": 4,
"column_number": 11,
"floor_number": 1
},
{
"id": 40155,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 19,
"row_number": 4,
"column_number": 12,
"floor_number": 1
},
{
"id": 40156,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 15,
"row_number": 4,
"column_number": 13,
"floor_number": 1
},
{
"id": 40157,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 11,
"row_number": 4,
"column_number": 14,
"floor_number": 1
},
{
"id": 40158,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 7,
"row_number": 4,
"column_number": 15,
"floor_number": 1
},
{
"id": 40159,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 3,
"row_number": 4,
"column_number": 16,
"floor_number": 1
},
{
"id": 40160,
"type": "special",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 4,
"column_number": 17,
"floor_number": 1
},
{
"id": 40161,
"type": "seat",
"name": "Seat 69",
"translations": {
"name": {
"en": "Seat 69"
}
},
"seat_number": 59,
"row_number": 5,
"column_number": 1,
"floor_number": 1
},
{
"id": 40162,
"type": "none",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 5,
"column_number": 2,
"floor_number": 1
},
{
"id": 40163,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 52,
"row_number": 5,
"column_number": 3,
"floor_number": 1
},
{
"id": 40164,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 48,
"row_number": 5,
"column_number": 4,
"floor_number": 1
},
{
"id": 40165,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 44,
"row_number": 5,
"column_number": 5,
"floor_number": 1
},
{
"id": 40166,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 40,
"row_number": 5,
"column_number": 6,
"floor_number": 1
},
{
"id": 40167,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 36,
"row_number": 5,
"column_number": 7,
"floor_number": 1
},
{
"id": 40168,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 5,
"column_number": 8,
"floor_number": 1
},
{
"id": 40169,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 5,
"column_number": 9,
"floor_number": 1
},
{
"id": 40170,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 28,
"row_number": 5,
"column_number": 10,
"floor_number": 1
},
{
"id": 40171,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 24,
"row_number": 5,
"column_number": 11,
"floor_number": 1
},
{
"id": 40172,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 20,
"row_number": 5,
"column_number": 12,
"floor_number": 1
},
{
"id": 40173,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 16,
"row_number": 5,
"column_number": 13,
"floor_number": 1
},
{
"id": 40174,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 12,
"row_number": 5,
"column_number": 14,
"floor_number": 1
},
{
"id": 40175,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 8,
"row_number": 5,
"column_number": 15,
"floor_number": 1
},
{
"id": 40176,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 4,
"row_number": 5,
"column_number": 16,
"floor_number": 1
},
{
"id": 40177,
"type": "special",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 5,
"column_number": 17,
"floor_number": 1
}
],
"created_at": "2024-02-16T19:06:33.000000Z",
"updated_at": "2025-06-11T11:21:31.000000Z"
},
"services": [
{
"id": 15,
"name": "wi-fi",
"translations": {
"name": {
"ua": "wi-fi",
"pl": "wi-fi",
"en": "wi-fi"
}
},
"icon_name": "wifi",
"created_at": "2023-11-02T12:08:09.000000Z",
"updated_at": "2025-11-25T10:40:48.000000Z"
},
{
"id": 16,
"name": "USB-зарядки",
"translations": {
"name": {
"ua": "Індивідуальні USB-зарядки",
"pl": "USB-зарядки",
"en": "USB-зарядки"
}
},
"icon_name": "индивидуальные USB-зарядки",
"created_at": "2024-01-20T10:58:51.000000Z",
"updated_at": "2024-04-11T11:51:19.000000Z"
}
],
"images": [],
"created_at": "2024-02-16T19:04:00.000000Z",
"updated_at": "2026-03-05T14:54:27.000000Z"
},
"driver": {
"id": 519,
"first_name": "Петро",
"last_name": "Шевченко",
"middle_name": "Петрович",
"full_name": "Петро Шевченко Петрович",
"work_phone": "38063999999",
"gender": null,
"birthday": null
},
"dispatcher": null,
"occupiedSeats": [
{
"id": 22,
"bus_flight_id": 207,
"from_departure_point_id": 87,
"to_departure_point_id": 88,
"seat_number": 9,
"type": "reserved",
"created_at": "2024-01-25T07:57:29.000000Z",
"updated_at": "2024-02-19T12:32:03.000000Z"
}
],
"baggage_transportation_conditions": [
{
"id": 164,
"name": "Hand baggage (free)",
"description": null,
"translations": {
"name": {
"ua": "Ручна поклажа (безкоштовно)",
"pl": "Bagaż podręczny (bezpłatny)",
"en": "Hand baggage (free)"
},
"description": []
},
"prices": [
{
"currency_id": 88,
"price": 0
},
{
"currency_id": 89,
"price": 0
}
],
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-01-19T11:59:02.000000Z"
}
],
"schedules": [
{
"id": 1631,
"departure_point_id": 87,
"departure_point": {
"id": 87,
"name": "Автостанция \"Киев\",улица С.Петлюры 32",
"translations": {
"name": {
"ua": "Автостанція \"Київ\", вул. С. Петлюри 32",
"pl": "Dworzec autobusowy \"Kyiv\",ulica S.Petlyury 32",
"en": "Bus station \"Kyiv\",S.Petlury 32 street",
"ru": "Автостанция \"Киев\",улица С.Петлюры 32"
}
},
"city": {
"id": 267,
"name": "Киев",
"translations": {
"name": {
"ua": "Київ",
"pl": "Kijów",
"en": "Kyiv",
"ru": "Киев"
}
},
"population": 2797553,
"lat": "50.45466000",
"lng": "30.52380000",
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:05.000000Z",
"updated_at": "2026-06-26T12:38:26.000000Z"
},
"lat": null,
"lng": null,
"visibility": true,
"created_at": "2023-11-02T11:52:18.000000Z",
"updated_at": "2024-03-23T12:23:48.000000Z"
},
"arrival_time": "12:00",
"departure_time": "12:00",
"days_in_road": 0,
"platform": null,
"has_landing": true,
"has_disembarkation": false,
"is_connecting": false,
"is_connecting_start_endpoint": false,
"position": 0,
"sale_status": "open",
"is_active": true,
"has_transfer": false,
"maybe_transfer": false,
"hint": "",
"translations": {
"hint": []
},
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:39:22.000000Z"
},
{
"id": 1632,
"departure_point_id": 88,
"departure_point": {
"id": 88,
"name": "Голливуд",
"translations": {
"name": {
"ua": "Голливуд",
"pl": "Голливуд",
"en": "Голливуд"
}
},
"city": {
"id": 268,
"name": "Чернигов",
"translations": {
"name": {
"ua": "Чернігів",
"en": "Chernihiv",
"pl": "Czernihów",
"ru": "Чернигов"
}
},
"population": 285234,
"lat": "51.50541000",
"lng": "31.28656000",
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:37.000000Z",
"updated_at": "2026-06-26T12:38:26.000000Z"
},
"lat": null,
"lng": null,
"visibility": true,
"created_at": "2023-11-02T11:53:33.000000Z",
"updated_at": "2023-11-02T11:53:33.000000Z"
},
"arrival_time": "15:00",
"departure_time": "15:00",
"days_in_road": 0,
"platform": null,
"has_landing": false,
"has_disembarkation": true,
"is_connecting": false,
"is_connecting_start_endpoint": false,
"position": 1,
"sale_status": "open",
"is_active": true,
"has_transfer": false,
"maybe_transfer": false,
"hint": "",
"translations": {
"hint": []
},
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:39:22.000000Z"
}
],
"payment_methods": [
{
"id": 2,
"name": "liqpay",
"display_name": "Оплата через LiqPay",
"logo_path": null,
"created_at": "2023-10-27T07:44:26.000000Z",
"updated_at": "2023-11-03T07:53:11.000000Z"
},
{
"id": 3,
"name": "spot",
"display_name": "Оплата на месте",
"logo_path": null,
"created_at": "2023-10-27T07:44:26.000000Z",
"updated_at": "2023-11-03T07:53:11.000000Z"
}
],
"discounts": [],
"carrier": {
"id": 1,
"name": "test",
"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": 20172,
"from_departure_point_id": 87,
"to_departure_point_id": 88,
"price": [
{
"amount": 10,
"currency_id": 88
},
{
"amount": 10,
"currency_id": 89
},
{
"amount": 0,
"currency_id": 90
},
{
"amount": 0,
"currency_id": 91
}
],
"is_active": true,
"is_forbidden": false
}
],
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2026-04-28T09:47:27.000000Z"
},
{
"id": 207,
"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": 0,
"status": "completed",
"payment_time": 15,
"sale_depth": 15,
"number_of_seats": 15,
"route_name": "Киев-Чернигов",
"route_number": "1111",
"route_ticket_hint": null,
"carrier_name": "test",
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"without_companion_price_percent": 0,
"selected_seats_prices": null,
"bus": {
"id": 148,
"name": "Автобус",
"number": "WK 77296",
"status": "active",
"schema": {
"id": 179,
"name": "Автобус",
"mark": "VANHOOL",
"model": "Astron T917",
"number_of_seats": 59,
"number_of_floors": 1,
"rows": 5,
"columns": 17,
"items": [
{
"id": 40093,
"type": "seat",
"name": "Seat 1",
"translations": {
"name": {
"en": "Seat 1"
}
},
"seat_number": 55,
"row_number": 1,
"column_number": 1,
"floor_number": 1
},
{
"id": 40094,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 53,
"row_number": 1,
"column_number": 2,
"floor_number": 1
},
{
"id": 40095,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 49,
"row_number": 1,
"column_number": 3,
"floor_number": 1
},
{
"id": 40096,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 45,
"row_number": 1,
"column_number": 4,
"floor_number": 1
},
{
"id": 40097,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 41,
"row_number": 1,
"column_number": 5,
"floor_number": 1
},
{
"id": 40098,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 37,
"row_number": 1,
"column_number": 6,
"floor_number": 1
},
{
"id": 40099,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 33,
"row_number": 1,
"column_number": 7,
"floor_number": 1
},
{
"id": 40100,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 31,
"row_number": 1,
"column_number": 8,
"floor_number": 1
},
{
"id": 40101,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 29,
"row_number": 1,
"column_number": 9,
"floor_number": 1
},
{
"id": 40102,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 25,
"row_number": 1,
"column_number": 10,
"floor_number": 1
},
{
"id": 40103,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 21,
"row_number": 1,
"column_number": 11,
"floor_number": 1
},
{
"id": 40104,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 17,
"row_number": 1,
"column_number": 12,
"floor_number": 1
},
{
"id": 40105,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 13,
"row_number": 1,
"column_number": 13,
"floor_number": 1
},
{
"id": 40106,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 9,
"row_number": 1,
"column_number": 14,
"floor_number": 1
},
{
"id": 40107,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 5,
"row_number": 1,
"column_number": 15,
"floor_number": 1
},
{
"id": 40108,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 1,
"row_number": 1,
"column_number": 16,
"floor_number": 1
},
{
"id": 40109,
"type": "driver_seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 1,
"column_number": 17,
"floor_number": 1
},
{
"id": 40110,
"type": "seat",
"name": "Seat 18",
"translations": {
"name": {
"en": "Seat 18"
}
},
"seat_number": 56,
"row_number": 2,
"column_number": 1,
"floor_number": 1
},
{
"id": 40111,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 54,
"row_number": 2,
"column_number": 2,
"floor_number": 1
},
{
"id": 40112,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 50,
"row_number": 2,
"column_number": 3,
"floor_number": 1
},
{
"id": 40113,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 46,
"row_number": 2,
"column_number": 4,
"floor_number": 1
},
{
"id": 40114,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 42,
"row_number": 2,
"column_number": 5,
"floor_number": 1
},
{
"id": 40115,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 38,
"row_number": 2,
"column_number": 6,
"floor_number": 1
},
{
"id": 40116,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 34,
"row_number": 2,
"column_number": 7,
"floor_number": 1
},
{
"id": 40117,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 32,
"row_number": 2,
"column_number": 8,
"floor_number": 1
},
{
"id": 40118,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 30,
"row_number": 2,
"column_number": 9,
"floor_number": 1
},
{
"id": 40119,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 26,
"row_number": 2,
"column_number": 10,
"floor_number": 1
},
{
"id": 40120,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 22,
"row_number": 2,
"column_number": 11,
"floor_number": 1
},
{
"id": 40121,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 18,
"row_number": 2,
"column_number": 12,
"floor_number": 1
},
{
"id": 40122,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 14,
"row_number": 2,
"column_number": 13,
"floor_number": 1
},
{
"id": 40123,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 10,
"row_number": 2,
"column_number": 14,
"floor_number": 1
},
{
"id": 40124,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 6,
"row_number": 2,
"column_number": 15,
"floor_number": 1
},
{
"id": 40125,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 2,
"row_number": 2,
"column_number": 16,
"floor_number": 1
},
{
"id": 40126,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 2,
"column_number": 17,
"floor_number": 1
},
{
"id": 40127,
"type": "seat",
"name": "Seat 35",
"translations": {
"name": {
"en": "Seat 35"
}
},
"seat_number": 57,
"row_number": 3,
"column_number": 1,
"floor_number": 1
},
{
"id": 40128,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 2,
"floor_number": 1
},
{
"id": 40129,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 3,
"floor_number": 1
},
{
"id": 40130,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 4,
"floor_number": 1
},
{
"id": 40131,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 5,
"floor_number": 1
},
{
"id": 40132,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 6,
"floor_number": 1
},
{
"id": 40133,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 7,
"floor_number": 1
},
{
"id": 40134,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 8,
"floor_number": 1
},
{
"id": 40135,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 9,
"floor_number": 1
},
{
"id": 40136,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 10,
"floor_number": 1
},
{
"id": 40137,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 11,
"floor_number": 1
},
{
"id": 40138,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 12,
"floor_number": 1
},
{
"id": 40139,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 13,
"floor_number": 1
},
{
"id": 40140,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 14,
"floor_number": 1
},
{
"id": 40141,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 15,
"floor_number": 1
},
{
"id": 40142,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 16,
"floor_number": 1
},
{
"id": 40143,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 3,
"column_number": 17,
"floor_number": 1
},
{
"id": 40144,
"type": "seat",
"name": "Seat 52",
"translations": {
"name": {
"en": "Seat 52"
}
},
"seat_number": 58,
"row_number": 4,
"column_number": 1,
"floor_number": 1
},
{
"id": 40145,
"type": "none",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 4,
"column_number": 2,
"floor_number": 1
},
{
"id": 40146,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 51,
"row_number": 4,
"column_number": 3,
"floor_number": 1
},
{
"id": 40147,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 47,
"row_number": 4,
"column_number": 4,
"floor_number": 1
},
{
"id": 40148,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 43,
"row_number": 4,
"column_number": 5,
"floor_number": 1
},
{
"id": 40149,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 39,
"row_number": 4,
"column_number": 6,
"floor_number": 1
},
{
"id": 40150,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 35,
"row_number": 4,
"column_number": 7,
"floor_number": 1
},
{
"id": 40151,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 4,
"column_number": 8,
"floor_number": 1
},
{
"id": 40152,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 4,
"column_number": 9,
"floor_number": 1
},
{
"id": 40153,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 27,
"row_number": 4,
"column_number": 10,
"floor_number": 1
},
{
"id": 40154,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 23,
"row_number": 4,
"column_number": 11,
"floor_number": 1
},
{
"id": 40155,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 19,
"row_number": 4,
"column_number": 12,
"floor_number": 1
},
{
"id": 40156,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 15,
"row_number": 4,
"column_number": 13,
"floor_number": 1
},
{
"id": 40157,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 11,
"row_number": 4,
"column_number": 14,
"floor_number": 1
},
{
"id": 40158,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 7,
"row_number": 4,
"column_number": 15,
"floor_number": 1
},
{
"id": 40159,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 3,
"row_number": 4,
"column_number": 16,
"floor_number": 1
},
{
"id": 40160,
"type": "special",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 4,
"column_number": 17,
"floor_number": 1
},
{
"id": 40161,
"type": "seat",
"name": "Seat 69",
"translations": {
"name": {
"en": "Seat 69"
}
},
"seat_number": 59,
"row_number": 5,
"column_number": 1,
"floor_number": 1
},
{
"id": 40162,
"type": "none",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 5,
"column_number": 2,
"floor_number": 1
},
{
"id": 40163,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 52,
"row_number": 5,
"column_number": 3,
"floor_number": 1
},
{
"id": 40164,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 48,
"row_number": 5,
"column_number": 4,
"floor_number": 1
},
{
"id": 40165,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 44,
"row_number": 5,
"column_number": 5,
"floor_number": 1
},
{
"id": 40166,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 40,
"row_number": 5,
"column_number": 6,
"floor_number": 1
},
{
"id": 40167,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 36,
"row_number": 5,
"column_number": 7,
"floor_number": 1
},
{
"id": 40168,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 5,
"column_number": 8,
"floor_number": 1
},
{
"id": 40169,
"type": "aisle",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 5,
"column_number": 9,
"floor_number": 1
},
{
"id": 40170,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 28,
"row_number": 5,
"column_number": 10,
"floor_number": 1
},
{
"id": 40171,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 24,
"row_number": 5,
"column_number": 11,
"floor_number": 1
},
{
"id": 40172,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 20,
"row_number": 5,
"column_number": 12,
"floor_number": 1
},
{
"id": 40173,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 16,
"row_number": 5,
"column_number": 13,
"floor_number": 1
},
{
"id": 40174,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 12,
"row_number": 5,
"column_number": 14,
"floor_number": 1
},
{
"id": 40175,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 8,
"row_number": 5,
"column_number": 15,
"floor_number": 1
},
{
"id": 40176,
"type": "seat",
"name": "",
"translations": {
"name": []
},
"seat_number": 4,
"row_number": 5,
"column_number": 16,
"floor_number": 1
},
{
"id": 40177,
"type": "special",
"name": "",
"translations": {
"name": []
},
"seat_number": 0,
"row_number": 5,
"column_number": 17,
"floor_number": 1
}
],
"created_at": "2024-02-16T19:06:33.000000Z",
"updated_at": "2025-06-11T11:21:31.000000Z"
},
"services": [
{
"id": 15,
"name": "wi-fi",
"translations": {
"name": {
"ua": "wi-fi",
"pl": "wi-fi",
"en": "wi-fi"
}
},
"icon_name": "wifi",
"created_at": "2023-11-02T12:08:09.000000Z",
"updated_at": "2025-11-25T10:40:48.000000Z"
},
{
"id": 16,
"name": "USB-зарядки",
"translations": {
"name": {
"ua": "Індивідуальні USB-зарядки",
"pl": "USB-зарядки",
"en": "USB-зарядки"
}
},
"icon_name": "индивидуальные USB-зарядки",
"created_at": "2024-01-20T10:58:51.000000Z",
"updated_at": "2024-04-11T11:51:19.000000Z"
}
],
"images": [],
"created_at": "2024-02-16T19:04:00.000000Z",
"updated_at": "2026-03-05T14:54:27.000000Z"
},
"driver": {
"id": 519,
"first_name": "Петро",
"last_name": "Шевченко",
"middle_name": "Петрович",
"full_name": "Петро Шевченко Петрович",
"work_phone": "38063999999",
"gender": null,
"birthday": null
},
"dispatcher": null,
"occupiedSeats": [
{
"id": 22,
"bus_flight_id": 207,
"from_departure_point_id": 87,
"to_departure_point_id": 88,
"seat_number": 9,
"type": "reserved",
"created_at": "2024-01-25T07:57:29.000000Z",
"updated_at": "2024-02-19T12:32:03.000000Z"
}
],
"baggage_transportation_conditions": [
{
"id": 164,
"name": "Hand baggage (free)",
"description": null,
"translations": {
"name": {
"ua": "Ручна поклажа (безкоштовно)",
"pl": "Bagaż podręczny (bezpłatny)",
"en": "Hand baggage (free)"
},
"description": []
},
"prices": [
{
"currency_id": 88,
"price": 0
},
{
"currency_id": 89,
"price": 0
}
],
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-01-19T11:59:02.000000Z"
}
],
"schedules": [
{
"id": 1631,
"departure_point_id": 87,
"departure_point": {
"id": 87,
"name": "Автостанция \"Киев\",улица С.Петлюры 32",
"translations": {
"name": {
"ua": "Автостанція \"Київ\", вул. С. Петлюри 32",
"pl": "Dworzec autobusowy \"Kyiv\",ulica S.Petlyury 32",
"en": "Bus station \"Kyiv\",S.Petlury 32 street",
"ru": "Автостанция \"Киев\",улица С.Петлюры 32"
}
},
"city": {
"id": 267,
"name": "Киев",
"translations": {
"name": {
"ua": "Київ",
"pl": "Kijów",
"en": "Kyiv",
"ru": "Киев"
}
},
"population": 2797553,
"lat": "50.45466000",
"lng": "30.52380000",
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:05.000000Z",
"updated_at": "2026-06-26T12:38:26.000000Z"
},
"lat": null,
"lng": null,
"visibility": true,
"created_at": "2023-11-02T11:52:18.000000Z",
"updated_at": "2024-03-23T12:23:48.000000Z"
},
"arrival_time": "12:00",
"departure_time": "12:00",
"days_in_road": 0,
"platform": null,
"has_landing": true,
"has_disembarkation": false,
"is_connecting": false,
"is_connecting_start_endpoint": false,
"position": 0,
"sale_status": "open",
"is_active": true,
"has_transfer": false,
"maybe_transfer": false,
"hint": "",
"translations": {
"hint": []
},
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:39:22.000000Z"
},
{
"id": 1632,
"departure_point_id": 88,
"departure_point": {
"id": 88,
"name": "Голливуд",
"translations": {
"name": {
"ua": "Голливуд",
"pl": "Голливуд",
"en": "Голливуд"
}
},
"city": {
"id": 268,
"name": "Чернигов",
"translations": {
"name": {
"ua": "Чернігів",
"en": "Chernihiv",
"pl": "Czernihów",
"ru": "Чернигов"
}
},
"population": 285234,
"lat": "51.50541000",
"lng": "31.28656000",
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:37.000000Z",
"updated_at": "2026-06-26T12:38:26.000000Z"
},
"lat": null,
"lng": null,
"visibility": true,
"created_at": "2023-11-02T11:53:33.000000Z",
"updated_at": "2023-11-02T11:53:33.000000Z"
},
"arrival_time": "15:00",
"departure_time": "15:00",
"days_in_road": 0,
"platform": null,
"has_landing": false,
"has_disembarkation": true,
"is_connecting": false,
"is_connecting_start_endpoint": false,
"position": 1,
"sale_status": "open",
"is_active": true,
"has_transfer": false,
"maybe_transfer": false,
"hint": "",
"translations": {
"hint": []
},
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:39:22.000000Z"
}
],
"payment_methods": [
{
"id": 2,
"name": "liqpay",
"display_name": "Оплата через LiqPay",
"logo_path": null,
"created_at": "2023-10-27T07:44:26.000000Z",
"updated_at": "2023-11-03T07:53:11.000000Z"
},
{
"id": 3,
"name": "spot",
"display_name": "Оплата на месте",
"logo_path": null,
"created_at": "2023-10-27T07:44:26.000000Z",
"updated_at": "2023-11-03T07:53:11.000000Z"
}
],
"discounts": [],
"carrier": {
"id": 1,
"name": "test",
"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": 20172,
"from_departure_point_id": 87,
"to_departure_point_id": 88,
"price": [
{
"amount": 10,
"currency_id": 88
},
{
"amount": 10,
"currency_id": 89
},
{
"amount": 0,
"currency_id": 90
},
{
"amount": 0,
"currency_id": 91
}
],
"is_active": true,
"is_forbidden": false
}
],
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2026-04-28T09:47:27.000000Z"
}
],
"return_flights_data": []
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 6126,
"uuid": null,
"public_id": "KADa5Q8YFGzdsqm",
"paid_at": null,
"tickets": [
{
"id": 6260,
"type": "internal",
"target_departure_date": "2026-07-26T08:30:00.000000Z",
"target_arrival_date": "2026-07-26T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "cYO7uasQi8rCIu9",
"price": "87.91",
"price_adjustment_percent": "0.00",
"order_id": 6126,
"first_name": "Serhii",
"last_name": "Shevchenko",
"phone": "+380048828174",
"email": "vicky54@example.org",
"birthday": "1991-05-27",
"passenger_type": "adult",
"departure_date": "2026-07-26T08:30:00.000000Z",
"bus_flight_id": 18010,
"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-07-03T07:42:09.000000Z",
"updated_at": "2026-07-03T07:42:09.000000Z"
}
],
"agent_id": null,
"status": "pending",
"total_price": "73.02",
"payment_on_the_spot": false,
"order_group_id": null,
"direction": "outbound",
"expired_at": null,
"created_at": "2026-07-03T07:42:09.000000Z",
"updated_at": "2026-07-03T07:42:09.000000Z"
},
"payment_method_data": {
"data": "array",
"type": "string"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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": 6262,
"type": "internal",
"target_departure_date": "2026-07-26T08:30:00.000000Z",
"target_arrival_date": "2026-07-26T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "bnF9Zn4Y5Fq8QTC",
"price": "99.52",
"price_adjustment_percent": "0.00",
"currency": {
"id": 991,
"display_name": "EGP",
"code": "EGP",
"symbol": "EGP",
"is_active": true,
"created_at": "2026-07-03T07:42:10.000000Z",
"updated_at": "2026-07-03T07:42:10.000000Z"
},
"order": {
"id": 6128,
"uuid": null,
"public_id": "IxbQvBlcSU2TXFG",
"paid_at": null,
"agent_id": null,
"status": "pending",
"total_price": "120.10",
"payment_on_the_spot": false,
"order_group_id": null,
"direction": "outbound",
"expired_at": null,
"created_at": "2026-07-03T07:42:10.000000Z",
"updated_at": "2026-07-03T07:42:10.000000Z"
},
"order_id": 6128,
"bus_flight": {
"id": 18012,
"departure_date": "2026-08-02T08:30:00.000000Z",
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"arrival_date": "2026-08-02T20:30:00.000000Z",
"hours_in_travel": 12,
"bus": {
"id": 1249,
"name": "Mercedes-Benz Sprinter",
"number": "AA 7951 ee",
"status": "active",
"created_at": "2026-07-03T07:42:10.000000Z",
"updated_at": "2026-07-03T07:42:10.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-07-31",
"seat_selection_not_allowed_date_to": "2026-08-01",
"without_companion": true,
"min_price": [
{
"currency_id": 88,
"price": 46
}
],
"schedules": [],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-07-03T07:42:10.000000Z",
"updated_at": "2026-07-03T07:42:10.000000Z"
},
"from_departure_point": {
"id": 618,
"name": "Central Bus Station",
"translations": {
"name": {
"en": "Central Bus Station",
"ua": "Central Bus Station"
}
},
"lat": "43.26001600",
"lng": "22.33776700",
"visibility": true,
"created_at": "2026-07-03T07:42:10.000000Z",
"updated_at": "2026-07-03T07:42:10.000000Z"
},
"to_departure_point": {
"id": 619,
"name": "Central Bus Station",
"translations": {
"name": {
"en": "Central Bus Station",
"ua": "Central Bus Station"
}
},
"lat": "40.90839200",
"lng": "21.57440900",
"visibility": true,
"created_at": "2026-07-03T07:42:10.000000Z",
"updated_at": "2026-07-03T07:42:10.000000Z"
},
"first_name": "Andrii",
"last_name": "Bondarenko",
"phone": "+380433532017",
"email": "josephine67@example.org",
"birthday": "1981-05-17",
"passenger_type": "adult",
"departure_date": "2026-07-26T08:30:00.000000Z",
"occupied_seats": [
{
"id": 56329,
"bus_flight_id": 18013,
"from_departure_point_id": 621,
"to_departure_point_id": 620,
"seat_number": 1,
"type": "reserved",
"created_at": "2026-07-03T07:42:10.000000Z",
"updated_at": "2026-07-03T07:42:10.000000Z"
}
],
"bus_flight_id": 18012,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": "Window seat preferred.",
"prepayments": [
{
"id": 258,
"ticket_id": 6262,
"currency_id": 88,
"payment_method_id": 188,
"amount": 23.98,
"created_at": "2026-07-03T07:42:10.000000Z",
"updated_at": "2026-07-03T07:42:10.000000Z"
}
],
"prepayments_amount": 23.98,
"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-07-03T07:42:09.000000Z",
"updated_at": "2026-07-03T07:42:09.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.