MENU navbar-image

Introduction

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

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.

Auth

Authentication

Login

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"example@example.com\",
    \"password\": \"password\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/login"
);

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

let body = {
    "email": "example@example.com",
    "password": "password"
};

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

Request   

POST api/login

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

Email address of the user Example: example@example.com

password   string   

Password of the user Example: password

Reset password

Send reset password email to user

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/reset-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"vandervort.maurine@example.net\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/reset-password"
);

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

let body = {
    "email": "vandervort.maurine@example.net"
};

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

Request   

POST api/reset-password

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

User email Example: vandervort.maurine@example.net

Register

Register a new user

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/registration" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"birth_date\": \"1990-01-01\",
    \"email\": \"john.doe@example\",
    \"subscribe_to_newsletter\": 1,
    \"accept_terms\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/registration"
);

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

let body = {
    "first_name": "John",
    "last_name": "Doe",
    "birth_date": "1990-01-01",
    "email": "john.doe@example",
    "subscribe_to_newsletter": 1,
    "accept_terms": 1
};

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

Request   

POST api/registration

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

first_name   string   

First name Example: John

last_name   string   

Last name Example: Doe

birth_date   string   

Birth date Example: 1990-01-01

email   string   

Email Example: john.doe@example

subscribe_to_newsletter   string  optional  

Subscribe to newsletter Example: 1

accept_terms   string   

Accept terms Example: 1

Universal Login by Phone or Email

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/auth/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identifier\": \"+380991234567\",
    \"code\": \"1234\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/auth/login"
);

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

let body = {
    "identifier": "+380991234567",
    "code": "1234"
};

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

Request   

POST api/auth/login

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

identifier   string   

Phone number or email of the user Example: +380991234567

code   string   

Code received via SMS or Email Example: 1234

Send Auth Code to Phone or Email

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/auth/send-code" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identifier\": \"+380991234567\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/auth/send-code"
);

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

let body = {
    "identifier": "+380991234567"
};

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

Request   

POST api/auth/send-code

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

identifier   string   

Phone number or email of the user Example: +380991234567

Logout

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/logout" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/logout"
);

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

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

Request   

POST api/logout

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Baggage Shipment

Get baggage shipment prices

requires authentication

Get bus prices

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/baggage-shipment-prices?entity_type=bus_flight&entity_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-shipment-prices"
);

const params = {
    "entity_type": "bus_flight",
    "entity_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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 1,
            "entity_id": 8616,
            "entity_type": "App\\Models\\BusFlight",
            "price": [
                {
                    "price": 50,
                    "currency_id": 88
                },
                {
                    "price": 50,
                    "currency_id": 89
                },
                {
                    "price": 50,
                    "currency_id": 90
                },
                {
                    "price": 50,
                    "currency_id": 91
                }
            ],
            "created_at": "2025-05-23T07:41:05.000000Z",
            "updated_at": "2025-05-23T07:41:05.000000Z",
            "baggage_shipment_type_id": 1,
            "baggageShipmentType": {
                "id": 1,
                "name": "100x100",
                "translations": {
                    "name": {
                        "en": "100x100",
                        "pl": "100x100",
                        "ru": "100x100",
                        "ua": "100x100"
                    }
                },
                "created_at": "2025-05-23T07:40:50.000000Z",
                "updated_at": "2025-05-23T07:40:50.000000Z"
            }
        },
        {
            "id": 1,
            "entity_id": 8616,
            "entity_type": "App\\Models\\BusFlight",
            "price": [
                {
                    "price": 50,
                    "currency_id": 88
                },
                {
                    "price": 50,
                    "currency_id": 89
                },
                {
                    "price": 50,
                    "currency_id": 90
                },
                {
                    "price": 50,
                    "currency_id": 91
                }
            ],
            "created_at": "2025-05-23T07:41:05.000000Z",
            "updated_at": "2025-05-23T07:41:05.000000Z",
            "baggage_shipment_type_id": 1,
            "baggageShipmentType": {
                "id": 1,
                "name": "100x100",
                "translations": {
                    "name": {
                        "en": "100x100",
                        "pl": "100x100",
                        "ru": "100x100",
                        "ua": "100x100"
                    }
                },
                "created_at": "2025-05-23T07:40:50.000000Z",
                "updated_at": "2025-05-23T07:40:50.000000Z"
            }
        }
    ]
}
 

Request   

GET api/baggage-shipment-prices

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Create baggage shipment prices

requires authentication

Create or update bus prices

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/baggage-shipment-prices" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"price\": [
        [
            {
                \"currency_id\": 1,
                \"price\": 1000
            }
        ]
    ],
    \"baggage_shipment_type_id\": 1,
    \"entity_type\": \"bus_flight\",
    \"entity_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-shipment-prices"
);

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

let body = {
    "price": [
        [
            {
                "currency_id": 1,
                "price": 1000
            }
        ]
    ],
    "baggage_shipment_type_id": 1,
    "entity_type": "bus_flight",
    "entity_id": 1
};

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

Example response (200):


{
    "data": {
        "id": 1,
        "entity_id": 8616,
        "entity_type": "App\\Models\\BusFlight",
        "price": [
            {
                "price": 50,
                "currency_id": 88
            },
            {
                "price": 50,
                "currency_id": 89
            },
            {
                "price": 50,
                "currency_id": 90
            },
            {
                "price": 50,
                "currency_id": 91
            }
        ],
        "created_at": "2025-05-23T07:41:05.000000Z",
        "updated_at": "2025-05-23T07:41:05.000000Z",
        "baggage_shipment_type_id": 1,
        "baggageShipmentType": {
            "id": 1,
            "name": "100x100",
            "translations": {
                "name": {
                    "en": "100x100",
                    "pl": "100x100",
                    "ru": "100x100",
                    "ua": "100x100"
                }
            },
            "created_at": "2025-05-23T07:40:50.000000Z",
            "updated_at": "2025-05-23T07:40:50.000000Z"
        }
    }
}
 

Request   

POST api/baggage-shipment-prices

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

price   string[]   

Price data

baggage_shipment_type_id   integer   

Baggage shipment type ID Example: 1

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Update baggage shipment prices

requires authentication

Update bus prices

Example request:
curl --request PUT \
    "https://testapi.ticketbus365.com/api/baggage-shipment-prices/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"price\": [
        [
            {
                \"currency_id\": 1,
                \"price\": 1000
            }
        ]
    ],
    \"baggage_shipment_type_id\": 1,
    \"entity_type\": \"bus_flight\",
    \"entity_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-shipment-prices/1"
);

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

let body = {
    "price": [
        [
            {
                "currency_id": 1,
                "price": 1000
            }
        ]
    ],
    "baggage_shipment_type_id": 1,
    "entity_type": "bus_flight",
    "entity_id": 1
};

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

Example response (200):


{
    "data": {
        "id": 1,
        "entity_id": 8616,
        "entity_type": "App\\Models\\BusFlight",
        "price": [
            {
                "price": 50,
                "currency_id": 88
            },
            {
                "price": 50,
                "currency_id": 89
            },
            {
                "price": 50,
                "currency_id": 90
            },
            {
                "price": 50,
                "currency_id": 91
            }
        ],
        "created_at": "2025-05-23T07:41:05.000000Z",
        "updated_at": "2025-05-23T07:41:05.000000Z",
        "baggage_shipment_type_id": 1,
        "baggageShipmentType": {
            "id": 1,
            "name": "100x100",
            "translations": {
                "name": {
                    "en": "100x100",
                    "pl": "100x100",
                    "ru": "100x100",
                    "ua": "100x100"
                }
            },
            "created_at": "2025-05-23T07:40:50.000000Z",
            "updated_at": "2025-05-23T07:40:50.000000Z"
        }
    }
}
 

Request   

PUT api/baggage-shipment-prices/{baggageShipmentPrice_id}

PATCH api/baggage-shipment-prices/{baggageShipmentPrice_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

baggageShipmentPrice_id   integer   

The ID of the baggageShipmentPrice. Example: 1

Body Parameters

price   string[]   

Price data

baggage_shipment_type_id   integer   

Baggage shipment type ID Example: 1

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Delete baggage shipment prices

requires authentication

Delete bus prices

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/baggage-shipment-prices/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-shipment-prices/1"
);

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

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

Request   

DELETE api/baggage-shipment-prices/{baggageShipmentPrice_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

baggageShipmentPrice_id   integer   

The ID of the baggageShipmentPrice. Example: 1

Get baggage shipment prices

requires authentication

Get baggage shipment

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

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight_id}/baggage-shipments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Create baggage shipment

requires authentication

Create a new baggage shipment

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/baggage-shipments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/baggage-shipments"
);

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

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

Request   

POST api/bus-flights/{bus_flight_id}/baggage-shipments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Delete baggage shipment

requires authentication

Delete a baggage shipment

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/baggage-shipments/vero" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/baggage-shipments/vero"
);

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

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

Request   

DELETE api/bus-flights/{bus_flight_id}/baggage-shipments/{baggage_shipment_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

baggage_shipment_id   string   

The ID of the baggage shipment. Example: vero

Bus

Bus routes

Get all additional price settings for a bus route

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-routes/82/additional-price-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-routes/82/additional-price-settings"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 12,
            "name": "Sergii",
            "percent": "-10.00",
            "period": "departure_date",
            "date_from": "2024-02-10",
            "date_to": "2024-02-24",
            "is_active": false,
            "bus_route_id": 83,
            "created_at": "2024-02-10T13:06:42.000000Z",
            "updated_at": "2024-02-10T13:06:42.000000Z"
        },
        {
            "id": 12,
            "name": "Sergii",
            "percent": "-10.00",
            "period": "departure_date",
            "date_from": "2024-02-10",
            "date_to": "2024-02-24",
            "is_active": false,
            "bus_route_id": 83,
            "created_at": "2024-02-10T13:06:42.000000Z",
            "updated_at": "2024-02-10T13:06:42.000000Z"
        }
    ]
}
 

Request   

GET api/bus-routes/{bus_route_id}/additional-price-settings

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_route_id   integer   

The ID of the bus route. Example: 82

Create a new additional price setting for a bus route

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-routes/82/additional-price-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Weekend price\",
    \"percent\": 10,
    \"period\": \"departure_date\",
    \"date_from\": \"2021-01-01\",
    \"date_to\": \"2021-12-31\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-routes/82/additional-price-settings"
);

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

let body = {
    "name": "Weekend price",
    "percent": 10,
    "period": "departure_date",
    "date_from": "2021-01-01",
    "date_to": "2021-12-31"
};

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

Example response (200):


{
    "data": {
        "id": 12,
        "name": "Sergii",
        "percent": "-10.00",
        "period": "departure_date",
        "date_from": "2024-02-10",
        "date_to": "2024-02-24",
        "is_active": false,
        "bus_route_id": 83,
        "created_at": "2024-02-10T13:06:42.000000Z",
        "updated_at": "2024-02-10T13:06:42.000000Z"
    }
}
 

Request   

POST api/bus-routes/{bus_route_id}/additional-price-settings

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_route_id   integer   

The ID of the bus route. Example: 82

Body Parameters

name   string   

Name of the additional price setting Example: Weekend price

percent   string   

Percentage of the additional price Example: 10

period   string   

Period of the additional price Example: departure_date

date_from   string   

Date from which the additional price is applied Example: 2021-01-01

date_to   string   

Date to which the additional price is applied Example: 2021-12-31

Update an additional price setting for a bus route

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-routes/82/additional-price-settings/quia" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Weekend price\",
    \"percent\": 10,
    \"period\": \"departure_date\",
    \"date_from\": \"2021-01-01\",
    \"date_to\": \"2021-12-31\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-routes/82/additional-price-settings/quia"
);

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

let body = {
    "name": "Weekend price",
    "percent": 10,
    "period": "departure_date",
    "date_from": "2021-01-01",
    "date_to": "2021-12-31"
};

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

Example response (200):


{
    "data": {
        "id": 12,
        "name": "Sergii",
        "percent": "-10.00",
        "period": "departure_date",
        "date_from": "2024-02-10",
        "date_to": "2024-02-24",
        "is_active": false,
        "bus_route_id": 83,
        "created_at": "2024-02-10T13:06:42.000000Z",
        "updated_at": "2024-02-10T13:06:42.000000Z"
    }
}
 

Request   

PATCH api/bus-routes/{bus_route_id}/additional-price-settings/{setting_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_route_id   integer   

The ID of the bus route. Example: 82

setting_id   string   

The ID of the setting. Example: quia

Body Parameters

name   string  optional  

Name of the additional price setting Example: Weekend price

percent   string  optional  

Percentage of the additional price Example: 10

period   string  optional  

Period of the additional price Example: departure_date

date_from   string  optional  

Date from which the additional price is applied Example: 2021-01-01

date_to   string  optional  

Date to which the additional price is applied Example: 2021-12-31

Delete an additional price setting for a bus route

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-routes/82/additional-price-settings/ducimus" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-routes/82/additional-price-settings/ducimus"
);

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

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

Example response (200):


{
    "data": {
        "id": 12,
        "name": "Sergii",
        "percent": "-10.00",
        "period": "departure_date",
        "date_from": "2024-02-10",
        "date_to": "2024-02-24",
        "is_active": false,
        "bus_route_id": 83,
        "created_at": "2024-02-10T13:06:42.000000Z",
        "updated_at": "2024-02-10T13:06:42.000000Z"
    }
}
 

Request   

DELETE api/bus-routes/{bus_route_id}/additional-price-settings/{setting_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_route_id   integer   

The ID of the bus route. Example: 82

setting_id   string   

The ID of the setting. Example: ducimus

Get all buses

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/buses?page=1&search=000+111&status=active&type_id=1&per_page=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/buses"
);

const params = {
    "page": "1",
    "search": "000 111",
    "status": "active",
    "type_id": "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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 1157,
            "name": "Miss Joannie Fritsch",
            "number": "+1 (669) 268-0128",
            "status": "active",
            "schema": {
                "id": 1411,
                "name": "Filomena Gibson",
                "mark": "Prof. Daryl Wehner",
                "model": "Jan Gaylord",
                "number_of_seats": 2,
                "number_of_floors": 1,
                "rows": 2,
                "columns": 2,
                "created_at": "2025-11-02T07:50:57.000000Z",
                "updated_at": "2025-11-02T07:50:57.000000Z"
            },
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        },
        {
            "id": 1158,
            "name": "Myles Langosh",
            "number": "+1 (937) 758-1881",
            "status": "active",
            "schema": {
                "id": 1413,
                "name": "Ms. Mable Tremblay",
                "mark": "Ceasar Denesik",
                "model": "Bridgette Tillman",
                "number_of_seats": 2,
                "number_of_floors": 1,
                "rows": 1,
                "columns": 2,
                "created_at": "2025-11-02T07:50:57.000000Z",
                "updated_at": "2025-11-02T07:50:57.000000Z"
            },
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.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
    }
}
 

Request   

GET api/buses

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   string   

Page number Example: 1

search   string   

Search string Example: 000 111

status   string   

Status Example: active

type_id   string   

Bus type ID Example: 1

per_page   integer   

Items per page Example: 10

Show bus

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/buses/147" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/buses/147"
);

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

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

Example response (200):


{
    "data": {
        "id": 1159,
        "name": "German Pouros",
        "number": "1-929-303-0814",
        "status": "active",
        "schema": {
            "id": 1415,
            "name": "Mr. Reese Kemmer Jr.",
            "mark": "Jeromy Hickle",
            "model": "Gerard Shanahan",
            "number_of_seats": 2,
            "number_of_floors": 1,
            "services": [
                {
                    "id": 170,
                    "name": "Devante Zemlak",
                    "translations": {
                        "name": {
                            "ua": "Ms. Corine Hayes Jr.",
                            "en": "Devante Zemlak"
                        }
                    },
                    "icon_name": "Joyce Hilpert I",
                    "created_at": "2025-11-02T07:50:57.000000Z",
                    "updated_at": "2025-11-02T07:50:57.000000Z"
                }
            ],
            "rows": 1,
            "columns": 1,
            "items": [
                {
                    "id": 41089,
                    "type": "seat",
                    "name": "Seat 1",
                    "translations": {
                        "name": {
                            "en": "Seat 1"
                        }
                    },
                    "seat_number": 1,
                    "row_number": 1,
                    "column_number": 1,
                    "floor_number": 1
                }
            ],
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        },
        "services": [
            {
                "id": 171,
                "name": "Prof. Jon Adams",
                "translations": {
                    "name": {
                        "ua": "Koby Wisoky",
                        "en": "Prof. Jon Adams"
                    }
                },
                "icon_name": "Eldora Kling",
                "created_at": "2025-11-02T07:50:57.000000Z",
                "updated_at": "2025-11-02T07:50:57.000000Z"
            }
        ],
        "user": {
            "id": 5573,
            "first_name": "Hobart",
            "last_name": "Waters",
            "middle_name": "Mario",
            "full_name": "Hobart Waters Mario",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Dr. Alexa Schmidt",
            "phone": "1-401-579-6022",
            "email": "vrunolfsdottir@example.net",
            "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": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        },
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

GET api/buses/{bus_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_id   integer   

The ID of the bus. Example: 147

Create bus

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/buses" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Bus 1\",
    \"number\": \"000 111\",
    \"status\": \"active\",
    \"bus_schema_id\": 1,
    \"services\": [
        1,
        2
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/buses"
);

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

let body = {
    "name": "Bus 1",
    "number": "000 111",
    "status": "active",
    "bus_schema_id": 1,
    "services": [
        1,
        2
    ]
};

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

Example response (200):


{
    "data": {
        "id": 1160,
        "name": "Lavina Hyatt",
        "number": "+14585539412",
        "status": "active",
        "schema": {
            "id": 1417,
            "name": "Durward Ankunding",
            "mark": "Mr. Harold Harber",
            "model": "Shea Steuber",
            "number_of_seats": 2,
            "number_of_floors": 1,
            "rows": 2,
            "columns": 2,
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        },
        "services": [
            {
                "id": 172,
                "name": "Tamia Bartell",
                "translations": {
                    "name": {
                        "ua": "Josiane Morissette",
                        "en": "Tamia Bartell"
                    }
                },
                "icon_name": "Dr. Penelope Mosciski",
                "created_at": "2025-11-02T07:50:57.000000Z",
                "updated_at": "2025-11-02T07:50:57.000000Z"
            }
        ],
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

POST api/buses

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Bus name Example: Bus 1

number   string   

Bus number Example: 000 111

status   string   

Bus status Example: active

bus_schema_id   integer   

Bus schema id Example: 1

services   string[]   

Bus services

Update bus

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/buses/147" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Bus 1\",
    \"number\": \"000 111\",
    \"status\": \"active\",
    \"bus_schema_id\": 1,
    \"services\": [
        1,
        2
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/buses/147"
);

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

let body = {
    "name": "Bus 1",
    "number": "000 111",
    "status": "active",
    "bus_schema_id": 1,
    "services": [
        1,
        2
    ]
};

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

Example response (200):


{
    "data": {
        "id": 1161,
        "name": "Dr. Selina Thompson Sr.",
        "number": "727.420.0025",
        "status": "active",
        "schema": {
            "id": 1419,
            "name": "Kaylin Flatley V",
            "mark": "Chelsie Gleason II",
            "model": "Ross Collins",
            "number_of_seats": 2,
            "number_of_floors": 1,
            "rows": 1,
            "columns": 2,
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        },
        "services": [
            {
                "id": 173,
                "name": "Genoveva Pouros",
                "translations": {
                    "name": {
                        "ua": "Kiarra Sauer DDS",
                        "en": "Genoveva Pouros"
                    }
                },
                "icon_name": "Mrs. Rhea Keebler",
                "created_at": "2025-11-02T07:50:57.000000Z",
                "updated_at": "2025-11-02T07:50:57.000000Z"
            }
        ],
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

PATCH api/buses/{bus_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_id   integer   

The ID of the bus. Example: 147

Body Parameters

name   string   

Bus name Example: Bus 1

number   string   

Bus number Example: 000 111

status   string   

Bus status Example: active

bus_schema_id   integer   

Bus schema id Example: 1

services   string[]   

Bus services

Delete bus

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/buses/147" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/buses/147"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/buses/{bus_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_id   integer   

The ID of the bus. Example: 147

Store bus image

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/buses/147/images" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "image=@/tmp/phpyHhS6p" 
const url = new URL(
    "https://testapi.ticketbus365.com/api/buses/147/images"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('image', document.querySelector('input[name="image"]').files[0]);

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

Example response (200):


{
    "data": {
        "id": 147,
        "name": "Автобус",
        "number": "WK 67656",
        "status": "active",
        "schema": {
            "id": 176,
            "name": "Автобус",
            "mark": "Neoplan",
            "model": "N1116",
            "number_of_seats": 46,
            "number_of_floors": 1,
            "rows": 5,
            "columns": 14,
            "created_at": "2024-02-16T18:47:13.000000Z",
            "updated_at": "2024-05-18T11:26:36.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"
            }
        ],
        "user": {
            "id": 1,
            "first_name": "Eladio",
            "last_name": "Weber",
            "middle_name": "Lazaro",
            "full_name": "Eladio Weber Lazaro",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Herta Jast",
            "phone": "+1-667-744-6598",
            "email": "admin@admin.com",
            "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"
        },
        "images": [],
        "created_at": "2024-01-19T11:55:45.000000Z",
        "updated_at": "2024-03-20T17:53:20.000000Z"
    }
}
 

Request   

POST api/buses/{bus_id}/images

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

bus_id   integer   

The ID of the bus. Example: 147

Body Parameters

image   file   

Bus image Example: /tmp/phpyHhS6p

Delete bus image

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/buses/147/images/placeat" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/buses/147/images/placeat"
);

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

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

Example response (200):


{
    "data": {
        "id": 147,
        "name": "Автобус",
        "number": "WK 67656",
        "status": "active",
        "schema": {
            "id": 176,
            "name": "Автобус",
            "mark": "Neoplan",
            "model": "N1116",
            "number_of_seats": 46,
            "number_of_floors": 1,
            "rows": 5,
            "columns": 14,
            "created_at": "2024-02-16T18:47:13.000000Z",
            "updated_at": "2024-05-18T11:26:36.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"
            }
        ],
        "user": {
            "id": 1,
            "first_name": "Eladio",
            "last_name": "Weber",
            "middle_name": "Lazaro",
            "full_name": "Eladio Weber Lazaro",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Herta Jast",
            "phone": "+1-667-744-6598",
            "email": "admin@admin.com",
            "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"
        },
        "images": [],
        "created_at": "2024-01-19T11:55:45.000000Z",
        "updated_at": "2024-03-20T17:53:20.000000Z"
    }
}
 

Request   

DELETE api/buses/{bus_id}/images/{image_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_id   integer   

The ID of the bus. Example: 147

image_id   string   

The ID of the image. Example: placeat

Get driver money

requires authentication

Get driver money

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

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

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

Example response (200):


{
    "data": [
        {
            "id": 25,
            "bus_flight_id": 8841,
            "amount": "1000.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"
            },
            "created_at": "2025-06-04T12:21:11.000000Z",
            "updated_at": "2025-06-04T12:21:11.000000Z"
        },
        {
            "id": 25,
            "bus_flight_id": 8841,
            "amount": "1000.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"
            },
            "created_at": "2025-06-04T12:21:11.000000Z",
            "updated_at": "2025-06-04T12:21:11.000000Z"
        }
    ]
}
 

Request   

GET api/bus-flights/{bus_flight_id}/driver-money

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Store driver money

requires authentication

Store driver money

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/driver-money" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 100,
    \"currency_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/driver-money"
);

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

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

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

Example response (200):


{
    "data": {
        "id": 25,
        "bus_flight_id": 8841,
        "amount": "1000.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"
        },
        "created_at": "2025-06-04T12:21:11.000000Z",
        "updated_at": "2025-06-04T12:21:11.000000Z"
    }
}
 

Request   

POST api/bus-flights/{bus_flight_id}/driver-money

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Body Parameters

amount   integer   

Amount Example: 100

currency_id   integer   

Currency id Example: 1

Update driver money

requires authentication

Update driver money

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/driver-money/25" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 100,
    \"currency_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/driver-money/25"
);

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

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

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

Example response (200):


{
    "data": {
        "id": 25,
        "bus_flight_id": 8841,
        "amount": "1000.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"
        },
        "created_at": "2025-06-04T12:21:11.000000Z",
        "updated_at": "2025-06-04T12:21:11.000000Z"
    }
}
 

Request   

PATCH api/bus-flights/{bus_flight_id}/driver-money/{driver_money_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

driver_money_id   integer   

The ID of the driver money. Example: 25

Body Parameters

amount   integer   

Amount Example: 100

currency_id   integer   

Currency id Example: 1

Delete driver money

requires authentication

Delete driver money

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/driver-money/25" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/driver-money/25"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/bus-flights/{bus_flight_id}/driver-money/{driver_money_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

driver_money_id   integer   

The ID of the driver money. Example: 25

Bus flight

Bus flights

Get number of free seats for a bus flight

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/number_of_free_seats/consequatur/enim/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/number_of_free_seats/consequatur/enim/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/number_of_free_seats/{fid}/{fdid}/{tdid}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

fid   string   

Example: consequatur

fdid   string   

Example: enim

tdid   string   

Example: architecto

Get bus discounts

requires authentication

Get bus discounts

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-discounts?entity_type=bus_flight&entity_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-discounts"
);

const params = {
    "entity_type": "bus_flight",
    "entity_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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 1,
            "discount_type_id": 1,
            "discount_type": {
                "id": 1,
                "name": "дети от 6 до 18 лет",
                "translations": {
                    "name": {
                        "ua": "діти від 6 до 18 років",
                        "pl": "test",
                        "en": "test",
                        "ru": "дети от 6 до 18 лет"
                    }
                },
                "created_at": "2023-12-08T12:03:28.000000Z",
                "updated_at": "2024-04-18T07:03:12.000000Z"
            },
            "discount_value": 12,
            "created_at": "2023-12-08T12:03:40.000000Z",
            "updated_at": "2023-12-08T12:03:40.000000Z"
        },
        {
            "id": 1,
            "discount_type_id": 1,
            "discount_type": {
                "id": 1,
                "name": "дети от 6 до 18 лет",
                "translations": {
                    "name": {
                        "ua": "діти від 6 до 18 років",
                        "pl": "test",
                        "en": "test",
                        "ru": "дети от 6 до 18 лет"
                    }
                },
                "created_at": "2023-12-08T12:03:28.000000Z",
                "updated_at": "2024-04-18T07:03:12.000000Z"
            },
            "discount_value": 12,
            "created_at": "2023-12-08T12:03:40.000000Z",
            "updated_at": "2023-12-08T12:03:40.000000Z"
        }
    ]
}
 

