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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"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}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 207,
"departure_date": "2024-01-25T10:00:00.000000Z",
"sale_end_time_before_departure": 0,
"arrival_date": "2024-01-25T13:00:00.000000Z",
"hours_in_travel": 3,
"route": {
"id": 77,
"number": "1111",
"name": "Киев-Чернигов",
"ticket_hint": null,
"translations": {
"name": {
"ua": "Киев-Чернигов",
"pl": "Киев-Чернигов",
"en": "Киев-Чернигов"
},
"ticket_hint": []
},
"sale_end_time_before_departure": 0,
"status": "active",
"carrier_name": "тест",
"payment_time": 15,
"sale_depth": 15,
"flight_generation_depth": 15,
"number_of_seats": 15,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"without_companion_price": 0,
"min_price": [
{
"currency_id": 89,
"price": "10"
},
{
"currency_id": 88,
"price": "10"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2024-01-19T11:56:53.000000Z",
"updated_at": "2024-02-17T11:53:35.000000Z"
},
"status": "open",
"payment_time": 15,
"sale_depth": 15,
"number_of_seats": 15,
"carrier_name": "тест",
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"min_price": [
{
"currency_id": 89,
"price": "10"
},
{
"currency_id": 88,
"price": "10"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:40:52.000000Z"
},
{
"id": 207,
"departure_date": "2024-01-25T10:00:00.000000Z",
"sale_end_time_before_departure": 0,
"arrival_date": "2024-01-25T13:00:00.000000Z",
"hours_in_travel": 3,
"route": {
"id": 77,
"number": "1111",
"name": "Киев-Чернигов",
"ticket_hint": null,
"translations": {
"name": {
"ua": "Киев-Чернигов",
"pl": "Киев-Чернигов",
"en": "Киев-Чернигов"
},
"ticket_hint": []
},
"sale_end_time_before_departure": 0,
"status": "active",
"carrier_name": "тест",
"payment_time": 15,
"sale_depth": 15,
"flight_generation_depth": 15,
"number_of_seats": 15,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"without_companion_price": 0,
"min_price": [
{
"currency_id": 89,
"price": "10"
},
{
"currency_id": 88,
"price": "10"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2024-01-19T11:56:53.000000Z",
"updated_at": "2024-02-17T11:53:35.000000Z"
},
"status": "open",
"payment_time": 15,
"sale_depth": 15,
"number_of_seats": 15,
"carrier_name": "тест",
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"min_price": [
{
"currency_id": 89,
"price": "10"
},
{
"currency_id": 88,
"price": "10"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:40:52.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": "« Назад",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Вперед »",
"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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/bus-flights/207"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 207,
"departure_date": "2024-01-25T10:00:00.000000Z",
"sale_end_time_before_departure": 0,
"arrival_date": "2024-01-25T13:00:00.000000Z",
"hours_in_travel": 3,
"route": {
"id": 77,
"number": "1111",
"name": "Киев-Чернигов",
"ticket_hint": null,
"translations": {
"name": {
"ua": "Киев-Чернигов",
"pl": "Киев-Чернигов",
"en": "Киев-Чернигов"
},
"ticket_hint": []
},
"sale_end_time_before_departure": 0,
"status": "active",
"carrier_name": "тест",
"payment_time": 15,
"sale_depth": 15,
"flight_generation_depth": 15,
"number_of_seats": 15,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"without_companion_price": 0,
"min_price": [
{
"currency_id": 89,
"price": "10"
},
{
"currency_id": 88,
"price": "10"
}
],
"additional_price_settings": [],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2024-01-19T11:56:53.000000Z",
"updated_at": "2024-02-17T11:53:35.000000Z"
},
"bus": {
"id": 148,
"name": "Автобус",
"number": "WK 77296",
"status": "active",
"created_at": "2024-02-16T19:04:00.000000Z",
"updated_at": "2024-05-17T18:26:50.000000Z"
},
"user": {
"id": 1,
"first_name": "Eladio",
"last_name": "Weber",
"middle_name": "Lazaro",
"full_name": "Eladio Weber Lazaro",
"work_phone": null,
"name": "Herta Jast",
"phone": "+1-667-744-6598",
"email": "admin@admin.com",
"birthday": null,
"subscribe_to_newsletter": false,
"status": "new",
"need_change_password": true,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"created_at": "2023-10-27T07:45:00.000000Z",
"updated_at": "2024-03-12T18:49:24.000000Z"
},
"driver": {
"id": 519,
"first_name": "Петро",
"last_name": "Шевченко",
"middle_name": "Петрович",
"full_name": "Петро Шевченко Петрович",
"work_phone": "38063999999"
},
"dispatcher": null,
"status": "open",
"payment_time": 15,
"sale_depth": 15,
"number_of_seats": 15,
"carrier_name": "тест",
"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"
}
],
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"baggage_transportation_conditions": [
{
"id": 164,
"name": "Hand baggage (free)",
"translations": {
"name": {
"ua": "Ручна поклажа (безкоштовно)",
"pl": "Bagaż podręczny (bezpłatny)",
"en": "Hand baggage (free)"
}
},
"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"
}
],
"return_conditions": [
{
"id": 344,
"departure_start": 10,
"departure_end": 20,
"retention_percentage": 1,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-01-19T11:59:02.000000Z"
},
{
"id": 345,
"departure_start": 24,
"departure_end": 1,
"retention_percentage": 100,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-01-19T11:59:02.000000Z"
},
{
"id": 346,
"departure_start": 24,
"departure_end": 2,
"retention_percentage": 50,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-01-19T11:59:02.000000Z"
}
],
"currencies": [
{
"id": 88,
"display_name": "Гривня",
"code": "UAH",
"symbol": "₴",
"is_active": true,
"created_at": "2023-11-02T11:57:10.000000Z",
"updated_at": "2023-11-02T11:57:10.000000Z"
},
{
"id": 89,
"display_name": "Злотий",
"code": "PLN",
"symbol": "zł",
"is_active": true,
"created_at": "2023-11-02T11:58:50.000000Z",
"updated_at": "2023-11-02T11:58:50.000000Z"
}
],
"min_price": [
{
"currency_id": 89,
"price": "10"
},
{
"currency_id": 88,
"price": "10"
}
],
"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
}
],
"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": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:05.000000Z",
"updated_at": "2024-02-18T14:28:39.000000Z"
},
"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,
"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": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:37.000000Z",
"updated_at": "2025-07-17T06:32:14.000000Z"
},
"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,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:39:22.000000Z"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"payment_methods": [
{
"id": 1,
"name": "stripe",
"display_name": "Оплата через Stripe",
"logo_path": null,
"created_at": "2023-10-27T07:44:26.000000Z",
"updated_at": "2023-11-03T07:53:11.000000Z"
},
{
"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"
}
],
"carrier": {
"id": 1,
"name": "test",
"hotline_phone": null,
"edrpou": null,
"disclaimer": null,
"translations": {
"disclaimer": []
}
},
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:40:52.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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"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}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 82,
"number": "HH001",
"name": "Харьков-Гамбург",
"ticket_hint": null,
"translations": {
"name": {
"ua": "Харків-Гановер",
"pl": "Charkow-Hamburg",
"en": "Kharkiv-Hamburg",
"ru": "Харьков-Гамбург"
},
"ticket_hint": []
},
"sale_end_time_before_departure": 0,
"status": "active",
"city_from": {
"id": 4858,
"name": "Харьков",
"translations": {
"name": {
"ua": "Харків",
"pl": "Charków",
"en": "Харьков",
"ru": "Харьков"
}
},
"population": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2024-02-03T09:07:54.000000Z",
"updated_at": "2025-07-17T07:07:04.000000Z"
},
"city_to": {
"id": 4857,
"name": "Гамбург",
"translations": {
"name": {
"ua": "Гамбург",
"pl": "Hamburg",
"en": "Гамбург",
"ru": "Гамбург"
}
},
"population": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 8,
"created_at": "2024-02-03T09:06:36.000000Z",
"updated_at": "2025-07-17T07:07:04.000000Z"
},
"user": {
"id": 1,
"first_name": "Eladio",
"last_name": "Weber",
"middle_name": "Lazaro",
"full_name": "Eladio Weber Lazaro",
"work_phone": null,
"name": "Herta Jast",
"phone": "+1-667-744-6598",
"email": "admin@admin.com",
"birthday": null,
"subscribe_to_newsletter": false,
"status": "new",
"need_change_password": true,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"created_at": "2023-10-27T07:45:00.000000Z",
"updated_at": "2024-03-12T18:49:24.000000Z"
},
"carrier_name": null,
"payment_time": 15,
"sale_depth": 30,
"flight_generation_depth": 30,
"number_of_seats": 57,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"without_companion_price": 0,
"min_price": null,
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2024-02-03T11:27:43.000000Z",
"updated_at": "2024-04-19T06:50:53.000000Z"
},
{
"id": 82,
"number": "HH001",
"name": "Харьков-Гамбург",
"ticket_hint": null,
"translations": {
"name": {
"ua": "Харків-Гановер",
"pl": "Charkow-Hamburg",
"en": "Kharkiv-Hamburg",
"ru": "Харьков-Гамбург"
},
"ticket_hint": []
},
"sale_end_time_before_departure": 0,
"status": "active",
"city_from": {
"id": 4858,
"name": "Харьков",
"translations": {
"name": {
"ua": "Харків",
"pl": "Charków",
"en": "Харьков",
"ru": "Харьков"
}
},
"population": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2024-02-03T09:07:54.000000Z",
"updated_at": "2025-07-17T07:07:04.000000Z"
},
"city_to": {
"id": 4857,
"name": "Гамбург",
"translations": {
"name": {
"ua": "Гамбург",
"pl": "Hamburg",
"en": "Гамбург",
"ru": "Гамбург"
}
},
"population": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 8,
"created_at": "2024-02-03T09:06:36.000000Z",
"updated_at": "2025-07-17T07:07:04.000000Z"
},
"user": {
"id": 1,
"first_name": "Eladio",
"last_name": "Weber",
"middle_name": "Lazaro",
"full_name": "Eladio Weber Lazaro",
"work_phone": null,
"name": "Herta Jast",
"phone": "+1-667-744-6598",
"email": "admin@admin.com",
"birthday": null,
"subscribe_to_newsletter": false,
"status": "new",
"need_change_password": true,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"created_at": "2023-10-27T07:45:00.000000Z",
"updated_at": "2024-03-12T18:49:24.000000Z"
},
"carrier_name": null,
"payment_time": 15,
"sale_depth": 30,
"flight_generation_depth": 30,
"number_of_seats": 57,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"without_companion_price": 0,
"min_price": null,
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2024-02-03T11:27:43.000000Z",
"updated_at": "2024-04-19T06:50:53.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": "« Назад",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Вперед »",
"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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/bus-routes/82"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 82,
"number": "HH001",
"name": "Харьков-Гамбург",
"ticket_hint": null,
"translations": {
"name": {
"ua": "Харків-Гановер",
"pl": "Charkow-Hamburg",
"en": "Kharkiv-Hamburg",
"ru": "Харьков-Гамбург"
},
"ticket_hint": []
},
"sale_end_time_before_departure": 0,
"status": "active",
"city_from": {
"id": 4858,
"name": "Харьков",
"translations": {
"name": {
"ua": "Харків",
"pl": "Charków",
"en": "Харьков",
"ru": "Харьков"
}
},
"population": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2024-02-03T09:07:54.000000Z",
"updated_at": "2025-07-17T07:07:04.000000Z"
},
"city_to": {
"id": 4857,
"name": "Гамбург",
"translations": {
"name": {
"ua": "Гамбург",
"pl": "Hamburg",
"en": "Гамбург",
"ru": "Гамбург"
}
},
"population": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 8,
"created_at": "2024-02-03T09:06:36.000000Z",
"updated_at": "2025-07-17T07:07:04.000000Z"
},
"user": {
"id": 1,
"first_name": "Eladio",
"last_name": "Weber",
"middle_name": "Lazaro",
"full_name": "Eladio Weber Lazaro",
"work_phone": null,
"name": "Herta Jast",
"phone": "+1-667-744-6598",
"email": "admin@admin.com",
"birthday": null,
"subscribe_to_newsletter": false,
"status": "new",
"need_change_password": true,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"created_at": "2023-10-27T07:45:00.000000Z",
"updated_at": "2024-03-12T18:49:24.000000Z"
},
"bus": {
"id": 148,
"name": "Автобус",
"number": "WK 77296",
"status": "active",
"created_at": "2024-02-16T19:04:00.000000Z",
"updated_at": "2024-05-17T18:26:50.000000Z"
},
"driver": {
"id": 519,
"first_name": "Петро",
"last_name": "Шевченко",
"middle_name": "Петрович",
"full_name": "Петро Шевченко Петрович",
"work_phone": "38063999999",
"name": "Шевченко (водитель)",
"phone": "38063999999",
"email": "driver1@admin.com",
"birthday": null,
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": true,
"percent_of_withdrawal": 0,
"percent_of_discount": -5,
"send_sms_order_post_payment_link": true,
"created_at": "2023-11-02T12:15:46.000000Z",
"updated_at": "2025-06-13T07:14:14.000000Z"
},
"dispatcher": {
"id": 520,
"first_name": "test",
"last_name": "test",
"middle_name": "test",
"full_name": "test test test",
"work_phone": "2345678",
"name": null,
"phone": "123123",
"email": "test@test.com",
"birthday": null,
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": true,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"created_at": "2023-12-19T10:19:03.000000Z",
"updated_at": "2024-12-09T14:50:47.000000Z"
},
"carrier_name": null,
"payment_time": 15,
"sale_depth": 30,
"flight_generation_depth": 30,
"number_of_seats": 57,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"without_companion_price": 0,
"baggage_transportation_conditions": [
{
"id": 208,
"name": "Hand baggage (free)",
"translations": {
"name": {
"ua": "Ручна поклажа (безкоштовно)",
"pl": "Bagaż podręczny (bezpłatny)",
"en": "Hand baggage (free)"
}
},
"prices": [
{
"currency_id": 88,
"price": 0
},
{
"currency_id": 89,
"price": 0
}
],
"created_at": "2024-02-03T11:27:43.000000Z",
"updated_at": "2024-02-03T11:27:43.000000Z"
}
],
"return_conditions": [
{
"id": 29793,
"departure_start": 72,
"departure_end": 0,
"retention_percentage": 25,
"created_at": "2025-06-13T05:58:05.000000Z",
"updated_at": "2025-06-13T05:58:05.000000Z"
},
{
"id": 29794,
"departure_start": 24,
"departure_end": 72,
"retention_percentage": 50,
"created_at": "2025-06-13T05:58:05.000000Z",
"updated_at": "2025-06-13T05:58:05.000000Z"
},
{
"id": 29795,
"departure_start": 0,
"departure_end": 24,
"retention_percentage": 100,
"created_at": "2025-06-13T05:58:05.000000Z",
"updated_at": "2025-06-13T05:58:05.000000Z"
}
],
"currencies": [
{
"id": 88,
"display_name": "Гривня",
"code": "UAH",
"symbol": "₴",
"is_active": true,
"created_at": "2023-11-02T11:57:10.000000Z",
"updated_at": "2023-11-02T11:57:10.000000Z"
},
{
"id": 89,
"display_name": "Злотий",
"code": "PLN",
"symbol": "zł",
"is_active": true,
"created_at": "2023-11-02T11:58:50.000000Z",
"updated_at": "2023-11-02T11:58:50.000000Z"
},
{
"id": 91,
"display_name": "Евро",
"code": "EUR",
"symbol": "€",
"is_active": true,
"created_at": "2024-01-17T05:26:29.000000Z",
"updated_at": "2024-01-17T05:26:29.000000Z"
}
],
"min_price": null,
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"payment_methods": [
{
"id": 1,
"name": "stripe",
"display_name": "Оплата через Stripe",
"logo_path": null,
"created_at": "2023-10-27T07:44:26.000000Z",
"updated_at": "2023-11-03T07:53:11.000000Z"
},
{
"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"
}
],
"notification_settings": {
"notify_about_ticket_sales": true,
"notify_about_ticket_sales_email": "officelat@ukr.net",
"notify_about_ticket_refund": true,
"notify_about_ticket_refund_email": null,
"notify_before_departure": true,
"notify_before_departure_email": null,
"notify_before_departure_time": 600
},
"carrier": {
"id": 1,
"name": "test",
"hotline_phone": null,
"edrpou": null,
"disclaimer": null,
"translations": {
"disclaimer": []
}
},
"created_at": "2024-02-03T11:27:43.000000Z",
"updated_at": "2024-04-19T06:50:53.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.
Endpoints
Search external bus flights tickets
requires authentication
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/external-tickets?from_departure_point_id=10&to_departure_point_id=19&from_departure_city_id=8&to_departure_city_id=20&departure_date=temporibus&number_of_passengers=16" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/external-tickets"
);
const params = {
"from_departure_point_id": "10",
"to_departure_point_id": "19",
"from_departure_city_id": "8",
"to_departure_city_id": "20",
"departure_date": "temporibus",
"number_of_passengers": "16",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
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: 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
requires authentication
Example request:
curl --request POST \
"https://testapi.ticketbus365.com/integration-api/external-tickets/buy" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua" \
--data "{
\"trip_data_bundle\": \"sed\",
\"passengers\": [
\"possimus\"
],
\"payment_method_id\": 9
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/external-tickets/buy"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
let body = {
"trip_data_bundle": "sed",
"passengers": [
"possimus"
],
"payment_method_id": 9
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());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
requires authentication
Example request:
curl --request POST \
"https://testapi.ticketbus365.com/integration-api/external-tickets" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua" \
--data "{
\"data_bundle\": \"beatae\"
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/external-tickets"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
let body = {
"data_bundle": "beatae"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/countries/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 56,
"name": "Venezuela",
"translations": {
"name": {
"en": "Venezuela",
"ar": "Uruguay"
}
},
"code": "BS",
"timezone": null,
"created_at": "2025-09-25T06:32:23.000000Z",
"updated_at": "2025-09-25T06:32:23.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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"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}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": null,
"name": "Cathrynborough",
"translations": {
"name": {
"en": "Cathrynborough",
"ar": "Port Elizabethland"
}
},
"population": null,
"number_of_bus_routes": 0,
"visibility": null,
"country_id": 58,
"created_at": null,
"updated_at": null
},
{
"id": null,
"name": "Lorineton",
"translations": {
"name": {
"en": "Lorineton",
"ar": "Lake Alicia"
}
},
"population": null,
"number_of_bus_routes": 0,
"visibility": null,
"country_id": 60,
"created_at": null,
"updated_at": 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": "« Назад",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Вперед »",
"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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"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}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": null,
"name": "Yundtbury",
"translations": {
"name": {
"en": "Yundtbury",
"ar": "Riceview"
}
},
"population": null,
"number_of_bus_routes": 0,
"visibility": null,
"country_id": 62,
"created_at": null,
"updated_at": null
}
],
"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": "« Назад",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": "/?page=2",
"label": "2",
"active": false
},
{
"url": "/?page=2",
"label": "Вперед »",
"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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/cities/267"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"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}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"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": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:05.000000Z",
"updated_at": "2024-02-18T14:28:39.000000Z"
},
"visibility": true,
"created_at": "2023-11-02T11:52:18.000000Z",
"updated_at": "2024-03-23T12:23:48.000000Z"
},
{
"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": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:05.000000Z",
"updated_at": "2024-02-18T14:28:39.000000Z"
},
"visibility": true,
"created_at": "2023-11-02T11:52:18.000000Z",
"updated_at": "2024-03-23T12:23:48.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": "« Назад",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Вперед »",
"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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/departure-points/87"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"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": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:05.000000Z",
"updated_at": "2024-02-18T14:28:39.000000Z"
},
"visibility": true,
"created_at": "2023-11-02T11:52:18.000000Z",
"updated_at": "2024-03-23T12:23:48.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" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/orders/18"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": null,
"public_id": "",
"paid_at": null,
"agent_id": null,
"status": null,
"total_price": 868.15,
"payment_on_the_spot": null,
"expired_at": null,
"created_at": null,
"updated_at": null
}
}
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/aut" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua" \
--data "{
\"cancel_reason_id\": 1,
\"cancel_comment\": \"Comment\",
\"clear_occupied_seats\": true
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/cancel-ticket/aut"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
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": 22,
"type": "internal",
"public_id": "YHETxCGlb0NmnHK",
"price": "10.00",
"order_id": 25,
"first_name": "test",
"last_name": "test",
"phone": "11111111111",
"email": null,
"birthday": null,
"passenger_type": "adult",
"departure_date": "2024-01-25T09:00:00.000000Z",
"bus_flight_id": 207,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": null,
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"is_external": false,
"created_at": "2024-01-25T07:57:29.000000Z",
"updated_at": "2025-08-06T06:32:46.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/quibusdam" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua" \
--data "{
\"amount\": 100,
\"payment_method_id\": 1
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/accept-partially-payment/quibusdam"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
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": 22,
"type": "internal",
"public_id": "YHETxCGlb0NmnHK",
"price": "10.00",
"order_id": 25,
"first_name": "test",
"last_name": "test",
"phone": "11111111111",
"email": null,
"birthday": null,
"passenger_type": "adult",
"departure_date": "2024-01-25T09:00:00.000000Z",
"bus_flight_id": 207,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": null,
"prepayments": [],
"prepayments_amount": 0,
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"is_external": false,
"created_at": "2024-01-25T07:57:29.000000Z",
"updated_at": "2025-08-06T06:32:46.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/ad" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/return-ticket/ad"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "PATCH",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 22,
"type": "internal",
"public_id": "YHETxCGlb0NmnHK",
"price": "10.00",
"order_id": 25,
"first_name": "test",
"last_name": "test",
"phone": "11111111111",
"email": null,
"birthday": null,
"passenger_type": "adult",
"departure_date": "2024-01-25T09:00:00.000000Z",
"bus_flight_id": 207,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": null,
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"is_external": false,
"created_at": "2024-01-25T07:57:29.000000Z",
"updated_at": "2025-08-06T06:32:46.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}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/profile"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
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" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/currencies"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 545,
"display_name": "XPF",
"code": "VUV",
"symbol": "CNY",
"is_active": true,
"created_at": "2025-09-25T06:32:23.000000Z",
"updated_at": "2025-09-25T06:32:23.000000Z"
},
{
"id": 546,
"display_name": "XOF",
"code": "SDG",
"symbol": "PHP",
"is_active": true,
"created_at": "2025-09-25T06:32:23.000000Z",
"updated_at": "2025-09-25T06:32:23.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" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"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]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 62,
"name": "Dr. Augustus Kessler DDS",
"slug": null
},
{
"id": 63,
"name": "Easton Tillman",
"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": "« Назад",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Вперед »",
"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" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/payment-methods"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 120,
"name": "spot",
"display_name": "Miss Lyda Bashirian",
"logo_path": "Prof. Reid Kertzmann PhD",
"created_at": "2025-09-25T06:32:24.000000Z",
"updated_at": "2025-09-25T06:32:24.000000Z"
},
{
"id": 121,
"name": "cash",
"display_name": "Obie Hammes",
"logo_path": "Mekhi Baumbach",
"created_at": "2025-09-25T06:32:24.000000Z",
"updated_at": "2025-09-25T06:32:24.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" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"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]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).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": "open",
"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": "wi-fi",
"created_at": "2023-11-02T12:08:09.000000Z",
"updated_at": "2023-11-02T12:08:09.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"
}
],
"created_at": "2024-02-16T19:04:00.000000Z",
"updated_at": "2024-05-17T18:26:50.000000Z"
},
"driver": {
"id": 519,
"first_name": "Петро",
"last_name": "Шевченко",
"middle_name": "Петрович",
"full_name": "Петро Шевченко Петрович",
"work_phone": "38063999999"
},
"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)",
"translations": {
"name": {
"ua": "Ручна поклажа (безкоштовно)",
"pl": "Bagaż podręczny (bezpłatny)",
"en": "Hand baggage (free)"
}
},
"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": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:05.000000Z",
"updated_at": "2024-02-18T14:28:39.000000Z"
},
"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,
"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": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:37.000000Z",
"updated_at": "2025-07-17T06:32:14.000000Z"
},
"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,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:39:22.000000Z"
}
],
"payment_methods": [
{
"id": 1,
"name": "stripe",
"display_name": "Оплата через Stripe",
"logo_path": null,
"created_at": "2023-10-27T07:44:26.000000Z",
"updated_at": "2023-11-03T07:53:11.000000Z"
},
{
"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,
"translations": {
"disclaimer": []
}
},
"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": "2024-04-22T06:40:52.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": "open",
"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": "wi-fi",
"created_at": "2023-11-02T12:08:09.000000Z",
"updated_at": "2023-11-02T12:08:09.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"
}
],
"created_at": "2024-02-16T19:04:00.000000Z",
"updated_at": "2024-05-17T18:26:50.000000Z"
},
"driver": {
"id": 519,
"first_name": "Петро",
"last_name": "Шевченко",
"middle_name": "Петрович",
"full_name": "Петро Шевченко Петрович",
"work_phone": "38063999999"
},
"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)",
"translations": {
"name": {
"ua": "Ручна поклажа (безкоштовно)",
"pl": "Bagaż podręczny (bezpłatny)",
"en": "Hand baggage (free)"
}
},
"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": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:05.000000Z",
"updated_at": "2024-02-18T14:28:39.000000Z"
},
"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,
"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": null,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2023-11-02T11:51:37.000000Z",
"updated_at": "2025-07-17T06:32:14.000000Z"
},
"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,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:39:22.000000Z"
}
],
"payment_methods": [
{
"id": 1,
"name": "stripe",
"display_name": "Оплата через Stripe",
"logo_path": null,
"created_at": "2023-10-27T07:44:26.000000Z",
"updated_at": "2023-11-03T07:53:11.000000Z"
},
{
"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,
"translations": {
"disclaimer": []
}
},
"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": "2024-04-22T06:40:52.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" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/flight-details/1/1/2"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
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: 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.
Buy ticket
Buy ticket
Example request:
curl --request POST \
"https://testapi.ticketbus365.com/integration-api/tickets" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua" \
--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,
\"email\": \"some@example.com\",
\"phone\": \"123456789\",
\"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",
"locale": "ua",
};
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,
"email": "some@example.com",
"phone": "123456789",
"send_tickets_to_email": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"data": {
"id": null,
"public_id": "",
"paid_at": null,
"agent_id": null,
"status": null,
"total_price": 110.54,
"payment_on_the_spot": null,
"expired_at": null,
"created_at": null,
"updated_at": null
},
"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" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "locale: ua"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/ticket/z2zcwP3Z"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"locale": "ua",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 22,
"type": "internal",
"public_id": "YHETxCGlb0NmnHK",
"price": "10.00",
"currency": {
"id": 88,
"display_name": "Гривня",
"code": "UAH",
"symbol": "₴",
"is_active": true,
"created_at": "2023-11-02T11:57:10.000000Z",
"updated_at": "2023-11-02T11:57:10.000000Z"
},
"order": {
"id": 25,
"public_id": "kOKT9MVfb048GOi",
"paid_at": null,
"agent_id": null,
"status": "pending",
"total_price": "10.00",
"payment_on_the_spot": true,
"expired_at": "2024-01-25T08:12:29.000000Z",
"created_at": "2024-01-25T07:57:29.000000Z",
"updated_at": "2024-01-25T07:57:29.000000Z"
},
"order_id": 25,
"bus_flight": {
"id": 207,
"departure_date": "2024-01-25T10:00:00.000000Z",
"sale_end_time_before_departure": 0,
"arrival_date": "2024-01-25T13:00:00.000000Z",
"hours_in_travel": 3,
"bus": {
"id": 148,
"name": "Автобус",
"number": "WK 77296",
"status": "active",
"created_at": "2024-02-16T19:04:00.000000Z",
"updated_at": "2024-05-17T18:26:50.000000Z"
},
"status": "open",
"payment_time": 15,
"sale_depth": 15,
"number_of_seats": 15,
"carrier_name": "тест",
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": null,
"seat_selection_not_allowed_date_to": null,
"without_companion": true,
"min_price": [
{
"currency_id": 89,
"price": "10"
},
{
"currency_id": 88,
"price": "10"
}
],
"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"
}
},
"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,
"connecting_bus_flight": null,
"position": 0,
"sale_status": "open",
"is_active": true,
"has_transfer": false,
"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": "Голливуд"
}
},
"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,
"connecting_bus_flight": null,
"position": 1,
"sale_status": "open",
"is_active": true,
"has_transfer": false,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:39:22.000000Z"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2024-01-19T11:59:02.000000Z",
"updated_at": "2024-04-22T06:40:52.000000Z"
},
"from_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"
}
},
"visibility": true,
"created_at": "2023-11-02T11:52:18.000000Z",
"updated_at": "2024-03-23T12:23:48.000000Z"
},
"to_departure_point": {
"id": 88,
"name": "Голливуд",
"translations": {
"name": {
"ua": "Голливуд",
"pl": "Голливуд",
"en": "Голливуд"
}
},
"visibility": true,
"created_at": "2023-11-02T11:53:33.000000Z",
"updated_at": "2023-11-02T11:53:33.000000Z"
},
"first_name": "test",
"last_name": "test",
"phone": "11111111111",
"email": null,
"birthday": null,
"passenger_type": "adult",
"departure_date": "2024-01-25T09:00:00.000000Z",
"occupied_seats": [
{
"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"
}
],
"bus_flight_id": 207,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": null,
"prepayments": [],
"prepayments_amount": 0,
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"is_external": false,
"created_at": "2024-01-25T07:57:29.000000Z",
"updated_at": "2025-08-06T06:32:46.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.