Introduction
if need change locale pass to header "locale" with value "en" or "ua" or "pl
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token by visiting your dashboard and clicking Generate API token.
Bus flight
Bus flights
Get list of bus flights
requires authentication
Get list of bus flights
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/bus-flights?page=1&per_page=10&status=open&bus_route_number=UA+1234556&departure_date=2021-01-01&from_departure_point_id=1&to_departure_point_id=1&without_connecting=1&date_range[from]=2021-01-01&date_range[to]=2021-01-01&bus_route_id=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/bus-flights"
);
const params = {
"page": "1",
"per_page": "10",
"status": "open",
"bus_route_number": "UA 1234556",
"departure_date": "2021-01-01",
"from_departure_point_id": "1",
"to_departure_point_id": "1",
"without_connecting": "1",
"date_range[from]": "2021-01-01",
"date_range[to]": "2021-01-01",
"bus_route_id": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 17387,
"departure_date": "2026-06-08T08:30:00.000000Z",
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"arrival_date": "2026-06-08T20:30:00.000000Z",
"hours_in_travel": 12,
"route": {
"id": 700,
"number": "LAT-624",
"name": "Brno - Bucharest",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Brno - Bucharest",
"ua": "Brno - Bucharest"
},
"ticket_hint": {
"en": "Please arrive at the platform 20 minutes before departure.",
"ua": "Please arrive at the platform 20 minutes before departure."
}
},
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"status": "active",
"carrier_name": null,
"payment_time": 30,
"sale_depth": 45,
"flight_generation_depth": 60,
"number_of_seats": 52,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-12-05",
"seat_selection_not_allowed_date_to": "2026-12-12",
"without_companion": true,
"without_companion_price": 12,
"min_price": [
{
"currency_id": 88,
"price": 48
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
},
"status": "open",
"payment_time": 30,
"sale_depth": 45,
"number_of_seats": 52,
"carrier_name": null,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-06-06",
"seat_selection_not_allowed_date_to": "2026-06-07",
"without_companion": true,
"min_price": [
{
"currency_id": 88,
"price": 67
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
},
{
"id": 17388,
"departure_date": "2026-07-01T08:30:00.000000Z",
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"arrival_date": "2026-07-01T20:30:00.000000Z",
"hours_in_travel": 12,
"route": {
"id": 702,
"number": "LAT-933",
"name": "Krakow - Chisinau",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Krakow - Chisinau",
"ua": "Krakow - Chisinau"
},
"ticket_hint": {
"en": "Please arrive at the platform 20 minutes before departure.",
"ua": "Please arrive at the platform 20 minutes before departure."
}
},
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"status": "active",
"carrier_name": null,
"payment_time": 30,
"sale_depth": 45,
"flight_generation_depth": 60,
"number_of_seats": 52,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-12-05",
"seat_selection_not_allowed_date_to": "2026-12-12",
"without_companion": true,
"without_companion_price": 12,
"min_price": [
{
"currency_id": 88,
"price": 54
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-06-05T13:34:33.000000Z",
"updated_at": "2026-06-05T13:34:33.000000Z"
},
"status": "open",
"payment_time": 30,
"sale_depth": 45,
"number_of_seats": 52,
"carrier_name": null,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-06-29",
"seat_selection_not_allowed_date_to": "2026-06-30",
"without_companion": true,
"min_price": [
{
"currency_id": 88,
"price": 82
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-06-05T13:34:33.000000Z",
"updated_at": "2026-06-05T13:34:33.000000Z"
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show bus flights
requires authentication
Get list of bus flights
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/bus-flights/207" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/bus-flights/207"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 17389,
"departure_date": "2026-06-14T08:30:00.000000Z",
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"arrival_date": "2026-06-14T20:30:00.000000Z",
"hours_in_travel": 12,
"route": {
"id": 704,
"number": "LAT-530",
"name": "Bucharest - Brno",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Bucharest - Brno",
"ua": "Bucharest - Brno"
},
"ticket_hint": {
"en": "Please arrive at the platform 20 minutes before departure.",
"ua": "Please arrive at the platform 20 minutes before departure."
}
},
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"status": "active",
"carrier_name": null,
"payment_time": 30,
"sale_depth": 45,
"flight_generation_depth": 60,
"number_of_seats": 52,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-12-05",
"seat_selection_not_allowed_date_to": "2026-12-12",
"without_companion": true,
"without_companion_price": 12,
"min_price": [
{
"currency_id": 88,
"price": 46
}
],
"additional_price_settings": [
{
"id": 58,
"name": "Early booking discount",
"percent": "15.00",
"period": "sale_date",
"date_from": "2026-06-06",
"date_to": "2026-06-19",
"is_active": true,
"bus_route_id": 704,
"created_at": "2026-06-05T13:34:33.000000Z",
"updated_at": "2026-06-05T13:34:33.000000Z"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-06-05T13:34:33.000000Z",
"updated_at": "2026-06-05T13:34:33.000000Z"
},
"bus": {
"id": 1191,
"name": "Neoplan Tourliner",
"number": "AA 1680 zv",
"status": "active",
"created_at": "2026-06-05T13:34:33.000000Z",
"updated_at": "2026-06-05T13:34:33.000000Z"
},
"user": {
"id": 6448,
"first_name": "Olena",
"last_name": "Kravchenko",
"middle_name": "Petrovych",
"full_name": "Olena Kravchenko Petrovych",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Olena Kravchenko",
"phone": "+380769261197",
"email": "hdickens@example.org",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
},
"driver": {
"id": 6447,
"first_name": "Maksym",
"last_name": "Bondarenko",
"middle_name": "Petrovych",
"full_name": "Maksym Bondarenko Petrovych",
"work_phone": null,
"gender": null,
"birthday": null
},
"dispatcher": {
"id": 6449,
"first_name": "Andrii",
"last_name": "Bondarenko",
"middle_name": "Oleksandrivna",
"full_name": "Andrii Bondarenko Oleksandrivna",
"work_phone": null,
"gender": null,
"birthday": null
},
"status": "open",
"payment_time": 30,
"sale_depth": 45,
"number_of_seats": 52,
"carrier_name": null,
"occupiedSeats": [
{
"id": 54859,
"bus_flight_id": 17389,
"from_departure_point_id": 577,
"to_departure_point_id": 576,
"seat_number": 7,
"type": "reserved",
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
}
],
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-06-12",
"seat_selection_not_allowed_date_to": "2026-06-13",
"without_companion": true,
"baggage_transportation_conditions": [
{
"id": 21235,
"name": "Additional suitcase",
"description": null,
"translations": {
"name": {
"en": "Additional suitcase",
"ua": "Additional suitcase"
},
"description": []
},
"prices": [
{
"currency_id": 88,
"price": 25
}
],
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
}
],
"return_conditions": [
{
"id": 55175,
"departure_start": 48,
"departure_end": 24,
"retention_percentage": 10,
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
}
],
"currencies": [
{
"id": 984,
"display_name": "VUV",
"code": "VUV",
"symbol": "VUV",
"is_active": true,
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
}
],
"min_price": [
{
"currency_id": 88,
"price": 74
}
],
"prices": [
{
"id": 19885332,
"from_departure_point_id": 573,
"to_departure_point_id": 574,
"price": [
{
"amount": 71,
"currency_id": 88
}
],
"is_active": true,
"is_forbidden": false
}
],
"schedules": [
{
"id": 664628,
"departure_point_id": 575,
"departure_point": {
"id": 575,
"name": "West Bus Terminal",
"translations": {
"name": {
"en": "West Bus Terminal",
"ua": "West Bus Terminal"
}
},
"city": {
"id": 8210,
"name": "Odesa",
"translations": {
"name": {
"en": "Odesa",
"ua": "Odesa"
}
},
"population": 1224186,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
},
"visibility": true,
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
},
"arrival_time": "23:00",
"departure_time": "21:30",
"days_in_road": 0,
"platform": "P9",
"has_landing": true,
"has_disembarkation": true,
"is_connecting": false,
"is_connecting_start_endpoint": false,
"position": 1,
"sale_status": "open",
"is_active": true,
"has_transfer": false,
"maybe_transfer": false,
"hint": "Boarding starts 20 minutes before departure.",
"translations": {
"hint": {
"en": "Boarding starts 20 minutes before departure.",
"ua": "Boarding starts 20 minutes before departure."
}
},
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"payment_methods": [
{
"id": 179,
"name": "liqpay",
"display_name": "LiqPay",
"logo_path": "payment-methods/liqpay.svg",
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
}
],
"carrier": {
"id": 122,
"name": "Continental Bus",
"hotline_phone": null,
"edrpou": null,
"disclaimer": null,
"insurance_description": null,
"insurance_company_name": null,
"insurance_company_address": null,
"logo_url": null,
"insurance_logo_url": null,
"translations": {
"disclaimer": [],
"insurance_description": [],
"insurance_company_name": [],
"insurance_company_address": []
}
},
"created_at": "2026-06-05T13:34:34.000000Z",
"updated_at": "2026-06-05T13:34:34.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Bus route
Bus routes
Get all bus routes
requires authentication
Get all bus routes
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/bus-routes?page=1&search=000+111&status=active&city_from_id=1&city_to_id=2&departure_date=2021-01-01&from_departure_point_id=1&to_departure_point_id=1&without_connecting=1&include_schedule=1&per_page=10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/bus-routes"
);
const params = {
"page": "1",
"search": "000 111",
"status": "active",
"city_from_id": "1",
"city_to_id": "2",
"departure_date": "2021-01-01",
"from_departure_point_id": "1",
"to_departure_point_id": "1",
"without_connecting": "1",
"include_schedule": "1",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 696,
"number": "LAT-443",
"name": "Munich - Munich",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Munich - Munich",
"ua": "Munich - Munich"
},
"ticket_hint": {
"en": "Please arrive at the platform 20 minutes before departure.",
"ua": "Please arrive at the platform 20 minutes before departure."
}
},
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"status": "active",
"city_from": {
"id": 8183,
"name": "Munich",
"translations": {
"name": {
"en": "Munich",
"ua": "Munich"
}
},
"population": 2780625,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 221,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"city_to": {
"id": 8184,
"name": "Munich",
"translations": {
"name": {
"en": "Munich",
"ua": "Munich"
}
},
"population": 1745801,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 221,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"user": {
"id": 6395,
"first_name": "Olena",
"last_name": "Kravchenko",
"middle_name": "Oleksandrivna",
"full_name": "Olena Kravchenko Oleksandrivna",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Olena Kravchenko",
"phone": "+380552012586",
"email": "hamill.vella@example.net",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"carrier_name": null,
"payment_time": 30,
"sale_depth": 45,
"flight_generation_depth": 60,
"number_of_seats": 52,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-12-05",
"seat_selection_not_allowed_date_to": "2026-12-12",
"without_companion": true,
"without_companion_price": 12,
"min_price": [
{
"currency_id": 88,
"price": 83
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
{
"id": 697,
"number": "LAT-506",
"name": "Brno - Kyiv",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Brno - Kyiv",
"ua": "Brno - Kyiv"
},
"ticket_hint": {
"en": "Please arrive at the platform 20 minutes before departure.",
"ua": "Please arrive at the platform 20 minutes before departure."
}
},
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"status": "active",
"city_from": {
"id": 8187,
"name": "Brno",
"translations": {
"name": {
"en": "Brno",
"ua": "Brno"
}
},
"population": 2574472,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 9,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"city_to": {
"id": 8188,
"name": "Kyiv",
"translations": {
"name": {
"en": "Kyiv",
"ua": "Kyiv"
}
},
"population": 1655850,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"user": {
"id": 6400,
"first_name": "Iryna",
"last_name": "Kovalenko",
"middle_name": "Ivanovych",
"full_name": "Iryna Kovalenko Ivanovych",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Iryna Kovalenko",
"phone": "+380257025188",
"email": "effertz.cara@example.com",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"carrier_name": null,
"payment_time": 30,
"sale_depth": 45,
"flight_generation_depth": 60,
"number_of_seats": 52,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-12-05",
"seat_selection_not_allowed_date_to": "2026-12-12",
"without_companion": true,
"without_companion_price": 12,
"min_price": [
{
"currency_id": 88,
"price": 74
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show bus route
requires authentication
Get bus route
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/bus-routes/82" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/bus-routes/82"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 698,
"number": "LAT-634",
"name": "Warsaw - Kyiv",
"ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"translations": {
"name": {
"en": "Warsaw - Kyiv",
"ua": "Warsaw - Kyiv"
},
"ticket_hint": {
"en": "Please arrive at the platform 20 minutes before departure.",
"ua": "Please arrive at the platform 20 minutes before departure."
}
},
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"status": "active",
"city_from": {
"id": 8191,
"name": "Warsaw",
"translations": {
"name": {
"en": "Warsaw",
"ua": "Warsaw"
}
},
"population": 2353913,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 7,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
},
"city_to": {
"id": 8192,
"name": "Kyiv",
"translations": {
"name": {
"en": "Kyiv",
"ua": "Kyiv"
}
},
"population": 2112785,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
},
"user": {
"id": 6405,
"first_name": "Serhii",
"last_name": "Tkachenko",
"middle_name": "Oleksandrivna",
"full_name": "Serhii Tkachenko Oleksandrivna",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Serhii Tkachenko",
"phone": "+380894853514",
"email": "bednar.cindy@example.org",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
},
"bus": {
"id": 1181,
"name": "Setra S 515 HD",
"number": "AA 9796 rc",
"status": "active",
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
},
"driver": {
"id": 6407,
"first_name": "Andrii",
"last_name": "Bondarenko",
"middle_name": "Mykhailivna",
"full_name": "Andrii Bondarenko Mykhailivna",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Andrii Bondarenko",
"phone": "+380650817835",
"email": "missouri87@example.org",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
},
"dispatcher": {
"id": 6408,
"first_name": "Natalia",
"last_name": "Kravchenko",
"middle_name": "Mykhailivna",
"full_name": "Natalia Kravchenko Mykhailivna",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Natalia Kravchenko",
"phone": "+380829506424",
"email": "jwalter@example.com",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
},
"carrier_name": null,
"payment_time": 30,
"sale_depth": 45,
"flight_generation_depth": 60,
"number_of_seats": 52,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-12-05",
"seat_selection_not_allowed_date_to": "2026-12-12",
"without_companion": true,
"without_companion_price": 12,
"baggage_transportation_conditions": [
{
"id": 21234,
"name": "Standard luggage up to 20 kg",
"description": null,
"translations": {
"name": {
"en": "Standard luggage up to 20 kg",
"ua": "Standard luggage up to 20 kg"
},
"description": []
},
"prices": [
{
"currency_id": 88,
"price": 0
}
],
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
}
],
"return_conditions": [
{
"id": 55174,
"departure_start": 48,
"departure_end": 24,
"retention_percentage": 20,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
}
],
"currencies": [
{
"id": 983,
"display_name": "GHS",
"code": "GHS",
"symbol": "GHS",
"is_active": true,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
}
],
"min_price": [
{
"currency_id": 88,
"price": 46
}
],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"payment_methods": [
{
"id": 178,
"name": "spot",
"display_name": "Pay at boarding",
"logo_path": "payment-methods/spot.svg",
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
}
],
"notification_settings": {
"notify_about_ticket_sales": true,
"notify_about_ticket_sales_email": "wweimann@yahoo.com",
"notify_about_ticket_refund": true,
"notify_about_ticket_refund_email": "thurman20@kessler.com",
"notify_before_departure": true,
"notify_before_departure_email": "gfeil@hotmail.com",
"notify_before_departure_time": 1393
},
"transfer_types": [
{
"id": 1,
"bus_route_id": 698,
"name": "City center transfer",
"is_active": true,
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
}
],
"carrier": {
"id": 113,
"name": "Baltic Coach",
"hotline_phone": null,
"edrpou": null,
"disclaimer": null,
"insurance_description": null,
"insurance_company_name": null,
"insurance_company_address": null,
"logo_url": null,
"insurance_logo_url": null,
"translations": {
"disclaimer": [],
"insurance_description": [],
"insurance_company_name": [],
"insurance_company_address": []
}
},
"created_at": "2026-06-05T13:34:32.000000Z",
"updated_at": "2026-06-05T13:34:32.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
External tickets
External source tickets
Search external bus flights tickets
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/external-tickets?from_departure_point_id=15&to_departure_point_id=10&from_departure_city_id=15&to_departure_city_id=14&departure_date=voluptatem&number_of_passengers=14¤cy_code=voluptas"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/external-tickets"
);
const params = {
"from_departure_point_id": "15",
"to_departure_point_id": "10",
"from_departure_city_id": "15",
"to_departure_city_id": "14",
"departure_date": "voluptatem",
"number_of_passengers": "14",
"currency_code": "voluptas",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
fetch(url, {
method: "GET",
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 997
access-control-allow-origin: *
{
"message": "Unauthorized"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Buy external bus flight tickets
Example request:
curl --request POST \
"https://testapi.ticketbus365.com/integration-api/external-tickets/buy" \
--header "Content-Type: application/json" \
--data "{
\"trip_data_bundle\": \"maiores\",
\"passengers\": [
\"sint\"
],
\"payment_method_id\": 11
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/external-tickets/buy"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"trip_data_bundle": "maiores",
"passengers": [
"sint"
],
"payment_method_id": 11
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 996
access-control-allow-origin: *
{
"message": "Unauthorized"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get external bus flight details
Example request:
curl --request POST \
"https://testapi.ticketbus365.com/integration-api/external-tickets" \
--header "Content-Type: application/json" \
--data "{
\"data_bundle\": \"molestias\"
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/external-tickets"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"data_bundle": "molestias"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 995
access-control-allow-origin: *
{
"message": "Unauthorized"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Geo
Geo data
Get a country
requires authentication
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/countries/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/countries/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 213,
"name": "Greece",
"translations": {
"name": {
"en": "Greece",
"ua": "Greece"
}
},
"code": "GR",
"timezone": "Europe/Athens",
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all cities
requires authentication
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/cities?page=1&search=New+York&country=1&per_page=10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/cities"
);
const params = {
"page": "1",
"search": "New York",
"country": "1",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 8167,
"name": "Munich",
"translations": {
"name": {
"en": "Munich",
"ua": "Munich"
}
},
"departure_points": [
{
"id": 566,
"name": "International Coach Terminal",
"translations": {
"name": {
"en": "International Coach Terminal",
"ua": "International Coach Terminal"
}
},
"visibility": true,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
],
"country": {
"id": 215,
"name": "Germany",
"translations": {
"name": {
"en": "Germany",
"ua": "Germany"
}
},
"code": "DE",
"timezone": "Europe/Berlin",
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"population": 646358,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 215,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
{
"id": 8169,
"name": "Vienna",
"translations": {
"name": {
"en": "Vienna",
"ua": "Vienna"
}
},
"departure_points": [
{
"id": 567,
"name": "Main Railway Station",
"translations": {
"name": {
"en": "Main Railway Station",
"ua": "Main Railway Station"
}
},
"visibility": true,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
],
"country": {
"id": 216,
"name": "Austria",
"translations": {
"name": {
"en": "Austria",
"ua": "Austria"
}
},
"code": "AT",
"timezone": "Europe/Vienna",
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"population": 2899995,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 216,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Search cities (new)
requires authentication
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/cities/search?query=New+York" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/cities/search"
);
const params = {
"query": "New York",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 8171,
"name": "Bratislava",
"translations": {
"name": {
"en": "Bratislava",
"ua": "Bratislava"
}
},
"departure_points": [
{
"id": 568,
"name": "International Coach Terminal",
"translations": {
"name": {
"en": "International Coach Terminal",
"ua": "International Coach Terminal"
}
},
"visibility": true,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
],
"country": {
"id": 218,
"name": "Slovakia",
"translations": {
"name": {
"en": "Slovakia",
"ua": "Slovakia"
}
},
"code": "SK",
"timezone": "Europe/Bratislava",
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"population": 2588956,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 218,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
],
"links": {
"first": "/?page=1",
"last": "/?page=2",
"prev": null,
"next": "/?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": "/?page=2",
"label": "2",
"page": 2,
"active": false
},
{
"url": "/?page=2",
"label": "Вперед »",
"page": 2,
"active": false
}
],
"path": "/",
"per_page": 1,
"to": 1,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get a city
requires authentication
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/cities/267" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/cities/267"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 998
access-control-allow-origin: *
{
"message": "Unauthorized"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all departure points
requires authentication
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/departure-points?page=1&search=New+York&city=1&per_page=10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/departure-points"
);
const params = {
"page": "1",
"search": "New York",
"city": "1",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 570,
"name": "Airport Bus Terminal",
"translations": {
"name": {
"en": "Airport Bus Terminal",
"ua": "Airport Bus Terminal"
}
},
"city": {
"id": 8176,
"name": "Krakow",
"translations": {
"name": {
"en": "Krakow",
"ua": "Krakow"
}
},
"population": 2817495,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 7,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"visibility": true,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
{
"id": 571,
"name": "West Bus Terminal",
"translations": {
"name": {
"en": "West Bus Terminal",
"ua": "West Bus Terminal"
}
},
"city": {
"id": 8178,
"name": "Lviv",
"translations": {
"name": {
"en": "Lviv",
"ua": "Lviv"
}
},
"population": 1027627,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"visibility": true,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get a departure point
requires authentication
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/departure-points/87" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/departure-points/87"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 572,
"name": "Airport Bus Terminal",
"translations": {
"name": {
"en": "Airport Bus Terminal",
"ua": "Airport Bus Terminal"
}
},
"city": {
"id": 8180,
"name": "Odesa",
"translations": {
"name": {
"en": "Odesa",
"ua": "Odesa"
}
},
"population": 1786696,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 6,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
"visibility": true,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Orders
Show order
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/orders/18"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/orders/18"
);
fetch(url, {
method: "GET",
}).then(response => response.json());Example response (200):
{
"data": {
"id": 5942,
"uuid": null,
"public_id": "IxHkvBlcSU2TXFG",
"paid_at": null,
"tickets": [
{
"id": 6070,
"type": "internal",
"target_departure_date": "2026-06-18T08:30:00.000000Z",
"target_arrival_date": "2026-06-18T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "ARNms1igzRC6Gs0",
"price": "107.81",
"price_adjustment_percent": "0.00",
"order_id": 5942,
"first_name": "Maksym",
"last_name": "Bondarenko",
"phone": "+380569598029",
"email": "mackenzie14@example.net",
"birthday": "2003-11-27",
"passenger_type": "adult",
"departure_date": "2026-06-18T08:30:00.000000Z",
"bus_flight_id": 17404,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": "Window seat preferred.",
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"external_from_departure_point_name": null,
"external_to_departure_point_name": null,
"is_external": false,
"created_at": "2026-06-05T13:34:40.000000Z",
"updated_at": "2026-06-05T13:34:40.000000Z"
}
],
"user": {
"id": 6593,
"first_name": "Andrii",
"last_name": "Bondarenko",
"middle_name": "Petrovych",
"full_name": "Andrii Bondarenko Petrovych",
"work_phone": null,
"gender": null,
"birthday": null,
"name": "Andrii Bondarenko",
"phone": "+380146768691",
"email": "schmidt.morris@example.com",
"subscribe_to_newsletter": false,
"status": "active",
"need_change_password": false,
"percent_of_withdrawal": 0,
"percent_of_discount": 0,
"send_sms_order_post_payment_link": true,
"send_email_notification_for_passenger": true,
"hide_transfer_details": false,
"created_at": "2026-06-05T13:34:40.000000Z",
"updated_at": "2026-06-05T13:34:40.000000Z"
},
"agent_id": null,
"currency": {
"id": 986,
"display_name": "KZT",
"code": "KZT",
"symbol": "KZT",
"is_active": true,
"created_at": "2026-06-05T13:34:40.000000Z",
"updated_at": "2026-06-05T13:34:40.000000Z"
},
"status": "pending",
"total_price": "79.94",
"payment_on_the_spot": false,
"expired_at": null,
"created_at": "2026-06-05T13:34:40.000000Z",
"updated_at": "2026-06-05T13:34:40.000000Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Download pdf of order tickets
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/orders/18/download-tickets" \
--header "Content-Type: application/json" \
--data "{
\"format\": \"pdf\"
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/orders/18/download-tickets"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"format": "pdf"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 993
access-control-allow-origin: *
{
"message": "Unauthorized"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Passengers
Passengers
Cancel ticket
Cancel ticket
Example request:
curl --request PATCH \
"https://testapi.ticketbus365.com/integration-api/cancel-ticket/qui" \
--header "Content-Type: application/json" \
--data "{
\"cancel_reason_id\": 1,
\"cancel_comment\": \"Comment\",
\"clear_occupied_seats\": true
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/cancel-ticket/qui"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"cancel_reason_id": 1,
"cancel_comment": "Comment",
"clear_occupied_seats": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"data": {
"id": 6066,
"type": "internal",
"target_departure_date": "2026-06-30T08:30:00.000000Z",
"target_arrival_date": "2026-06-30T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "IxX5vBlcSU2TXFG",
"price": "86.92",
"price_adjustment_percent": "0.00",
"order_id": 5938,
"first_name": "Iryna",
"last_name": "Melnyk",
"phone": "+380052923685",
"email": "wjacobson@example.org",
"birthday": "1964-05-07",
"passenger_type": "adult",
"departure_date": "2026-06-30T08:30:00.000000Z",
"bus_flight_id": 17399,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": "Window seat preferred.",
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"external_from_departure_point_name": null,
"external_to_departure_point_name": null,
"is_external": false,
"created_at": "2026-06-05T13:34:38.000000Z",
"updated_at": "2026-06-05T13:34:38.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/ipsum" \
--header "Content-Type: application/json" \
--data "{
\"amount\": 100,
\"payment_method_id\": 1
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/accept-partially-payment/ipsum"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"amount": 100,
"payment_method_id": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"data": {
"id": 6068,
"type": "internal",
"target_departure_date": "2026-06-13T08:30:00.000000Z",
"target_arrival_date": "2026-06-13T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "iN3gDfaj7G4uSUZ",
"price": "41.38",
"price_adjustment_percent": "0.00",
"order_id": 5940,
"first_name": "Maksym",
"last_name": "Kovalenko",
"phone": "+380065983431",
"email": "marina30@example.com",
"birthday": "1993-04-01",
"passenger_type": "adult",
"departure_date": "2026-06-13T08:30:00.000000Z",
"bus_flight_id": 17402,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": "Window seat preferred.",
"prepayments": [
{
"id": 234,
"ticket_id": 6068,
"currency_id": 88,
"payment_method_id": 183,
"amount": 15.95,
"created_at": "2026-06-05T13:34:40.000000Z",
"updated_at": "2026-06-05T13:34:40.000000Z"
}
],
"prepayments_amount": 15.95,
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"external_from_departure_point_name": null,
"external_to_departure_point_name": null,
"is_external": false,
"created_at": "2026-06-05T13:34:39.000000Z",
"updated_at": "2026-06-05T13:34:39.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/aut"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/return-ticket/aut"
);
fetch(url, {
method: "PATCH",
}).then(response => response.json());Example response (200):
{
"data": {
"id": 6069,
"type": "internal",
"target_departure_date": "2026-06-29T08:30:00.000000Z",
"target_arrival_date": "2026-06-29T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "6VYigxZbenF4rY5",
"price": "81.09",
"price_adjustment_percent": "0.00",
"order_id": 5941,
"first_name": "Natalia",
"last_name": "Kovalenko",
"phone": "+380964490222",
"email": "keenan57@example.org",
"birthday": "1966-04-13",
"passenger_type": "adult",
"departure_date": "2026-06-29T08:30:00.000000Z",
"bus_flight_id": 17403,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": "Window seat preferred.",
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"external_from_departure_point_name": null,
"external_to_departure_point_name": null,
"is_external": false,
"created_at": "2026-06-05T13:34:40.000000Z",
"updated_at": "2026-06-05T13:34:40.000000Z",
"penalty": 100
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Profile
Profile
Show profile
requires authentication
Show profile
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/profile" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/profile"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 999
access-control-allow-origin: *
{
"message": "Unauthorized"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
System settings
System Setting
Get all currency
Get all currency
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/currencies"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/currencies"
);
fetch(url, {
method: "GET",
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 981,
"display_name": "LYD",
"code": "LYD",
"symbol": "LYD",
"is_active": true,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
},
{
"id": 982,
"display_name": "LSL",
"code": "LSL",
"symbol": "LSL",
"is_active": true,
"created_at": "2026-06-05T13:34:31.000000Z",
"updated_at": "2026-06-05T13:34:31.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all cancel reasons
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/cancel-reasons?per_page=10"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/cancel-reasons"
);
const params = {
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
fetch(url, {
method: "GET",
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 108,
"name": "Payment was not completed",
"slug": null
},
{
"id": 109,
"name": "Route was cancelled by carrier",
"slug": null
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Назад",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Вперед »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all payment methods
Get all payment methods
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/payment-methods"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/payment-methods"
);
fetch(url, {
method: "GET",
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 184,
"name": "cash",
"display_name": "Cash",
"logo_path": "payment-methods/cash.svg",
"created_at": "2026-06-05T13:34:40.000000Z",
"updated_at": "2026-06-05T13:34:40.000000Z"
},
{
"id": 185,
"name": "spot",
"display_name": "Pay at boarding",
"logo_path": "payment-methods/spot.svg",
"created_at": "2026-06-05T13:34:40.000000Z",
"updated_at": "2026-06-05T13:34:40.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Tickets
Tickets
Search free tickets
Search free tickets
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/tickets?from_city_id=1&to_city_id=2&from_departure_point_id=1&to_departure_point_id=2&departure_date=2021-10-10&date_range[from]=2021-10-10&date_range[to]=2021-10-20&number_of_passengers=1&return_date=2021-10-10&bus_route_id=1"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/tickets"
);
const params = {
"from_city_id": "1",
"to_city_id": "2",
"from_departure_point_id": "1",
"to_departure_point_id": "2",
"departure_date": "2021-10-10",
"date_range[from]": "2021-10-10",
"date_range[to]": "2021-10-20",
"number_of_passengers": "1",
"return_date": "2021-10-10",
"bus_route_id": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
fetch(url, {
method: "GET",
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 17392,
"target_departure_date": null,
"target_arrival_date": null,
"target_minutes_in_travel": null,
"target_from_departure_point_id": 0,
"target_to_departure_point_id": 0,
"sale_end_time_before_departure": 60,
"status": "open",
"payment_time": 30,
"sale_depth": 45,
"number_of_seats": 52,
"route_name": "Wroclaw - Munich",
"route_number": "LAT-170",
"route_ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"carrier_name": "LAT Lines",
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-06-25T00:00:00.000000Z",
"seat_selection_not_allowed_date_to": "2026-06-26T00:00:00.000000Z",
"without_companion": true,
"without_companion_price_percent": 12,
"selected_seats_prices": null,
"bus": {
"id": 1198,
"name": "Mercedes-Benz Sprinter",
"number": "AA 8275 vs",
"status": "active",
"schema": {
"id": 1510,
"name": "Coach 49 seats",
"mark": "Setra",
"model": "S 515 HD",
"number_of_seats": 52,
"number_of_floors": 1,
"rows": 13,
"columns": 4,
"items": [
{
"id": 42400,
"type": "seat",
"name": "Seat 14",
"translations": {
"name": {
"en": "Seat 14"
}
},
"seat_number": 14,
"row_number": 4,
"column_number": 2,
"floor_number": 1
},
{
"id": 42401,
"type": "seat",
"name": "Seat 1",
"translations": {
"name": {
"en": "Seat 1"
}
},
"seat_number": 1,
"row_number": 1,
"column_number": 1,
"floor_number": 1
},
{
"id": 42402,
"type": "seat",
"name": "Seat 2",
"translations": {
"name": {
"en": "Seat 2"
}
},
"seat_number": 2,
"row_number": 1,
"column_number": 2,
"floor_number": 1
},
{
"id": 42403,
"type": "seat",
"name": "Seat 3",
"translations": {
"name": {
"en": "Seat 3"
}
},
"seat_number": 3,
"row_number": 1,
"column_number": 3,
"floor_number": 1
},
{
"id": 42404,
"type": "seat",
"name": "Seat 4",
"translations": {
"name": {
"en": "Seat 4"
}
},
"seat_number": 4,
"row_number": 1,
"column_number": 4,
"floor_number": 1
},
{
"id": 42405,
"type": "seat",
"name": "Seat 5",
"translations": {
"name": {
"en": "Seat 5"
}
},
"seat_number": 5,
"row_number": 2,
"column_number": 1,
"floor_number": 1
},
{
"id": 42406,
"type": "seat",
"name": "Seat 6",
"translations": {
"name": {
"en": "Seat 6"
}
},
"seat_number": 6,
"row_number": 2,
"column_number": 2,
"floor_number": 1
},
{
"id": 42407,
"type": "seat",
"name": "Seat 7",
"translations": {
"name": {
"en": "Seat 7"
}
},
"seat_number": 7,
"row_number": 2,
"column_number": 3,
"floor_number": 1
},
{
"id": 42408,
"type": "seat",
"name": "Seat 8",
"translations": {
"name": {
"en": "Seat 8"
}
},
"seat_number": 8,
"row_number": 2,
"column_number": 4,
"floor_number": 1
},
{
"id": 42409,
"type": "seat",
"name": "Seat 9",
"translations": {
"name": {
"en": "Seat 9"
}
},
"seat_number": 9,
"row_number": 3,
"column_number": 1,
"floor_number": 1
},
{
"id": 42410,
"type": "seat",
"name": "Seat 10",
"translations": {
"name": {
"en": "Seat 10"
}
},
"seat_number": 10,
"row_number": 3,
"column_number": 2,
"floor_number": 1
},
{
"id": 42411,
"type": "seat",
"name": "Seat 11",
"translations": {
"name": {
"en": "Seat 11"
}
},
"seat_number": 11,
"row_number": 3,
"column_number": 3,
"floor_number": 1
},
{
"id": 42412,
"type": "seat",
"name": "Seat 12",
"translations": {
"name": {
"en": "Seat 12"
}
},
"seat_number": 12,
"row_number": 3,
"column_number": 4,
"floor_number": 1
},
{
"id": 42413,
"type": "seat",
"name": "Seat 13",
"translations": {
"name": {
"en": "Seat 13"
}
},
"seat_number": 13,
"row_number": 4,
"column_number": 1,
"floor_number": 1
},
{
"id": 42414,
"type": "seat",
"name": "Seat 14",
"translations": {
"name": {
"en": "Seat 14"
}
},
"seat_number": 14,
"row_number": 4,
"column_number": 2,
"floor_number": 1
},
{
"id": 42415,
"type": "seat",
"name": "Seat 15",
"translations": {
"name": {
"en": "Seat 15"
}
},
"seat_number": 15,
"row_number": 4,
"column_number": 3,
"floor_number": 1
},
{
"id": 42416,
"type": "seat",
"name": "Seat 16",
"translations": {
"name": {
"en": "Seat 16"
}
},
"seat_number": 16,
"row_number": 4,
"column_number": 4,
"floor_number": 1
},
{
"id": 42417,
"type": "seat",
"name": "Seat 17",
"translations": {
"name": {
"en": "Seat 17"
}
},
"seat_number": 17,
"row_number": 5,
"column_number": 1,
"floor_number": 1
},
{
"id": 42418,
"type": "seat",
"name": "Seat 18",
"translations": {
"name": {
"en": "Seat 18"
}
},
"seat_number": 18,
"row_number": 5,
"column_number": 2,
"floor_number": 1
},
{
"id": 42419,
"type": "seat",
"name": "Seat 19",
"translations": {
"name": {
"en": "Seat 19"
}
},
"seat_number": 19,
"row_number": 5,
"column_number": 3,
"floor_number": 1
},
{
"id": 42420,
"type": "seat",
"name": "Seat 20",
"translations": {
"name": {
"en": "Seat 20"
}
},
"seat_number": 20,
"row_number": 5,
"column_number": 4,
"floor_number": 1
},
{
"id": 42421,
"type": "seat",
"name": "Seat 21",
"translations": {
"name": {
"en": "Seat 21"
}
},
"seat_number": 21,
"row_number": 6,
"column_number": 1,
"floor_number": 1
},
{
"id": 42422,
"type": "seat",
"name": "Seat 22",
"translations": {
"name": {
"en": "Seat 22"
}
},
"seat_number": 22,
"row_number": 6,
"column_number": 2,
"floor_number": 1
},
{
"id": 42423,
"type": "seat",
"name": "Seat 23",
"translations": {
"name": {
"en": "Seat 23"
}
},
"seat_number": 23,
"row_number": 6,
"column_number": 3,
"floor_number": 1
},
{
"id": 42424,
"type": "seat",
"name": "Seat 24",
"translations": {
"name": {
"en": "Seat 24"
}
},
"seat_number": 24,
"row_number": 6,
"column_number": 4,
"floor_number": 1
},
{
"id": 42425,
"type": "seat",
"name": "Seat 25",
"translations": {
"name": {
"en": "Seat 25"
}
},
"seat_number": 25,
"row_number": 7,
"column_number": 1,
"floor_number": 1
},
{
"id": 42426,
"type": "seat",
"name": "Seat 26",
"translations": {
"name": {
"en": "Seat 26"
}
},
"seat_number": 26,
"row_number": 7,
"column_number": 2,
"floor_number": 1
},
{
"id": 42427,
"type": "seat",
"name": "Seat 27",
"translations": {
"name": {
"en": "Seat 27"
}
},
"seat_number": 27,
"row_number": 7,
"column_number": 3,
"floor_number": 1
},
{
"id": 42428,
"type": "seat",
"name": "Seat 28",
"translations": {
"name": {
"en": "Seat 28"
}
},
"seat_number": 28,
"row_number": 7,
"column_number": 4,
"floor_number": 1
},
{
"id": 42429,
"type": "seat",
"name": "Seat 29",
"translations": {
"name": {
"en": "Seat 29"
}
},
"seat_number": 29,
"row_number": 8,
"column_number": 1,
"floor_number": 1
},
{
"id": 42430,
"type": "seat",
"name": "Seat 30",
"translations": {
"name": {
"en": "Seat 30"
}
},
"seat_number": 30,
"row_number": 8,
"column_number": 2,
"floor_number": 1
},
{
"id": 42431,
"type": "seat",
"name": "Seat 31",
"translations": {
"name": {
"en": "Seat 31"
}
},
"seat_number": 31,
"row_number": 8,
"column_number": 3,
"floor_number": 1
},
{
"id": 42432,
"type": "seat",
"name": "Seat 32",
"translations": {
"name": {
"en": "Seat 32"
}
},
"seat_number": 32,
"row_number": 8,
"column_number": 4,
"floor_number": 1
},
{
"id": 42433,
"type": "seat",
"name": "Seat 33",
"translations": {
"name": {
"en": "Seat 33"
}
},
"seat_number": 33,
"row_number": 9,
"column_number": 1,
"floor_number": 1
},
{
"id": 42434,
"type": "seat",
"name": "Seat 34",
"translations": {
"name": {
"en": "Seat 34"
}
},
"seat_number": 34,
"row_number": 9,
"column_number": 2,
"floor_number": 1
},
{
"id": 42435,
"type": "seat",
"name": "Seat 35",
"translations": {
"name": {
"en": "Seat 35"
}
},
"seat_number": 35,
"row_number": 9,
"column_number": 3,
"floor_number": 1
},
{
"id": 42436,
"type": "seat",
"name": "Seat 36",
"translations": {
"name": {
"en": "Seat 36"
}
},
"seat_number": 36,
"row_number": 9,
"column_number": 4,
"floor_number": 1
},
{
"id": 42437,
"type": "seat",
"name": "Seat 37",
"translations": {
"name": {
"en": "Seat 37"
}
},
"seat_number": 37,
"row_number": 10,
"column_number": 1,
"floor_number": 1
},
{
"id": 42438,
"type": "seat",
"name": "Seat 38",
"translations": {
"name": {
"en": "Seat 38"
}
},
"seat_number": 38,
"row_number": 10,
"column_number": 2,
"floor_number": 1
},
{
"id": 42439,
"type": "seat",
"name": "Seat 39",
"translations": {
"name": {
"en": "Seat 39"
}
},
"seat_number": 39,
"row_number": 10,
"column_number": 3,
"floor_number": 1
},
{
"id": 42440,
"type": "seat",
"name": "Seat 40",
"translations": {
"name": {
"en": "Seat 40"
}
},
"seat_number": 40,
"row_number": 10,
"column_number": 4,
"floor_number": 1
},
{
"id": 42441,
"type": "seat",
"name": "Seat 41",
"translations": {
"name": {
"en": "Seat 41"
}
},
"seat_number": 41,
"row_number": 11,
"column_number": 1,
"floor_number": 1
},
{
"id": 42442,
"type": "seat",
"name": "Seat 42",
"translations": {
"name": {
"en": "Seat 42"
}
},
"seat_number": 42,
"row_number": 11,
"column_number": 2,
"floor_number": 1
},
{
"id": 42443,
"type": "seat",
"name": "Seat 43",
"translations": {
"name": {
"en": "Seat 43"
}
},
"seat_number": 43,
"row_number": 11,
"column_number": 3,
"floor_number": 1
},
{
"id": 42444,
"type": "seat",
"name": "Seat 44",
"translations": {
"name": {
"en": "Seat 44"
}
},
"seat_number": 44,
"row_number": 11,
"column_number": 4,
"floor_number": 1
},
{
"id": 42445,
"type": "seat",
"name": "Seat 45",
"translations": {
"name": {
"en": "Seat 45"
}
},
"seat_number": 45,
"row_number": 12,
"column_number": 1,
"floor_number": 1
},
{
"id": 42446,
"type": "seat",
"name": "Seat 46",
"translations": {
"name": {
"en": "Seat 46"
}
},
"seat_number": 46,
"row_number": 12,
"column_number": 2,
"floor_number": 1
},
{
"id": 42447,
"type": "seat",
"name": "Seat 47",
"translations": {
"name": {
"en": "Seat 47"
}
},
"seat_number": 47,
"row_number": 12,
"column_number": 3,
"floor_number": 1
},
{
"id": 42448,
"type": "seat",
"name": "Seat 48",
"translations": {
"name": {
"en": "Seat 48"
}
},
"seat_number": 48,
"row_number": 12,
"column_number": 4,
"floor_number": 1
},
{
"id": 42449,
"type": "seat",
"name": "Seat 49",
"translations": {
"name": {
"en": "Seat 49"
}
},
"seat_number": 49,
"row_number": 13,
"column_number": 1,
"floor_number": 1
},
{
"id": 42450,
"type": "seat",
"name": "Seat 50",
"translations": {
"name": {
"en": "Seat 50"
}
},
"seat_number": 50,
"row_number": 13,
"column_number": 2,
"floor_number": 1
},
{
"id": 42451,
"type": "seat",
"name": "Seat 51",
"translations": {
"name": {
"en": "Seat 51"
}
},
"seat_number": 51,
"row_number": 13,
"column_number": 3,
"floor_number": 1
},
{
"id": 42452,
"type": "seat",
"name": "Seat 52",
"translations": {
"name": {
"en": "Seat 52"
}
},
"seat_number": 52,
"row_number": 13,
"column_number": 4,
"floor_number": 1
}
],
"created_at": "2026-06-05T13:34:35.000000Z",
"updated_at": "2026-06-05T13:34:35.000000Z"
},
"services": [],
"created_at": "2026-06-05T13:34:35.000000Z",
"updated_at": "2026-06-05T13:34:35.000000Z"
},
"driver": {
"id": 6479,
"first_name": "Natalia",
"last_name": "Kravchenko",
"middle_name": "Oleksandrivna",
"full_name": "Natalia Kravchenko Oleksandrivna",
"work_phone": null,
"gender": null,
"birthday": null
},
"dispatcher": {
"id": 6480,
"first_name": "Olena",
"last_name": "Tkachenko",
"middle_name": "Petrovych",
"full_name": "Olena Tkachenko Petrovych",
"work_phone": null,
"gender": null,
"birthday": null
},
"occupiedSeats": [
{
"id": 54860,
"bus_flight_id": 17392,
"from_departure_point_id": 581,
"to_departure_point_id": 582,
"seat_number": 42,
"type": "bought",
"created_at": "2026-06-05T13:34:36.000000Z",
"updated_at": "2026-06-05T13:34:36.000000Z"
}
],
"baggage_transportation_conditions": [
{
"id": 21236,
"name": "Bicycle transportation",
"description": null,
"translations": {
"name": {
"en": "Bicycle transportation",
"ua": "Bicycle transportation"
},
"description": []
},
"prices": [
{
"currency_id": 88,
"price": 25
}
],
"created_at": "2026-06-05T13:34:36.000000Z",
"updated_at": "2026-06-05T13:34:36.000000Z"
}
],
"schedules": [
{
"id": 664631,
"departure_point_id": 580,
"departure_point": {
"id": 580,
"name": "International Coach Terminal",
"translations": {
"name": {
"en": "International Coach Terminal",
"ua": "International Coach Terminal"
}
},
"city": {
"id": 8222,
"name": "Chisinau",
"translations": {
"name": {
"en": "Chisinau",
"ua": "Chisinau"
}
},
"population": 2816332,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 230,
"created_at": "2026-06-05T13:34:35.000000Z",
"updated_at": "2026-06-05T13:34:35.000000Z"
},
"visibility": true,
"created_at": "2026-06-05T13:34:35.000000Z",
"updated_at": "2026-06-05T13:34:35.000000Z"
},
"arrival_time": "23:00",
"departure_time": "21:30",
"days_in_road": 0,
"platform": "P8",
"has_landing": true,
"has_disembarkation": true,
"is_connecting": false,
"is_connecting_start_endpoint": false,
"position": 5,
"sale_status": "open",
"is_active": true,
"has_transfer": false,
"maybe_transfer": false,
"hint": "Boarding starts 20 minutes before departure.",
"translations": {
"hint": {
"en": "Boarding starts 20 minutes before departure.",
"ua": "Boarding starts 20 minutes before departure."
}
},
"created_at": "2026-06-05T13:34:35.000000Z",
"updated_at": "2026-06-05T13:34:35.000000Z"
}
],
"payment_methods": [
{
"id": 180,
"name": "spot",
"display_name": "Pay at boarding",
"logo_path": "payment-methods/spot.svg",
"created_at": "2026-06-05T13:34:36.000000Z",
"updated_at": "2026-06-05T13:34:36.000000Z"
}
],
"discounts": [
{
"id": 56057,
"discount_type_id": 110,
"discount_type": {
"id": 110,
"name": "Student discount",
"translations": {
"name": {
"en": "Student discount",
"ua": "Student discount"
}
},
"created_at": "2026-06-05T13:34:36.000000Z",
"updated_at": "2026-06-05T13:34:36.000000Z"
},
"discount_value": 50,
"created_at": "2026-06-05T13:34:36.000000Z",
"updated_at": "2026-06-05T13:34:36.000000Z"
}
],
"carrier": {
"id": 128,
"name": "LAT Lines",
"hotline_phone": null,
"edrpou": null,
"disclaimer": null,
"insurance_description": null,
"insurance_company_name": null,
"insurance_company_address": null,
"logo_url": null,
"insurance_logo_url": null,
"translations": {
"disclaimer": [],
"insurance_description": [],
"insurance_company_name": [],
"insurance_company_address": []
}
},
"prices": [
{
"id": 19885333,
"from_departure_point_id": 578,
"to_departure_point_id": 579,
"price": [
{
"amount": 56,
"currency_id": 88
}
],
"is_active": true,
"is_forbidden": false
}
],
"created_at": "2026-06-05T13:34:35.000000Z",
"updated_at": "2026-06-05T13:34:35.000000Z"
},
{
"id": 17395,
"target_departure_date": null,
"target_arrival_date": null,
"target_minutes_in_travel": null,
"target_from_departure_point_id": 0,
"target_to_departure_point_id": 0,
"sale_end_time_before_departure": 60,
"status": "open",
"payment_time": 30,
"sale_depth": 45,
"number_of_seats": 52,
"route_name": "Brno - Prague",
"route_number": "LAT-705",
"route_ticket_hint": "Please arrive at the platform 20 minutes before departure.",
"carrier_name": "EuroBus Express",
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-06-17T00:00:00.000000Z",
"seat_selection_not_allowed_date_to": "2026-06-18T00:00:00.000000Z",
"without_companion": true,
"without_companion_price_percent": 12,
"selected_seats_prices": null,
"bus": {
"id": 1205,
"name": "Setra S 515 HD",
"number": "AA 0268 kt",
"status": "active",
"schema": {
"id": 1519,
"name": "Coach 49 seats",
"mark": "Setra",
"model": "S 515 HD",
"number_of_seats": 52,
"number_of_floors": 1,
"rows": 13,
"columns": 4,
"items": [
{
"id": 42850,
"type": "seat",
"name": "Seat 39",
"translations": {
"name": {
"en": "Seat 39"
}
},
"seat_number": 39,
"row_number": 10,
"column_number": 3,
"floor_number": 1
},
{
"id": 42851,
"type": "seat",
"name": "Seat 1",
"translations": {
"name": {
"en": "Seat 1"
}
},
"seat_number": 1,
"row_number": 1,
"column_number": 1,
"floor_number": 1
},
{
"id": 42852,
"type": "seat",
"name": "Seat 2",
"translations": {
"name": {
"en": "Seat 2"
}
},
"seat_number": 2,
"row_number": 1,
"column_number": 2,
"floor_number": 1
},
{
"id": 42853,
"type": "seat",
"name": "Seat 3",
"translations": {
"name": {
"en": "Seat 3"
}
},
"seat_number": 3,
"row_number": 1,
"column_number": 3,
"floor_number": 1
},
{
"id": 42854,
"type": "seat",
"name": "Seat 4",
"translations": {
"name": {
"en": "Seat 4"
}
},
"seat_number": 4,
"row_number": 1,
"column_number": 4,
"floor_number": 1
},
{
"id": 42855,
"type": "seat",
"name": "Seat 5",
"translations": {
"name": {
"en": "Seat 5"
}
},
"seat_number": 5,
"row_number": 2,
"column_number": 1,
"floor_number": 1
},
{
"id": 42856,
"type": "seat",
"name": "Seat 6",
"translations": {
"name": {
"en": "Seat 6"
}
},
"seat_number": 6,
"row_number": 2,
"column_number": 2,
"floor_number": 1
},
{
"id": 42857,
"type": "seat",
"name": "Seat 7",
"translations": {
"name": {
"en": "Seat 7"
}
},
"seat_number": 7,
"row_number": 2,
"column_number": 3,
"floor_number": 1
},
{
"id": 42858,
"type": "seat",
"name": "Seat 8",
"translations": {
"name": {
"en": "Seat 8"
}
},
"seat_number": 8,
"row_number": 2,
"column_number": 4,
"floor_number": 1
},
{
"id": 42859,
"type": "seat",
"name": "Seat 9",
"translations": {
"name": {
"en": "Seat 9"
}
},
"seat_number": 9,
"row_number": 3,
"column_number": 1,
"floor_number": 1
},
{
"id": 42860,
"type": "seat",
"name": "Seat 10",
"translations": {
"name": {
"en": "Seat 10"
}
},
"seat_number": 10,
"row_number": 3,
"column_number": 2,
"floor_number": 1
},
{
"id": 42861,
"type": "seat",
"name": "Seat 11",
"translations": {
"name": {
"en": "Seat 11"
}
},
"seat_number": 11,
"row_number": 3,
"column_number": 3,
"floor_number": 1
},
{
"id": 42862,
"type": "seat",
"name": "Seat 12",
"translations": {
"name": {
"en": "Seat 12"
}
},
"seat_number": 12,
"row_number": 3,
"column_number": 4,
"floor_number": 1
},
{
"id": 42863,
"type": "seat",
"name": "Seat 13",
"translations": {
"name": {
"en": "Seat 13"
}
},
"seat_number": 13,
"row_number": 4,
"column_number": 1,
"floor_number": 1
},
{
"id": 42864,
"type": "seat",
"name": "Seat 14",
"translations": {
"name": {
"en": "Seat 14"
}
},
"seat_number": 14,
"row_number": 4,
"column_number": 2,
"floor_number": 1
},
{
"id": 42865,
"type": "seat",
"name": "Seat 15",
"translations": {
"name": {
"en": "Seat 15"
}
},
"seat_number": 15,
"row_number": 4,
"column_number": 3,
"floor_number": 1
},
{
"id": 42866,
"type": "seat",
"name": "Seat 16",
"translations": {
"name": {
"en": "Seat 16"
}
},
"seat_number": 16,
"row_number": 4,
"column_number": 4,
"floor_number": 1
},
{
"id": 42867,
"type": "seat",
"name": "Seat 17",
"translations": {
"name": {
"en": "Seat 17"
}
},
"seat_number": 17,
"row_number": 5,
"column_number": 1,
"floor_number": 1
},
{
"id": 42868,
"type": "seat",
"name": "Seat 18",
"translations": {
"name": {
"en": "Seat 18"
}
},
"seat_number": 18,
"row_number": 5,
"column_number": 2,
"floor_number": 1
},
{
"id": 42869,
"type": "seat",
"name": "Seat 19",
"translations": {
"name": {
"en": "Seat 19"
}
},
"seat_number": 19,
"row_number": 5,
"column_number": 3,
"floor_number": 1
},
{
"id": 42870,
"type": "seat",
"name": "Seat 20",
"translations": {
"name": {
"en": "Seat 20"
}
},
"seat_number": 20,
"row_number": 5,
"column_number": 4,
"floor_number": 1
},
{
"id": 42871,
"type": "seat",
"name": "Seat 21",
"translations": {
"name": {
"en": "Seat 21"
}
},
"seat_number": 21,
"row_number": 6,
"column_number": 1,
"floor_number": 1
},
{
"id": 42872,
"type": "seat",
"name": "Seat 22",
"translations": {
"name": {
"en": "Seat 22"
}
},
"seat_number": 22,
"row_number": 6,
"column_number": 2,
"floor_number": 1
},
{
"id": 42873,
"type": "seat",
"name": "Seat 23",
"translations": {
"name": {
"en": "Seat 23"
}
},
"seat_number": 23,
"row_number": 6,
"column_number": 3,
"floor_number": 1
},
{
"id": 42874,
"type": "seat",
"name": "Seat 24",
"translations": {
"name": {
"en": "Seat 24"
}
},
"seat_number": 24,
"row_number": 6,
"column_number": 4,
"floor_number": 1
},
{
"id": 42875,
"type": "seat",
"name": "Seat 25",
"translations": {
"name": {
"en": "Seat 25"
}
},
"seat_number": 25,
"row_number": 7,
"column_number": 1,
"floor_number": 1
},
{
"id": 42876,
"type": "seat",
"name": "Seat 26",
"translations": {
"name": {
"en": "Seat 26"
}
},
"seat_number": 26,
"row_number": 7,
"column_number": 2,
"floor_number": 1
},
{
"id": 42877,
"type": "seat",
"name": "Seat 27",
"translations": {
"name": {
"en": "Seat 27"
}
},
"seat_number": 27,
"row_number": 7,
"column_number": 3,
"floor_number": 1
},
{
"id": 42878,
"type": "seat",
"name": "Seat 28",
"translations": {
"name": {
"en": "Seat 28"
}
},
"seat_number": 28,
"row_number": 7,
"column_number": 4,
"floor_number": 1
},
{
"id": 42879,
"type": "seat",
"name": "Seat 29",
"translations": {
"name": {
"en": "Seat 29"
}
},
"seat_number": 29,
"row_number": 8,
"column_number": 1,
"floor_number": 1
},
{
"id": 42880,
"type": "seat",
"name": "Seat 30",
"translations": {
"name": {
"en": "Seat 30"
}
},
"seat_number": 30,
"row_number": 8,
"column_number": 2,
"floor_number": 1
},
{
"id": 42881,
"type": "seat",
"name": "Seat 31",
"translations": {
"name": {
"en": "Seat 31"
}
},
"seat_number": 31,
"row_number": 8,
"column_number": 3,
"floor_number": 1
},
{
"id": 42882,
"type": "seat",
"name": "Seat 32",
"translations": {
"name": {
"en": "Seat 32"
}
},
"seat_number": 32,
"row_number": 8,
"column_number": 4,
"floor_number": 1
},
{
"id": 42883,
"type": "seat",
"name": "Seat 33",
"translations": {
"name": {
"en": "Seat 33"
}
},
"seat_number": 33,
"row_number": 9,
"column_number": 1,
"floor_number": 1
},
{
"id": 42884,
"type": "seat",
"name": "Seat 34",
"translations": {
"name": {
"en": "Seat 34"
}
},
"seat_number": 34,
"row_number": 9,
"column_number": 2,
"floor_number": 1
},
{
"id": 42885,
"type": "seat",
"name": "Seat 35",
"translations": {
"name": {
"en": "Seat 35"
}
},
"seat_number": 35,
"row_number": 9,
"column_number": 3,
"floor_number": 1
},
{
"id": 42886,
"type": "seat",
"name": "Seat 36",
"translations": {
"name": {
"en": "Seat 36"
}
},
"seat_number": 36,
"row_number": 9,
"column_number": 4,
"floor_number": 1
},
{
"id": 42887,
"type": "seat",
"name": "Seat 37",
"translations": {
"name": {
"en": "Seat 37"
}
},
"seat_number": 37,
"row_number": 10,
"column_number": 1,
"floor_number": 1
},
{
"id": 42888,
"type": "seat",
"name": "Seat 38",
"translations": {
"name": {
"en": "Seat 38"
}
},
"seat_number": 38,
"row_number": 10,
"column_number": 2,
"floor_number": 1
},
{
"id": 42889,
"type": "seat",
"name": "Seat 39",
"translations": {
"name": {
"en": "Seat 39"
}
},
"seat_number": 39,
"row_number": 10,
"column_number": 3,
"floor_number": 1
},
{
"id": 42890,
"type": "seat",
"name": "Seat 40",
"translations": {
"name": {
"en": "Seat 40"
}
},
"seat_number": 40,
"row_number": 10,
"column_number": 4,
"floor_number": 1
},
{
"id": 42891,
"type": "seat",
"name": "Seat 41",
"translations": {
"name": {
"en": "Seat 41"
}
},
"seat_number": 41,
"row_number": 11,
"column_number": 1,
"floor_number": 1
},
{
"id": 42892,
"type": "seat",
"name": "Seat 42",
"translations": {
"name": {
"en": "Seat 42"
}
},
"seat_number": 42,
"row_number": 11,
"column_number": 2,
"floor_number": 1
},
{
"id": 42893,
"type": "seat",
"name": "Seat 43",
"translations": {
"name": {
"en": "Seat 43"
}
},
"seat_number": 43,
"row_number": 11,
"column_number": 3,
"floor_number": 1
},
{
"id": 42894,
"type": "seat",
"name": "Seat 44",
"translations": {
"name": {
"en": "Seat 44"
}
},
"seat_number": 44,
"row_number": 11,
"column_number": 4,
"floor_number": 1
},
{
"id": 42895,
"type": "seat",
"name": "Seat 45",
"translations": {
"name": {
"en": "Seat 45"
}
},
"seat_number": 45,
"row_number": 12,
"column_number": 1,
"floor_number": 1
},
{
"id": 42896,
"type": "seat",
"name": "Seat 46",
"translations": {
"name": {
"en": "Seat 46"
}
},
"seat_number": 46,
"row_number": 12,
"column_number": 2,
"floor_number": 1
},
{
"id": 42897,
"type": "seat",
"name": "Seat 47",
"translations": {
"name": {
"en": "Seat 47"
}
},
"seat_number": 47,
"row_number": 12,
"column_number": 3,
"floor_number": 1
},
{
"id": 42898,
"type": "seat",
"name": "Seat 48",
"translations": {
"name": {
"en": "Seat 48"
}
},
"seat_number": 48,
"row_number": 12,
"column_number": 4,
"floor_number": 1
},
{
"id": 42899,
"type": "seat",
"name": "Seat 49",
"translations": {
"name": {
"en": "Seat 49"
}
},
"seat_number": 49,
"row_number": 13,
"column_number": 1,
"floor_number": 1
},
{
"id": 42900,
"type": "seat",
"name": "Seat 50",
"translations": {
"name": {
"en": "Seat 50"
}
},
"seat_number": 50,
"row_number": 13,
"column_number": 2,
"floor_number": 1
},
{
"id": 42901,
"type": "seat",
"name": "Seat 51",
"translations": {
"name": {
"en": "Seat 51"
}
},
"seat_number": 51,
"row_number": 13,
"column_number": 3,
"floor_number": 1
},
{
"id": 42902,
"type": "seat",
"name": "Seat 52",
"translations": {
"name": {
"en": "Seat 52"
}
},
"seat_number": 52,
"row_number": 13,
"column_number": 4,
"floor_number": 1
}
],
"created_at": "2026-06-05T13:34:36.000000Z",
"updated_at": "2026-06-05T13:34:36.000000Z"
},
"services": [],
"created_at": "2026-06-05T13:34:36.000000Z",
"updated_at": "2026-06-05T13:34:36.000000Z"
},
"driver": {
"id": 6510,
"first_name": "Andrii",
"last_name": "Bondarenko",
"middle_name": "Petrovych",
"full_name": "Andrii Bondarenko Petrovych",
"work_phone": null,
"gender": null,
"birthday": null
},
"dispatcher": {
"id": 6511,
"first_name": "Serhii",
"last_name": "Kovalenko",
"middle_name": "Mykhailivna",
"full_name": "Serhii Kovalenko Mykhailivna",
"work_phone": null,
"gender": null,
"birthday": null
},
"occupiedSeats": [
{
"id": 54861,
"bus_flight_id": 17395,
"from_departure_point_id": 586,
"to_departure_point_id": 587,
"seat_number": 26,
"type": "bought",
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
}
],
"baggage_transportation_conditions": [
{
"id": 21237,
"name": "Additional suitcase",
"description": null,
"translations": {
"name": {
"en": "Additional suitcase",
"ua": "Additional suitcase"
},
"description": []
},
"prices": [
{
"currency_id": 88,
"price": 10
}
],
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
}
],
"schedules": [
{
"id": 664634,
"departure_point_id": 585,
"departure_point": {
"id": 585,
"name": "International Coach Terminal",
"translations": {
"name": {
"en": "International Coach Terminal",
"ua": "International Coach Terminal"
}
},
"city": {
"id": 8234,
"name": "Krakow",
"translations": {
"name": {
"en": "Krakow",
"ua": "Krakow"
}
},
"population": 1366470,
"number_of_bus_routes": 0,
"visibility": true,
"country_id": 7,
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
},
"visibility": true,
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
},
"arrival_time": "16:00",
"departure_time": "14:30",
"days_in_road": 0,
"platform": "P5",
"has_landing": true,
"has_disembarkation": true,
"is_connecting": false,
"is_connecting_start_endpoint": false,
"position": 5,
"sale_status": "open",
"is_active": true,
"has_transfer": false,
"maybe_transfer": false,
"hint": "Boarding starts 20 minutes before departure.",
"translations": {
"hint": {
"en": "Boarding starts 20 minutes before departure.",
"ua": "Boarding starts 20 minutes before departure."
}
},
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
}
],
"payment_methods": [
{
"id": 181,
"name": "cash",
"display_name": "Cash",
"logo_path": "payment-methods/cash.svg",
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
}
],
"discounts": [
{
"id": 56058,
"discount_type_id": 111,
"discount_type": {
"id": 111,
"name": "Senior discount",
"translations": {
"name": {
"en": "Senior discount",
"ua": "Senior discount"
}
},
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
},
"discount_value": 15,
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
}
],
"carrier": {
"id": 134,
"name": "EuroBus Express",
"hotline_phone": null,
"edrpou": null,
"disclaimer": null,
"insurance_description": null,
"insurance_company_name": null,
"insurance_company_address": null,
"logo_url": null,
"insurance_logo_url": null,
"translations": {
"disclaimer": [],
"insurance_description": [],
"insurance_company_name": [],
"insurance_company_address": []
}
},
"prices": [
{
"id": 19885334,
"from_departure_point_id": 583,
"to_departure_point_id": 584,
"price": [
{
"amount": 99,
"currency_id": 88
}
],
"is_active": true,
"is_forbidden": false
}
],
"created_at": "2026-06-05T13:34:36.000000Z",
"updated_at": "2026-06-05T13:34:36.000000Z"
}
],
"return_flights_data": []
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get single flight details
Get flight details
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/flight-details/1/1/2"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/flight-details/1/1/2"
);
fetch(url, {
method: "GET",
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 994
access-control-allow-origin: *
{
"message": "Unauthorized"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Buy ticket
Buy ticket
Example request:
curl --request POST \
"https://testapi.ticketbus365.com/integration-api/tickets" \
--header "Content-Type: application/json" \
--data "{
\"there\": {
\"agent_id\": 1,
\"bus_flight_id\": 1,
\"from_departure_point_id\": 1,
\"to_departure_point_id\": 2,
\"passengers\": [
{
\"first_name\": \"John\",
\"last_name\": \"Doe\",
\"phone_number\": \"123456789\",
\"email\": \"example@example.com\",
\"birthday\": \"1990-10-10\",
\"passenger_type\": \"adult\",
\"baggage\": [
{
\"id\": 1,
\"quantity\": 1
}
]
}
],
\"seat_numbers\": [
1,
2
],
\"without_companion\": true
},
\"back\": {
\"bus_flight_id\": 1,
\"from_departure_point_id\": 1,
\"to_departure_point_id\": 2,
\"passengers\": [
{
\"first_name\": \"John\",
\"last_name\": \"Doe\",
\"phone_number\": \"123456789\",
\"email\": \"example@example.com\",
\"birthday\": \"1990-10-10\",
\"passenger_type\": \"adult\",
\"comment\": \"Some comment\",
\"discount_id\": 1,
\"baggage\": [
{
\"id\": 1,
\"quantity\": 1
}
]
}
],
\"seat_numbers\": [
1,
2
],
\"without_companion\": true
},
\"payment_method_id\": 1,
\"currency_id\": 1,
\"send_tickets_to_email\": true
}"
const url = new URL(
"https://testapi.ticketbus365.com/integration-api/tickets"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"there": {
"agent_id": 1,
"bus_flight_id": 1,
"from_departure_point_id": 1,
"to_departure_point_id": 2,
"passengers": [
{
"first_name": "John",
"last_name": "Doe",
"phone_number": "123456789",
"email": "example@example.com",
"birthday": "1990-10-10",
"passenger_type": "adult",
"baggage": [
{
"id": 1,
"quantity": 1
}
]
}
],
"seat_numbers": [
1,
2
],
"without_companion": true
},
"back": {
"bus_flight_id": 1,
"from_departure_point_id": 1,
"to_departure_point_id": 2,
"passengers": [
{
"first_name": "John",
"last_name": "Doe",
"phone_number": "123456789",
"email": "example@example.com",
"birthday": "1990-10-10",
"passenger_type": "adult",
"comment": "Some comment",
"discount_id": 1,
"baggage": [
{
"id": 1,
"quantity": 1
}
]
}
],
"seat_numbers": [
1,
2
],
"without_companion": true
},
"payment_method_id": 1,
"currency_id": 1,
"send_tickets_to_email": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"data": {
"id": 5937,
"uuid": null,
"public_id": "ZqjmMUPd7wVjqnC",
"paid_at": null,
"tickets": [
{
"id": 6065,
"type": "internal",
"target_departure_date": "2026-06-21T08:30:00.000000Z",
"target_arrival_date": "2026-06-21T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "hwanBvQ85Ws9IpT",
"price": "118.83",
"price_adjustment_percent": "0.00",
"order_id": 5937,
"first_name": "Serhii",
"last_name": "Bondarenko",
"phone": "+380395181535",
"email": "uberge@example.net",
"birthday": "1969-03-21",
"passenger_type": "adult",
"departure_date": "2026-06-21T08:30:00.000000Z",
"bus_flight_id": 17398,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": "Window seat preferred.",
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"external_from_departure_point_name": null,
"external_to_departure_point_name": null,
"is_external": false,
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
}
],
"agent_id": null,
"status": "pending",
"total_price": "71.72",
"payment_on_the_spot": false,
"expired_at": null,
"created_at": "2026-06-05T13:34:37.000000Z",
"updated_at": "2026-06-05T13:34:37.000000Z"
},
"payment_method_data": {
"data": "array",
"type": "string"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show my ticket
Get ticket by id
Example request:
curl --request GET \
--get "https://testapi.ticketbus365.com/integration-api/ticket/z2zcwP3Z"const url = new URL(
"https://testapi.ticketbus365.com/integration-api/ticket/z2zcwP3Z"
);
fetch(url, {
method: "GET",
}).then(response => response.json());Example response (200):
{
"data": {
"id": 6067,
"type": "internal",
"target_departure_date": "2026-06-30T08:30:00.000000Z",
"target_arrival_date": "2026-06-30T20:30:00.000000Z",
"target_minutes_in_travel": 720,
"public_id": "KAiy5Q8YFGzdsqm",
"price": "61.61",
"price_adjustment_percent": "0.00",
"currency": {
"id": 985,
"display_name": "MYR",
"code": "MYR",
"symbol": "MYR",
"is_active": true,
"created_at": "2026-06-05T13:34:39.000000Z",
"updated_at": "2026-06-05T13:34:39.000000Z"
},
"order": {
"id": 5939,
"uuid": null,
"public_id": "LKvTpHOn63VwWUc",
"paid_at": null,
"agent_id": null,
"status": "pending",
"total_price": "163.38",
"payment_on_the_spot": false,
"expired_at": null,
"created_at": "2026-06-05T13:34:38.000000Z",
"updated_at": "2026-06-05T13:34:38.000000Z"
},
"order_id": 5939,
"bus_flight": {
"id": 17400,
"departure_date": "2026-07-05T08:30:00.000000Z",
"sale_end_time_before_departure": 60,
"driver_visibility_time_before_departure": 180,
"arrival_date": "2026-07-05T20:30:00.000000Z",
"hours_in_travel": 12,
"bus": {
"id": 1216,
"name": "Neoplan Tourliner",
"number": "AA 3394 ss",
"status": "active",
"created_at": "2026-06-05T13:34:39.000000Z",
"updated_at": "2026-06-05T13:34:39.000000Z"
},
"status": "open",
"payment_time": 30,
"sale_depth": 45,
"number_of_seats": 52,
"carrier_name": null,
"seat_selection_allowed": true,
"seat_selection_not_allowed_date_from": "2026-07-03",
"seat_selection_not_allowed_date_to": "2026-07-04",
"without_companion": true,
"min_price": [
{
"currency_id": 88,
"price": 53
}
],
"schedules": [],
"forbidden_sale_date_from": null,
"forbidden_sale_date_to": null,
"created_at": "2026-06-05T13:34:39.000000Z",
"updated_at": "2026-06-05T13:34:39.000000Z"
},
"from_departure_point": {
"id": 592,
"name": "International Coach Terminal",
"translations": {
"name": {
"en": "International Coach Terminal",
"ua": "International Coach Terminal"
}
},
"visibility": true,
"created_at": "2026-06-05T13:34:39.000000Z",
"updated_at": "2026-06-05T13:34:39.000000Z"
},
"to_departure_point": {
"id": 593,
"name": "Central Bus Station",
"translations": {
"name": {
"en": "Central Bus Station",
"ua": "Central Bus Station"
}
},
"visibility": true,
"created_at": "2026-06-05T13:34:39.000000Z",
"updated_at": "2026-06-05T13:34:39.000000Z"
},
"first_name": "Andrii",
"last_name": "Kovalenko",
"phone": "+380270031783",
"email": "leffler.josephine@example.com",
"birthday": "1993-11-04",
"passenger_type": "adult",
"departure_date": "2026-06-30T08:30:00.000000Z",
"occupied_seats": [
{
"id": 54862,
"bus_flight_id": 17401,
"from_departure_point_id": 595,
"to_departure_point_id": 594,
"seat_number": 25,
"type": "reserved",
"created_at": "2026-06-05T13:34:39.000000Z",
"updated_at": "2026-06-05T13:34:39.000000Z"
}
],
"bus_flight_id": 17400,
"canceled_at": null,
"cancel_comment": null,
"status": "pending",
"seat_change_allowed": true,
"comment": "Window seat preferred.",
"prepayments": [
{
"id": 233,
"ticket_id": 6067,
"currency_id": 88,
"payment_method_id": 182,
"amount": 29.08,
"created_at": "2026-06-05T13:34:39.000000Z",
"updated_at": "2026-06-05T13:34:39.000000Z"
}
],
"prepayments_amount": 29.08,
"is_processed": false,
"external_route_name": null,
"external_ticket_id": null,
"external_discount_name": null,
"external_from_departure_point_name": null,
"external_to_departure_point_name": null,
"is_external": false,
"created_at": "2026-06-05T13:34:38.000000Z",
"updated_at": "2026-06-05T13:34:38.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.