Request   

GET api/bus-discounts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Create bus discount

requires authentication

Create bus discount

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-discounts?entity_type=bus_flight&entity_id=1&discount_type_id=1&discount_value=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-discounts"
);

const params = {
    "entity_type": "bus_flight",
    "entity_id": "1",
    "discount_type_id": "1",
    "discount_value": "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",
};

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

Example response (200):


{
    "data": {
        "id": 1,
        "discount_type_id": 1,
        "discount_type": {
            "id": 1,
            "name": "дети от 6 до 18 лет",
            "translations": {
                "name": {
                    "ua": "діти від 6 до 18 років",
                    "pl": "test",
                    "en": "test",
                    "ru": "дети от 6 до 18 лет"
                }
            },
            "created_at": "2023-12-08T12:03:28.000000Z",
            "updated_at": "2024-04-18T07:03:12.000000Z"
        },
        "discount_value": 12,
        "created_at": "2023-12-08T12:03:40.000000Z",
        "updated_at": "2023-12-08T12:03:40.000000Z"
    }
}
 

Request   

POST api/bus-discounts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

discount_type_id   integer   

Discount type ID Example: 1

discount_value   numeric   

Discount value Example: 10

Update bus discount

requires authentication

Update bus discount

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-discounts/1?discount_type_id=1&discount_value=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-discounts/1"
);

const params = {
    "discount_type_id": "1",
    "discount_value": "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",
};

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

Example response (200):


{
    "data": {
        "id": 1,
        "discount_type_id": 1,
        "discount_type": {
            "id": 1,
            "name": "дети от 6 до 18 лет",
            "translations": {
                "name": {
                    "ua": "діти від 6 до 18 років",
                    "pl": "test",
                    "en": "test",
                    "ru": "дети от 6 до 18 лет"
                }
            },
            "created_at": "2023-12-08T12:03:28.000000Z",
            "updated_at": "2024-04-18T07:03:12.000000Z"
        },
        "discount_value": 12,
        "created_at": "2023-12-08T12:03:40.000000Z",
        "updated_at": "2023-12-08T12:03:40.000000Z"
    }
}
 

Request   

PATCH api/bus-discounts/{discount_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

discount_id   integer   

The ID of the discount. Example: 1

Query Parameters

discount_type_id   integer   

Discount type ID Example: 1

discount_value   numeric   

Discount value Example: 10

Delete bus discount

requires authentication

Delete bus discount

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-discounts/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-discounts/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/bus-discounts/{discount_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

discount_id   integer   

The ID of the discount. Example: 1

Get bus flight schedules

requires authentication

Get bus flight schedules

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/schedules?entity_type=bus_flight&entity_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/schedules"
);

const params = {
    "entity_type": "bus_flight",
    "entity_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",
};

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

Example response (200):


{
    "data": [
        {
            "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,
            "connecting_bus_flight": null,
            "connecting_bus_route": null,
            "position": 0,
            "departure_days": [
                {
                    "id": 4587,
                    "day_of_week": 1,
                    "day_name": "понедельник"
                },
                {
                    "id": 4588,
                    "day_of_week": 2,
                    "day_name": "вторник"
                },
                {
                    "id": 4589,
                    "day_of_week": 3,
                    "day_name": "среда"
                },
                {
                    "id": 4590,
                    "day_of_week": 4,
                    "day_name": "четверг"
                },
                {
                    "id": 4591,
                    "day_of_week": 5,
                    "day_name": "пятница"
                },
                {
                    "id": 4592,
                    "day_of_week": 6,
                    "day_name": "суббота"
                },
                {
                    "id": 4593,
                    "day_of_week": 7,
                    "day_name": "воскресенье"
                }
            ],
            "entity": {
                "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,
                "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"
            },
            "sale_status": "open",
            "is_active": true,
            "has_transfer": false,
            "hint": "",
            "translations": {
                "hint": []
            },
            "created_at": "2024-01-19T11:59:02.000000Z",
            "updated_at": "2024-04-22T06:39:22.000000Z"
        },
        {
            "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,
            "connecting_bus_flight": null,
            "connecting_bus_route": null,
            "position": 0,
            "departure_days": [
                {
                    "id": 4587,
                    "day_of_week": 1,
                    "day_name": "понедельник"
                },
                {
                    "id": 4588,
                    "day_of_week": 2,
                    "day_name": "вторник"
                },
                {
                    "id": 4589,
                    "day_of_week": 3,
                    "day_name": "среда"
                },
                {
                    "id": 4590,
                    "day_of_week": 4,
                    "day_name": "четверг"
                },
                {
                    "id": 4591,
                    "day_of_week": 5,
                    "day_name": "пятница"
                },
                {
                    "id": 4592,
                    "day_of_week": 6,
                    "day_name": "суббота"
                },
                {
                    "id": 4593,
                    "day_of_week": 7,
                    "day_name": "воскресенье"
                }
            ],
            "entity": {
                "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,
                "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"
            },
            "sale_status": "open",
            "is_active": true,
            "has_transfer": false,
            "hint": "",
            "translations": {
                "hint": []
            },
            "created_at": "2024-01-19T11:59:02.000000Z",
            "updated_at": "2024-04-22T06:39:22.000000Z"
        }
    ]
}
 

Request   

GET api/schedules

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Create bus flight schedule

requires authentication

Create bus flight schedule

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/schedules" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"entity_type\": \"bus_flight\",
    \"entity_id\": 1,
    \"departure_point_id\": 1,
    \"arrival_time\": \"12:00\",
    \"departure_time\": \"12:00\",
    \"platform\": \"1\",
    \"has_landing\": 1,
    \"has_disembarkation\": 1,
    \"is_connecting\": 1,
    \"from_connecting_schedule_id\": 1,
    \"to_connecting_schedule_id\": 1,
    \"days_in_road\": 1,
    \"departure_days\": [
        1,
        2,
        3
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/schedules"
);

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

let body = {
    "entity_type": "bus_flight",
    "entity_id": 1,
    "departure_point_id": 1,
    "arrival_time": "12:00",
    "departure_time": "12:00",
    "platform": "1",
    "has_landing": 1,
    "has_disembarkation": 1,
    "is_connecting": 1,
    "from_connecting_schedule_id": 1,
    "to_connecting_schedule_id": 1,
    "days_in_road": 1,
    "departure_days": [
        1,
        2,
        3
    ]
};

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

Example response (200):


{
    "data": {
        "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,
        "connecting_bus_flight": null,
        "position": 0,
        "departure_days": [
            {
                "id": 4587,
                "day_of_week": 1,
                "day_name": "понедельник"
            },
            {
                "id": 4588,
                "day_of_week": 2,
                "day_name": "вторник"
            },
            {
                "id": 4589,
                "day_of_week": 3,
                "day_name": "среда"
            },
            {
                "id": 4590,
                "day_of_week": 4,
                "day_name": "четверг"
            },
            {
                "id": 4591,
                "day_of_week": 5,
                "day_name": "пятница"
            },
            {
                "id": 4592,
                "day_of_week": 6,
                "day_name": "суббота"
            },
            {
                "id": 4593,
                "day_of_week": 7,
                "day_name": "воскресенье"
            }
        ],
        "entity": {
            "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,
            "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"
        },
        "sale_status": "open",
        "is_active": true,
        "has_transfer": false,
        "hint": "",
        "translations": {
            "hint": []
        },
        "created_at": "2024-01-19T11:59:02.000000Z",
        "updated_at": "2024-04-22T06:39:22.000000Z"
    }
}
 

Request   

POST api/schedules

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

departure_point_id   string   

Departure point id Example: 1

arrival_time   string   

Arrival time Example: 12:00

departure_time   string   

Departure time Example: 12:00

platform   string  optional  

Platform Example: 1

has_landing   string   

Has landing Example: 1

has_disembarkation   string   

Has disembarkation Example: 1

is_connecting   string   

Is connecting Example: 1

from_connecting_schedule_id   string  optional  

Connecting bus flight schedule id Example: 1

to_connecting_schedule_id   string  optional  

Connecting bus flight schedule id Example: 1

days_in_road   string  optional  

Days in road Example: 1

departure_days   string[]   

Departure days (number of week iso)

Sort bus flight schedules

requires authentication

Sort bus flight schedules

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/schedules/sort" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"entity_type\": \"bus_flight\",
    \"entity_id\": 1,
    \"positions\": [
        1
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/schedules/sort"
);

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

let body = {
    "entity_type": "bus_flight",
    "entity_id": 1,
    "positions": [
        1
    ]
};

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

Request   

POST api/schedules/sort

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

positions   string[]   

Sorted ids

Update bus flight schedule

requires authentication

Update bus flight schedule

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/schedules/1631" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"departurePoint_id\": 1,
    \"arrival_time\": \"12:00\",
    \"departure_time\": \"12:00\",
    \"platform\": \"1\",
    \"has_landing\": 1,
    \"has_disembarkation\": 1,
    \"is_connecting\": 1,
    \"from_connecting_schedule_id\": 1,
    \"to_connecting_schedule_id\": 1,
    \"sale_status\": \"open\",
    \"days_in_road\": 1,
    \"departure_days\": [
        1,
        2,
        3
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/schedules/1631"
);

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

let body = {
    "departurePoint_id": 1,
    "arrival_time": "12:00",
    "departure_time": "12:00",
    "platform": "1",
    "has_landing": 1,
    "has_disembarkation": 1,
    "is_connecting": 1,
    "from_connecting_schedule_id": 1,
    "to_connecting_schedule_id": 1,
    "sale_status": "open",
    "days_in_road": 1,
    "departure_days": [
        1,
        2,
        3
    ]
};

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

Example response (200):


{
    "data": {
        "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,
        "connecting_bus_flight": null,
        "position": 0,
        "departure_days": [
            {
                "id": 4587,
                "day_of_week": 1,
                "day_name": "понедельник"
            },
            {
                "id": 4588,
                "day_of_week": 2,
                "day_name": "вторник"
            },
            {
                "id": 4589,
                "day_of_week": 3,
                "day_name": "среда"
            },
            {
                "id": 4590,
                "day_of_week": 4,
                "day_name": "четверг"
            },
            {
                "id": 4591,
                "day_of_week": 5,
                "day_name": "пятница"
            },
            {
                "id": 4592,
                "day_of_week": 6,
                "day_name": "суббота"
            },
            {
                "id": 4593,
                "day_of_week": 7,
                "day_name": "воскресенье"
            }
        ],
        "entity": {
            "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,
            "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"
        },
        "sale_status": "open",
        "is_active": true,
        "has_transfer": false,
        "hint": "",
        "translations": {
            "hint": []
        },
        "created_at": "2024-01-19T11:59:02.000000Z",
        "updated_at": "2024-04-22T06:39:22.000000Z"
    }
}
 

Request   

PATCH api/schedules/{schedule_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

schedule_id   integer   

The ID of the schedule. Example: 1631

Body Parameters

departurePoint_id   string  optional  

Departure point id Example: 1

arrival_time   string  optional  

Arrival time Example: 12:00

departure_time   string  optional  

Departure time Example: 12:00

platform   string  optional  

Platform Example: 1

has_landing   string  optional  

Has landing Example: 1

has_disembarkation   string  optional  

Has disembarkation Example: 1

is_connecting   string  optional  

Is connecting Example: 1

from_connecting_schedule_id   string  optional  

Connecting bus flight schedule id Example: 1

to_connecting_schedule_id   string  optional  

Connecting bus flight schedule id Example: 1

sale_status   string  optional  

close or open sale (close, open) Example: open

days_in_road   string  optional  

Days in road Example: 1

departure_days   string[]  optional  

Departure days (number of week iso)

Delete bus flight schedule

requires authentication

Delete bus flight schedule

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/schedules/autem" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/schedules/autem"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/schedules/{schedule_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

schedule_id   string   

The ID of the schedule. Example: autem

Get list for update sale status

requires authentication

Get list for update sale status

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/schedules/index-for-update-sale-status/voluptatem" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/schedules/index-for-update-sale-status/voluptatem"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/schedules/index-for-update-sale-status/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the index for update sale status. Example: voluptatem

Get bus prices

requires authentication

Get bus prices

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus_prices?entity_type=bus_flight&entity_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus_prices"
);

const params = {
    "entity_type": "bus_flight",
    "entity_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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 9,
            "from_departure_point_id": 87,
            "to_departure_point_id": 91,
            "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"
                    }
                },
                "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"
            },
            "to_departure_point": {
                "id": 91,
                "name": "Магазин АТБ",
                "translations": {
                    "name": {
                        "ua": "Магазин АТБ",
                        "pl": "Магазин АТБ",
                        "en": "Магазин АТБ"
                    }
                },
                "city": {
                    "id": 269,
                    "name": "Козелец",
                    "translations": {
                        "name": {
                            "ua": "Козелець",
                            "pl": "Kozelec",
                            "en": "Козелець",
                            "ru": "Козелец"
                        }
                    },
                    "population": null,
                    "number_of_bus_routes": 0,
                    "visibility": true,
                    "country_id": 6,
                    "created_at": "2023-11-02T12:18:53.000000Z",
                    "updated_at": "2025-07-17T06:32:14.000000Z"
                },
                "visibility": true,
                "created_at": "2023-11-02T12:19:09.000000Z",
                "updated_at": "2023-11-02T12:19:09.000000Z"
            },
            "price": [
                {
                    "amount": 60,
                    "currency_id": 88
                },
                {
                    "amount": 0,
                    "currency_id": 89
                }
            ],
            "is_active": true,
            "is_forbidden": false
        },
        {
            "id": 9,
            "from_departure_point_id": 87,
            "to_departure_point_id": 91,
            "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"
                    }
                },
                "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"
            },
            "to_departure_point": {
                "id": 91,
                "name": "Магазин АТБ",
                "translations": {
                    "name": {
                        "ua": "Магазин АТБ",
                        "pl": "Магазин АТБ",
                        "en": "Магазин АТБ"
                    }
                },
                "city": {
                    "id": 269,
                    "name": "Козелец",
                    "translations": {
                        "name": {
                            "ua": "Козелець",
                            "pl": "Kozelec",
                            "en": "Козелець",
                            "ru": "Козелец"
                        }
                    },
                    "population": null,
                    "number_of_bus_routes": 0,
                    "visibility": true,
                    "country_id": 6,
                    "created_at": "2023-11-02T12:18:53.000000Z",
                    "updated_at": "2025-07-17T06:32:14.000000Z"
                },
                "visibility": true,
                "created_at": "2023-11-02T12:19:09.000000Z",
                "updated_at": "2023-11-02T12:19:09.000000Z"
            },
            "price": [
                {
                    "amount": 60,
                    "currency_id": 88
                },
                {
                    "amount": 0,
                    "currency_id": 89
                }
            ],
            "is_active": true,
            "is_forbidden": false
        }
    ]
}
 

Request   

GET api/bus_prices

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Create or update bus prices

requires authentication

Create or update bus prices

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus_prices" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"price_data\": [
        {
            \"from_departure_point_id\": 1,
            \"to_departure_point_id\": 2,
            \"price\": [
                {
                    \"currency_id\": 1,
                    \"amount\": 1000
                }
            ],
            \"is_active\": true
        }
    ],
    \"entity_type\": \"bus_flight\",
    \"entity_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus_prices"
);

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

let body = {
    "price_data": [
        {
            "from_departure_point_id": 1,
            "to_departure_point_id": 2,
            "price": [
                {
                    "currency_id": 1,
                    "amount": 1000
                }
            ],
            "is_active": true
        }
    ],
    "entity_type": "bus_flight",
    "entity_id": 1
};

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

Example response (200):


{
    "data": [
        {
            "id": 9,
            "from_departure_point_id": 87,
            "to_departure_point_id": 91,
            "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"
                    }
                },
                "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"
            },
            "to_departure_point": {
                "id": 91,
                "name": "Магазин АТБ",
                "translations": {
                    "name": {
                        "ua": "Магазин АТБ",
                        "pl": "Магазин АТБ",
                        "en": "Магазин АТБ"
                    }
                },
                "city": {
                    "id": 269,
                    "name": "Козелец",
                    "translations": {
                        "name": {
                            "ua": "Козелець",
                            "pl": "Kozelec",
                            "en": "Козелець",
                            "ru": "Козелец"
                        }
                    },
                    "population": null,
                    "number_of_bus_routes": 0,
                    "visibility": true,
                    "country_id": 6,
                    "created_at": "2023-11-02T12:18:53.000000Z",
                    "updated_at": "2025-07-17T06:32:14.000000Z"
                },
                "visibility": true,
                "created_at": "2023-11-02T12:19:09.000000Z",
                "updated_at": "2023-11-02T12:19:09.000000Z"
            },
            "price": [
                {
                    "amount": 60,
                    "currency_id": 88
                },
                {
                    "amount": 0,
                    "currency_id": 89
                }
            ],
            "is_active": true,
            "is_forbidden": false
        },
        {
            "id": 9,
            "from_departure_point_id": 87,
            "to_departure_point_id": 91,
            "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"
                    }
                },
                "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"
            },
            "to_departure_point": {
                "id": 91,
                "name": "Магазин АТБ",
                "translations": {
                    "name": {
                        "ua": "Магазин АТБ",
                        "pl": "Магазин АТБ",
                        "en": "Магазин АТБ"
                    }
                },
                "city": {
                    "id": 269,
                    "name": "Козелец",
                    "translations": {
                        "name": {
                            "ua": "Козелець",
                            "pl": "Kozelec",
                            "en": "Козелець",
                            "ru": "Козелец"
                        }
                    },
                    "population": null,
                    "number_of_bus_routes": 0,
                    "visibility": true,
                    "country_id": 6,
                    "created_at": "2023-11-02T12:18:53.000000Z",
                    "updated_at": "2025-07-17T06:32:14.000000Z"
                },
                "visibility": true,
                "created_at": "2023-11-02T12:19:09.000000Z",
                "updated_at": "2023-11-02T12:19:09.000000Z"
            },
            "price": [
                {
                    "amount": 60,
                    "currency_id": 88
                },
                {
                    "amount": 0,
                    "currency_id": 89
                }
            ],
            "is_active": true,
            "is_forbidden": false
        }
    ]
}
 

Request   

POST api/bus_prices

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

price_data   string[]   

Price data

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Get booking date limits

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/booking-date-limits?entity_type=bus_flight&entity_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/booking-date-limits"
);

const params = {
    "entity_type": "bus_flight",
    "entity_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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 5,
            "date_from": "2023-12-31T21:00:00.000000Z",
            "date_to": "2024-02-01T21:00:00.000000Z",
            "limit_value": 5,
            "created_at": "2023-11-02T12:25:27.000000Z",
            "updated_at": "2023-11-02T12:25:27.000000Z"
        },
        {
            "id": 5,
            "date_from": "2023-12-31T21:00:00.000000Z",
            "date_to": "2024-02-01T21:00:00.000000Z",
            "limit_value": 5,
            "created_at": "2023-11-02T12:25:27.000000Z",
            "updated_at": "2023-11-02T12:25:27.000000Z"
        }
    ]
}
 

Request   

GET api/booking-date-limits

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Create booking date limit

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/booking-date-limits" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"entity_type\": \"bus_flight\",
    \"entity_id\": 1,
    \"date_from\": \"2021-01-01\",
    \"date_to\": \"2021-01-01\",
    \"limit_value\": 10
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/booking-date-limits"
);

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

let body = {
    "entity_type": "bus_flight",
    "entity_id": 1,
    "date_from": "2021-01-01",
    "date_to": "2021-01-01",
    "limit_value": 10
};

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

Example response (200):


{
    "data": {
        "id": 5,
        "date_from": "2023-12-31T21:00:00.000000Z",
        "date_to": "2024-02-01T21:00:00.000000Z",
        "limit_value": 5,
        "created_at": "2023-11-02T12:25:27.000000Z",
        "updated_at": "2023-11-02T12:25:27.000000Z"
    }
}
 

Request   

POST api/booking-date-limits

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

date_from   date   

Date from Example: 2021-01-01

date_to   date   

Date to Example: 2021-01-01

limit_value   integer   

Limit value Example: 10

Update booking date limit

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/booking-date-limits/5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date_from\": \"2021-01-01\",
    \"date_to\": \"2021-01-01\",
    \"limit_value\": 10
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/booking-date-limits/5"
);

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

let body = {
    "date_from": "2021-01-01",
    "date_to": "2021-01-01",
    "limit_value": 10
};

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

Example response (200):


{
    "data": {
        "id": 5,
        "date_from": "2023-12-31T21:00:00.000000Z",
        "date_to": "2024-02-01T21:00:00.000000Z",
        "limit_value": 5,
        "created_at": "2023-11-02T12:25:27.000000Z",
        "updated_at": "2023-11-02T12:25:27.000000Z"
    }
}
 

Request   

PATCH api/booking-date-limits/{bookingDateLimit_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bookingDateLimit_id   integer   

The ID of the bookingDateLimit. Example: 5

Body Parameters

date_from   date   

Date from Example: 2021-01-01

date_to   date   

Date to Example: 2021-01-01

limit_value   integer   

Limit value Example: 10

Delete booking date limit

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/booking-date-limits/5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/booking-date-limits/5"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/booking-date-limits/{bookingDateLimit_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bookingDateLimit_id   integer   

The ID of the bookingDateLimit. Example: 5

Get list of bus flights

requires authentication

Get list of bus flights

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/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"
const url = new URL(
    "https://testapi.ticketbus365.com/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",
};

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
    }
}
 

Request   

GET api/bus-flights

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer   

Page number Example: 1

per_page   integer   

Items per page Example: 10

status   string   

Status Example: open

bus_route_number   string   

Bus route number Example: UA 1234556

departure_date   string   

Departure date Example: 2021-01-01

from_departure_point_id   integer   

From departure point id Example: 1

to_departure_point_id   integer   

To departure point id Example: 1

without_connecting   integer   

Without connection Example: 1

date_range   string[]   

Date range

bus_route_id   integer   

Bus route id Example: 1

GET api/bus-flights/export-passengers

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/export-passengers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/export-passengers"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/export-passengers

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Show bus flights

requires authentication

Get list of bus flights

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

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

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,
            "gender": null,
            "birthday": null,
            "name": "Herta Jast",
            "phone": "+1-667-744-6598",
            "email": "admin@admin.com",
            "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",
            "gender": null,
            "birthday": null
        },
        "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": 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": 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"
            }
        ],
        "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,
                "hint": "",
                "translations": {
                    "hint": []
                },
                "created_at": "2024-01-19T11:59:02.000000Z",
                "updated_at": "2024-04-22T06:39:22.000000Z"
            },
            {
                "id": 1632,
                "departure_point_id": 88,
                "departure_point": {
                    "id": 88,
                    "name": "Голливуд",
                    "translations": {
                        "name": {
                            "ua": "Голливуд",
                            "pl": "Голливуд",
                            "en": "Голливуд"
                        }
                    },
                    "city": {
                        "id": 268,
                        "name": "Чернигов",
                        "translations": {
                            "name": {
                                "ua": "Чернігів",
                                "en": "Chernihiv",
                                "pl": "Czernihów",
                                "ru": "Чернигов"
                            }
                        },
                        "population": 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,
                "hint": "",
                "translations": {
                    "hint": []
                },
                "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"
    }
}
 

Request   

GET api/bus-flights/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the bus flight. Example: 207

Get payment info

requires authentication

Get payment info

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

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

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

Example response (200):


{
    "cache_register_data": [
        {
            "total_price": 100,
            "currency": [
                "id",
                "display_name"
            ]
        }
    ],
    "spent_data": [
        {
            "total_price": 100,
            "currency": [
                "id",
                "display_name"
            ]
        }
    ],
    "driver_money_data": [
        {
            "total_price": 100,
            "currency": [
                "id",
                "display_name"
            ]
        }
    ]
}
 

Request   

GET api/bus-flights/{id}/payment-info

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the bus flight. Example: 207

Create bus flight

requires authentication

Create bus flight

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"bus_route_id\": 1,
    \"bus_id\": 1,
    \"driver_id\": 1,
    \"dispatcher_id\": 1,
    \"status\": \"active\",
    \"payment_time\": 15,
    \"sale_depth\": 30,
    \"currencies\": [
        1,
        2
    ],
    \"min_price\": [
        {
            \"currency_id\": 1,
            \"price\": 100
        }
    ],
    \"carrier_name\": \"Carrier name\",
    \"carrier_id\": 1,
    \"sale_end_time_before_departure\": 15
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights"
);

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

let body = {
    "bus_route_id": 1,
    "bus_id": 1,
    "driver_id": 1,
    "dispatcher_id": 1,
    "status": "active",
    "payment_time": 15,
    "sale_depth": 30,
    "currencies": [
        1,
        2
    ],
    "min_price": [
        {
            "currency_id": 1,
            "price": 100
        }
    ],
    "carrier_name": "Carrier name",
    "carrier_id": 1,
    "sale_end_time_before_departure": 15
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).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,
        "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,
        "currencies": [
            {
                "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": 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"
            }
        ],
        "min_price": [
            {
                "currency_id": 89,
                "price": "10"
            },
            {
                "currency_id": 88,
                "price": "10"
            }
        ],
        "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"
            }
        ],
        "created_at": "2024-01-19T11:59:02.000000Z",
        "updated_at": "2024-04-22T06:40:52.000000Z"
    }
}
 

Request   

POST api/bus-flights

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

bus_route_id   integer   

Bus route id Example: 1

bus_id   integer   

Bus id Example: 1

driver_id   integer   

Driver id Example: 1

dispatcher_id   integer   

Dispatcher id Example: 1

status   string   

Status Example: active

payment_time   integer   

Payment time in minutes Example: 15

sale_depth   integer   

Sale depth in days Example: 30

currencies   string[]   

Currencies ids

min_price   string[]   

Min price

carrier_name   string   

Carrier name Example: Carrier name

carrier_id   string   

Carrier id Example: 1

sale_end_time_before_departure   integer   

Sale end time before departure Example: 15

Update bus flight

requires authentication

Update bus flight

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"bus_route_id\": 1,
    \"bus_id\": 1,
    \"driver_id\": 1,
    \"dispatcher_id\": 1,
    \"status\": \"active\",
    \"payment_time\": 15,
    \"sale_depth\": 30,
    \"number_of_seats\": 30,
    \"seat_selection_allowed\": 1,
    \"seat_selection_not_allowed_date_from\": \"2021-01-01\",
    \"seat_selection_not_allowed_date_to\": \"2021-01-01\",
    \"without_companion\": 1,
    \"currencies\": [
        1,
        2
    ],
    \"forbidden_sale_date_from\": \"2021-01-01 00:00:00\",
    \"forbidden_sale_date_to\": \"2021-01-01 00:00:00\",
    \"payment_methods\": [
        1,
        2
    ],
    \"min_price\": [
        {
            \"currency_id\": 1,
            \"price\": 100
        }
    ],
    \"carrier_name\": \"Carrier name\",
    \"carrier_id\": 1,
    \"sale_end_time_before_departure\": 15
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207"
);

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

let body = {
    "bus_route_id": 1,
    "bus_id": 1,
    "driver_id": 1,
    "dispatcher_id": 1,
    "status": "active",
    "payment_time": 15,
    "sale_depth": 30,
    "number_of_seats": 30,
    "seat_selection_allowed": 1,
    "seat_selection_not_allowed_date_from": "2021-01-01",
    "seat_selection_not_allowed_date_to": "2021-01-01",
    "without_companion": 1,
    "currencies": [
        1,
        2
    ],
    "forbidden_sale_date_from": "2021-01-01 00:00:00",
    "forbidden_sale_date_to": "2021-01-01 00:00:00",
    "payment_methods": [
        1,
        2
    ],
    "min_price": [
        {
            "currency_id": 1,
            "price": 100
        }
    ],
    "carrier_name": "Carrier name",
    "carrier_id": 1,
    "sale_end_time_before_departure": 15
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).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,
        "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,
        "currencies": [
            {
                "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": 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"
            }
        ],
        "min_price": [
            {
                "currency_id": 89,
                "price": "10"
            },
            {
                "currency_id": 88,
                "price": "10"
            }
        ],
        "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"
            }
        ],
        "created_at": "2024-01-19T11:59:02.000000Z",
        "updated_at": "2024-04-22T06:40:52.000000Z"
    }
}
 

Request   

PATCH api/bus-flights/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the bus flight. Example: 207

Body Parameters

bus_route_id   integer   

Bus route id Example: 1

bus_id   integer   

Bus id Example: 1

driver_id   integer   

Driver id Example: 1

dispatcher_id   integer   

Dispatcher id Example: 1

status   string   

Status Example: active

payment_time   integer   

Payment time in minutes Example: 15

sale_depth   integer   

Sale depth in days Example: 30

number_of_seats   integer   

Number of seats Example: 30

seat_selection_allowed   boolean   

Seat selection allowed Example: 1

seat_selection_not_allowed_date_from   string   

Seat selection allowed date from Example: 2021-01-01

seat_selection_not_allowed_date_to   string   

Seat selection allowed date to Example: 2021-01-01

without_companion   boolean   

Without companion Example: 1

currencies   string[]   

Currencies ids

forbidden_sale_date_from   string   

Sale date from Example: 2021-01-01 00:00:00

forbidden_sale_date_to   string   

Sale date to Example: 2021-01-01 00:00:00

payment_methods   string[]   

Payment methods ids

min_price   string[]   

Min price

carrier_name   string   

Carrier name Example: Carrier name

carrier_id   string   

Carrier id Example: 1

sale_end_time_before_departure   integer   

Sale end time before departure Example: 15

Delete bus flight

requires authentication

Delete bus flight

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/bus-flights/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the bus flight. Example: 207

Get all occupied seats for a bus flight

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/occupied-seats?from_departure_point_id=1&to_departure_point_id=2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/occupied-seats"
);

const params = {
    "from_departure_point_id": "1",
    "to_departure_point_id": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

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

Example response (200):


{
    "data": [
        {
            "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"
        },
        {
            "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"
        }
    ]
}
 

Request   

GET api/bus-flights/{bus_flight_id}/occupied-seats

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Query Parameters

from_departure_point_id   integer   

Filter by departure point ID Example: 1

to_departure_point_id   integer   

Filter by arrival point ID Example: 2

Store special an occupied seat for a bus flight

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/occupied-seats" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"from_departure_point_id\": 1,
    \"to_departure_point_id\": 2,
    \"seat_number\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/occupied-seats"
);

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

let body = {
    "from_departure_point_id": 1,
    "to_departure_point_id": 2,
    "seat_number": 1
};

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

Example response (200):


{
    "data": {
        "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"
    }
}
 

Request   

POST api/bus-flights/{bus_flight_id}/occupied-seats

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Body Parameters

from_departure_point_id   integer   

Filter by departure point ID Example: 1

to_departure_point_id   integer   

Filter by arrival point ID Example: 2

seat_number   integer   

Seat numbers Example: 1

Delete special an occupied seat for a bus flight

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/occupied-seats/culpa" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/occupied-seats/culpa"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/bus-flights/{bus_flight_id}/occupied-seats/{occupied_seat_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

occupied_seat_id   string   

The ID of the occupied seat. Example: culpa

Get entity aliases

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/entity-alias?entity_type=bus_route&entity_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/entity-alias"
);

const params = {
    "entity_type": "bus_route",
    "entity_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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 1,
            "entity_type": "App\\Models\\BusRoute",
            "entity_id": 83,
            "alias": "Dnipro - Poznan (Szczecin)",
            "created_at": "2024-04-19T09:21:03.000000Z",
            "updated_at": "2024-04-19T09:21:03.000000Z"
        },
        {
            "id": 1,
            "entity_type": "App\\Models\\BusRoute",
            "entity_id": 83,
            "alias": "Dnipro - Poznan (Szczecin)",
            "created_at": "2024-04-19T09:21:03.000000Z",
            "updated_at": "2024-04-19T09:21:03.000000Z"
        }
    ]
}
 

Request   

GET api/entity-alias

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(departure_point, bus_route) Example: bus_route

entity_id   integer   

Entity ID Example: 1

Create entity alias

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/entity-alias" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"entity_type\": \"bus_route\",
    \"entity_id\": 1,
    \"alias\": \"bus-1\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/entity-alias"
);

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

let body = {
    "entity_type": "bus_route",
    "entity_id": 1,
    "alias": "bus-1"
};

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

Example response (200):


{
    "data": {
        "id": 1,
        "entity_type": "App\\Models\\BusRoute",
        "entity_id": 83,
        "alias": "Dnipro - Poznan (Szczecin)",
        "created_at": "2024-04-19T09:21:03.000000Z",
        "updated_at": "2024-04-19T09:21:03.000000Z"
    }
}
 

Request   

POST api/entity-alias

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

entity_type   string   

(departure_point, bus_route) Example: bus_route

entity_id   integer   

Entity ID Example: 1

alias   string   

Alias Example: bus-1

Update entity alias

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/entity-alias/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"alias\": \"bus-1\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/entity-alias/1"
);

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

let body = {
    "alias": "bus-1"
};

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

Example response (200):


{
    "data": {
        "id": 1,
        "entity_type": "App\\Models\\BusRoute",
        "entity_id": 83,
        "alias": "Dnipro - Poznan (Szczecin)",
        "created_at": "2024-04-19T09:21:03.000000Z",
        "updated_at": "2024-04-19T09:21:03.000000Z"
    }
}
 

Request   

PATCH api/entity-alias/{alias_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

alias_id   integer   

The ID of the alias. Example: 1

Body Parameters

alias   string   

Alias Example: bus-1

Delete entity alias

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/entity-alias/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/entity-alias/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/entity-alias/{alias_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

alias_id   integer   

The ID of the alias. Example: 1

Get unresolved entity aliases

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/unresolved-entity-alias" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/unresolved-entity-alias"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 457,
            "entity_type": "App\\Models\\BusRoute",
            "alias": "Id omnis.",
            "source": "kolobus",
            "created_at": "2025-11-02T07:51:05.000000Z",
            "updated_at": "2025-11-02T07:51:05.000000Z",
            "deleted_at": null
        },
        {
            "id": 458,
            "entity_type": "App\\Models\\BusRoute",
            "alias": "Ipsum.",
            "source": "bussystem",
            "created_at": "2025-11-02T07:51:05.000000Z",
            "updated_at": "2025-11-02T07:51:05.000000Z",
            "deleted_at": null
        }
    ]
}
 

Request   

GET api/unresolved-entity-alias

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Delete unresolved entity alias

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/unresolved-entity-alias/14" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/unresolved-entity-alias/14"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/unresolved-entity-alias/{alias}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

alias   integer   

Example: 14

Resolve unresolved entity alias

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/unresolved-entity-alias/14/resolve" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/unresolved-entity-alias/14/resolve"
);

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

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

Example response (200, No content):


204
 

Request   

PATCH api/unresolved-entity-alias/{alias_id}/resolve

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

alias_id   integer   

The ID of the alias. Example: 14

Bus route

Bus routes

Get all bus routes

requires authentication

Get all bus routes

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/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"
const url = new URL(
    "https://testapi.ticketbus365.com/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",
};

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,
                "gender": null,
                "birthday": null,
                "name": "Herta Jast",
                "phone": "+1-667-744-6598",
                "email": "admin@admin.com",
                "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,
                "gender": null,
                "birthday": null,
                "name": "Herta Jast",
                "phone": "+1-667-744-6598",
                "email": "admin@admin.com",
                "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
    }
}
 

Request   

GET api/bus-routes

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   string   

Page number Example: 1

search   string   

Search string Example: 000 111

status   string   

Status Example: active

city_from_id   string   

City from ID Example: 1

city_to_id   string   

City to ID Example: 2

departure_date   string   

Departure date Example: 2021-01-01

from_departure_point_id   integer   

From departure point id Example: 1

to_departure_point_id   integer   

To departure point id Example: 1

without_connecting   integer   

Without connection Example: 1

include_schedule   integer   

Include bus route schedule Example: 1

per_page   integer   

Items per page Example: 10

Create bus route

requires authentication

Create bus route

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-routes" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"number\": \"000 111\",
    \"city_from_id\": 1,
    \"city_to_id\": 2,
    \"status\": \"active\",
    \"bus_id\": 1,
    \"driver_id\": 1,
    \"dispatcher_id\": 1,
    \"payment_time\": 15,
    \"sale_depth\": 30,
    \"flight_generation_depth\": 30,
    \"currencies\": [
        1,
        2
    ],
    \"min_price\": [
        {
            \"currency_id\": 1,
            \"price\": 100
        }
    ],
    \"carrier_name\": \"Carrier name\",
    \"carrier_id\": 1,
    \"name\": {
        \"en\": \"some - some\",
        \"ar\": \"نيويورك\"
    },
    \"sale_end_time_before_departure\": 15
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-routes"
);

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

let body = {
    "number": "000 111",
    "city_from_id": 1,
    "city_to_id": 2,
    "status": "active",
    "bus_id": 1,
    "driver_id": 1,
    "dispatcher_id": 1,
    "payment_time": 15,
    "sale_depth": 30,
    "flight_generation_depth": 30,
    "currencies": [
        1,
        2
    ],
    "min_price": [
        {
            "currency_id": 1,
            "price": 100
        }
    ],
    "carrier_name": "Carrier name",
    "carrier_id": 1,
    "name": {
        "en": "some - some",
        "ar": "نيويورك"
    },
    "sale_end_time_before_departure": 15
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).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,
            "gender": null,
            "birthday": null,
            "name": "Herta Jast",
            "phone": "+1-667-744-6598",
            "email": "admin@admin.com",
            "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"
    }
}
 

Request   

POST api/bus-routes

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

number   string   

Bus route number Example: 000 111

city_from_id   string   

City from ID Example: 1

city_to_id   string   

City to ID Example: 2

status   string   

Status Example: active

bus_id   integer   

Bus id Example: 1

driver_id   integer   

Driver id Example: 1

dispatcher_id   integer   

Dispatcher id Example: 1

payment_time   integer   

Payment time in minutes Example: 15

sale_depth   integer   

Sale depth in days Example: 30

flight_generation_depth   integer   

Flight generation depth in days Example: 30

currencies   string[]   

Currencies ids

min_price   string[]   

Min price

carrier_name   string   

Carrier name Example: Carrier name

carrier_id   string   

Carrier id Example: 1

name   string[]   

Bus route name

sale_end_time_before_departure   integer   

Sale end time before departure Example: 15

Show bus route

requires authentication

Get bus route

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

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

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,
            "gender": null,
            "birthday": null,
            "name": "Herta Jast",
            "phone": "+1-667-744-6598",
            "email": "admin@admin.com",
            "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",
            "gender": null,
            "birthday": null,
            "name": "Шевченко (водитель)",
            "phone": "38063999999",
            "email": "driver1@admin.com",
            "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",
            "gender": null,
            "birthday": null,
            "name": null,
            "phone": "123123",
            "email": "test@test.com",
            "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": 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"
            },
            {
                "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": 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"
    }
}
 

Request   

GET api/bus-routes/{bus_route_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_route_id   integer   

The ID of the bus route. Example: 82

Update bus route

requires authentication

Get bus route

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-routes/82" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"number\": \"000 111\",
    \"city_from_id\": 1,
    \"city_to_id\": 2,
    \"status\": \"active\",
    \"bus_id\": 1,
    \"driver_id\": 1,
    \"dispatcher_id\": 1,
    \"payment_time\": 15,
    \"sale_depth\": 30,
    \"flight_generation_depth\": 30,
    \"number_of_seats\": 30,
    \"seat_selection_allowed\": 1,
    \"seat_selection_not_allowed_date_from\": \"2021-01-01 00:00:00\",
    \"seat_selection_not_allowed_date_to\": \"2021-01-01 00:00:00\",
    \"without_companion\": 1,
    \"currencies\": [
        1,
        2
    ],
    \"forbidden_sale_date_from\": \"2021-01-01 00:00:00\",
    \"forbidden_sale_date_to\": \"2021-01-01 00:00:00\",
    \"payment_methods\": [
        1,
        2
    ],
    \"min_price\": [
        {
            \"currency_id\": 1,
            \"price\": 100
        }
    ],
    \"carrier_name\": \"Carrier name\",
    \"carrier_id\": 1,
    \"name\": {
        \"en\": \"some - some\",
        \"ar\": \"نيويورك\"
    },
    \"sale_end_time_before_departure\": 15
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-routes/82"
);

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

let body = {
    "number": "000 111",
    "city_from_id": 1,
    "city_to_id": 2,
    "status": "active",
    "bus_id": 1,
    "driver_id": 1,
    "dispatcher_id": 1,
    "payment_time": 15,
    "sale_depth": 30,
    "flight_generation_depth": 30,
    "number_of_seats": 30,
    "seat_selection_allowed": 1,
    "seat_selection_not_allowed_date_from": "2021-01-01 00:00:00",
    "seat_selection_not_allowed_date_to": "2021-01-01 00:00:00",
    "without_companion": 1,
    "currencies": [
        1,
        2
    ],
    "forbidden_sale_date_from": "2021-01-01 00:00:00",
    "forbidden_sale_date_to": "2021-01-01 00:00:00",
    "payment_methods": [
        1,
        2
    ],
    "min_price": [
        {
            "currency_id": 1,
            "price": 100
        }
    ],
    "carrier_name": "Carrier name",
    "carrier_id": 1,
    "name": {
        "en": "some - some",
        "ar": "نيويورك"
    },
    "sale_end_time_before_departure": 15
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).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,
            "gender": null,
            "birthday": null,
            "name": "Herta Jast",
            "phone": "+1-667-744-6598",
            "email": "admin@admin.com",
            "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",
            "gender": null,
            "birthday": null,
            "name": "Шевченко (водитель)",
            "phone": "38063999999",
            "email": "driver1@admin.com",
            "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"
        },
        "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": 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"
            },
            {
                "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": 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"
            }
        ],
        "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"
    }
}
 

Request   

PATCH api/bus-routes/{bus_route_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_route_id   integer   

The ID of the bus route. Example: 82

Body Parameters

number   string   

Bus route number Example: 000 111

city_from_id   string   

City from ID Example: 1

city_to_id   string   

City to ID Example: 2

status   string   

Status Example: active

bus_id   integer   

Bus id Example: 1

driver_id   integer   

Driver id Example: 1

dispatcher_id   integer   

Dispatcher id Example: 1

payment_time   integer   

Payment time in minutes Example: 15

sale_depth   integer   

Sale depth in days Example: 30

flight_generation_depth   integer   

Flight generation depth in days Example: 30

number_of_seats   integer   

Number of seats Example: 30

seat_selection_allowed   boolean   

Seat selection allowed Example: 1

seat_selection_not_allowed_date_from   string   

Seat selection allowed date from Example: 2021-01-01 00:00:00

seat_selection_not_allowed_date_to   string   

Seat selection allowed date to Example: 2021-01-01 00:00:00

without_companion   boolean   

Without companion Example: 1

currencies   string[]   

Currencies ids

forbidden_sale_date_from   string   

Sale date from Example: 2021-01-01 00:00:00

forbidden_sale_date_to   string   

Sale date to Example: 2021-01-01 00:00:00

payment_methods   string[]   

Payment methods ids

min_price   string[]   

Min price

carrier_name   string   

Carrier name Example: Carrier name

carrier_id   string   

Carrier id Example: 1

name   string[]   

Bus route name

sale_end_time_before_departure   integer   

Sale end time before departure Example: 15

Delete bus route

requires authentication

Get bus route

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-routes/82" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-routes/82"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/bus-routes/{bus_route_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_route_id   integer   

The ID of the bus route. Example: 82

Driver

Get payment history

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/driver-payment-histories?bus_flight_id=1&per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/driver-payment-histories"
);

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

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

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

Example response (200):


{
    "data": [
        {
            "id": 25,
            "amount": "1000.00",
            "comment": null,
            "created_at": "2025-06-12T08:35:07.000000Z",
            "updated_at": "2025-06-12T08:35:07.000000Z"
        },
        {
            "id": 25,
            "amount": "1000.00",
            "comment": null,
            "created_at": "2025-06-12T08:35:07.000000Z",
            "updated_at": "2025-06-12T08:35:07.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Назад",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Вперед »",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request   

GET api/driver-payment-histories

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

bus_flight_id   string   

ID of the flight Example: 1

per_page   integer   

Items per page Example: 10

Create payment history

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/driver-payment-histories" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"bus_flight_id\": 1,
    \"amount\": 100,
    \"comment\": \"Paid for fuel\",
    \"currency_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/driver-payment-histories"
);

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

let body = {
    "bus_flight_id": 1,
    "amount": 100,
    "comment": "Paid for fuel",
    "currency_id": 1
};

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

Example response (200):


{
    "data": {
        "id": 25,
        "amount": "1000.00",
        "comment": null,
        "created_at": "2025-06-12T08:35:07.000000Z",
        "updated_at": "2025-06-12T08:35:07.000000Z"
    }
}
 

Request   

POST api/driver-payment-histories

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

bus_flight_id   string   

ID of the flight Example: 1

amount   string   

Amount paid Example: 100

comment   string   

Comment Example: Paid for fuel

currency_id   string   

Currency ID Example: 1

Update payment history

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/driver-payment-histories/25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 100,
    \"comment\": \"Paid for fuel\",
    \"currency_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/driver-payment-histories/25"
);

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

let body = {
    "amount": 100,
    "comment": "Paid for fuel",
    "currency_id": 1
};

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

Example response (200):


{
    "data": {
        "id": 25,
        "amount": "1000.00",
        "comment": null,
        "created_at": "2025-06-12T08:35:07.000000Z",
        "updated_at": "2025-06-12T08:35:07.000000Z"
    }
}
 

Request   

PATCH api/driver-payment-histories/{driverPaymentHistory_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

driverPaymentHistory_id   integer   

The ID of the driverPaymentHistory. Example: 25

Body Parameters

amount   string   

Amount paid Example: 100

comment   string   

Comment Example: Paid for fuel

currency_id   string   

Currency ID Example: 1

Delete payment history

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/driver-payment-histories/25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/driver-payment-histories/25"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/driver-payment-histories/{driverPaymentHistory_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

driverPaymentHistory_id   integer   

The ID of the driverPaymentHistory. Example: 25

Endpoints

POST api/webhooks/stripe

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/webhooks/stripe" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/webhooks/stripe"
);

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

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

Request   

POST api/webhooks/stripe

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

POST api/webhooks/liqpay

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/webhooks/liqpay" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/webhooks/liqpay"
);

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

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

Request   

POST api/webhooks/liqpay

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get all baggage shipment types

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/baggage-shipment-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-shipment-types"
);

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

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

Example response (200):

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

{
    "data": [
        {
            "id": 1,
            "name": "100x100",
            "translations": {
                "name": {
                    "en": "100x100",
                    "pl": "100x100",
                    "ru": "100x100",
                    "ua": "100x100"
                }
            },
            "created_at": "2025-05-23T07:40:50.000000Z",
            "updated_at": "2025-05-23T07:40:50.000000Z"
        }
    ]
}
 

Request   

GET api/baggage-shipment-types

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

GET api/users/{user_id}/api-tokens

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/users/1/api-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1/api-tokens"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/users/{user_id}/api-tokens

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   integer   

The ID of the user. Example: 1

POST api/users/{user_id}/api-tokens

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/users/1/api-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1/api-tokens"
);

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

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

Request   

POST api/users/{user_id}/api-tokens

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   integer   

The ID of the user. Example: 1

DELETE api/users/{user_id}/api-tokens/{token_id}

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/users/1/api-tokens/commodi" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1/api-tokens/commodi"
);

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

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

Request   

DELETE api/users/{user_id}/api-tokens/{token_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   integer   

The ID of the user. Example: 1

token_id   string   

The ID of the token. Example: commodi

GET api/users/{user_id}/apps

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/users/1/apps" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1/apps"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/users/{user_id}/apps

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   integer   

The ID of the user. Example: 1

POST api/users/{user_id}/apps

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/users/1/apps" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1/apps"
);

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

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

Request   

POST api/users/{user_id}/apps

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   integer   

The ID of the user. Example: 1

DELETE api/users/{user_id}/apps/{app_id}

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/users/1/apps/ipsam" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1/apps/ipsam"
);

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

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

Request   

DELETE api/users/{user_id}/apps/{app_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   integer   

The ID of the user. Example: 1

app_id   string   

The ID of the app. Example: ipsam

POST api/schedules/{schedule_id}/hint

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/schedules/1631/hint" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/schedules/1631/hint"
);

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

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

Request   

POST api/schedules/{schedule_id}/hint

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

schedule_id   integer   

The ID of the schedule. Example: 1631

Get current bus flight

requires authentication

Get current bus flight

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/current-bus-flight" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/current-bus-flight"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/current-bus-flight

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Resolve ticket

requires authentication

Resolve ticket by public ID

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/resolve-ticket/vel" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/resolve-ticket/vel"
);

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

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

Example response (200):


{
    "id": "string",
    "bus_flight_id": "string"
}
 

Request   

GET api/resolve-ticket/{ticketId}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

ticketId   string   

The public ID of the ticket Example: vel

GET api/bus-flights/{bus_flight}/reports

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/reports" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/reports"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight}/reports

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

GET api/bus-flights/{bus_flight}/bus-flight-report-stations

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-stations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-stations"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight}/bus-flight-report-stations

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

POST api/bus-flights/{bus_flight}/bus-flight-report-stations

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-stations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-stations"
);

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

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

Request   

POST api/bus-flights/{bus_flight}/bus-flight-report-stations

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

PATCH api/bus-flights/{bus_flight}/bus-flight-report-stations/{id}

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-stations/ut" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-stations/ut"
);

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

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

Request   

PATCH api/bus-flights/{bus_flight}/bus-flight-report-stations/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report station. Example: ut

DELETE api/bus-flights/{bus_flight}/bus-flight-report-stations/{id}

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-stations/omnis" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-stations/omnis"
);

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

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

Request   

DELETE api/bus-flights/{bus_flight}/bus-flight-report-stations/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report station. Example: omnis

GET api/bus-flights/{bus_flight}/bus-flight-report-fuels

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-fuels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-fuels"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight}/bus-flight-report-fuels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

POST api/bus-flights/{bus_flight}/bus-flight-report-fuels

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-fuels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-fuels"
);

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

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

Request   

POST api/bus-flights/{bus_flight}/bus-flight-report-fuels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

PATCH api/bus-flights/{bus_flight}/bus-flight-report-fuels/{id}

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-fuels/explicabo" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-fuels/explicabo"
);

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

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

Request   

PATCH api/bus-flights/{bus_flight}/bus-flight-report-fuels/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report fuel. Example: explicabo

DELETE api/bus-flights/{bus_flight}/bus-flight-report-fuels/{id}

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-fuels/asperiores" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-fuels/asperiores"
);

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

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

Request   

DELETE api/bus-flights/{bus_flight}/bus-flight-report-fuels/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report fuel. Example: asperiores

GET api/bus-flights/{bus_flight}/bus-flight-report-kilometers

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-kilometers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-kilometers"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight}/bus-flight-report-kilometers

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

POST api/bus-flights/{bus_flight}/bus-flight-report-kilometers

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-kilometers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-kilometers"
);

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

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

Request   

POST api/bus-flights/{bus_flight}/bus-flight-report-kilometers

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

PATCH api/bus-flights/{bus_flight}/bus-flight-report-kilometers/{id}

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-kilometers/nulla" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-kilometers/nulla"
);

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

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

Request   

PATCH api/bus-flights/{bus_flight}/bus-flight-report-kilometers/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report kilometer. Example: nulla

DELETE api/bus-flights/{bus_flight}/bus-flight-report-kilometers/{id}

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-kilometers/corporis" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-kilometers/corporis"
);

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

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

Request   

DELETE api/bus-flights/{bus_flight}/bus-flight-report-kilometers/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report kilometer. Example: corporis

GET api/bus-flights/{bus_flight}/bus-flight-report-hotels

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-hotels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-hotels"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight}/bus-flight-report-hotels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

POST api/bus-flights/{bus_flight}/bus-flight-report-hotels

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-hotels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-hotels"
);

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

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

Request   

POST api/bus-flights/{bus_flight}/bus-flight-report-hotels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

PATCH api/bus-flights/{bus_flight}/bus-flight-report-hotels/{id}

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-hotels/minima" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-hotels/minima"
);

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

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

Request   

PATCH api/bus-flights/{bus_flight}/bus-flight-report-hotels/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report hotel. Example: minima

DELETE api/bus-flights/{bus_flight}/bus-flight-report-hotels/{id}

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-hotels/vel" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-hotels/vel"
);

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

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

Request   

DELETE api/bus-flights/{bus_flight}/bus-flight-report-hotels/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report hotel. Example: vel

GET api/bus-flights/{bus_flight}/bus-flight-report-parkings

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-parkings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-parkings"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight}/bus-flight-report-parkings

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

POST api/bus-flights/{bus_flight}/bus-flight-report-parkings

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-parkings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-parkings"
);

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

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

Request   

POST api/bus-flights/{bus_flight}/bus-flight-report-parkings

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

PATCH api/bus-flights/{bus_flight}/bus-flight-report-parkings/{id}

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-parkings/quia" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-parkings/quia"
);

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

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

Request   

PATCH api/bus-flights/{bus_flight}/bus-flight-report-parkings/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report parking. Example: quia

DELETE api/bus-flights/{bus_flight}/bus-flight-report-parkings/{id}

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-parkings/aut" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-parkings/aut"
);

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

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

Request   

DELETE api/bus-flights/{bus_flight}/bus-flight-report-parkings/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report parking. Example: aut

GET api/bus-flights/{bus_flight}/bus-flight-report-others

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-others" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-others"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight}/bus-flight-report-others

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

POST api/bus-flights/{bus_flight}/bus-flight-report-others

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-others" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-others"
);

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

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

Request   

POST api/bus-flights/{bus_flight}/bus-flight-report-others

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

PATCH api/bus-flights/{bus_flight}/bus-flight-report-others/{id}

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-others/eum" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-others/eum"
);

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

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

Request   

PATCH api/bus-flights/{bus_flight}/bus-flight-report-others/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report other. Example: eum

DELETE api/bus-flights/{bus_flight}/bus-flight-report-others/{id}

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-others/quia" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-others/quia"
);

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

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

Request   

DELETE api/bus-flights/{bus_flight}/bus-flight-report-others/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report other. Example: quia

GET api/bus-flights/{bus_flight}/bus-flight-report-dailies

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-dailies" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-dailies"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight}/bus-flight-report-dailies

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

POST api/bus-flights/{bus_flight}/bus-flight-report-dailies

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-dailies" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-dailies"
);

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

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

Request   

POST api/bus-flights/{bus_flight}/bus-flight-report-dailies

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

PATCH api/bus-flights/{bus_flight}/bus-flight-report-dailies/{id}

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-dailies/magni" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-dailies/magni"
);

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

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

Request   

PATCH api/bus-flights/{bus_flight}/bus-flight-report-dailies/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report daily. Example: magni

DELETE api/bus-flights/{bus_flight}/bus-flight-report-dailies/{id}

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-dailies/nihil" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/bus-flight-report-dailies/nihil"
);

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

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

Request   

DELETE api/bus-flights/{bus_flight}/bus-flight-report-dailies/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight   integer   

Example: 207

id   string   

The ID of the bus flight report daily. Example: nihil

Create a baggage shipment type

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/system-settings/baggage-shipment-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/baggage-shipment-types"
);

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

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

Request   

POST api/system-settings/baggage-shipment-types

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Update a baggage shipment type

Example request:
curl --request PUT \
    "https://testapi.ticketbus365.com/api/system-settings/baggage-shipment-types/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/baggage-shipment-types/1"
);

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

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

Request   

PUT api/system-settings/baggage-shipment-types/{baggageShipmentType_id}

PATCH api/system-settings/baggage-shipment-types/{baggageShipmentType_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

baggageShipmentType_id   integer   

The ID of the baggageShipmentType. Example: 1

Delete a baggage shipment type

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/system-settings/baggage-shipment-types/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/baggage-shipment-types/1"
);

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

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

Request   

DELETE api/system-settings/baggage-shipment-types/{baggageShipmentType_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

baggageShipmentType_id   integer   

The ID of the baggageShipmentType. Example: 1

GET api/reports/carrier

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/reports/carrier" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/reports/carrier"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/reports/carrier

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

GET api/reports/carrier/export

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/reports/carrier/export" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/reports/carrier/export"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/reports/carrier/export

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

GET api/request-logs

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/request-logs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/request-logs"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/request-logs

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

GET api/sms-auth-codes

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/sms-auth-codes" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/sms-auth-codes"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/sms-auth-codes

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

External tickets

External source tickets

Search external bus flights tickets

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/external-tickets?from_departure_point_id=1&to_departure_point_id=11&from_departure_city_id=18&to_departure_city_id=17&departure_date=est&number_of_passengers=3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-tickets"
);

const params = {
    "from_departure_point_id": "1",
    "to_departure_point_id": "11",
    "from_departure_city_id": "18",
    "to_departure_city_id": "17",
    "departure_date": "est",
    "number_of_passengers": "3",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

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

Example response (422):

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

{
    "message": "Выбранное значение для Пункт отправления некорректно. (and 4 more errors)",
    "errors": {
        "from_departure_point_id": [
            "Выбранное значение для Пункт отправления некорректно."
        ],
        "to_departure_point_id": [
            "Выбранное значение для Пункт прибытия некорректно."
        ],
        "from_departure_city_id": [
            "Выбранное значение для from departure city id некорректно."
        ],
        "to_departure_city_id": [
            "Выбранное значение для to departure city id некорректно."
        ],
        "departure_date": [
            "Значение поля Дата отправления должно соответствовать формату даты Y-m-d."
        ]
    }
}
 

Request   

GET api/external-tickets

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

from_departure_point_id   integer   

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

to_departure_point_id   integer   

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

from_departure_city_id   integer   

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

to_departure_city_id   integer   

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

departure_date   string   

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

number_of_passengers   integer   

Number of passengers for the bus flight search Example: 3

Buy external bus flight tickets

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/external-tickets/buy" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"trip_data_bundle\": \"et\",
    \"passengers\": [
        \"qui\"
    ],
    \"payment_method_id\": 15,
    \"email\": \"lstokes@example.com\",
    \"phone\": \"+380123456789\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-tickets/buy"
);

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

let body = {
    "trip_data_bundle": "et",
    "passengers": [
        "qui"
    ],
    "payment_method_id": 15,
    "email": "lstokes@example.com",
    "phone": "+380123456789"
};

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

Request   

POST api/external-tickets/buy

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

trip_data_bundle   string   

Serialized trip data bundle containing trip details Example: et

passengers   string[]   

Array of passengers with their details

*   object  optional  
first_name   string   

First name of the passenger Example: expedita

last_name   string   

Last name of the passenger Example: nihil

phone   string   

Phone number of the passenger Example: natus

email   string   

Email of the passenger (optional) Example: yrolfson@example.org

seat   string   

Seat number for the passenger (optional) Example: id

comment   string   

Comment for the passenger (optional) Example: est

discount_id   string   

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

payment_method_id   integer   

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

email   string   

Email of the user (optional) required if not authenticated Example: lstokes@example.com

phone   string   

Phone number of the user (optional) required if not authenticated Example: +380123456789

Get external bus flight details

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

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

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

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

Request   

POST api/external-tickets

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

data_bundle   string   

Serialized trip data bundle containing trip details Example: tenetur

Faq

Faq management

Get FAQs

Get list of active FAQs

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/faqs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/faqs"
);

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

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

Example response (200):

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

{
    "data": []
}
 

Request   

GET api/faqs

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Create FAQ

requires authentication

Create a new FAQ

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/faqs" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"question\": {
        \"en\": \"How to use the application?\"
    },
    \"answer\": {
        \"en\": \"You can start by registering an account.\"
    },
    \"is_active\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/faqs"
);

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

let body = {
    "question": {
        "en": "How to use the application?"
    },
    "answer": {
        "en": "You can start by registering an account."
    },
    "is_active": true
};

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

Request   

POST api/faqs

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

question   string[]   

Question

answer   string[]   

Answer

is_active   boolean   

Is the FAQ active? Example: true

Update FAQ

requires authentication

Update an existing FAQ

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/faqs/13" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"question\": {
        \"en\": \"How to use the application?\"
    },
    \"answer\": {
        \"en\": \"You can start by registering an account.\"
    },
    \"is_active\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/faqs/13"
);

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

let body = {
    "question": {
        "en": "How to use the application?"
    },
    "answer": {
        "en": "You can start by registering an account."
    },
    "is_active": true
};

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

Request   

PATCH api/faqs/{faq_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

faq_id   integer   

The ID of the faq. Example: 13

Body Parameters

question   string[]   

Question

answer   string[]   

Answer

is_active   boolean   

Is the FAQ active? Example: true

Delete FAQ

requires authentication

Delete an existing FAQ

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/faqs/8" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/faqs/8"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/faqs/{faq_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

faq_id   integer   

The ID of the faq. Example: 8

Geo

Geo data

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/cities/search?query=New+York" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/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",
};

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

Example response (200):


{
    "data": [
        {
            "id": null,
            "name": "West Trevorborough",
            "translations": {
                "name": {
                    "en": "West Trevorborough",
                    "ar": "Imogeneburgh"
                }
            },
            "population": null,
            "number_of_bus_routes": 0,
            "visibility": null,
            "country_id": 144,
            "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
    }
}
 

Get a city

requires authentication

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

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

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

Example response (200):

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

{
    "data": {
        "id": 267,
        "name": "Киев",
        "translations": {
            "name": {
                "ua": "Київ",
                "pl": "Kijów",
                "en": "Kyiv",
                "ru": "Киев"
            }
        },
        "departure_points": [
            {
                "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"
            },
            {
                "id": 101,
                "name": "Автовокзал \"Центральный\", проспект Науки, 1/2",
                "translations": {
                    "name": {
                        "ua": "Автовокзал \"Центральний\", проспект Науки, 1/2",
                        "pl": "Dworzec Autobusowy\"Centralny\", aleja nauki, 1/2",
                        "en": "Bus station \"Central\", nauki avenue, 1/2",
                        "ru": "Автовокзал \"Центральный\", проспект Науки, 1/2"
                    }
                },
                "visibility": true,
                "created_at": "2023-12-18T07:06:19.000000Z",
                "updated_at": "2024-03-23T10:44:31.000000Z"
            }
        ],
        "country": {
            "id": 6,
            "name": "Украина",
            "translations": {
                "name": {
                    "ua": "Україна",
                    "pl": "Ukraina",
                    "en": "Ukraine",
                    "ru": "Украина"
                }
            },
            "code": "UA",
            "timezone": null,
            "created_at": "2023-11-02T11:44:52.000000Z",
            "updated_at": "2024-02-17T12:07:12.000000Z"
        },
        "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"
    }
}
 

Request   

GET api/cities/{city}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

city   integer   

The city. Example: 267

Get all departure points

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/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"
const url = new URL(
    "https://testapi.ticketbus365.com/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",
};

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
    }
}
 

Request   

GET api/departure-points

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer   

Page number Example: 1

search   string   

Search string Example: New York

city   integer   

Filter by city id Example: 1

per_page   integer   

Items per page Example: 10

Get a departure point

requires authentication

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

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

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"
    }
}
 

Request   

GET api/departure-points/{departurePoint_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

departurePoint_id   integer   

The ID of the departurePoint. Example: 87

Get all countries

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/countries?page=1&search=Egypt&per_page=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/countries"
);

const params = {
    "page": "1",
    "search": "Egypt",
    "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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 147,
            "name": "Western Sahara",
            "translations": {
                "name": {
                    "en": "Western Sahara",
                    "ar": "Estonia"
                }
            },
            "code": "CU",
            "timezone": null,
            "created_at": "2025-11-02T07:50:56.000000Z",
            "updated_at": "2025-11-02T07:50:56.000000Z"
        },
        {
            "id": 148,
            "name": "Honduras",
            "translations": {
                "name": {
                    "en": "Honduras",
                    "ar": "Mongolia"
                }
            },
            "code": "BB",
            "timezone": null,
            "created_at": "2025-11-02T07:50:56.000000Z",
            "updated_at": "2025-11-02T07:50:56.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
    }
}
 

Request   

GET api/countries

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer   

Page number Example: 1

search   string   

Search string Example: Egypt

per_page   integer   

Items per page Example: 10

Get a country

requires authentication

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

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

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

Example response (200):


{
    "data": {
        "id": 149,
        "name": "Korea",
        "translations": {
            "name": {
                "en": "Korea",
                "ar": "Ukraine"
            }
        },
        "code": "MG",
        "timezone": null,
        "created_at": "2025-11-02T07:50:56.000000Z",
        "updated_at": "2025-11-02T07:50:56.000000Z"
    }
}
 

Request   

GET api/countries/{country}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

country   integer   

Country ID Example: 1

Create a country

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/countries" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"New York\",
        \"ar\": \"نيويورك\"
    },
    \"code\": \"ua\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/countries"
);

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

let body = {
    "name": {
        "en": "New York",
        "ar": "نيويورك"
    },
    "code": "ua"
};

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

Example response (200):


{
    "data": {
        "id": 150,
        "name": "Comoros",
        "translations": {
            "name": {
                "en": "Comoros",
                "ar": "Cuba"
            }
        },
        "code": "MS",
        "timezone": null,
        "created_at": "2025-11-02T07:50:56.000000Z",
        "updated_at": "2025-11-02T07:50:56.000000Z"
    }
}
 

Request   

POST api/countries

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string[]   

Country name

code   string   

Country code Example: ua

Update a Country

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/countries/6" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"New York\",
        \"ar\": \"نيويورك\"
    },
    \"code\": \"ua\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/countries/6"
);

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

let body = {
    "name": {
        "en": "New York",
        "ar": "نيويورك"
    },
    "code": "ua"
};

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

Example response (200):


{
    "data": {
        "id": 151,
        "name": "Chad",
        "translations": {
            "name": {
                "en": "Chad",
                "ar": "Yemen"
            }
        },
        "code": "GP",
        "timezone": null,
        "created_at": "2025-11-02T07:50:56.000000Z",
        "updated_at": "2025-11-02T07:50:56.000000Z"
    }
}
 

Request   

PATCH api/countries/{country_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

country_id   integer   

The ID of the country. Example: 6

Body Parameters

name   string[]   

Country name

code   string   

Country code Example: ua

Delete a Country

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/countries/6" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/countries/6"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/countries/{country_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

country_id   integer   

The ID of the country. Example: 6

Get all cities

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/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"
const url = new URL(
    "https://testapi.ticketbus365.com/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",
};

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

Example response (200):


{
    "data": [
        {
            "id": null,
            "name": "Mavisport",
            "translations": {
                "name": {
                    "en": "Mavisport",
                    "ar": "South Yazminport"
                }
            },
            "population": null,
            "number_of_bus_routes": 0,
            "visibility": null,
            "country_id": 153,
            "created_at": null,
            "updated_at": null
        },
        {
            "id": null,
            "name": "South Wade",
            "translations": {
                "name": {
                    "en": "South Wade",
                    "ar": "Wehnerhaven"
                }
            },
            "population": null,
            "number_of_bus_routes": 0,
            "visibility": null,
            "country_id": 155,
            "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
    }
}
 

Request   

GET api/cities

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer   

Page number Example: 1

search   string   

Search string Example: New York

country   integer   

Filter by country id Example: 1

per_page   integer   

Items per page Example: 10

Create a city

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/cities" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"New York\",
        \"ar\": \"نيويورك\"
    },
    \"country_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/cities"
);

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

let body = {
    "name": {
        "en": "New York",
        "ar": "نيويورك"
    },
    "country_id": 1
};

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

Example response (200):


{
    "data": {
        "id": null,
        "name": "Schillerport",
        "translations": {
            "name": {
                "en": "Schillerport",
                "ar": "Lake Gerhard"
            }
        },
        "population": null,
        "number_of_bus_routes": 0,
        "visibility": null,
        "country_id": 6,
        "created_at": null,
        "updated_at": null
    }
}
 

Request   

POST api/cities

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string[]   

City name

country_id   integer   

Country ID Example: 1

Update a city

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/cities/267" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"New York\",
        \"ar\": \"نيويورك\"
    },
    \"country_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/cities/267"
);

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

let body = {
    "name": {
        "en": "New York",
        "ar": "نيويورك"
    },
    "country_id": 1
};

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

Example response (200):


{
    "data": {
        "id": null,
        "name": "New Chrisburgh",
        "translations": {
            "name": {
                "en": "New Chrisburgh",
                "ar": "Cruickshankchester"
            }
        },
        "population": null,
        "number_of_bus_routes": 0,
        "visibility": null,
        "country_id": 6,
        "created_at": null,
        "updated_at": null
    }
}
 

Request   

PATCH api/cities/{city_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

city_id   integer   

The ID of the city. Example: 267

Body Parameters

name   string[]   

City name

country_id   integer   

Country ID Example: 1

Delete a city

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/cities/267" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/cities/267"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/cities/{city_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

city_id   integer   

The ID of the city. Example: 267

Create a departure point

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/departure-points" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"New York\",
        \"ar\": \"نيويورك\"
    },
    \"city_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/departure-points"
);

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

let body = {
    "name": {
        "en": "New York",
        "ar": "نيويورك"
    },
    "city_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).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"
    }
}
 

Request   

POST api/departure-points

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string[]   

DeparturePoint name

city_id   integer   

City ID Example: 1

Update a departure point

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/departure-points/87" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"New York\",
        \"ar\": \"نيويورك\"
    },
    \"city_id\": 1,
    \"visibility\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/departure-points/87"
);

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

let body = {
    "name": {
        "en": "New York",
        "ar": "نيويورك"
    },
    "city_id": 1,
    "visibility": true
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).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"
    }
}
 

Request   

PATCH api/departure-points/{departurePoint_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

departurePoint_id   integer   

The ID of the departurePoint. Example: 87

Body Parameters

name   string[]   

DeparturePoint name

city_id   integer   

City ID Example: 1

visibility   boolean   

Visibility Example: true

Delete a departure point

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/departure-points/87" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/departure-points/87"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/departure-points/{departurePoint_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

departurePoint_id   integer   

The ID of the departurePoint. Example: 87

Orders

Get orders list

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/orders?search=First+name&date_range[from]=2021-01-01&date_range[to]=2021-01-31&status=paid&bus_route_id=1&from_departure_point_id=1&to_departure_point_id=2&departure_date=2021-01-01&order_created_at=2021-01-01&agent_id=1&carrier_id=1&per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/orders"
);

const params = {
    "search": "First name",
    "date_range[from]": "2021-01-01",
    "date_range[to]": "2021-01-31",
    "status": "paid",
    "bus_route_id": "1",
    "from_departure_point_id": "1",
    "to_departure_point_id": "2",
    "departure_date": "2021-01-01",
    "order_created_at": "2021-01-01",
    "agent_id": "1",
    "carrier_id": "1",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

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": 832.54,
            "payment_on_the_spot": null,
            "expired_at": null,
            "created_at": null,
            "updated_at": null
        },
        {
            "id": null,
            "public_id": "",
            "paid_at": null,
            "agent_id": null,
            "status": null,
            "total_price": 146.75,
            "payment_on_the_spot": null,
            "expired_at": null,
            "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
    }
}
 

Request   

GET api/orders

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

search   string   

Example: First name

date_range   string[]   
status   string   

Example: paid

bus_route_id   integer   

Example: 1

from_departure_point_id   integer   

Example: 1

to_departure_point_id   integer   

Example: 2

departure_date   string   

Example: 2021-01-01

order_created_at   string   

Example: 2021-01-01

agent_id   string   

Example: 1

carrier_id   string   

Example: 1

per_page   integer   

Items per page Example: 10

Show order

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/orders/18" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/orders/18"
);

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

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": 183.89,
        "payment_on_the_spot": null,
        "expired_at": null,
        "created_at": null,
        "updated_at": null
    }
}
 

Request   

GET api/orders/{order_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

order_id   integer   

The ID of the order. Example: 18

Passengers

Passengers

Get passengers

Get passengers

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/passengers?from_departure_point_id=1&to_departure_point_id=1&order_status=paid&created_at=2021-01-01&search=John" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers"
);

const params = {
    "from_departure_point_id": "1",
    "to_departure_point_id": "1",
    "order_status": "paid",
    "created_at": "2021-01-01",
    "search": "John",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

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

Example response (200):


{
    "data": [
        {
            "id": 22,
            "type": "internal",
            "public_id": "YHETxCGlb0NmnHK",
            "price": "10.00",
            "price_adjustment_percent": "0.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,
            "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"
                    }
                },
                "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"
            },
            "to_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"
            },
            "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,
            "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": "2024-01-25T07:57:29.000000Z",
            "updated_at": "2025-08-06T06:32:46.000000Z"
        },
        {
            "id": 22,
            "type": "internal",
            "public_id": "YHETxCGlb0NmnHK",
            "price": "10.00",
            "price_adjustment_percent": "0.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,
            "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"
                    }
                },
                "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"
            },
            "to_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"
            },
            "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,
            "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": "2024-01-25T07:57:29.000000Z",
            "updated_at": "2025-08-06T06:32:46.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
    },
    "flight_data": "App\\Http\\Resources\\BusFlightResource"
}
 

Request   

GET api/bus-flights/{bus_flight_id}/passengers

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Query Parameters

from_departure_point_id   integer   

Filter by from bus flight departure point id Example: 1

to_departure_point_id   integer   

Filter by to bus flight departure point id Example: 1

order_status   string   

Filter by order status Example: paid

created_at   string   

Filter by created at Example: 2021-01-01

search   string   

Search by name, email, phone Example: John

Get free seats

Get free seats

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/get-free-seats/hic/dicta" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/get-free-seats/hic/dicta"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight_id}/passengers/get-free-seats/{from_departure_point_id}/{to_departure_point_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

from_departure_point_id   string   

The ID of the from departure point. Example: hic

to_departure_point_id   string   

The ID of the to departure point. Example: dicta

Get notification logs

Get notification logs

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/notifications?per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/notifications"
);

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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 1,
            "ticket_id": 22,
            "content": "тест",
            "bus_flight_id": 207,
            "channel": "sms",
            "created_at": "2024-02-15T07:18:33.000000Z",
            "updated_at": "2024-02-15T07:18:33.000000Z"
        },
        {
            "id": 1,
            "ticket_id": 22,
            "content": "тест",
            "bus_flight_id": 207,
            "channel": "sms",
            "created_at": "2024-02-15T07:18:33.000000Z",
            "updated_at": "2024-02-15T07:18: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": "« Назад",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Вперед »",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request   

GET api/bus-flights/{bus_flight_id}/passengers/notifications

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Query Parameters

per_page   integer   

Items per page Example: 10

Export passengers to exel

Export passengers to exel

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/export-to-exel?from_departure_point_id=1&to_departure_point_id=1&order_status=paid&created_at=2021-01-01&search=John" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/export-to-exel"
);

const params = {
    "from_departure_point_id": "1",
    "to_departure_point_id": "1",
    "order_status": "paid",
    "created_at": "2021-01-01",
    "search": "John",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/bus-flights/{bus_flight_id}/passengers/export-to-exel

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Query Parameters

from_departure_point_id   integer   

Filter by from bus flight departure point id Example: 1

to_departure_point_id   integer   

Filter by to bus flight departure point id Example: 1

order_status   string   

Filter by order status Example: paid

created_at   string   

Filter by created at Example: 2021-01-01

search   string   

Search by name, email, phone Example: John

Send notification

Send notification

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/notifications" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ticket_ids\": \"[1, 2, 3]\",
    \"content\": \"Hello\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/notifications"
);

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

let body = {
    "ticket_ids": "[1, 2, 3]",
    "content": "Hello"
};

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

Example response (200, Success):


200
 

Request   

POST api/bus-flights/{bus_flight_id}/passengers/notifications

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Body Parameters

ticket_ids   string[]   

Ticket ids Example: [1, 2, 3]

content   string   

Content Example: Hello

Transfer passengers

Transfer passengers

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/transfer" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ticket_ids\": \"[1, 2, 3]\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/transfer"
);

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

let body = {
    "ticket_ids": "[1, 2, 3]"
};

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

Example response (200, Success):


200
 

Request   

POST api/bus-flights/{bus_flight_id}/passengers/transfer

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

Body Parameters

ticket_ids   string[]   

Ticket ids Example: [1, 2, 3]

Accept payment

Accept payment

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/doloribus/accept-payment" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/doloribus/accept-payment"
);

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

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

Example response (200):


{
    "data": {
        "id": 22,
        "type": "internal",
        "public_id": "YHETxCGlb0NmnHK",
        "price": "10.00",
        "price_adjustment_percent": "0.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,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2024-01-25T07:57:29.000000Z",
        "updated_at": "2025-08-06T06:32:46.000000Z"
    }
}
 

Request   

PATCH api/bus-flights/{bus_flight_id}/passengers/{passenger_id}/accept-payment

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

passenger_id   string   

The ID of the passenger. Example: doloribus

Passenger not show

Passenger not show

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/cupiditate/not-show" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/cupiditate/not-show"
);

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

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

Example response (200):


{
    "data": {
        "id": 22,
        "type": "internal",
        "public_id": "YHETxCGlb0NmnHK",
        "price": "10.00",
        "price_adjustment_percent": "0.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,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2024-01-25T07:57:29.000000Z",
        "updated_at": "2025-08-06T06:32:46.000000Z"
    }
}
 

Request   

PATCH api/bus-flights/{bus_flight_id}/passengers/{passenger_id}/not-show

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

passenger_id   string   

The ID of the passenger. Example: cupiditate

Passenger showed up

Passenger showed up

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/quaerat/showed-up" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/quaerat/showed-up"
);

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

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

Example response (200):


{
    "data": {
        "id": 22,
        "type": "internal",
        "public_id": "YHETxCGlb0NmnHK",
        "price": "10.00",
        "price_adjustment_percent": "0.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,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2024-01-25T07:57:29.000000Z",
        "updated_at": "2025-08-06T06:32:46.000000Z"
    }
}
 

Request   

PATCH api/bus-flights/{bus_flight_id}/passengers/{passenger_id}/showed-up

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

passenger_id   string   

The ID of the passenger. Example: quaerat

Change seat

Change seat

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/dolores/change-seat" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/dolores/change-seat"
);

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

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

Request   

PATCH api/bus-flights/{bus_flight_id}/passengers/{passenger_id}/change-seat

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

bus_flight_id   integer   

The ID of the bus flight. Example: 207

passenger_id   string   

The ID of the passenger. Example: dolores

Show passenger

Show passenger

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-flights-passenger/fuga" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights-passenger/fuga"
);

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

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

Example response (200):


{
    "data": {
        "id": 22,
        "type": "internal",
        "public_id": "YHETxCGlb0NmnHK",
        "price": "10.00",
        "price_adjustment_percent": "0.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,
        "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"
                }
            },
            "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"
        },
        "to_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"
        },
        "first_name": "test",
        "last_name": "test",
        "phone": "11111111111",
        "email": null,
        "birthday": null,
        "passenger_type": "adult",
        "departure_date": "2024-01-25T09:00:00.000000Z",
        "baggage": [],
        "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,
        "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": "2024-01-25T07:57:29.000000Z",
        "updated_at": "2025-08-06T06:32:46.000000Z"
    },
    "flight_data": "App\\Http\\Resources\\BusFlightResource"
}
 

Request   

GET api/bus-flights-passenger/{passenger_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

passenger_id   string   

The ID of the passenger. Example: fuga

Get passenger data by phone

Get passenger data by phone

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/passenger-data-by-phone/ipsam" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/passenger-data-by-phone/ipsam"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/passenger-data-by-phone/{phone}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

phone   string   

Example: ipsam

Cancel ticket

Cancel ticket

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

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": 22,
        "type": "internal",
        "public_id": "YHETxCGlb0NmnHK",
        "price": "10.00",
        "price_adjustment_percent": "0.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,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2024-01-25T07:57:29.000000Z",
        "updated_at": "2025-08-06T06:32:46.000000Z"
    }
}
 

Request   

PATCH api/cancel-ticket/{ticket}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

ticket   string   

Example: quia

Body Parameters

cancel_reason_id   integer   

Cancel reason id Example: 1

cancel_comment   string   

Cancel comment Example: Comment

clear_occupied_seats   boolean   

Clear occupied seats Example: true

Accept partially payment

Accept partially payment

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

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": 22,
        "type": "internal",
        "public_id": "YHETxCGlb0NmnHK",
        "price": "10.00",
        "price_adjustment_percent": "0.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,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2024-01-25T07:57:29.000000Z",
        "updated_at": "2025-08-06T06:32:46.000000Z"
    }
}
 

Request   

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

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

ticket   string   

Example: quibusdam

Body Parameters

amount   number   

Amount Example: 100

payment_method_id   integer   

Payment method id Example: 1

Delete partially payment

Delete partially payment

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/delete-partially-payment/voluptatum/4" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/delete-partially-payment/voluptatum/4"
);

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

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

Example response (200):


{
    "data": {
        "id": 22,
        "type": "internal",
        "public_id": "YHETxCGlb0NmnHK",
        "price": "10.00",
        "price_adjustment_percent": "0.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,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2024-01-25T07:57:29.000000Z",
        "updated_at": "2025-08-06T06:32:46.000000Z"
    }
}
 

Request   

DELETE api/delete-partially-payment/{ticket}/{payment_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

ticket   string   

Example: voluptatum

payment_id   integer   

The ID of the payment. Example: 4

Profile

Profile

Show profile

requires authentication

Show profile

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

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/profile

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Update profile

requires authentication

Update profile

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/profile" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"middle_name\": \"Smith\",
    \"phone\": \"+639123456789\",
    \"password\": \"password\",
    \"password_confirmation\": \"password\",
    \"currency_id\": 1,
    \"language_id\": 1,
    \"country_id\": 1,
    \"gender\": \"male\",
    \"birthday\": \"2000-01-01\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/profile"
);

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

let body = {
    "first_name": "John",
    "last_name": "Doe",
    "middle_name": "Smith",
    "phone": "+639123456789",
    "password": "password",
    "password_confirmation": "password",
    "currency_id": 1,
    "language_id": 1,
    "country_id": 1,
    "gender": "male",
    "birthday": "2000-01-01"
};

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

Request   

PATCH api/profile

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

first_name   string   

First name of the user Example: John

last_name   string   

Last name of the user Example: Doe

middle_name   string   

Middle name of the user Example: Smith

phone   string   

Phone number of the user Example: +639123456789

password   string   

Password of the user Example: password

password_confirmation   string   

Password confirmation of the user Example: password

currency_id   integer   

Currency ID of the user Example: 1

language_id   integer   

Language ID of the user Example: 1

country_id   integer   

Country ID of the user Example: 1

gender   string   

Gender of the user Example: male

birthday   date   

Birthday of the user Example: 2000-01-01

Delete profile

requires authentication

Delete profile

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/profile" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/profile"
);

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

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

Request   

DELETE api/profile

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Reports

reports

Get reports by agent

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/reports/agent?agent_id=repellendus&from_date=possimus&to_date=itaque" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/reports/agent"
);

const params = {
    "agent_id": "repellendus",
    "from_date": "possimus",
    "to_date": "itaque",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/reports/agent

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

agent_id   string   

Agent ID Example: repellendus

from_date   string   

From date Example: possimus

to_date   string   

To date Example: itaque

Export reports to excel by agent

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/reports/agent/export?agent_id=aut&from_date=sint&to_date=consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/reports/agent/export"
);

const params = {
    "agent_id": "aut",
    "from_date": "sint",
    "to_date": "consequatur",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/reports/agent/export

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

agent_id   string   

Agent ID Example: aut

from_date   string   

From date Example: sint

to_date   string   

To date Example: consequatur

Get reports by external sources

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/reports/external-sources?external_source_id=unde&from_date=nostrum&to_date=eligendi&from_departure_date=et&to_departure_date=accusantium" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/reports/external-sources"
);

const params = {
    "external_source_id": "unde",
    "from_date": "nostrum",
    "to_date": "eligendi",
    "from_departure_date": "et",
    "to_departure_date": "accusantium",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/reports/external-sources

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

external_source_id   string   

External Source ID Example: unde

from_date   string   

From date Example: nostrum

to_date   string   

To date Example: eligendi

from_departure_date   string  optional  

From departure date Example: et

to_departure_date   string  optional  

To departure date Example: accusantium

Download external sources report

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/reports/external-sources/export?external_source_id=corrupti&from_date=eum&to_date=sint&from_departure_date=eum&to_departure_date=deserunt" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/reports/external-sources/export"
);

const params = {
    "external_source_id": "corrupti",
    "from_date": "eum",
    "to_date": "sint",
    "from_departure_date": "eum",
    "to_departure_date": "deserunt",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/reports/external-sources/export

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

external_source_id   string   

External Source ID Example: corrupti

from_date   string   

From date Example: eum

to_date   string   

To date Example: sint

from_departure_date   string  optional  

From departure date Example: eum

to_departure_date   string  optional  

To departure date Example: deserunt

Return Request

Get return requests

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/return-requests?status=pending&bus_route_number=1&departure_date=2021-01-01&search=1&per_page=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/return-requests"
);

const params = {
    "status": "pending",
    "bus_route_number": "1",
    "departure_date": "2021-01-01",
    "search": "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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 11,
            "user": {
                "id": 3324,
                "first_name": "TestUserForTerminal",
                "last_name": "TestUserForTerminal",
                "middle_name": "TestUserForTerminal",
                "full_name": "TestUserForTerminal TestUserForTerminal TestUserForTerminal",
                "work_phone": "911",
                "gender": null,
                "birthday": null,
                "name": "TestTerminalAgent",
                "phone": "911231123",
                "email": "testuserforterminal@admin.com",
                "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": "2025-05-07T13:50:13.000000Z",
                "updated_at": "2025-05-07T13:56:26.000000Z"
            },
            "ticket": {
                "id": 4732,
                "type": "external",
                "target_departure_date": "2026-02-02T15:20:00.000000Z",
                "target_arrival_date": "2026-02-04T07:00:00.000000Z",
                "target_minutes_in_travel": 2380,
                "public_id": "PcpqNMcnNFWwL13",
                "price": "500.00",
                "price_adjustment_percent": "0.00",
                "order_id": 4689,
                "first_name": "Тест",
                "last_name": "Tecт",
                "phone": "+380685820898",
                "email": "officelat@ukr.net",
                "birthday": null,
                "passenger_type": "adult",
                "departure_date": "2026-02-02T15:20:00.000000Z",
                "bus_flight_id": null,
                "canceled_at": null,
                "cancel_comment": null,
                "status": "return_requested",
                "seat_change_allowed": true,
                "comment": null,
                "is_processed": false,
                "external_route_name": "(ТЕСТОВИЙ РЕЙС) Щецин -> Мелітополь",
                "external_ticket_id": "fylPg9vgEqzG8HWv",
                "external_discount_name": null,
                "external_from_departure_point_name": null,
                "external_to_departure_point_name": null,
                "is_external": true,
                "created_at": "2025-09-01T20:58:47.000000Z",
                "updated_at": "2025-09-02T12:25:28.000000Z"
            },
            "return_conditional": null,
            "status": "pending",
            "amount": "500.00",
            "comment": null,
            "created_at": "2025-09-02T12:25:28.000000Z",
            "updated_at": "2025-09-02T12:25:28.000000Z"
        },
        {
            "id": 11,
            "user": {
                "id": 3324,
                "first_name": "TestUserForTerminal",
                "last_name": "TestUserForTerminal",
                "middle_name": "TestUserForTerminal",
                "full_name": "TestUserForTerminal TestUserForTerminal TestUserForTerminal",
                "work_phone": "911",
                "gender": null,
                "birthday": null,
                "name": "TestTerminalAgent",
                "phone": "911231123",
                "email": "testuserforterminal@admin.com",
                "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": "2025-05-07T13:50:13.000000Z",
                "updated_at": "2025-05-07T13:56:26.000000Z"
            },
            "ticket": {
                "id": 4732,
                "type": "external",
                "target_departure_date": "2026-02-02T15:20:00.000000Z",
                "target_arrival_date": "2026-02-04T07:00:00.000000Z",
                "target_minutes_in_travel": 2380,
                "public_id": "PcpqNMcnNFWwL13",
                "price": "500.00",
                "price_adjustment_percent": "0.00",
                "order_id": 4689,
                "first_name": "Тест",
                "last_name": "Tecт",
                "phone": "+380685820898",
                "email": "officelat@ukr.net",
                "birthday": null,
                "passenger_type": "adult",
                "departure_date": "2026-02-02T15:20:00.000000Z",
                "bus_flight_id": null,
                "canceled_at": null,
                "cancel_comment": null,
                "status": "return_requested",
                "seat_change_allowed": true,
                "comment": null,
                "is_processed": false,
                "external_route_name": "(ТЕСТОВИЙ РЕЙС) Щецин -> Мелітополь",
                "external_ticket_id": "fylPg9vgEqzG8HWv",
                "external_discount_name": null,
                "external_from_departure_point_name": null,
                "external_to_departure_point_name": null,
                "is_external": true,
                "created_at": "2025-09-01T20:58:47.000000Z",
                "updated_at": "2025-09-02T12:25:28.000000Z"
            },
            "return_conditional": null,
            "status": "pending",
            "amount": "500.00",
            "comment": null,
            "created_at": "2025-09-02T12:25:28.000000Z",
            "updated_at": "2025-09-02T12:25:28.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
    }
}
 

Request   

GET api/return-requests

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

status   string   

Return request status Example: pending

bus_route_number   string   

Bus route number Example: 1

departure_date   string   

Departure date Example: 2021-01-01

search   string   

Search by ID, ticket ID, first name or last name Example: 1

per_page   integer   

Items per page Example: 10

Show return request

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/return-requests/11" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/return-requests/11"
);

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

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

Example response (200):


{
    "data": {
        "id": 11,
        "user": {
            "id": 3324,
            "first_name": "TestUserForTerminal",
            "last_name": "TestUserForTerminal",
            "middle_name": "TestUserForTerminal",
            "full_name": "TestUserForTerminal TestUserForTerminal TestUserForTerminal",
            "work_phone": "911",
            "gender": null,
            "birthday": null,
            "name": "TestTerminalAgent",
            "phone": "911231123",
            "email": "testuserforterminal@admin.com",
            "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": "2025-05-07T13:50:13.000000Z",
            "updated_at": "2025-05-07T13:56:26.000000Z"
        },
        "ticket": {
            "id": 4732,
            "type": "external",
            "target_departure_date": "2026-02-02T15:20:00.000000Z",
            "target_arrival_date": "2026-02-04T07:00:00.000000Z",
            "target_minutes_in_travel": 2380,
            "public_id": "PcpqNMcnNFWwL13",
            "price": "500.00",
            "price_adjustment_percent": "0.00",
            "order_id": 4689,
            "first_name": "Тест",
            "last_name": "Tecт",
            "phone": "+380685820898",
            "email": "officelat@ukr.net",
            "birthday": null,
            "passenger_type": "adult",
            "departure_date": "2026-02-02T15:20:00.000000Z",
            "bus_flight_id": null,
            "canceled_at": null,
            "cancel_comment": null,
            "status": "return_requested",
            "seat_change_allowed": true,
            "comment": null,
            "is_processed": false,
            "external_route_name": "(ТЕСТОВИЙ РЕЙС) Щецин -> Мелітополь",
            "external_ticket_id": "fylPg9vgEqzG8HWv",
            "external_discount_name": null,
            "external_from_departure_point_name": null,
            "external_to_departure_point_name": null,
            "is_external": true,
            "created_at": "2025-09-01T20:58:47.000000Z",
            "updated_at": "2025-09-02T12:25:28.000000Z"
        },
        "return_conditional": null,
        "status": "pending",
        "amount": "500.00",
        "comment": null,
        "created_at": "2025-09-02T12:25:28.000000Z",
        "updated_at": "2025-09-02T12:25:28.000000Z"
    }
}
 

Request   

GET api/return-requests/{returnRequest_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

returnRequest_id   integer   

The ID of the returnRequest. Example: 11

Update return request

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/return-requests/11" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"status\": \"approved\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/return-requests/11"
);

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

let body = {
    "status": "approved"
};

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

Example response (200):


{
    "data": {
        "id": 11,
        "status": "pending",
        "amount": "500.00",
        "comment": null,
        "created_at": "2025-09-02T12:25:28.000000Z",
        "updated_at": "2025-09-02T12:25:28.000000Z"
    }
}
 

Request   

PATCH api/return-requests/{returnRequest_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

returnRequest_id   integer   

The ID of the returnRequest. Example: 11

Body Parameters

status   string   

Status Example: approved

Delete return request

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/return-requests/11" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/return-requests/11"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/return-requests/{returnRequest_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

returnRequest_id   integer   

The ID of the returnRequest. Example: 11

Create return request

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/return-requests" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ticket_ids\": [
        1,
        2
    ],
    \"comment\": \"I want to return my ticket\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/return-requests"
);

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

let body = {
    "ticket_ids": [
        1,
        2
    ],
    "comment": "I want to return my ticket"
};

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

Request   

POST api/return-requests

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

ticket_ids   string[]   

Tickets ids

comment   string  optional  

Comment Example: I want to return my ticket

Roles and permissions

Get all roles

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/roles" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/roles"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 289,
            "name": "Ms. Aracely Schimmel II",
            "display_name": "Dr. Mallie Schimmel IV",
            "guard_name": "sanctum"
        },
        {
            "id": 290,
            "name": "Marty Cummerata",
            "display_name": "Kenya Reilly",
            "guard_name": "sanctum"
        }
    ]
}
 

Request   

GET api/roles

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Store role

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/roles" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"soluta\",
    \"display_name\": \"aperiam\",
    \"permissions\": [
        \"manage-roles\"
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/roles"
);

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

let body = {
    "name": "soluta",
    "display_name": "aperiam",
    "permissions": [
        "manage-roles"
    ]
};

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

Example response (200):


{
    "data": [
        {
            "id": 301,
            "name": "Retha Kuvalis",
            "display_name": "Aaliyah Bayer",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1349,
                    "name": "Demario Tillman",
                    "guard_name": "Roma Gottlieb IV"
                }
            ]
        },
        {
            "id": 302,
            "name": "Dr. Keagan Gislason",
            "display_name": "Mrs. Alice Rogahn I",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1350,
                    "name": "Jennie Prohaska",
                    "guard_name": "Mrs. Wilma Homenick Jr."
                }
            ]
        }
    ]
}
 

Request   

POST api/roles

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Name Example: soluta

display_name   string   

Display name Example: aperiam

permissions   string   

Permissions

Show role

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/roles/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/roles/1"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 303,
            "name": "Heaven Herman",
            "display_name": "Maynard Konopelski",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1351,
                    "name": "Merl Collins II",
                    "guard_name": "Keely Grady"
                }
            ]
        },
        {
            "id": 304,
            "name": "Ms. Dawn Wiegand",
            "display_name": "Garland Von",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1352,
                    "name": "Mr. Dejon Vandervort",
                    "guard_name": "Cristina Hill"
                }
            ]
        }
    ]
}
 

Request   

GET api/roles/{role_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role_id   integer   

The ID of the role. Example: 1

Update role

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/roles/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"necessitatibus\",
    \"display_name\": \"iure\",
    \"permissions\": [
        \"manage-roles\"
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/roles/1"
);

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

let body = {
    "name": "necessitatibus",
    "display_name": "iure",
    "permissions": [
        "manage-roles"
    ]
};

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

Example response (200):


{
    "data": [
        {
            "id": 305,
            "name": "Al Olson",
            "display_name": "Prof. Cathryn Schinner PhD",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1353,
                    "name": "Frank Howell",
                    "guard_name": "Mr. Jarrett Daniel V"
                }
            ]
        },
        {
            "id": 306,
            "name": "Alberto Dooley",
            "display_name": "Greyson Jaskolski",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1354,
                    "name": "Ms. Albertha Stiedemann IV",
                    "guard_name": "Odessa Collier"
                }
            ]
        }
    ]
}
 

Request   

PATCH api/roles/{role_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role_id   integer   

The ID of the role. Example: 1

Body Parameters

name   string   

Name Example: necessitatibus

display_name   string   

Display name Example: iure

permissions   string   

Permissions

Delete role

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/roles/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/roles/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/roles/{role_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role_id   integer   

The ID of the role. Example: 1

Get all permissions

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/permissions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/permissions"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 307,
            "name": "Prof. Keyshawn Feest",
            "display_name": "Mr. Daron Klein DDS",
            "guard_name": "sanctum"
        },
        {
            "id": 308,
            "name": "Augustus Konopelski",
            "display_name": "Jannie Greenfelder",
            "guard_name": "sanctum"
        }
    ]
}
 

Request   

GET api/permissions

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

System settings

System Setting

Get all currency

Get all currency

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/currencies" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/currencies"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 770,
            "display_name": "DOP",
            "code": "SBD",
            "symbol": "NIO",
            "is_active": true,
            "created_at": "2025-11-02T07:50:54.000000Z",
            "updated_at": "2025-11-02T07:50:54.000000Z"
        },
        {
            "id": 771,
            "display_name": "ISK",
            "code": "UGX",
            "symbol": "KGS",
            "is_active": true,
            "created_at": "2025-11-02T07:50:54.000000Z",
            "updated_at": "2025-11-02T07:50:54.000000Z"
        }
    ]
}
 

Request   

GET api/currencies

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get all languages

Get all language

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/languages" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/languages"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 62,
            "display_name": "El Salvador",
            "code": "CO",
            "is_active": true,
            "is_default": false,
            "created_at": "2025-11-02T07:50:54.000000Z",
            "updated_at": "2025-11-02T07:50:54.000000Z"
        },
        {
            "id": 63,
            "display_name": "Sweden",
            "code": "LT",
            "is_active": true,
            "is_default": false,
            "created_at": "2025-11-02T07:50:54.000000Z",
            "updated_at": "2025-11-02T07:50:54.000000Z"
        }
    ]
}
 

Request   

GET api/languages

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get translations

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/translations?group=validation&search=required&without_pagination=true&per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/translations"
);

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

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

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

Example response (200):


{
    "data": [
        {
            "id": 652,
            "group": "ea",
            "key": "maxime",
            "text": {
                "en": "Rerum voluptates pariatur earum.",
                "ru": "Optio qui similique expedita iusto."
            },
            "created_at": "2025-11-02T07:50:54.000000Z",
            "updated_at": "2025-11-02T07:50:54.000000Z"
        },
        {
            "id": 653,
            "group": "laborum",
            "key": "odio",
            "text": {
                "en": "Eveniet corporis et ut molestiae maxime exercitationem dolores.",
                "ru": "Iure perspiciatis ut temporibus voluptates officia."
            },
            "created_at": "2025-11-02T07:50:54.000000Z",
            "updated_at": "2025-11-02T07:50:54.000000Z"
        }
    ]
}
 

Request   

GET api/translations

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

group   string   

filter by translation group Example: validation

search   string   

search by translation key Example: required

without_pagination   boolean   

get all translations without pagination Example: true

per_page   integer   

Items per page Example: 10

Get all social media links

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/social-media-links" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/social-media-links"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 57,
            "url": "http://feil.com/debitis-voluptas-reiciendis-reprehenderit-nostrum-sed-quibusdam.html",
            "icon_name": "Arthur Fadel"
        },
        {
            "id": 58,
            "url": "https://www.rodriguez.info/laboriosam-voluptas-quidem-perspiciatis-ipsam-incidunt",
            "icon_name": "Ramona Weber"
        }
    ]
}
 

Get text pages

Get list of bus schemas

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/text-pages?per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/text-pages"
);

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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 73,
            "slug": "delectus-nesciunt-quam-voluptas-laboriosam-dolores",
            "title": "Ipsum modi quis doloremque possimus ipsa.",
            "content": "Alias illum commodi possimus voluptatem voluptate dolor soluta ullam. Praesentium odio qui illo autem et maiores.",
            "is_active": false,
            "translations": {
                "title": {
                    "en": "Ipsum modi quis doloremque possimus ipsa."
                },
                "content": {
                    "en": "Alias illum commodi possimus voluptatem voluptate dolor soluta ullam. Praesentium odio qui illo autem et maiores."
                }
            },
            "created_at": "2025-11-02T07:50:55.000000Z",
            "updated_at": "2025-11-02T07:50:55.000000Z"
        },
        {
            "id": 74,
            "slug": "ipsam-rerum-quisquam-consequatur-id-temporibus",
            "title": "Repellat exercitationem eum quis voluptas.",
            "content": "Sint alias iusto sit minima nihil quia est. Similique ut nihil eius inventore. Consectetur nihil porro architecto accusamus quia quia accusamus. Tempora quia velit asperiores eligendi laudantium rerum optio esse.",
            "is_active": false,
            "translations": {
                "title": {
                    "en": "Repellat exercitationem eum quis voluptas."
                },
                "content": {
                    "en": "Sint alias iusto sit minima nihil quia est. Similique ut nihil eius inventore. Consectetur nihil porro architecto accusamus quia quia accusamus. Tempora quia velit asperiores eligendi laudantium rerum optio esse."
                }
            },
            "created_at": "2025-11-02T07:50:55.000000Z",
            "updated_at": "2025-11-02T07:50:55.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
    }
}
 

Request   

GET api/text-pages

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer   

Items per page Example: 10

Show text page

Get a bus schema

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/text-pages/67" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/text-pages/67"
);

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

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

Example response (200):


{
    "data": {
        "id": 75,
        "slug": "ad-qui-sint-totam-architecto",
        "title": "Aliquam possimus nihil amet odio commodi et.",
        "content": "Error deleniti voluptas modi dolor. Quibusdam repellat rerum quisquam. Esse tenetur et possimus repudiandae molestias. Enim corporis cum distinctio cumque quis.",
        "is_active": false,
        "translations": {
            "title": {
                "en": "Aliquam possimus nihil amet odio commodi et."
            },
            "content": {
                "en": "Error deleniti voluptas modi dolor. Quibusdam repellat rerum quisquam. Esse tenetur et possimus repudiandae molestias. Enim corporis cum distinctio cumque quis."
            }
        },
        "created_at": "2025-11-02T07:50:55.000000Z",
        "updated_at": "2025-11-02T07:50:55.000000Z"
    }
}
 

Request   

GET api/text-pages/{slug}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

slug   integer   

The slug of the text page. Example: 67

Get discount types

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/discount-types" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/discount-types"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 94,
            "name": "nemo",
            "translations": {
                "name": {
                    "en": "nemo",
                    "ar": "quia"
                }
            },
            "created_at": "2025-11-02T07:50:55.000000Z",
            "updated_at": "2025-11-02T07:50:55.000000Z"
        },
        {
            "id": 95,
            "name": "numquam",
            "translations": {
                "name": {
                    "en": "numquam",
                    "ar": "esse"
                }
            },
            "created_at": "2025-11-02T07:50:55.000000Z",
            "updated_at": "2025-11-02T07:50:55.000000Z"
        }
    ]
}
 

Request   

GET api/discount-types

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get notification templates

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/notification-templates" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/notification-templates"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 55,
            "title": "aut",
            "content": "Expedita eum maxime accusantium ipsa.",
            "translations": {
                "content": {
                    "en": "Expedita eum maxime accusantium ipsa.",
                    "es": "Repellendus similique tempora eum molestiae et nesciunt repellendus."
                },
                "App\\Enums\\NotificationTemplateEnum": []
            },
            "slug": null
        },
        {
            "id": 56,
            "title": "laudantium",
            "content": "Quod qui nesciunt vero odio eos non.",
            "translations": {
                "content": {
                    "en": "Quod qui nesciunt vero odio eos non.",
                    "es": "Amet est architecto suscipit."
                },
                "App\\Enums\\NotificationTemplateEnum": []
            },
            "slug": null
        }
    ]
}
 

Request   

GET api/notification-templates

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Create currency

requires authentication

Create currency

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/currencies" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"display_name\": \"US Dollar\",
    \"code\": \"USD\",
    \"symbol\": \"$\",
    \"is_active\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/currencies"
);

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

let body = {
    "display_name": "US Dollar",
    "code": "USD",
    "symbol": "$",
    "is_active": true
};

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

Example response (200):


{
    "data": {
        "id": 774,
        "display_name": "FKP",
        "code": "ANG",
        "symbol": "HTG",
        "is_active": true,
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

POST api/currencies

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

display_name   string   

Display name Example: US Dollar

code   string   

Code Example: USD

symbol   string   

Symbol Example: $

is_active   string   

Is active Example: true

Update currency

requires authentication

Update currency

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/currencies/88" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"display_name\": \"US Dollar\",
    \"code\": \"USD\",
    \"symbol\": \"$\",
    \"is_active\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/currencies/88"
);

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

let body = {
    "display_name": "US Dollar",
    "code": "USD",
    "symbol": "$",
    "is_active": true
};

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

Example response (200):


{
    "data": {
        "id": 775,
        "display_name": "QAR",
        "code": "IQD",
        "symbol": "CDF",
        "is_active": true,
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

PATCH api/currencies/{currency_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

currency_id   integer   

The ID of the currency. Example: 88

Body Parameters

display_name   string   

Display name Example: US Dollar

code   string   

Code Example: USD

symbol   string   

Symbol Example: $

is_active   string   

Is active Example: true

Delete currency

requires authentication

Delete currency

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/currencies/88" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/currencies/88"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/currencies/{currency_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

currency_id   integer   

The ID of the currency. Example: 88

Get all external sources

requires authentication

Get all external sources

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/external-sources" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-sources"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 44,
            "name": "Dach PLC",
            "type": "fake",
            "is_active": true,
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z",
            "send_passenger_notifications": false,
            "excluded_carriers": null,
            "price_adjustment_percent": "0.00"
        },
        {
            "id": 45,
            "name": "Denesik-Metz",
            "type": "fake",
            "is_active": true,
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z",
            "send_passenger_notifications": false,
            "excluded_carriers": null,
            "price_adjustment_percent": "0.00"
        }
    ]
}
 

Request   

GET api/external-sources

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Create external source

requires authentication

Create external source

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/external-sources" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"ContraBus API\",
    \"type\": \"contrabus\",
    \"is_active\": true,
    \"payment_methods\": [
        1,
        2,
        3
    ],
    \"send_passenger_notifications\": true,
    \"excluded_carriers\": \"carrier1|carrier2\",
    \"price_adjustment_percent\": 10
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-sources"
);

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

let body = {
    "name": "ContraBus API",
    "type": "contrabus",
    "is_active": true,
    "payment_methods": [
        1,
        2,
        3
    ],
    "send_passenger_notifications": true,
    "excluded_carriers": "carrier1|carrier2",
    "price_adjustment_percent": 10
};

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

Example response (200):


{
    "data": {
        "id": 46,
        "name": "Carroll, Hettinger and Ankunding",
        "type": "fake",
        "is_active": true,
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z",
        "send_passenger_notifications": false,
        "excluded_carriers": null,
        "price_adjustment_percent": "0.00"
    }
}
 

Request   

POST api/external-sources

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Name Example: ContraBus API

type   string   

Type Example: contrabus

is_active   string   

Is active Example: true

payment_methods   string  optional  

Payment methods

send_passenger_notifications   string   

Send passenger notifications Example: true

excluded_carriers   string  optional  

Excluded carriers Example: carrier1|carrier2

price_adjustment_percent   string  optional  

Price adjustment percent Example: 10

Update external source

requires authentication

Update external source

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/external-sources/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"ContraBus API\",
    \"type\": \"contrabus\",
    \"is_active\": true,
    \"payment_methods\": [
        1,
        2,
        3
    ],
    \"send_passenger_notifications\": true,
    \"excluded_carriers\": [
        \"carrier1|carrier2\"
    ],
    \"price_adjustment_percent\": 10
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-sources/1"
);

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

let body = {
    "name": "ContraBus API",
    "type": "contrabus",
    "is_active": true,
    "payment_methods": [
        1,
        2,
        3
    ],
    "send_passenger_notifications": true,
    "excluded_carriers": [
        "carrier1|carrier2"
    ],
    "price_adjustment_percent": 10
};

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

Example response (200):


{
    "data": {
        "id": 47,
        "name": "Krajcik-Schinner",
        "type": "fake",
        "is_active": false,
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z",
        "send_passenger_notifications": false,
        "excluded_carriers": null,
        "price_adjustment_percent": "0.00"
    }
}
 

Request   

PATCH api/external-sources/{externalSource_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

externalSource_id   integer   

The ID of the externalSource. Example: 1

Body Parameters

name   string   

Name Example: ContraBus API

type   string   

Type Example: contrabus

is_active   string   

Is active Example: true

payment_methods   string   

Payment methods

send_passenger_notifications   string   

Send passenger notifications Example: true

excluded_carriers   string   

Excluded carriers

price_adjustment_percent   string   

Price adjustment percent Example: 10

Delete external source

requires authentication

Delete external source

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/external-sources/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-sources/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/external-sources/{externalSource_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

externalSource_id   integer   

The ID of the externalSource. Example: 1

Create language

requires authentication

Create language

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/languages" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"display_name\": \"Ukrainian\",
    \"code\": \"ua\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/languages"
);

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

let body = {
    "display_name": "Ukrainian",
    "code": "ua"
};

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

Example response (200):


{
    "data": {
        "id": 64,
        "display_name": "Colombia",
        "code": "GT",
        "is_active": true,
        "is_default": false,
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

POST api/languages

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

display_name   string   

Display name Example: Ukrainian

code   string   

Code Example: ua

Update language

requires authentication

Update language

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/languages/5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"display_name\": \"Ukrainian\",
    \"code\": \"ua\",
    \"is_active\": true,
    \"is_default\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/languages/5"
);

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

let body = {
    "display_name": "Ukrainian",
    "code": "ua",
    "is_active": true,
    "is_default": true
};

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

Example response (200):


{
    "data": {
        "id": 65,
        "display_name": "Faroe Islands",
        "code": "BI",
        "is_active": true,
        "is_default": false,
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

PATCH api/languages/{language_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

language_id   integer   

The ID of the language. Example: 5

Body Parameters

display_name   string   

Display name Example: Ukrainian

code   string   

Code Example: ua

is_active   string   

Is active Example: true

is_default   string   

Is default Example: true

Delete language

requires authentication

Delete language

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/languages/5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/languages/5"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/languages/{language_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

language_id   integer   

The ID of the language. Example: 5

Get all bus services

requires authentication

Get all bus services

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-services" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-services"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 163,
            "name": "Russell Yost",
            "translations": {
                "name": {
                    "ua": "Miss Asia Bernier",
                    "en": "Russell Yost"
                }
            },
            "icon_name": "Miss Carlie Donnelly",
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        },
        {
            "id": 164,
            "name": "Christine Hettinger DVM",
            "translations": {
                "name": {
                    "ua": "Brennan Franecki",
                    "en": "Christine Hettinger DVM"
                }
            },
            "icon_name": "Elna Price",
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        }
    ]
}
 

Request   

GET api/bus-services

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Create bus service

requires authentication

Create bus service

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-services" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"ua\": \"Назва\",
        \"en\": \"Name\"
    },
    \"icon_name\": \"quam\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-services"
);

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

let body = {
    "name": {
        "ua": "Назва",
        "en": "Name"
    },
    "icon_name": "quam"
};

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

Example response (200):


{
    "data": {
        "id": 165,
        "name": "Ashleigh Doyle",
        "translations": {
            "name": {
                "ua": "Aida Rath",
                "en": "Ashleigh Doyle"
            }
        },
        "icon_name": "Donavon Gutmann",
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

POST api/bus-services

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string[]   

Bus service name

icon_name   string  optional  

Bus service icon name Example: quam

Update bus service

requires authentication

Update bus service

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-services/15" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"ua\": \"Назва\",
        \"en\": \"Name\"
    },
    \"icon_name\": \"illo\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-services/15"
);

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

let body = {
    "name": {
        "ua": "Назва",
        "en": "Name"
    },
    "icon_name": "illo"
};

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

Example response (200):


{
    "data": {
        "id": 166,
        "name": "Angus Von",
        "translations": {
            "name": {
                "ua": "Jolie Mohr",
                "en": "Angus Von"
            }
        },
        "icon_name": "Prof. Abbie Bogisich Jr.",
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

PATCH api/bus-services/{service_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

service_id   integer   

The ID of the service. Example: 15

Body Parameters

name   string[]   

Bus service name

icon_name   string  optional  

Bus service icon name Example: illo

Delete bus service

requires authentication

Delete bus service

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-services/15" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-services/15"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/bus-services/{service_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

service_id   integer   

The ID of the service. Example: 15

Get bus schemes

requires authentication

Get list of bus schemas

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-schemas" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-schemas"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 1400,
            "name": "Sammie Kirlin V",
            "mark": "Eleanora Ledner",
            "model": "Palma Kunze II",
            "number_of_seats": 2,
            "number_of_floors": 1,
            "services": [
                {
                    "id": 167,
                    "name": "Gudrun Champlin",
                    "translations": {
                        "name": {
                            "ua": "Rickey Predovic II",
                            "en": "Gudrun Champlin"
                        }
                    },
                    "icon_name": "Dr. Hortense Krajcik DDS",
                    "created_at": "2025-11-02T07:50:57.000000Z",
                    "updated_at": "2025-11-02T07:50:57.000000Z"
                }
            ],
            "rows": 1,
            "columns": 2,
            "items": [
                {
                    "id": 41051,
                    "type": "seat",
                    "name": "Dulce Hayes",
                    "translations": {
                        "name": {
                            "en": "Dulce Hayes"
                        }
                    },
                    "seat_number": 487,
                    "row_number": 278786,
                    "column_number": 50852,
                    "floor_number": 1
                },
                {
                    "id": 41052,
                    "type": "seat",
                    "name": "Seat 1",
                    "translations": {
                        "name": {
                            "en": "Seat 1"
                        }
                    },
                    "seat_number": 1,
                    "row_number": 1,
                    "column_number": 1,
                    "floor_number": 1
                },
                {
                    "id": 41053,
                    "type": "seat",
                    "name": "Seat 2",
                    "translations": {
                        "name": {
                            "en": "Seat 2"
                        }
                    },
                    "seat_number": 2,
                    "row_number": 1,
                    "column_number": 2,
                    "floor_number": 1
                }
            ],
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        },
        {
            "id": 1402,
            "name": "Reilly Fay",
            "mark": "Meaghan Koepp",
            "model": "Ms. Heaven Predovic Sr.",
            "number_of_seats": 1,
            "number_of_floors": 1,
            "services": [
                {
                    "id": 168,
                    "name": "Genoveva Green",
                    "translations": {
                        "name": {
                            "ua": "Jane Skiles",
                            "en": "Genoveva Green"
                        }
                    },
                    "icon_name": "Dora Muller",
                    "created_at": "2025-11-02T07:50:57.000000Z",
                    "updated_at": "2025-11-02T07:50:57.000000Z"
                }
            ],
            "rows": 1,
            "columns": 2,
            "items": [
                {
                    "id": 41058,
                    "type": "seat",
                    "name": "Mckenna Larkin",
                    "translations": {
                        "name": {
                            "en": "Mckenna Larkin"
                        }
                    },
                    "seat_number": 8045709,
                    "row_number": 5,
                    "column_number": 828288,
                    "floor_number": 1
                },
                {
                    "id": 41059,
                    "type": "seat",
                    "name": "Seat 1",
                    "translations": {
                        "name": {
                            "en": "Seat 1"
                        }
                    },
                    "seat_number": 1,
                    "row_number": 1,
                    "column_number": 1,
                    "floor_number": 1
                },
                {
                    "id": 41060,
                    "type": "seat",
                    "name": "Seat 2",
                    "translations": {
                        "name": {
                            "en": "Seat 2"
                        }
                    },
                    "seat_number": 2,
                    "row_number": 1,
                    "column_number": 2,
                    "floor_number": 1
                }
            ],
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.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
    }
}
 

Request   

GET api/bus-schemas

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Create bus schema

requires authentication

Create new bus schema

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/bus-schemas" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Bus 1\",
    \"rows\": 5,
    \"columns\": 5,
    \"mark\": \"Mercedes\",
    \"model\": \"Sprinter\",
    \"number_of_seats\": 20,
    \"number_of_floors\": 20
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-schemas"
);

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

let body = {
    "name": "Bus 1",
    "rows": 5,
    "columns": 5,
    "mark": "Mercedes",
    "model": "Sprinter",
    "number_of_seats": 20,
    "number_of_floors": 20
};

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

Example response (200):


{
    "data": {
        "id": 1404,
        "name": "Mrs. Maye Metz Jr.",
        "mark": "Dr. Bria Gutmann Sr.",
        "model": "Cade Johnston",
        "number_of_seats": 1,
        "number_of_floors": 1,
        "rows": 2,
        "columns": 1,
        "items": [
            {
                "id": 41063,
                "type": "seat",
                "name": "Hassan Champlin",
                "translations": {
                    "name": {
                        "en": "Hassan Champlin"
                    }
                },
                "seat_number": 121,
                "row_number": 92,
                "column_number": 40069,
                "floor_number": 1
            },
            {
                "id": 41064,
                "type": "seat",
                "name": "Seat 1",
                "translations": {
                    "name": {
                        "en": "Seat 1"
                    }
                },
                "seat_number": 1,
                "row_number": 1,
                "column_number": 1,
                "floor_number": 1
            },
            {
                "id": 41065,
                "type": "seat",
                "name": "Seat 2",
                "translations": {
                    "name": {
                        "en": "Seat 2"
                    }
                },
                "seat_number": 2,
                "row_number": 2,
                "column_number": 1,
                "floor_number": 1
            }
        ],
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

POST api/bus-schemas

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Name of bus schema Example: Bus 1

rows   string   

Number of rows Example: 5

columns   string   

Number of columns Example: 5

mark   string   

Mark of bus schema Example: Mercedes

model   string   

Model of bus schema Example: Sprinter

number_of_seats   string   

Number of seats Example: 20

number_of_floors   string   

Number of seats Example: 20

Show bus schema

requires authentication

Get bus schema by id

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/bus-schemas/173" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-schemas/173"
);

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

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

Example response (200):


{
    "data": {
        "id": 1406,
        "name": "Prof. Wade Wiegand V",
        "mark": "Stephon Farrell",
        "model": "Ms. Ena Feil",
        "number_of_seats": 1,
        "number_of_floors": 1,
        "services": [
            {
                "id": 169,
                "name": "Reggie Breitenberg DDS",
                "translations": {
                    "name": {
                        "ua": "Kim Cremin",
                        "en": "Reggie Breitenberg DDS"
                    }
                },
                "icon_name": "Ms. Nova Franecki DDS",
                "created_at": "2025-11-02T07:50:57.000000Z",
                "updated_at": "2025-11-02T07:50:57.000000Z"
            }
        ],
        "rows": 2,
        "columns": 1,
        "items": [
            {
                "id": 41068,
                "type": "seat",
                "name": "Elinore Collins",
                "translations": {
                    "name": {
                        "en": "Elinore Collins"
                    }
                },
                "seat_number": 956743383,
                "row_number": 163749168,
                "column_number": 661478,
                "floor_number": 1
            },
            {
                "id": 41069,
                "type": "seat",
                "name": "Seat 1",
                "translations": {
                    "name": {
                        "en": "Seat 1"
                    }
                },
                "seat_number": 1,
                "row_number": 1,
                "column_number": 1,
                "floor_number": 1
            },
            {
                "id": 41070,
                "type": "seat",
                "name": "Seat 2",
                "translations": {
                    "name": {
                        "en": "Seat 2"
                    }
                },
                "seat_number": 2,
                "row_number": 2,
                "column_number": 1,
                "floor_number": 1
            }
        ],
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

GET api/bus-schemas/{schema_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

schema_id   integer   

The ID of the schema. Example: 173

Update bus schema

requires authentication

Update bus schema by id

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-schemas/173" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Bus 1\",
    \"rows\": 5,
    \"columns\": 5,
    \"items\": [
        {
            \"type\": \"seat\",
            \"name\": {
                \"en\": \"Seat 1\"
            },
            \"seat_number\": 1,
            \"row_number\": 1,
            \"column_number\": 1
        }
    ],
    \"mark\": \"Mercedes\",
    \"model\": \"Sprinter\",
    \"number_of_seats\": 20,
    \"number_of_floors\": 1,
    \"services\": [
        1,
        2
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-schemas/173"
);

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

let body = {
    "name": "Bus 1",
    "rows": 5,
    "columns": 5,
    "items": [
        {
            "type": "seat",
            "name": {
                "en": "Seat 1"
            },
            "seat_number": 1,
            "row_number": 1,
            "column_number": 1
        }
    ],
    "mark": "Mercedes",
    "model": "Sprinter",
    "number_of_seats": 20,
    "number_of_floors": 1,
    "services": [
        1,
        2
    ]
};

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

Example response (200):


{
    "data": {
        "id": 1408,
        "name": "Prof. Lonzo Schumm DDS",
        "mark": "Elton Kessler",
        "model": "Troy Welch",
        "number_of_seats": 1,
        "number_of_floors": 1,
        "rows": 2,
        "columns": 1,
        "items": [
            {
                "id": 41073,
                "type": "seat",
                "name": "Carlie Hahn Jr.",
                "translations": {
                    "name": {
                        "en": "Carlie Hahn Jr."
                    }
                },
                "seat_number": 882955,
                "row_number": 2258,
                "column_number": 7567,
                "floor_number": 1
            },
            {
                "id": 41074,
                "type": "seat",
                "name": "Seat 1",
                "translations": {
                    "name": {
                        "en": "Seat 1"
                    }
                },
                "seat_number": 1,
                "row_number": 1,
                "column_number": 1,
                "floor_number": 1
            },
            {
                "id": 41075,
                "type": "seat",
                "name": "Seat 2",
                "translations": {
                    "name": {
                        "en": "Seat 2"
                    }
                },
                "seat_number": 2,
                "row_number": 2,
                "column_number": 1,
                "floor_number": 1
            }
        ],
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

PATCH api/bus-schemas/{schema_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

schema_id   integer   

The ID of the schema. Example: 173

Body Parameters

name   string   

Name of bus schema Example: Bus 1

rows   string   

Number of rows Example: 5

columns   string   

Number of columns Example: 5

items   string[]   

Seats

mark   string   

Mark of bus schema Example: Mercedes

model   string   

Model of bus schema Example: Sprinter

number_of_seats   string   

Number of seats Example: 20

number_of_floors   string   

Number of seats Example: 1

services   string[]   

Bus services

Delete bus schema

requires authentication

Delete bus schema by id

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/bus-schemas/173" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-schemas/173"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/bus-schemas/{schema_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

schema_id   integer   

The ID of the schema. Example: 173

Get return conditionals

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/return-conditionals?entity_type=bus_flight&entity_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/return-conditionals"
);

const params = {
    "entity_type": "bus_flight",
    "entity_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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 41304,
            "departure_start": 8,
            "departure_end": 7,
            "retention_percentage": 3,
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        },
        {
            "id": 41305,
            "departure_start": 9,
            "departure_end": 2,
            "retention_percentage": 8,
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        }
    ]
}
 

Request   

GET api/return-conditionals

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Create return conditional

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/return-conditionals?entity_type=bus_flight&entity_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"departure_start\": 1,
    \"departure_end\": 2,
    \"retention_percentage\": 10
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/return-conditionals"
);

const params = {
    "entity_type": "bus_flight",
    "entity_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",
};

let body = {
    "departure_start": 1,
    "departure_end": 2,
    "retention_percentage": 10
};

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

Example response (200):


{
    "data": {
        "id": 41306,
        "departure_start": 9,
        "departure_end": 10,
        "retention_percentage": 10,
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

POST api/return-conditionals

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Body Parameters

departure_start   string   

Departure start Example: 1

departure_end   string  optional  

Departure end Example: 2

retention_percentage   string   

Retention percentage Example: 10

Update return conditional

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/return-conditionals/14" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"departure_start\": 1,
    \"departure_end\": 2,
    \"retention_percentage\": 10
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/return-conditionals/14"
);

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

let body = {
    "departure_start": 1,
    "departure_end": 2,
    "retention_percentage": 10
};

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

Example response (200):


{
    "data": {
        "id": 41307,
        "departure_start": 3,
        "departure_end": 10,
        "retention_percentage": 6,
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

PATCH api/return-conditionals/{conditional_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

conditional_id   integer   

The ID of the conditional. Example: 14

Body Parameters

departure_start   string   

Departure start Example: 1

departure_end   string   

Departure end Example: 2

retention_percentage   string   

Retention percentage Example: 10

Delete return conditional

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/return-conditionals/14" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/return-conditionals/14"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/return-conditionals/{conditional_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

conditional_id   integer   

The ID of the conditional. Example: 14

Create discount type

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/discount-types" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"Child\",
        \"ar\": \"نيويورك\"
    }
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/discount-types"
);

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

let body = {
    "name": {
        "en": "Child",
        "ar": "نيويورك"
    }
};

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

Example response (200):


{
    "data": {
        "id": 96,
        "name": "fugit",
        "translations": {
            "name": {
                "en": "fugit",
                "ar": "incidunt"
            }
        },
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

POST api/discount-types

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string[]   

City name

Update discount type

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/discount-types/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"Child\",
        \"ar\": \"نيويورك\"
    }
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/discount-types/1"
);

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

let body = {
    "name": {
        "en": "Child",
        "ar": "نيويورك"
    }
};

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

Example response (200):


{
    "data": {
        "id": 97,
        "name": "aspernatur",
        "translations": {
            "name": {
                "en": "aspernatur",
                "ar": "sint"
            }
        },
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

PATCH api/discount-types/{discount_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

discount_id   integer   

The ID of the discount. Example: 1

Body Parameters

name   string[]   

City name

Delete discount type

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/discount-types/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/discount-types/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/discount-types/{discount_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

discount_id   integer   

The ID of the discount. Example: 1

Create notification template

requires authentication

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/notification-templates" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"New template\",
    \"content\": {
        \"en\": \"Child\",
        \"ar\": \"نيويورك\"
    },
    \"slug\": \"new-template\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/notification-templates"
);

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

let body = {
    "name": "New template",
    "content": {
        "en": "Child",
        "ar": "نيويورك"
    },
    "slug": "new-template"
};

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

Example response (200):


{
    "data": {
        "id": 57,
        "title": "voluptate",
        "content": "Quibusdam adipisci ipsum saepe.",
        "translations": {
            "content": {
                "en": "Quibusdam adipisci ipsum saepe.",
                "es": "Voluptatem et occaecati occaecati est id cupiditate saepe."
            },
            "App\\Enums\\NotificationTemplateEnum": []
        },
        "slug": null
    }
}
 

Request   

POST api/notification-templates

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Name Example: New template

content   string[]   

Message content

slug   string  optional  

Slug Example: new-template

Update notification template

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/notification-templates/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"New template\",
    \"content\": {
        \"en\": \"Child\",
        \"ar\": \"نيويورك\"
    },
    \"slug\": \"new-template\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/notification-templates/1"
);

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

let body = {
    "name": "New template",
    "content": {
        "en": "Child",
        "ar": "نيويورك"
    },
    "slug": "new-template"
};

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

Example response (200):


{
    "data": {
        "id": 58,
        "title": "vel",
        "content": "Facere delectus suscipit pariatur natus architecto.",
        "translations": {
            "content": {
                "en": "Facere delectus suscipit pariatur natus architecto.",
                "es": "Et omnis perspiciatis et alias."
            },
            "App\\Enums\\NotificationTemplateEnum": []
        },
        "slug": null
    }
}
 

Request   

PATCH api/notification-templates/{notificationTemplate_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

notificationTemplate_id   integer   

The ID of the notificationTemplate. Example: 1

Body Parameters

name   string   

Name Example: New template

content   string[]   

Message content

slug   string  optional  

Slug Example: new-template

Delete notification template

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/notification-templates/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/notification-templates/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/notification-templates/{notificationTemplate_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

notificationTemplate_id   integer   

The ID of the notificationTemplate. Example: 1

Get all baggage transportation conditions

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/baggage-transportation-conditions?entity_type=bus_flight&entity_id=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-transportation-conditions"
);

const params = {
    "entity_type": "bus_flight",
    "entity_id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

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

Example response (200):


{
    "data": [
        {
            "id": 15298,
            "name": "Baggage",
            "translations": {
                "name": {
                    "en": "Baggage"
                }
            },
            "prices": [
                {
                    "currency_id": 776,
                    "price": 100
                }
            ],
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        },
        {
            "id": 15299,
            "name": "Baggage",
            "translations": {
                "name": {
                    "en": "Baggage"
                }
            },
            "prices": [
                {
                    "currency_id": 777,
                    "price": 100
                }
            ],
            "created_at": "2025-11-02T07:50:57.000000Z",
            "updated_at": "2025-11-02T07:50:57.000000Z"
        }
    ]
}
 

Request   

GET api/baggage-transportation-conditions

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Create a baggage transportation condition

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/baggage-transportation-conditions?entity_type=bus_flight&entity_id=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"Baggage transportation condition name\"
    },
    \"prices\": [
        {
            \"price\": 100,
            \"currency_id\": 1
        }
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-transportation-conditions"
);

const params = {
    "entity_type": "bus_flight",
    "entity_id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

let body = {
    "name": {
        "en": "Baggage transportation condition name"
    },
    "prices": [
        {
            "price": 100,
            "currency_id": 1
        }
    ]
};

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

Example response (200):


{
    "data": {
        "id": 15300,
        "name": "Baggage",
        "translations": {
            "name": {
                "en": "Baggage"
            }
        },
        "prices": [
            {
                "currency_id": 778,
                "price": 100
            }
        ],
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

POST api/baggage-transportation-conditions

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Body Parameters

name   string[]   

Name of baggage transportation condition

prices   string[]   

Prices of baggage transportation condition

Update a baggage transportation condition

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/baggage-transportation-conditions/10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"Baggage transportation condition name\"
    },
    \"prices\": [
        {
            \"price\": 100,
            \"currency_id\": 1
        }
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-transportation-conditions/10"
);

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

let body = {
    "name": {
        "en": "Baggage transportation condition name"
    },
    "prices": [
        {
            "price": 100,
            "currency_id": 1
        }
    ]
};

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

Example response (200):


{
    "data": {
        "id": 15301,
        "name": "Baggage",
        "translations": {
            "name": {
                "en": "Baggage"
            }
        },
        "prices": [
            {
                "currency_id": 779,
                "price": 100
            }
        ],
        "created_at": "2025-11-02T07:50:57.000000Z",
        "updated_at": "2025-11-02T07:50:57.000000Z"
    }
}
 

Request   

PATCH api/baggage-transportation-conditions/{condition_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

condition_id   integer   

The ID of the condition. Example: 10

Body Parameters

name   string[]   

Name of baggage transportation condition

prices   string[]   

Prices of baggage transportation condition

Delete a baggage transportation condition

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/baggage-transportation-conditions/10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-transportation-conditions/10"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/baggage-transportation-conditions/{condition_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

condition_id   integer   

The ID of the condition. Example: 10

Get all baggage additional information

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/baggage-additional-information?entity_type=bus_flight&entity_id=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-additional-information"
);

const params = {
    "entity_type": "bus_flight",
    "entity_id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

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

Example response (200):


{
    "data": [
        {
            "id": 13077,
            "name": "Sit consequatur laborum aliquam aut eum qui.",
            "content": "Doloribus omnis sint architecto et odit adipisci sed praesentium. Qui quam sint necessitatibus delectus aliquam tempore. Fugiat sit voluptatem eaque ut nostrum voluptatem sint sit.",
            "translations": {
                "name": {
                    "en": "Sit consequatur laborum aliquam aut eum qui."
                },
                "content": {
                    "en": "Doloribus omnis sint architecto et odit adipisci sed praesentium. Qui quam sint necessitatibus delectus aliquam tempore. Fugiat sit voluptatem eaque ut nostrum voluptatem sint sit."
                }
            },
            "created_at": "2025-11-02T07:50:58.000000Z",
            "updated_at": "2025-11-02T07:50:58.000000Z"
        },
        {
            "id": 13078,
            "name": "Ipsum magnam ratione esse ratione aut.",
            "content": "Libero deserunt rem qui accusamus. Sit placeat non sed animi possimus. Maxime cum qui id quam.",
            "translations": {
                "name": {
                    "en": "Ipsum magnam ratione esse ratione aut."
                },
                "content": {
                    "en": "Libero deserunt rem qui accusamus. Sit placeat non sed animi possimus. Maxime cum qui id quam."
                }
            },
            "created_at": "2025-11-02T07:50:58.000000Z",
            "updated_at": "2025-11-02T07:50:58.000000Z"
        }
    ]
}
 

Request   

GET api/baggage-additional-information

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Create baggage additional information

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/baggage-additional-information?entity_type=bus_flight&entity_id=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"Baggage additional information\"
    },
    \"content\": {
        \"en\": \"Baggage additional information\"
    }
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-additional-information"
);

const params = {
    "entity_type": "bus_flight",
    "entity_id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

let body = {
    "name": {
        "en": "Baggage additional information"
    },
    "content": {
        "en": "Baggage additional information"
    }
};

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

Example response (200):


{
    "data": {
        "id": 13079,
        "name": "Quisquam labore neque sapiente tenetur.",
        "content": "Rem aut distinctio eum qui non deserunt. Unde sit consequatur ad aut iure autem iure. Tenetur culpa eligendi doloremque sed.",
        "translations": {
            "name": {
                "en": "Quisquam labore neque sapiente tenetur."
            },
            "content": {
                "en": "Rem aut distinctio eum qui non deserunt. Unde sit consequatur ad aut iure autem iure. Tenetur culpa eligendi doloremque sed."
            }
        },
        "created_at": "2025-11-02T07:50:58.000000Z",
        "updated_at": "2025-11-02T07:50:58.000000Z"
    }
}
 

Request   

POST api/baggage-additional-information

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

entity_type   string   

(bus_flight, bus_route) Example: bus_flight

entity_id   integer   

Entity ID Example: 1

Body Parameters

name   string[]   

Name of baggage additional information

content   string[]   

Content of baggage additional information

Get baggage additional information

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/baggage-additional-information/6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-additional-information/6"
);

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

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

Example response (200):


{
    "data": {
        "id": 13080,
        "name": "Blanditiis repellat nemo totam ut optio.",
        "content": "Dolores in cum eos soluta cumque aspernatur rerum tempora. Assumenda et explicabo quia adipisci consequatur doloribus veniam. Aliquam dignissimos fugiat perspiciatis aut nihil enim nesciunt.",
        "translations": {
            "name": {
                "en": "Blanditiis repellat nemo totam ut optio."
            },
            "content": {
                "en": "Dolores in cum eos soluta cumque aspernatur rerum tempora. Assumenda et explicabo quia adipisci consequatur doloribus veniam. Aliquam dignissimos fugiat perspiciatis aut nihil enim nesciunt."
            }
        },
        "created_at": "2025-11-02T07:50:58.000000Z",
        "updated_at": "2025-11-02T07:50:58.000000Z"
    }
}
 

Request   

GET api/baggage-additional-information/{information_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

information_id   integer   

The ID of the information. Example: 6

Update baggage additional information

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/baggage-additional-information/6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": {
        \"en\": \"Baggage additional information\"
    },
    \"content\": {
        \"en\": \"Baggage additional information\"
    }
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-additional-information/6"
);

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

let body = {
    "name": {
        "en": "Baggage additional information"
    },
    "content": {
        "en": "Baggage additional information"
    }
};

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

Example response (200):


{
    "data": {
        "id": 13081,
        "name": "Ea voluptatem quo cum molestias qui.",
        "content": "Enim ea quis accusantium. Voluptatum quod velit tenetur unde non omnis. Cumque laboriosam accusamus numquam molestiae quibusdam. Et fugit et repellat quae iste ut fuga.",
        "translations": {
            "name": {
                "en": "Ea voluptatem quo cum molestias qui."
            },
            "content": {
                "en": "Enim ea quis accusantium. Voluptatum quod velit tenetur unde non omnis. Cumque laboriosam accusamus numquam molestiae quibusdam. Et fugit et repellat quae iste ut fuga."
            }
        },
        "created_at": "2025-11-02T07:50:58.000000Z",
        "updated_at": "2025-11-02T07:50:58.000000Z"
    }
}
 

Request   

PATCH api/baggage-additional-information/{information_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

information_id   integer   

The ID of the information. Example: 6

Body Parameters

name   string[]   

Name of baggage additional information

content   string[]   

Content of baggage additional information

Delete baggage additional information

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/baggage-additional-information/6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/baggage-additional-information/6"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/baggage-additional-information/{information_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

information_id   integer   

The ID of the information. Example: 6

Create text page

requires authentication

Create a bus schema

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/text-pages" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"slug\": \"about-us\",
    \"title\": {
        \"en\": \"About us\"
    },
    \"content\": {
        \"en\": \"About us content\"
    },
    \"is_active\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/text-pages"
);

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

let body = {
    "slug": "about-us",
    "title": {
        "en": "About us"
    },
    "content": {
        "en": "About us content"
    },
    "is_active": true
};

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

Example response (200):


{
    "data": {
        "id": 76,
        "slug": "cupiditate-pariatur-consequuntur-et",
        "title": "Odio autem expedita voluptatum ratione.",
        "content": "Reprehenderit aspernatur dolorem sed sint sint aut. Adipisci qui omnis omnis laborum molestiae quae. Maxime eius labore laboriosam facilis enim voluptatum nisi aspernatur.",
        "is_active": false,
        "translations": {
            "title": {
                "en": "Odio autem expedita voluptatum ratione."
            },
            "content": {
                "en": "Reprehenderit aspernatur dolorem sed sint sint aut. Adipisci qui omnis omnis laborum molestiae quae. Maxime eius labore laboriosam facilis enim voluptatum nisi aspernatur."
            }
        },
        "created_at": "2025-11-02T07:51:03.000000Z",
        "updated_at": "2025-11-02T07:51:03.000000Z"
    }
}
 

Request   

POST api/text-pages

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

slug   string   

Slug of the text page Example: about-us

title   string[]   

Title of the text page

content   string[]   

Content of the text page

is_active   boolean   

Whether the text page is active Example: true

Update text page

requires authentication

Update a bus schema

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/text-pages/67" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"slug\": \"about-us\",
    \"title\": {
        \"en\": \"About us\"
    },
    \"content\": {
        \"en\": \"About us content\"
    },
    \"is_active\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/text-pages/67"
);

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

let body = {
    "slug": "about-us",
    "title": {
        "en": "About us"
    },
    "content": {
        "en": "About us content"
    },
    "is_active": true
};

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

Example response (200):


{
    "data": {
        "id": 77,
        "slug": "sunt-doloremque-rerum-iure-ut",
        "title": "Neque sint enim totam.",
        "content": "Aut nam repellendus sunt. Exercitationem at asperiores et ipsa tempora id quos. Quo expedita ipsum quo mollitia sit tempore consequatur.",
        "is_active": false,
        "translations": {
            "title": {
                "en": "Neque sint enim totam."
            },
            "content": {
                "en": "Aut nam repellendus sunt. Exercitationem at asperiores et ipsa tempora id quos. Quo expedita ipsum quo mollitia sit tempore consequatur."
            }
        },
        "created_at": "2025-11-02T07:51:03.000000Z",
        "updated_at": "2025-11-02T07:51:03.000000Z"
    }
}
 

Request   

PATCH api/text-pages/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the text page. Example: 67

Body Parameters

slug   string  optional  

Slug of the text page Example: about-us

title   string[]  optional  

Title of the text page

content   string[]  optional  

Content of the text page

is_active   boolean  optional  

Whether the text page is active Example: true

Delete text page

requires authentication

Delete a bus schema

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/text-pages/67" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/text-pages/67"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/text-pages/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the text page. Example: 67

Get all payment methods

Get all payment methods

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/payment-methods" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/payment-methods"
);

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

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

Example response (200):


{
    "data": [
        {
            "id": 146,
            "name": "liqpay",
            "display_name": "Lisette Bergstrom",
            "logo_path": "Dovie Welch",
            "created_at": "2025-11-02T07:51:03.000000Z",
            "updated_at": "2025-11-02T07:51:03.000000Z"
        },
        {
            "id": 147,
            "name": "liqpay",
            "display_name": "Prof. Mercedes Kautzer",
            "logo_path": "Eve Orn",
            "created_at": "2025-11-02T07:51:03.000000Z",
            "updated_at": "2025-11-02T07:51:03.000000Z"
        }
    ]
}
 

Request   

GET api/payment-methods

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Create a payment method

Create a payment method

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/payment-methods" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"stripe\",
    \"display_name\": \"Stripe\",
    \"logo_path\": \"https:\\/\\/example.com\\/logo.png\",
    \"config\": {
        \"success_url\": \"https:\\/\\/example.com\\/success\",
        \"cancel_url\": \"https:\\/\\/example.com\\/cancel\",
        \"secret_key\": \"sk_test_1234567890\",
        \"public_key\": \"pk_test_1234567890\",
        \"webhook_secret\": \"whsec_1234567890\"
    },
    \"is_active\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/payment-methods"
);

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

let body = {
    "name": "stripe",
    "display_name": "Stripe",
    "logo_path": "https:\/\/example.com\/logo.png",
    "config": {
        "success_url": "https:\/\/example.com\/success",
        "cancel_url": "https:\/\/example.com\/cancel",
        "secret_key": "sk_test_1234567890",
        "public_key": "pk_test_1234567890",
        "webhook_secret": "whsec_1234567890"
    },
    "is_active": true
};

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

Example response (200):


{
    "data": {
        "id": 148,
        "name": "liqpay",
        "display_name": "Floyd Botsford DDS",
        "logo_path": "Camden Larson IV",
        "created_at": "2025-11-02T07:51:03.000000Z",
        "updated_at": "2025-11-02T07:51:03.000000Z"
    }
}
 

Request   

POST api/payment-methods

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Name of the payment method Example: stripe

display_name   string   

Display name of the payment method Example: Stripe

logo_path   string  optional  

Logo path of the payment method Example: https://example.com/logo.png

config   string[]   

Config of the payment method

is_active   string  optional  

Is the payment method active Example: true

Update a payment method

Update a payment method

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/payment-methods/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"stripe\",
    \"display_name\": \"Stripe\",
    \"logo_path\": \"https:\\/\\/example.com\\/logo.png\",
    \"config\": {
        \"success_url\": \"https:\\/\\/example.com\\/success\",
        \"cancel_url\": \"https:\\/\\/example.com\\/cancel\",
        \"secret_key\": \"sk_test_1234567890\",
        \"public_key\": \"pk_test_1234567890\",
        \"webhook_secret\": \"whsec_1234567890\"
    },
    \"is_active\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/payment-methods/1"
);

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

let body = {
    "name": "stripe",
    "display_name": "Stripe",
    "logo_path": "https:\/\/example.com\/logo.png",
    "config": {
        "success_url": "https:\/\/example.com\/success",
        "cancel_url": "https:\/\/example.com\/cancel",
        "secret_key": "sk_test_1234567890",
        "public_key": "pk_test_1234567890",
        "webhook_secret": "whsec_1234567890"
    },
    "is_active": 1
};

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

Example response (200):


{
    "data": {
        "id": 149,
        "name": "spot",
        "display_name": "Grant Conn",
        "logo_path": "Mr. Guiseppe Orn IV",
        "created_at": "2025-11-02T07:51:03.000000Z",
        "updated_at": "2025-11-02T07:51:03.000000Z"
    }
}
 

Request   

PATCH api/payment-methods/{method_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

method_id   integer   

The ID of the method. Example: 1

Body Parameters

name   string   

Name of the payment method Example: stripe

display_name   string   

Display name of the payment method Example: Stripe

logo_path   string   

Logo path of the payment method Example: https://example.com/logo.png

config   string[]   

Config of the payment method

is_active   string   

Is the payment method active Example: 1

Delete a payment method

Delete a payment method

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/payment-methods/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/payment-methods/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/payment-methods/{method_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

method_id   integer   

The ID of the method. Example: 1

Get all activity logs

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/activity-logs?per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/activity-logs"
);

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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 2439682,
            "log_name": "default",
            "description": "Dignissimos aliquam quis veritatis mollitia.",
            "subject_id": 1420,
            "subject_type": "App\\Models\\BusSchema",
            "causer_id": 5704,
            "causer_type": "App\\Models\\User",
            "user": {
                "id": 5704,
                "first_name": "Lambert",
                "last_name": "Little",
                "middle_name": "Hans",
                "full_name": "Lambert Little Hans",
                "work_phone": null,
                "gender": null,
                "birthday": null,
                "name": "Dr. Augustus Heaney PhD",
                "phone": "434.405.7830",
                "email": "omarks@example.net",
                "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": "2025-11-02T07:51:04.000000Z",
                "updated_at": "2025-11-02T07:51:04.000000Z"
            },
            "properties": {
                "attributes": {
                    "name": "Telly Terry",
                    "status": "active"
                }
            },
            "event": "created",
            "created_at": "2025-11-02T07:51:04.000000Z",
            "updated_at": "2025-11-02T07:51:04.000000Z"
        },
        {
            "id": 2439689,
            "log_name": "default",
            "description": "Explicabo hic et non similique unde molestias velit.",
            "subject_id": 1421,
            "subject_type": "App\\Models\\BusSchema",
            "causer_id": 5705,
            "causer_type": "App\\Models\\User",
            "user": {
                "id": 5705,
                "first_name": "Zackary",
                "last_name": "Hodkiewicz",
                "middle_name": "Raul",
                "full_name": "Zackary Hodkiewicz Raul",
                "work_phone": null,
                "gender": null,
                "birthday": null,
                "name": "Dr. Alysha Romaguera",
                "phone": "360.292.8141",
                "email": "lmohr@example.com",
                "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": "2025-11-02T07:51:04.000000Z",
                "updated_at": "2025-11-02T07:51:04.000000Z"
            },
            "properties": {
                "attributes": {
                    "name": "Dr. Lauryn Boyer MD",
                    "status": "active"
                }
            },
            "event": "created",
            "created_at": "2025-11-02T07:51:04.000000Z",
            "updated_at": "2025-11-02T07:51:04.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
    }
}
 

Request   

GET api/activity-logs

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer   

Items per page Example: 10

Get all activity log subjects and types

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/activity-logs/general-data" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/activity-logs/general-data"
);

const headers = {
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/activity-logs/general-data

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get seat settings

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/system-settings/seat-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/seat-settings"
);

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

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

Example response (200):


{
    "data": {
        "seat_selection_allowed": "boolean",
        "seat_selection_not_allowed_date_from": "date",
        "seat_selection_not_allowed_date_to": "date",
        "without_companion": "boolean",
        "without_companion_price": "integer",
        "selected_seats_prices": "array"
    }
}
 

Request   

GET api/system-settings/seat-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Update seat settings

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/system-settings/seat-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"seat_selection_allowed\": true,
    \"seat_selection_not_allowed_date_from\": \"2021-01-01\",
    \"seat_selection_not_allowed_date_to\": \"2021-01-01\",
    \"without_companion\": true,
    \"without_companion_price\": 100
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/seat-settings"
);

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

let body = {
    "seat_selection_allowed": true,
    "seat_selection_not_allowed_date_from": "2021-01-01",
    "seat_selection_not_allowed_date_to": "2021-01-01",
    "without_companion": true,
    "without_companion_price": 100
};

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

Example response (200):


{
    "data": {
        "seat_selection_allowed": "boolean",
        "seat_selection_not_allowed_date_from": "date",
        "seat_selection_not_allowed_date_to": "date",
        "without_companion": "boolean",
        "without_companion_price": "integer"
    }
}
 

Request   

PATCH api/system-settings/seat-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

seat_selection_allowed   string  optional  

Whether seat selection is allowed Example: true

seat_selection_not_allowed_date_from   string  optional  

Whether seat selection is allowed Example: 2021-01-01

seat_selection_not_allowed_date_to   string  optional  

Whether seat selection is allowed Example: 2021-01-01

without_companion   string  optional  

Whether seat selection is allowed Example: true

without_companion_price   string  optional  

Whether seat selection is allowed Example: 100

Get payment settings

requires authentication

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/system-settings/payment-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/payment-settings"
);

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

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

Example response (200):


{
    "data": {
        "payment_time": "integer",
        "sale_depth": "integer"
    }
}
 

Request   

GET api/system-settings/payment-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Update payment settings

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/system-settings/payment-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"payment_time\": 30,
    \"sale_depth\": 30
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/payment-settings"
);

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

let body = {
    "payment_time": 30,
    "sale_depth": 30
};

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

Example response (200):


{
    "data": {
        "payment_time": "integer",
        "sale_depth": "integer"
    }
}
 

Request   

PATCH api/system-settings/payment-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

payment_time   integer   

Payment time in minutes Example: 30

sale_depth   integer   

Sale depth in days Example: 30

Store or update translation

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/system-settings/translations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"group\": \"validation\",
    \"key\": \"required\",
    \"text\": {
        \"en\": \"required\",
        \"ru\": \"обязательно\"
    }
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/translations"
);

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

let body = {
    "group": "validation",
    "key": "required",
    "text": {
        "en": "required",
        "ru": "обязательно"
    }
};

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

Example response (200):


{
    "data": {
        "id": 654,
        "group": "ut",
        "key": "expedita",
        "text": {
            "en": "Qui fugiat blanditiis sequi sit voluptas magni.",
            "ru": "Nesciunt ipsum possimus quaerat similique."
        },
        "created_at": "2025-11-02T07:51:04.000000Z",
        "updated_at": "2025-11-02T07:51:04.000000Z"
    }
}
 

Request   

POST api/system-settings/translations

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

group   string   

translation group Example: validation

key   string   

translation key Example: required

text   string[]   

translation text

Delete translation

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/system-settings/translations/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/translations/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/system-settings/translations/{translation_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

translation_id   integer   

The ID of the translation. Example: 1

Create social media link

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/system-settings/social-media-links" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"https:\\/\\/www.facebook.com\\/\",
    \"icon_name\": \"facebook\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/social-media-links"
);

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

let body = {
    "url": "https:\/\/www.facebook.com\/",
    "icon_name": "facebook"
};

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

Example response (200):


{
    "data": {
        "id": 59,
        "url": "http://www.fisher.com/",
        "icon_name": "Glenna Smitham"
    }
}
 

Update social media link

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/system-settings/social-media-links/12" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"https:\\/\\/www.facebook.com\\/\",
    \"icon_name\": \"facebook\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/social-media-links/12"
);

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

let body = {
    "url": "https:\/\/www.facebook.com\/",
    "icon_name": "facebook"
};

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

Example response (200):


{
    "data": {
        "id": 60,
        "url": "http://www.waelchi.biz/",
        "icon_name": "Dayton Murazik"
    }
}
 

Delete social media link

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/system-settings/social-media-links/10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/social-media-links/10"
);

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

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

Example response (200, No content):


204
 

Get all carriers

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/system-settings/carriers?per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/carriers"
);

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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 87,
            "name": "Prof. Casimir Bashirian",
            "hotline_phone": null,
            "edrpou": null,
            "disclaimer": null,
            "translations": {
                "disclaimer": []
            }
        },
        {
            "id": 88,
            "name": "Orrin Yost MD",
            "hotline_phone": null,
            "edrpou": null,
            "disclaimer": null,
            "translations": {
                "disclaimer": []
            }
        }
    ],
    "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
    }
}
 

Request   

GET api/system-settings/carriers

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer   

Items per page Example: 10

Create carrier

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/system-settings/carriers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"USPS\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/carriers"
);

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

let body = {
    "name": "USPS"
};

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

Example response (200):


{
    "data": {
        "id": 89,
        "name": "Reanna Oberbrunner",
        "hotline_phone": null,
        "edrpou": null,
        "disclaimer": null,
        "translations": {
            "disclaimer": []
        }
    }
}
 

Request   

POST api/system-settings/carriers

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Name Example: USPS

Update carrier

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/system-settings/carriers/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"USPS\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/carriers/1"
);

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

let body = {
    "name": "USPS"
};

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

Example response (200):


{
    "data": {
        "id": 90,
        "name": "Aditya Vandervort",
        "hotline_phone": null,
        "edrpou": null,
        "disclaimer": null,
        "translations": {
            "disclaimer": []
        }
    }
}
 

Request   

PATCH api/system-settings/carriers/{carrier_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

carrier_id   integer   

The ID of the carrier. Example: 1

Body Parameters

name   string   

Name Example: USPS

Delete carrier

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/system-settings/carriers/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/carriers/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/system-settings/carriers/{carrier_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

carrier_id   integer   

The ID of the carrier. Example: 1

Get all cancel reasons

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/system-settings/cancel-reasons?per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 88,
            "name": "Susan Zulauf",
            "slug": null
        },
        {
            "id": 89,
            "name": "Derrick Rau",
            "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
    }
}
 

Request   

GET api/system-settings/cancel-reasons

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer   

Items per page Example: 10

Create cancel reason

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/system-settings/cancel-reasons" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"some\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/cancel-reasons"
);

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

let body = {
    "name": "some"
};

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

Example response (200):


{
    "data": {
        "id": 90,
        "name": "Dr. Lennie Kling",
        "slug": null
    }
}
 

Request   

POST api/system-settings/cancel-reasons

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Name Example: some

Update cancel reason

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/system-settings/cancel-reasons/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"some\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/cancel-reasons/1"
);

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

let body = {
    "name": "some"
};

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

Example response (200):


{
    "data": {
        "id": 91,
        "name": "Jimmy Purdy",
        "slug": null
    }
}
 

Request   

PATCH api/system-settings/cancel-reasons/{cancelReason_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

cancelReason_id   integer   

The ID of the cancelReason. Example: 1

Body Parameters

name   string   

Name Example: some

Delete cancel reason

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/system-settings/cancel-reasons/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/cancel-reasons/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/system-settings/cancel-reasons/{cancelReason_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

cancelReason_id   integer   

The ID of the cancelReason. Example: 1

Get all external mappings

requires authentication

Get all external mappings with filtering and search

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/external-mappings?search=ContraBus&external_source_id=1&mappable_type=App%5CModels%5CCity&has_mapping=true&external_id=ext123&page=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-mappings"
);

const params = {
    "search": "ContraBus",
    "external_source_id": "1",
    "mappable_type": "App\Models\City",
    "has_mapping": "true",
    "external_id": "ext123",
    "page": "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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 1,
            "external_source_id": 1,
            "mappable_type": "App\\Models\\City",
            "mappable_id": null,
            "external_id": "1",
            "external_name": "Августів",
            "created_at": "2025-07-17T07:10:20.000000Z",
            "updated_at": "2025-09-04T06:46:24.000000Z",
            "is_mapped": false,
            "entity_type_short": "City",
            "extra_data": {
                "id": 1,
                "name": "Августів",
                "lat_lon": "53.8440,22.9784",
                "country_code": "PL"
            }
        },
        {
            "id": 1,
            "external_source_id": 1,
            "mappable_type": "App\\Models\\City",
            "mappable_id": null,
            "external_id": "1",
            "external_name": "Августів",
            "created_at": "2025-07-17T07:10:20.000000Z",
            "updated_at": "2025-09-04T06:46:24.000000Z",
            "is_mapped": false,
            "entity_type_short": "City",
            "extra_data": {
                "id": 1,
                "name": "Августів",
                "lat_lon": "53.8440,22.9784",
                "country_code": "PL"
            }
        }
    ]
}
 

Request   

GET api/external-mappings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

search   string  optional  

Search by external_name Example: ContraBus

external_source_id   string  optional  

Filter by external source ID Example: 1

mappable_type   string  optional  

Filter by mappable type (entity class) Example: App\Models\City

has_mapping   string  optional  

Filter by presence of mapping (true/false) Example: true

external_id   string  optional  

Filter by external ID Example: ext123

page   string  optional  

Page number for pagination Example: 1

Get mapping statistics

requires authentication

Get statistics about external mappings

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/external-mappings/statistics?external_source_id=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-mappings/statistics"
);

const params = {
    "external_source_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",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/external-mappings/statistics

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

external_source_id   string  optional  

Filter by external source ID Example: 1

Run auto mapping

requires authentication

Run automatic mapping for external entities

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/external-mappings/auto-mapping" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"types\": \"[\\\"city\\\", \\\"carrier\\\"]\",
    \"threshold\": \"0.85\",
    \"dry_run\": false
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-mappings/auto-mapping"
);

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

let body = {
    "types": "[\"city\", \"carrier\"]",
    "threshold": "0.85",
    "dry_run": false
};

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

Example response (200, Auto mapping completed successfully):


200
 

Request   

POST api/external-mappings/auto-mapping

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

types   string  optional  

Array of entity types to process (city, departure_point, carrier). If empty, all types will be processed. Example: ["city", "carrier"]

threshold   string  optional  

Minimum similarity threshold (0.0 to 1.0) Example: 0.85

dry_run   boolean  optional  

Example: false

Create external mapping

requires authentication

Create external mapping

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/external-mappings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"external_source_id\": 1,
    \"mappable_type\": \"App\\\\Models\\\\City\",
    \"mappable_id\": 1,
    \"external_id\": \"ext123\",
    \"external_name\": \"ContraBus City\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-mappings"
);

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

let body = {
    "external_source_id": 1,
    "mappable_type": "App\\Models\\City",
    "mappable_id": 1,
    "external_id": "ext123",
    "external_name": "ContraBus City"
};

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

Example response (200):


{
    "data": {
        "id": 1,
        "external_source_id": 1,
        "mappable_type": "App\\Models\\City",
        "mappable_id": null,
        "external_id": "1",
        "external_name": "Августів",
        "created_at": "2025-07-17T07:10:20.000000Z",
        "updated_at": "2025-09-04T06:46:24.000000Z",
        "is_mapped": false,
        "entity_type_short": "City",
        "extra_data": {
            "id": 1,
            "name": "Августів",
            "lat_lon": "53.8440,22.9784",
            "country_code": "PL"
        }
    }
}
 

Request   

POST api/external-mappings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

external_source_id   string   

External source ID Example: 1

mappable_type   string   

Mappable entity type (class) Example: App\Models\City

mappable_id   string  optional  

Mappable entity ID Example: 1

external_id   string  optional  

External ID Example: ext123

external_name   string   

External name Example: ContraBus City

Get external mapping

requires authentication

Get specific external mapping by ID

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/external-mappings/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-mappings/1"
);

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

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

Example response (200):


{
    "data": {
        "id": 1,
        "external_source_id": 1,
        "mappable_type": "App\\Models\\City",
        "mappable_id": null,
        "external_id": "1",
        "external_name": "Августів",
        "created_at": "2025-07-17T07:10:20.000000Z",
        "updated_at": "2025-09-04T06:46:24.000000Z",
        "is_mapped": false,
        "entity_type_short": "City",
        "extra_data": {
            "id": 1,
            "name": "Августів",
            "lat_lon": "53.8440,22.9784",
            "country_code": "PL"
        }
    }
}
 

Request   

GET api/external-mappings/{externalMapping_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

externalMapping_id   integer   

The ID of the externalMapping. Example: 1

Update external mapping

requires authentication

Update external mapping

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/external-mappings/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"external_source_id\": 1,
    \"mappable_type\": \"App\\\\Models\\\\City\",
    \"mappable_id\": 1,
    \"external_id\": \"ext123\",
    \"external_name\": \"ContraBus City\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-mappings/1"
);

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

let body = {
    "external_source_id": 1,
    "mappable_type": "App\\Models\\City",
    "mappable_id": 1,
    "external_id": "ext123",
    "external_name": "ContraBus City"
};

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

Example response (200):


{
    "data": {
        "id": 1,
        "external_source_id": 1,
        "mappable_type": "App\\Models\\City",
        "mappable_id": null,
        "external_id": "1",
        "external_name": "Августів",
        "created_at": "2025-07-17T07:10:20.000000Z",
        "updated_at": "2025-09-04T06:46:24.000000Z",
        "is_mapped": false,
        "entity_type_short": "City",
        "extra_data": {
            "id": 1,
            "name": "Августів",
            "lat_lon": "53.8440,22.9784",
            "country_code": "PL"
        }
    }
}
 

Request   

PATCH api/external-mappings/{externalMapping_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

externalMapping_id   integer   

The ID of the externalMapping. Example: 1

Body Parameters

external_source_id   string   

External source ID Example: 1

mappable_type   string   

Mappable entity type (class) Example: App\Models\City

mappable_id   string   

Mappable entity ID Example: 1

external_id   string   

External ID Example: ext123

external_name   string   

External name Example: ContraBus City

Delete external mapping

requires authentication

Delete external mapping

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/external-mappings/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-mappings/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/external-mappings/{externalMapping_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

externalMapping_id   integer   

The ID of the externalMapping. Example: 1

Bulk assign mappings

requires authentication

Bulk assign mappable entities to external mappings

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/external-mappings/bulk-assign" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mappings\": \"[{\\\"external_mapping_id\\\": 1, \\\"mappable_id\\\": 2}]\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-mappings/bulk-assign"
);

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

let body = {
    "mappings": "[{\"external_mapping_id\": 1, \"mappable_id\": 2}]"
};

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

Example response (200, Success):


200
 

Request   

POST api/external-mappings/bulk-assign

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

mappings   string   

Array of mapping assignments Example: [{"external_mapping_id": 1, "mappable_id": 2}]

external_mapping_id   string   

The id of an existing record in the external_mappings table. Example: nam

mappable_id   integer   

Example: 4

List auto-mapping tasks

requires authentication

Get list of auto-mapping tasks

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/auto-mapping-tasks?page=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/auto-mapping-tasks"
);

const params = {
    "page": "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",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/auto-mapping-tasks

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   string  optional  

Page number for pagination Example: 1

Get auto-mapping task

requires authentication

Get a specific auto-mapping task

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/auto-mapping-tasks/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/auto-mapping-tasks/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "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
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/auto-mapping-tasks/{task_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

task_id   integer   

The ID of the task. Example: 1

Get logs for auto-mapping task

requires authentication

Get logs for a specific auto-mapping task

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/auto-mapping-tasks/1/logs?page=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/auto-mapping-tasks/1/logs"
);

const params = {
    "page": "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",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/auto-mapping-tasks/{task_id}/logs

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

task_id   integer   

The ID of the task. Example: 1

Query Parameters

page   string  optional  

Page number for pagination Example: 1

Tickets

Tickets

Search free tickets

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/tickets/search?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"
const url = new URL(
    "https://testapi.ticketbus365.com/api/tickets/search"
);

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",
};

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",
                "gender": null,
                "birthday": null
            },
            "dispatcher": null,
            "occupiedSeats": [
                {
                    "id": 22,
                    "bus_flight_id": 207,
                    "from_departure_point_id": 87,
                    "to_departure_point_id": 88,
                    "seat_number": 9,
                    "type": "reserved",
                    "created_at": "2024-01-25T07:57:29.000000Z",
                    "updated_at": "2024-02-19T12:32:03.000000Z"
                }
            ],
            "baggage_transportation_conditions": [
                {
                    "id": 164,
                    "name": "Hand baggage (free)",
                    "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,
                    "hint": "",
                    "translations": {
                        "hint": []
                    },
                    "created_at": "2024-01-19T11:59:02.000000Z",
                    "updated_at": "2024-04-22T06:39:22.000000Z"
                },
                {
                    "id": 1632,
                    "departure_point_id": 88,
                    "departure_point": {
                        "id": 88,
                        "name": "Голливуд",
                        "translations": {
                            "name": {
                                "ua": "Голливуд",
                                "pl": "Голливуд",
                                "en": "Голливуд"
                            }
                        },
                        "city": {
                            "id": 268,
                            "name": "Чернигов",
                            "translations": {
                                "name": {
                                    "ua": "Чернігів",
                                    "en": "Chernihiv",
                                    "pl": "Czernihów",
                                    "ru": "Чернигов"
                                }
                            },
                            "population": 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,
                    "hint": "",
                    "translations": {
                        "hint": []
                    },
                    "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",
                "gender": null,
                "birthday": null
            },
            "dispatcher": null,
            "occupiedSeats": [
                {
                    "id": 22,
                    "bus_flight_id": 207,
                    "from_departure_point_id": 87,
                    "to_departure_point_id": 88,
                    "seat_number": 9,
                    "type": "reserved",
                    "created_at": "2024-01-25T07:57:29.000000Z",
                    "updated_at": "2024-02-19T12:32:03.000000Z"
                }
            ],
            "baggage_transportation_conditions": [
                {
                    "id": 164,
                    "name": "Hand baggage (free)",
                    "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,
                    "hint": "",
                    "translations": {
                        "hint": []
                    },
                    "created_at": "2024-01-19T11:59:02.000000Z",
                    "updated_at": "2024-04-22T06:39:22.000000Z"
                },
                {
                    "id": 1632,
                    "departure_point_id": 88,
                    "departure_point": {
                        "id": 88,
                        "name": "Голливуд",
                        "translations": {
                            "name": {
                                "ua": "Голливуд",
                                "pl": "Голливуд",
                                "en": "Голливуд"
                            }
                        },
                        "city": {
                            "id": 268,
                            "name": "Чернигов",
                            "translations": {
                                "name": {
                                    "ua": "Чернігів",
                                    "en": "Chernihiv",
                                    "pl": "Czernihów",
                                    "ru": "Чернигов"
                                }
                            },
                            "population": 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,
                    "hint": "",
                    "translations": {
                        "hint": []
                    },
                    "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": []
}
 

Search ticket by email/phone and order id for guest

Search ticket by email and order id

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/tickets/search-by-email?email=some%40some.com&order_id=z2zcwP3Z" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/tickets/search-by-email"
);

const params = {
    "email": "some@some.com",
    "order_id": "z2zcwP3Z",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

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

Example response (200):

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

{
    "data": [],
    "message": null
}
 

Request   

GET api/tickets/search-by-email

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

email   string   

Email or phone Example: some@some.com

order_id   string   

Order id Example: z2zcwP3Z

Get single flight details

Get flight details

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/tickets/flight-details/1/1/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/tickets/flight-details/1/1/2"
);

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

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

Example response (404):

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

{
    "message": "No query results for model [App\\Models\\BusFlight] 1",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 487,
    "trace": [
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 463,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 146,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/app/Http/Middleware/RequestLogMiddleware.php",
            "line": 48,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "App\\Http\\Middleware\\RequestLogMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/app/Http/Middleware/CheckNumberPerPageMiddleware.php",
            "line": 22,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "App\\Http\\Middleware\\CheckNumberPerPageMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/app/Http/Middleware/LanguageSwitcher.php",
            "line": 23,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "App\\Http\\Middleware\\LanguageSwitcher",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 159,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 125,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 87,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 805,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 784,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 748,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 737,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 200,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 144,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 99,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
            "line": 62,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 175,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 144,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 310,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 298,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 91,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 44,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 237,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 163,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 95,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 125,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 72,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 50,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 53,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 662,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 211,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 180,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/symfony/console/Application.php",
            "line": 1096,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 201,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/testapi.ticketbus365.com/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request   

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

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

Bus flight id Example: 1

fromDeparturePointId   string   

From departure point id Example: 1

toDeparturePointId   string   

To departure point id Example: 2

Buy ticket

Buy ticket

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/tickets" \
    --header "Content-Type: application/json" \
    --header "Accept: 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,
    \"email\": \"some@example.com\",
    \"phone\": \"123456789\",
    \"send_tickets_to_email\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/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,
    "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": 315.74,
        "payment_on_the_spot": null,
        "expired_at": null,
        "created_at": null,
        "updated_at": null
    },
    "payment_method_data": {
        "data": "array",
        "type": "string"
    }
}
 

Request   

POST api/tickets

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

there   string[]   

Bus flight id

agent_id   integer  optional  

Agent id Example: 1

bus_flight_id   integer   

Bus flight id Example: 1

from_departure_point_id   integer   

From departure point id Example: 1

to_departure_point_id   integer   

To departure point id Example: 2

passengers   string[]   

Passengers

*   object  optional  
first_name   string   

First name Example: John

last_name   string   

Last name Example: Doe

phone_number   string   

Phone number Example: 123456789

email   string  optional  

Email Example: example@example.com

birthday   string  optional  

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

passenger_type   string   

Passenger type adult or child Example: adult

comment   string  optional  

Comment Example: Some comment

discount_id   integer  optional  

Discount id Example: 1

baggage   string[]  optional  

Baggage

*   object  optional  
id   integer   

Baggage id Example: 1

quantity   integer   

Baggage quantity Example: 1

seat_numbers   string[]  optional  

Seat numbers

without_companion   boolean  optional  

Without companion Example: true

back   string[]  optional  

Bus flight id. Structure equal "there"

payment_method_id   string   

Payment method id Example: 1

currency_id   string  optional  

Currency id. Required for integration Example: 1

email   string  optional  

Email. Required if guest Example: some@example.com

phone   string  optional  

Phone. Required if guest Example: 123456789

send_tickets_to_email   string  optional  

Send tickets to email Example: true

Show my ticket

Get ticket by id

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/tickets/z2zcwP3Z" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/tickets/z2zcwP3Z"
);

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

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

Example response (200):


{
    "data": {
        "id": 22,
        "type": "internal",
        "public_id": "YHETxCGlb0NmnHK",
        "price": "10.00",
        "price_adjustment_percent": "0.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,
                    "hint": "",
                    "translations": {
                        "hint": []
                    },
                    "created_at": "2024-01-19T11:59:02.000000Z",
                    "updated_at": "2024-04-22T06:39:22.000000Z"
                },
                {
                    "id": 1632,
                    "departure_point_id": 88,
                    "departure_point": {
                        "id": 88,
                        "name": "Голливуд",
                        "translations": {
                            "name": {
                                "ua": "Голливуд",
                                "pl": "Голливуд",
                                "en": "Голливуд"
                            }
                        },
                        "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,
                    "hint": "",
                    "translations": {
                        "hint": []
                    },
                    "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,
        "external_from_departure_point_name": null,
        "external_to_departure_point_name": null,
        "is_external": false,
        "created_at": "2024-01-25T07:57:29.000000Z",
        "updated_at": "2025-08-06T06:32:46.000000Z"
    }
}
 

Request   

GET api/tickets/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

Ticket public id Example: z2zcwP3Z

Get my tickets

Get my ticket

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/tickets?from_departure_point_id=1&to_departure_point_id=1&order_status=paid&status=pending&created_at=2021-01-01&search=John&departure_date=2021-01-01&per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/tickets"
);

const params = {
    "from_departure_point_id": "1",
    "to_departure_point_id": "1",
    "order_status": "paid",
    "status": "pending",
    "created_at": "2021-01-01",
    "search": "John",
    "departure_date": "2021-01-01",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

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

Example response (200):


{
    "data": [
        {
            "id": 22,
            "type": "internal",
            "public_id": "YHETxCGlb0NmnHK",
            "price": "10.00",
            "price_adjustment_percent": "0.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,
                "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,
                        "position": 0,
                        "sale_status": "open",
                        "is_active": true,
                        "has_transfer": false,
                        "hint": "",
                        "translations": {
                            "hint": []
                        },
                        "created_at": "2024-01-19T11:59:02.000000Z",
                        "updated_at": "2024-04-22T06:39:22.000000Z"
                    },
                    {
                        "id": 1632,
                        "departure_point_id": 88,
                        "departure_point": {
                            "id": 88,
                            "name": "Голливуд",
                            "translations": {
                                "name": {
                                    "ua": "Голливуд",
                                    "pl": "Голливуд",
                                    "en": "Голливуд"
                                }
                            },
                            "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,
                        "hint": "",
                        "translations": {
                            "hint": []
                        },
                        "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",
            "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,
            "external_from_departure_point_name": null,
            "external_to_departure_point_name": null,
            "is_external": false,
            "created_at": "2024-01-25T07:57:29.000000Z",
            "updated_at": "2025-08-06T06:32:46.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": "« Назад",
                "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
    }
}
 

Request   

GET api/tickets

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

from_departure_point_id   integer   

Filter by from bus flight departure point id Example: 1

to_departure_point_id   integer   

Filter by to bus flight departure point id Example: 1

order_status   string   

Filter by order status Example: paid

status   string   

Filter by order status Example: pending

created_at   string   

Filter by created at Example: 2021-01-01

search   string   

Search by name, email, phone Example: John

departure_date   string   

Filter by departure date Example: 2021-01-01

per_page   integer   

Items per page Example: 10

Change ticket bus flight

Change ticket bus flight

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/tickets/22/change-bus-flight" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"bus_flight_id\": 1
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/tickets/22/change-bus-flight"
);

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

let body = {
    "bus_flight_id": 1
};

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",
        "price_adjustment_percent": "0.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,
                    "hint": "",
                    "translations": {
                        "hint": []
                    },
                    "created_at": "2024-01-19T11:59:02.000000Z",
                    "updated_at": "2024-04-22T06:39:22.000000Z"
                },
                {
                    "id": 1632,
                    "departure_point_id": 88,
                    "departure_point": {
                        "id": 88,
                        "name": "Голливуд",
                        "translations": {
                            "name": {
                                "ua": "Голливуд",
                                "pl": "Голливуд",
                                "en": "Голливуд"
                            }
                        },
                        "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,
                    "hint": "",
                    "translations": {
                        "hint": []
                    },
                    "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,
        "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": "2024-01-25T07:57:29.000000Z",
        "updated_at": "2025-08-06T06:32:46.000000Z"
    }
}
 

Request   

PATCH api/tickets/{id}/change-bus-flight

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the ticket. Example: 22

Body Parameters

bus_flight_id   string   

Bus flight id Example: 1

Get my orders

Get my orders

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/my-orders?state=active" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/my-orders"
);

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

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

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": 965.93,
            "payment_on_the_spot": null,
            "expired_at": null,
            "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
    }
}
 

Request   

GET api/my-orders

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

state   string   

State of orders. Possible values: active, archived Example: active

User

User management

Get all users

requires authentication

Get all users

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/users?page=1&statuses[]=active&roles[]=admin&roles[]=dispatcher&search=John&per_page=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users"
);

const params = {
    "page": "1",
    "statuses[0]": "active",
    "roles[0]": "admin",
    "roles[1]": "dispatcher",
    "search": "John",
    "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",
};

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

Example response (200):


{
    "data": [
        {
            "id": 5541,
            "first_name": "Keegan",
            "last_name": "Wolff",
            "middle_name": "Seamus",
            "full_name": "Keegan Wolff Seamus",
            "work_phone": null,
            "gender": null,
            "birthday": null
        },
        {
            "id": 5543,
            "first_name": "Karine",
            "last_name": "Braun",
            "middle_name": "Vern",
            "full_name": "Karine Braun Vern",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Geo Dietrich III",
            "phone": "1-207-530-5614",
            "email": "fherzog@example.com",
            "subscribe_to_newsletter": false,
            "roles": [
                {
                    "id": 294,
                    "name": "Miss Kirsten Boehm",
                    "display_name": "Gerald Hoeger Sr.",
                    "guard_name": "sanctum"
                }
            ],
            "status": "new",
            "need_change_password": true,
            "created_by": {
                "id": 5542,
                "first_name": "Brielle",
                "last_name": "Kuhic",
                "middle_name": "Olaf",
                "full_name": "Brielle Kuhic Olaf",
                "work_phone": null,
                "gender": null,
                "birthday": null,
                "name": "Pearl Rau",
                "phone": "331-320-3130",
                "email": "darian.raynor@example.net",
                "subscribe_to_newsletter": false,
                "roles": [
                    {
                        "id": 293,
                        "name": "Naomi Gusikowski MD",
                        "display_name": "Prof. Kelley Gusikowski",
                        "guard_name": "sanctum"
                    }
                ],
                "status": "new",
                "need_change_password": true,
                "percent_of_withdrawal": 0,
                "percent_of_discount": 0,
                "send_sms_order_post_payment_link": true,
                "created_at": "2025-11-02T07:50:55.000000Z",
                "updated_at": "2025-11-02T07:50:55.000000Z"
            },
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "send_sms_order_post_payment_link": true,
            "created_at": "2025-11-02T07:50:55.000000Z",
            "updated_at": "2025-11-02T07:50:55.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
    }
}
 

Request   

GET api/users

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer   

Page number Example: 1

statuses   string[]   

Statuses

roles   string[]   

Roles

search   string   

Search Example: John

per_page   integer   

Items per page Example: 10

Get user by id

requires authentication

Get user by id

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/users/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1"
);

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

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

Example response (200):


{
    "data": {
        "id": 5545,
        "first_name": "Wava",
        "last_name": "Huel",
        "middle_name": "Romaine",
        "full_name": "Wava Huel Romaine",
        "work_phone": null,
        "gender": null,
        "birthday": null,
        "name": "Rosemarie Bogan",
        "phone": "+1-936-491-2016",
        "email": "brenda40@example.org",
        "subscribe_to_newsletter": false,
        "roles": [
            {
                "id": 296,
                "name": "Karley Spencer",
                "display_name": "Julie Hegmann",
                "guard_name": "sanctum"
            }
        ],
        "status": "new",
        "need_change_password": true,
        "created_by": {
            "id": 5544,
            "first_name": "Judson",
            "last_name": "Toy",
            "middle_name": "Maybelle",
            "full_name": "Judson Toy Maybelle",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Mr. Jaycee Reynolds",
            "phone": "(254) 905-2224",
            "email": "mante.darian@example.com",
            "subscribe_to_newsletter": false,
            "roles": [
                {
                    "id": 295,
                    "name": "Dr. Dulce Willms MD",
                    "display_name": "Dr. Kamren Rodriguez II",
                    "guard_name": "sanctum"
                }
            ],
            "status": "new",
            "need_change_password": true,
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "send_sms_order_post_payment_link": true,
            "created_at": "2025-11-02T07:50:55.000000Z",
            "updated_at": "2025-11-02T07:50:55.000000Z"
        },
        "percent_of_withdrawal": 0,
        "percent_of_discount": 0,
        "send_sms_order_post_payment_link": true,
        "created_at": "2025-11-02T07:50:55.000000Z",
        "updated_at": "2025-11-02T07:50:55.000000Z"
    }
}
 

Request   

GET api/users/{user_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   integer   

The ID of the user. Example: 1

Store user

requires authentication

Store user

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/users" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"middle_name\": \"Middle\",
    \"phone\": \"+380123456789\",
    \"work_phone\": \"+380123456789\",
    \"email\": \"john.doe@example\",
    \"role\": \"admin\",
    \"password\": \"password\",
    \"send_email\": true,
    \"status\": \"active\",
    \"name\": \"Agent name\",
    \"percent_of_withdrawal\": 10,
    \"percent_of_discount\": 10
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users"
);

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

let body = {
    "first_name": "John",
    "last_name": "Doe",
    "middle_name": "Middle",
    "phone": "+380123456789",
    "work_phone": "+380123456789",
    "email": "john.doe@example",
    "role": "admin",
    "password": "password",
    "send_email": true,
    "status": "active",
    "name": "Agent name",
    "percent_of_withdrawal": 10,
    "percent_of_discount": 10
};

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

Example response (200):


{
    "data": {
        "id": 5547,
        "first_name": "Francisca",
        "last_name": "Kulas",
        "middle_name": "Derick",
        "full_name": "Francisca Kulas Derick",
        "work_phone": null,
        "gender": null,
        "birthday": null,
        "name": "Alva Keebler",
        "phone": "(475) 526-1680",
        "email": "kertzmann.willa@example.net",
        "subscribe_to_newsletter": false,
        "roles": [
            {
                "id": 298,
                "name": "Theron Ondricka",
                "display_name": "Dr. Filiberto Pfeffer V",
                "guard_name": "sanctum"
            }
        ],
        "status": "new",
        "need_change_password": true,
        "created_by": {
            "id": 5546,
            "first_name": "Arch",
            "last_name": "Herzog",
            "middle_name": "Clotilde",
            "full_name": "Arch Herzog Clotilde",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Kathryn Jacobs",
            "phone": "986.982.3223",
            "email": "monahan.bill@example.net",
            "subscribe_to_newsletter": false,
            "roles": [
                {
                    "id": 297,
                    "name": "Maxie Yundt",
                    "display_name": "Gilberto Stark",
                    "guard_name": "sanctum"
                }
            ],
            "status": "new",
            "need_change_password": true,
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "send_sms_order_post_payment_link": true,
            "created_at": "2025-11-02T07:50:56.000000Z",
            "updated_at": "2025-11-02T07:50:56.000000Z"
        },
        "percent_of_withdrawal": 0,
        "percent_of_discount": 0,
        "send_sms_order_post_payment_link": true,
        "created_at": "2025-11-02T07:50:56.000000Z",
        "updated_at": "2025-11-02T07:50:56.000000Z"
    }
}
 

Request   

POST api/users

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

first_name   string   

First name Example: John

last_name   string   

Last name Example: Doe

middle_name   string   

Middle name Example: Middle

phone   string   

Phone Example: +380123456789

work_phone   string   

Phone Example: +380123456789

email   string   

Email Example: john.doe@example

role   string   

Role Example: admin

password   string   

Password Example: password

send_email   string   

Send email Example: true

status   string   

Status Example: active

name   string   

Required if role is agent Example: Agent name

percent_of_withdrawal   string   

Percent of withdrawal Example: 10

percent_of_discount   string   

Percent of discount Example: 10

Update user

requires authentication

Update user

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/users/1?send_sms_order_post_payment_link=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"middle_name\": \"Middle\",
    \"phone\": \"+380123456789\",
    \"work_phone\": \"+380123456789\",
    \"email\": \"john.doe@example\",
    \"role\": \"admin\",
    \"password\": \"password\",
    \"send_email\": true,
    \"status\": \"active\",
    \"name\": \"Agent name\",
    \"percent_of_withdrawal\": 10,
    \"percent_of_discount\": 10
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1"
);

const params = {
    "send_sms_order_post_payment_link": "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",
};

let body = {
    "first_name": "John",
    "last_name": "Doe",
    "middle_name": "Middle",
    "phone": "+380123456789",
    "work_phone": "+380123456789",
    "email": "john.doe@example",
    "role": "admin",
    "password": "password",
    "send_email": true,
    "status": "active",
    "name": "Agent name",
    "percent_of_withdrawal": 10,
    "percent_of_discount": 10
};

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

Example response (200):


{
    "data": {
        "id": 5549,
        "first_name": "Loy",
        "last_name": "Schuster",
        "middle_name": "Maryse",
        "full_name": "Loy Schuster Maryse",
        "work_phone": null,
        "gender": null,
        "birthday": null,
        "name": "Margot Hickle",
        "phone": "(520) 755-0244",
        "email": "emma.balistreri@example.org",
        "subscribe_to_newsletter": false,
        "roles": [
            {
                "id": 300,
                "name": "Tracey Lubowitz",
                "display_name": "Sylvan Larkin",
                "guard_name": "sanctum"
            }
        ],
        "status": "new",
        "need_change_password": true,
        "created_by": {
            "id": 5548,
            "first_name": "Nikki",
            "last_name": "Rohan",
            "middle_name": "Augustus",
            "full_name": "Nikki Rohan Augustus",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Josephine Maggio IV",
            "phone": "1-820-714-4106",
            "email": "malvina.feeney@example.com",
            "subscribe_to_newsletter": false,
            "roles": [
                {
                    "id": 299,
                    "name": "Dr. Tiana Gerlach PhD",
                    "display_name": "Ms. Vergie Nitzsche",
                    "guard_name": "sanctum"
                }
            ],
            "status": "new",
            "need_change_password": true,
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "send_sms_order_post_payment_link": true,
            "created_at": "2025-11-02T07:50:56.000000Z",
            "updated_at": "2025-11-02T07:50:56.000000Z"
        },
        "percent_of_withdrawal": 0,
        "percent_of_discount": 0,
        "send_sms_order_post_payment_link": true,
        "created_at": "2025-11-02T07:50:56.000000Z",
        "updated_at": "2025-11-02T07:50:56.000000Z"
    }
}
 

Request   

PATCH api/users/{user_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   integer   

The ID of the user. Example: 1

Query Parameters

send_sms_order_post_payment_link   boolean   

Send SMS with order post payment link Example: true

Body Parameters

first_name   string   

First name Example: John

last_name   string   

Last name Example: Doe

middle_name   string   

Middle name Example: Middle

phone   string   

Phone Example: +380123456789

work_phone   string   

Phone Example: +380123456789

email   string   

Email Example: john.doe@example

role   string   

Role Example: admin

password   string   

Password Example: password

send_email   string   

Send email Example: true

status   string   

Status Example: active

name   string   

If role is agent Example: Agent name

percent_of_withdrawal   string   

Percent of withdrawal Example: 10

percent_of_discount   string   

Percent of discount Example: 10

Delete user

requires authentication

Delete user

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/users/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1"
);

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

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

Example response (200, No content):


204
 

Request   

DELETE api/users/{user_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   integer   

The ID of the user. Example: 1