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\": \"gislason.monique@example.org\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/reset-password"
);

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

let body = {
    "email": "gislason.monique@example.org"
};

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: gislason.monique@example.org

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

Login with social

Login with social

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

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

let body = {
    "token": "token"
};

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

Request   

POST api/social-login/{provider}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

provider   string   

Social provider (google, apple) Example: google

Body Parameters

token   string   

Social token Example: token

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/harum" \
    --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/harum"
);

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: harum

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/iusto" \
    --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/iusto"
);

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: iusto

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/aperiam" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-routes/82/additional-price-settings/aperiam"
);

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: aperiam

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": 1163,
            "name": "Nia Zboncak",
            "number": "(443) 356-6898",
            "status": "active",
            "schema": {
                "id": 1434,
                "name": "Jacky Schroeder V",
                "mark": "Elna Morar",
                "model": "Noemi Jakubowski",
                "number_of_seats": 1,
                "number_of_floors": 1,
                "rows": 1,
                "columns": 1,
                "created_at": "2025-12-09T14:41:09.000000Z",
                "updated_at": "2025-12-09T14:41:09.000000Z"
            },
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        {
            "id": 1164,
            "name": "Marcelle Ankunding",
            "number": "+1 (254) 668-5427",
            "status": "active",
            "schema": {
                "id": 1436,
                "name": "Penelope Jast",
                "mark": "Prof. Alana Huel DVM",
                "model": "Dr. Gerard O'Keefe",
                "number_of_seats": 1,
                "number_of_floors": 1,
                "rows": 1,
                "columns": 2,
                "created_at": "2025-12-09T14:41:09.000000Z",
                "updated_at": "2025-12-09T14:41:09.000000Z"
            },
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.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": 1165,
        "name": "Theodora McLaughlin",
        "number": "+1 (820) 386-8251",
        "status": "active",
        "schema": {
            "id": 1438,
            "name": "Garnet Spinka",
            "mark": "Hermann Kassulke",
            "model": "Ramiro Buckridge",
            "number_of_seats": 2,
            "number_of_floors": 1,
            "services": [
                {
                    "id": 181,
                    "name": "Kevon Beahan V",
                    "translations": {
                        "name": {
                            "ua": "Barry Thompson",
                            "en": "Kevon Beahan V"
                        }
                    },
                    "icon_name": "Miss Vincenza Kemmer PhD",
                    "created_at": "2025-12-09T14:41:09.000000Z",
                    "updated_at": "2025-12-09T14:41:09.000000Z"
                }
            ],
            "rows": 2,
            "columns": 1,
            "items": [
                {
                    "id": 41239,
                    "type": "seat",
                    "name": "Seat 1",
                    "translations": {
                        "name": {
                            "en": "Seat 1"
                        }
                    },
                    "seat_number": 1,
                    "row_number": 1,
                    "column_number": 1,
                    "floor_number": 1
                },
                {
                    "id": 41240,
                    "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-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        "services": [
            {
                "id": 182,
                "name": "Jean Farrell",
                "translations": {
                    "name": {
                        "ua": "Isabella Wintheiser",
                        "en": "Jean Farrell"
                    }
                },
                "icon_name": "Sophia Corkery",
                "created_at": "2025-12-09T14:41:09.000000Z",
                "updated_at": "2025-12-09T14:41:09.000000Z"
            }
        ],
        "user": {
            "id": 5774,
            "first_name": "Jamey",
            "last_name": "Schiller",
            "middle_name": "Elise",
            "full_name": "Jamey Schiller Elise",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Berniece Hessel",
            "phone": "1-816-517-4183",
            "email": "melissa10@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-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 1166,
        "name": "Emmett Wiegand",
        "number": "+1.845.686.5048",
        "status": "active",
        "schema": {
            "id": 1440,
            "name": "Clifton Olson Sr.",
            "mark": "Ocie Johns IV",
            "model": "Darron Ankunding",
            "number_of_seats": 1,
            "number_of_floors": 1,
            "rows": 1,
            "columns": 1,
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        "services": [
            {
                "id": 183,
                "name": "Dasia Collier",
                "translations": {
                    "name": {
                        "ua": "Prof. Juvenal Predovic Sr.",
                        "en": "Dasia Collier"
                    }
                },
                "icon_name": "Vincenza Cremin",
                "created_at": "2025-12-09T14:41:09.000000Z",
                "updated_at": "2025-12-09T14:41:09.000000Z"
            }
        ],
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 1167,
        "name": "Alexys Oberbrunner",
        "number": "650-946-3169",
        "status": "active",
        "schema": {
            "id": 1442,
            "name": "Bradford Smith",
            "mark": "Maxine Ratke DDS",
            "model": "Earnestine Jerde",
            "number_of_seats": 2,
            "number_of_floors": 1,
            "rows": 2,
            "columns": 1,
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        "services": [
            {
                "id": 184,
                "name": "Lola Vandervort",
                "translations": {
                    "name": {
                        "ua": "Prof. Berneice Ferry",
                        "en": "Lola Vandervort"
                    }
                },
                "icon_name": "Dr. Torrey Crooks DVM",
                "created_at": "2025-12-09T14:41:09.000000Z",
                "updated_at": "2025-12-09T14:41:09.000000Z"
            }
        ],
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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/phpdZA8eI" 
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": "wifi",
                "created_at": "2023-11-02T12:08:09.000000Z",
                "updated_at": "2025-11-25T10:40:48.000000Z"
            },
            {
                "id": 16,
                "name": "USB-зарядки",
                "translations": {
                    "name": {
                        "ua": "Індивідуальні  USB-зарядки",
                        "pl": "USB-зарядки",
                        "en": "USB-зарядки"
                    }
                },
                "icon_name": "индивидуальные  USB-зарядки",
                "created_at": "2024-01-20T10:58:51.000000Z",
                "updated_at": "2024-04-11T11:51:19.000000Z"
            }
        ],
        "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/phpdZA8eI

Delete bus image

requires authentication

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/buses/147/images/odit" \
    --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/odit"
);

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": "wifi",
                "created_at": "2023-11-02T12:08:09.000000Z",
                "updated_at": "2025-11-25T10:40:48.000000Z"
            },
            {
                "id": 16,
                "name": "USB-зарядки",
                "translations": {
                    "name": {
                        "ua": "Індивідуальні  USB-зарядки",
                        "pl": "USB-зарядки",
                        "en": "USB-зарядки"
                    }
                },
                "icon_name": "индивидуальные  USB-зарядки",
                "created_at": "2024-01-20T10:58:51.000000Z",
                "updated_at": "2024-04-11T11:51:19.000000Z"
            }
        ],
        "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: odit

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/praesentium/quo/iste" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/number_of_free_seats/praesentium/quo/iste"
);

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: praesentium

fdid   string   

Example: quo

tdid   string   

Example: iste

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/voluptatibus" \
    --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/voluptatibus"
);

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: voluptatibus

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/sit" \
    --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/sit"
);

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: sit

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,
            "logo_url": 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/veniam" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/occupied-seats/veniam"
);

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: veniam

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": 460,
            "entity_type": "App\\Models\\BusRoute",
            "alias": "Culpa.",
            "source": "octobus",
            "created_at": "2025-12-09T14:41:17.000000Z",
            "updated_at": "2025-12-09T14:41:17.000000Z",
            "deleted_at": null
        },
        {
            "id": 461,
            "entity_type": "App\\Models\\BusRoute",
            "alias": "Et sit.",
            "source": "euroticket",
            "created_at": "2025-12-09T14:41:17.000000Z",
            "updated_at": "2025-12-09T14:41:17.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,
            "logo_url": 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,
            "logo_url": 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 api/webhooks/apple

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

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": null,
    "message": "ok"
}
 

Request   

GET api/webhooks/apple

POST api/webhooks/apple

PUT api/webhooks/apple

PATCH api/webhooks/apple

DELETE api/webhooks/apple

OPTIONS api/webhooks/apple

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: 498
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/laborum" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1/api-tokens/laborum"
);

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: laborum

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/omnis" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/users/1/apps/omnis"
);

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: omnis

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/adipisci" \
    --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/adipisci"
);

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: adipisci

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/non" \
    --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/non"
);

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: non

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/sit" \
    --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/sit"
);

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: sit

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/delectus" \
    --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/delectus"
);

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: delectus

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/aspernatur" \
    --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/aspernatur"
);

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: aspernatur

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/non" \
    --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/non"
);

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: non

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/vero" \
    --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/vero"
);

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: vero

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/excepturi" \
    --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/excepturi"
);

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: excepturi

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/rerum" \
    --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/rerum"
);

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: rerum

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/magnam" \
    --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/magnam"
);

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: magnam

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/aspernatur" \
    --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/aspernatur"
);

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: aspernatur

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/alias" \
    --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/alias"
);

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: alias

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/deserunt" \
    --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/deserunt"
);

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: deserunt

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/velit" \
    --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/velit"
);

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: velit

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/soluta" \
    --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/soluta"
);

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: soluta

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

GET api/admin-dashboard

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

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/admin-dashboard

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=19&to_departure_point_id=4&from_departure_city_id=4&to_departure_city_id=15&departure_date=provident&number_of_passengers=18&currency_code=molestias" \
    --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": "19",
    "to_departure_point_id": "4",
    "from_departure_city_id": "4",
    "to_departure_city_id": "15",
    "departure_date": "provident",
    "number_of_passengers": "18",
    "currency_code": "molestias",
};
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: 494
access-control-allow-origin: *
 

{
    "message": "Выбранное значение для Пункт отправления некорректно. (and 7 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."
        ],
        "number_of_passengers": [
            "Значение поля Количество пассажиров не может быть больше 10."
        ],
        "currency_code": [
            "Выбранное значение для currency code некорректно.",
            "Количество символов в поле currency code не может превышать 3."
        ]
    }
}
 

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: 19

to_departure_point_id   integer   

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

from_departure_city_id   integer   

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

to_departure_city_id   integer   

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

departure_date   string   

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

number_of_passengers   integer   

Number of passengers for the bus flight search Example: 18

currency_code   string   

Currency code for the search results Example: molestias

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\": \"ullam\",
    \"passengers\": [
        \"repellat\"
    ],
    \"payment_method_id\": 9
}"
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": "ullam",
    "passengers": [
        "repellat"
    ],
    "payment_method_id": 9
};

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: ullam

passengers   string[]   

Array of passengers with their details

*   object  optional  
first_name   string   

First name of the passenger Example: mollitia

last_name   string   

Last name of the passenger Example: dolor

phone   string   

Phone number of the passenger Example: sequi

email   string   

Email of the passenger (optional) Example: fae75@example.com

seat   string   

Seat number for the passenger (optional) Example: iste

comment   string   

Comment for the passenger (optional) Example: omnis

discount_id   string   

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

additional_data   string[]   

Additional data for the passenger (optional)

payment_method_id   integer   

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

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\": \"sed\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/external-tickets"
);

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

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

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: sed

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: 493
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 1,
            "question": "some q",
            "answer": "some a",
            "is_active": true,
            "translations": {
                "question": {
                    "en": "some q",
                    "pl": "some q",
                    "ru": "some q",
                    "ua": "some q"
                },
                "answer": {
                    "en": "some a",
                    "pl": "some a",
                    "ru": "some a",
                    "ua": "some a"
                }
            },
            "created_at": "2025-11-02T08:18:17.000000Z",
            "updated_at": "2025-11-02T08:18:17.000000Z"
        }
    ]
}
 

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/1" \
    --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/1"
);

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: 1

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/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/faqs/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/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: 1

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": "Darrickmouth",
            "translations": {
                "name": {
                    "en": "Darrickmouth",
                    "ar": "Port Hermanport"
                }
            },
            "population": null,
            "number_of_bus_routes": 0,
            "visibility": null,
            "country_id": 157,
            "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: 497
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": 160,
            "name": "Russian Federation",
            "translations": {
                "name": {
                    "en": "Russian Federation",
                    "ar": "United States Virgin Islands"
                }
            },
            "code": "CI",
            "timezone": null,
            "created_at": "2025-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41:07.000000Z"
        },
        {
            "id": 161,
            "name": "Ireland",
            "translations": {
                "name": {
                    "en": "Ireland",
                    "ar": "India"
                }
            },
            "code": "ID",
            "timezone": null,
            "created_at": "2025-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41: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/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": 162,
        "name": "Syrian Arab Republic",
        "translations": {
            "name": {
                "en": "Syrian Arab Republic",
                "ar": "Congo"
            }
        },
        "code": "EH",
        "timezone": null,
        "created_at": "2025-12-09T14:41:07.000000Z",
        "updated_at": "2025-12-09T14:41:07.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": 163,
        "name": "Solomon Islands",
        "translations": {
            "name": {
                "en": "Solomon Islands",
                "ar": "Slovenia"
            }
        },
        "code": "NE",
        "timezone": null,
        "created_at": "2025-12-09T14:41:07.000000Z",
        "updated_at": "2025-12-09T14:41:07.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": 164,
        "name": "Costa Rica",
        "translations": {
            "name": {
                "en": "Costa Rica",
                "ar": "Bosnia and Herzegovina"
            }
        },
        "code": "VE",
        "timezone": null,
        "created_at": "2025-12-09T14:41:07.000000Z",
        "updated_at": "2025-12-09T14:41:07.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": "North Rowlandhaven",
            "translations": {
                "name": {
                    "en": "North Rowlandhaven",
                    "ar": "Lake Franz"
                }
            },
            "population": null,
            "number_of_bus_routes": 0,
            "visibility": null,
            "country_id": 166,
            "created_at": null,
            "updated_at": null
        },
        {
            "id": null,
            "name": "Nilsfort",
            "translations": {
                "name": {
                    "en": "Nilsfort",
                    "ar": "DuBuquefurt"
                }
            },
            "population": null,
            "number_of_bus_routes": 0,
            "visibility": null,
            "country_id": 168,
            "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": "South Vergie",
        "translations": {
            "name": {
                "en": "South Vergie",
                "ar": "Lake Katarina"
            }
        },
        "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": "North Melvinaland",
        "translations": {
            "name": {
                "en": "North Melvinaland",
                "ar": "New Eulah"
            }
        },
        "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

Notifications

Notifications management

Get notifications

requires authentication

Get notifications

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

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/notifications

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Read notification

requires authentication

Read notification

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

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

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

Request   

PUT api/notifications/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

Notification id Example: architecto

Delete notification

requires authentication

Delete notification

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

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/notifications/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

Notification id Example: natus

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": 698.39,
            "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": 286.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": 658.85,
        "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

Cancel order

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/orders/18/cancel" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cancel_reason_id\": 1,
    \"cancel_comment\": \"Customer requested cancellation due to personal reasons.\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/orders/18/cancel"
);

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

let body = {
    "cancel_reason_id": 1,
    "cancel_comment": "Customer requested cancellation due to personal reasons."
};

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

Request   

POST api/orders/{order_id}/cancel

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

order_id   integer   

The ID of the order. Example: 18

orderId   string   

ID of the order to cancel Example: 1

Body Parameters

cancel_reason_id   string   

Reason for cancelling the order Example: 1

cancel_comment   string  optional  

Additional comments for cancelling the order Example: Customer requested cancellation due to personal reasons.

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/odio/ut" \
    --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/odio/ut"
);

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: odio

to_departure_point_id   string   

The ID of the to departure point. Example: ut

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/sunt/accept-payment" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/sunt/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: sunt

Passenger not show

Passenger not show

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/quae/not-show" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/quae/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: quae

Passenger showed up

Passenger showed up

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/voluptas/showed-up" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/voluptas/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: voluptas

Change seat

Change seat

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/enim/change-seat" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/bus-flights/207/passengers/enim/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: enim

Show passenger

Show passenger

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

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: animi

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/explicabo" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/passenger-data-by-phone/explicabo"
);

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: explicabo

Cancel ticket

Cancel ticket

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/cancel-ticket/repudiandae" \
    --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/repudiandae"
);

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: repudiandae

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/quod" \
    --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/quod"
);

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: quod

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/repudiandae/4" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/delete-partially-payment/repudiandae/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: repudiandae

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=necessitatibus&from_date=ipsam&to_date=sint" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/reports/agent"
);

const params = {
    "agent_id": "necessitatibus",
    "from_date": "ipsam",
    "to_date": "sint",
};
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: necessitatibus

from_date   string   

From date Example: ipsam

to_date   string   

To date Example: sint

Export reports to excel by agent

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/reports/agent/export?agent_id=quia&from_date=vitae&to_date=voluptates" \
    --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": "quia",
    "from_date": "vitae",
    "to_date": "voluptates",
};
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: quia

from_date   string   

From date Example: vitae

to_date   string   

To date Example: voluptates

Get reports by external sources

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/reports/external-sources?external_source_id=asperiores&from_date=quia&to_date=rem&from_departure_date=quis&to_departure_date=sed" \
    --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": "asperiores",
    "from_date": "quia",
    "to_date": "rem",
    "from_departure_date": "quis",
    "to_departure_date": "sed",
};
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: asperiores

from_date   string   

From date Example: quia

to_date   string   

To date Example: rem

from_departure_date   string  optional  

From departure date Example: quis

to_departure_date   string  optional  

To departure date Example: sed

Download external sources report

Example request:
curl --request GET \
    --get "https://testapi.ticketbus365.com/api/reports/external-sources/export?external_source_id=nulla&from_date=adipisci&to_date=id&from_departure_date=dicta&to_departure_date=molestiae" \
    --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": "nulla",
    "from_date": "adipisci",
    "to_date": "id",
    "from_departure_date": "dicta",
    "to_departure_date": "molestiae",
};
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: nulla

from_date   string   

From date Example: adipisci

to_date   string   

To date Example: id

from_departure_date   string  optional  

From departure date Example: dicta

to_departure_date   string  optional  

To departure date Example: molestiae

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": 309,
            "name": "Orpha Hayes",
            "display_name": "Darrell Larkin",
            "guard_name": "sanctum"
        },
        {
            "id": 310,
            "name": "Dr. Hellen Watsica IV",
            "display_name": "Duncan Jones Sr.",
            "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\": \"et\",
    \"display_name\": \"dolores\",
    \"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": "et",
    "display_name": "dolores",
    "permissions": [
        "manage-roles"
    ]
};

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

Example response (200):


{
    "data": [
        {
            "id": 321,
            "name": "Miss Savanah Lowe PhD",
            "display_name": "Mr. Woodrow McDermott PhD",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1420,
                    "name": "Noemie Kessler",
                    "guard_name": "Madisyn Schneider"
                }
            ]
        },
        {
            "id": 322,
            "name": "Elizabeth Murphy V",
            "display_name": "Mr. Ike Kessler",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1421,
                    "name": "Monica Nikolaus",
                    "guard_name": "Orlando Swift 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: et

display_name   string   

Display name Example: dolores

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": 323,
            "name": "Morgan Feest",
            "display_name": "Dr. Santino Ziemann",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1422,
                    "name": "Prof. Elody Stoltenberg",
                    "guard_name": "Juvenal Lind"
                }
            ]
        },
        {
            "id": 324,
            "name": "Freda Klein",
            "display_name": "Dereck Dooley Jr.",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1423,
                    "name": "Erika Moore V",
                    "guard_name": "Perry Hoeger"
                }
            ]
        }
    ]
}
 

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\": \"beatae\",
    \"display_name\": \"et\",
    \"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": "beatae",
    "display_name": "et",
    "permissions": [
        "manage-roles"
    ]
};

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

Example response (200):


{
    "data": [
        {
            "id": 325,
            "name": "Vada Yost",
            "display_name": "Trudie Hills",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1424,
                    "name": "Lenna Ernser",
                    "guard_name": "Broderick Hirthe"
                }
            ]
        },
        {
            "id": 326,
            "name": "Mrs. Aliya Herzog I",
            "display_name": "Parker Lindgren DVM",
            "guard_name": "sanctum",
            "permissions": [
                {
                    "id": 1425,
                    "name": "Bobbie Kautzer V",
                    "guard_name": "Bradly Hermann"
                }
            ]
        }
    ]
}
 

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: beatae

display_name   string   

Display name Example: et

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": 327,
            "name": "Prof. Jammie O'Conner",
            "display_name": "Floy Wiegand",
            "guard_name": "sanctum"
        },
        {
            "id": 328,
            "name": "Asa Durgan",
            "display_name": "Dr. Grayce Johnston",
            "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": 805,
            "display_name": "CUP",
            "code": "KHR",
            "symbol": "SAR",
            "is_active": true,
            "created_at": "2025-12-09T14:41:06.000000Z",
            "updated_at": "2025-12-09T14:41:06.000000Z"
        },
        {
            "id": 806,
            "display_name": "MUR",
            "code": "BDT",
            "symbol": "PHP",
            "is_active": true,
            "created_at": "2025-12-09T14:41:06.000000Z",
            "updated_at": "2025-12-09T14:41:06.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": 66,
            "display_name": "Morocco",
            "code": "GS",
            "is_active": true,
            "is_default": false,
            "created_at": "2025-12-09T14:41:06.000000Z",
            "updated_at": "2025-12-09T14:41:06.000000Z"
        },
        {
            "id": 67,
            "display_name": "Tanzania",
            "code": "FR",
            "is_active": true,
            "is_default": false,
            "created_at": "2025-12-09T14:41:06.000000Z",
            "updated_at": "2025-12-09T14:41:06.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": 668,
            "group": "facere",
            "key": "expedita",
            "text": {
                "en": "Deleniti error minima minima qui omnis tempora temporibus.",
                "ru": "Sed necessitatibus velit facere amet maiores dolorem illum."
            },
            "created_at": "2025-12-09T14:41:06.000000Z",
            "updated_at": "2025-12-09T14:41:06.000000Z"
        },
        {
            "id": 669,
            "group": "vero",
            "key": "quas",
            "text": {
                "en": "Maxime aliquid qui aut officia.",
                "ru": "Qui necessitatibus hic quis qui nesciunt."
            },
            "created_at": "2025-12-09T14:41:06.000000Z",
            "updated_at": "2025-12-09T14:41:06.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": 61,
            "url": "http://www.schuppe.com/labore-delectus-rem-nulla-labore-quasi-eveniet",
            "icon_name": "Dion Rohan"
        },
        {
            "id": 62,
            "url": "https://damore.com/necessitatibus-praesentium-dolores-est.html",
            "icon_name": "Gerard Thompson Sr."
        }
    ]
}
 

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": 78,
            "slug": "qui-quia-ducimus-unde-magni-culpa-ratione",
            "title": "Esse blanditiis aut sint architecto.",
            "content": "Eum soluta reiciendis dolor et id. Voluptas aliquam accusantium tempora iure voluptatem voluptas. Voluptatibus neque inventore voluptas saepe quod. Laboriosam est nihil iste dolor perferendis aut et et. Vitae consectetur veritatis quis quia officiis a repudiandae.",
            "is_active": false,
            "translations": {
                "title": {
                    "en": "Esse blanditiis aut sint architecto."
                },
                "content": {
                    "en": "Eum soluta reiciendis dolor et id. Voluptas aliquam accusantium tempora iure voluptatem voluptas. Voluptatibus neque inventore voluptas saepe quod. Laboriosam est nihil iste dolor perferendis aut et et. Vitae consectetur veritatis quis quia officiis a repudiandae."
                }
            },
            "created_at": "2025-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41:07.000000Z"
        },
        {
            "id": 79,
            "slug": "iure-qui-earum-modi-deserunt-culpa-provident-natus-est",
            "title": "A voluptatibus omnis facere cumque iure culpa.",
            "content": "Quisquam nihil sint dolorem distinctio ratione. Numquam quaerat nostrum laudantium sint voluptatibus. Velit quis laborum perferendis et et ipsam. Ex nihil molestias consequatur est occaecati.",
            "is_active": false,
            "translations": {
                "title": {
                    "en": "A voluptatibus omnis facere cumque iure culpa."
                },
                "content": {
                    "en": "Quisquam nihil sint dolorem distinctio ratione. Numquam quaerat nostrum laudantium sint voluptatibus. Velit quis laborum perferendis et et ipsam. Ex nihil molestias consequatur est occaecati."
                }
            },
            "created_at": "2025-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41: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/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": 80,
        "slug": "et-velit-harum-qui",
        "title": "Repudiandae nobis excepturi fugiat aut vel voluptatibus.",
        "content": "Impedit voluptate laboriosam ea exercitationem. Molestiae cumque dolorem qui quas ut quis. Omnis in velit quisquam hic incidunt facilis.",
        "is_active": false,
        "translations": {
            "title": {
                "en": "Repudiandae nobis excepturi fugiat aut vel voluptatibus."
            },
            "content": {
                "en": "Impedit voluptate laboriosam ea exercitationem. Molestiae cumque dolorem qui quas ut quis. Omnis in velit quisquam hic incidunt facilis."
            }
        },
        "created_at": "2025-12-09T14:41:07.000000Z",
        "updated_at": "2025-12-09T14:41:07.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": 98,
            "name": "modi",
            "translations": {
                "name": {
                    "en": "modi",
                    "ar": "sit"
                }
            },
            "created_at": "2025-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41:07.000000Z"
        },
        {
            "id": 99,
            "name": "quia",
            "translations": {
                "name": {
                    "en": "quia",
                    "ar": "tempore"
                }
            },
            "created_at": "2025-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41:07.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": 59,
            "title": "facilis",
            "content": "Eos et corrupti iusto nostrum.",
            "translations": {
                "content": {
                    "en": "Eos et corrupti iusto nostrum.",
                    "es": "Aperiam cupiditate dolor sequi alias nulla magni."
                },
                "App\\Enums\\NotificationTemplateEnum": []
            },
            "slug": null
        },
        {
            "id": 60,
            "title": "possimus",
            "content": "Dolores sint qui placeat quis quo corrupti tempore.",
            "translations": {
                "content": {
                    "en": "Dolores sint qui placeat quis quo corrupti tempore.",
                    "es": "Placeat a non rerum ut ut ea velit."
                },
                "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": 809,
        "display_name": "XOF",
        "code": "KYD",
        "symbol": "PGK",
        "is_active": true,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 810,
        "display_name": "IDR",
        "code": "JPY",
        "symbol": "BMD",
        "is_active": true,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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 payment conversion settings

Get all payment conversion settings

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

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

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

Example response (200):


{
    "data": [
        {
            "id": 3,
            "payment_method_id": 150,
            "currency_from_id": 811,
            "currency_to_id": 812,
            "is_active": false,
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        {
            "id": 4,
            "payment_method_id": 151,
            "currency_from_id": 813,
            "currency_to_id": 814,
            "is_active": true,
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        }
    ]
}
 

Request   

GET api/payment-conversion-settings

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Create payment conversion setting

requires authentication

Create payment conversion setting

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/payment-conversion-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"payment_method_id\": 1,
    \"currency_from_id\": 1,
    \"currency_to_id\": 2,
    \"is_active\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/payment-conversion-settings"
);

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

let body = {
    "payment_method_id": 1,
    "currency_from_id": 1,
    "currency_to_id": 2,
    "is_active": true
};

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

Example response (200):


{
    "data": {
        "id": 5,
        "payment_method_id": 152,
        "currency_from_id": 815,
        "currency_to_id": 816,
        "is_active": false,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.000000Z"
    }
}
 

Request   

POST api/payment-conversion-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

payment_method_id   string   

Payment method ID Example: 1

currency_from_id   string   

Currency from ID Example: 1

currency_to_id   string   

Currency to ID Example: 2

is_active   string   

Is active Example: true

Update payment conversion setting

requires authentication

Update payment conversion setting

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/payment-conversion-settings/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"payment_method_id\": 1,
    \"currency_from_id\": 1,
    \"currency_to_id\": 2,
    \"is_active\": true
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/payment-conversion-settings/1"
);

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

let body = {
    "payment_method_id": 1,
    "currency_from_id": 1,
    "currency_to_id": 2,
    "is_active": true
};

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

Example response (200):


{
    "data": {
        "id": 6,
        "payment_method_id": 153,
        "currency_from_id": 817,
        "currency_to_id": 818,
        "is_active": true,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.000000Z"
    }
}
 

Request   

PATCH api/payment-conversion-settings/{setting_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

setting_id   integer   

The ID of the setting. Example: 1

Body Parameters

payment_method_id   string   

Payment method ID Example: 1

currency_from_id   string   

Currency from ID Example: 1

currency_to_id   string   

Currency to ID Example: 2

is_active   string   

Is active Example: true

Delete payment conversion setting

requires authentication

Delete payment conversion setting

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/payment-conversion-settings/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/payment-conversion-settings/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/payment-conversion-settings/{setting_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

setting_id   integer   

The ID of the setting. Example: 1

Get all currency rates

Get all currency rates

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

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

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

Example response (200):


{
    "data": [
        {
            "id": 73,
            "currency_from_id": 819,
            "currency_to_id": 820,
            "rate": "1.4399",
            "date": "2025-12-09T00:00:00.000000Z",
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        {
            "id": 74,
            "currency_from_id": 821,
            "currency_to_id": 822,
            "rate": "0.7639",
            "date": "2025-12-09T00:00:00.000000Z",
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        }
    ]
}
 

Request   

GET api/currency-rates

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Create currency rate

requires authentication

Create currency rate

Example request:
curl --request POST \
    "https://testapi.ticketbus365.com/api/currency-rates" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"currency_from_id\": 1,
    \"currency_to_id\": 2,
    \"rate\": 1.5,
    \"date\": \"2023-01-01\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/currency-rates"
);

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

let body = {
    "currency_from_id": 1,
    "currency_to_id": 2,
    "rate": 1.5,
    "date": "2023-01-01"
};

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

Example response (200):


{
    "data": {
        "id": 75,
        "currency_from_id": 823,
        "currency_to_id": 824,
        "rate": "1.2214",
        "date": "2025-12-09T00:00:00.000000Z",
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.000000Z"
    }
}
 

Request   

POST api/currency-rates

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

currency_from_id   string   

Currency from ID Example: 1

currency_to_id   string   

Currency to ID Example: 2

rate   string   

Rate Example: 1.5

date   string   

Date Example: 2023-01-01

Update currency rate

requires authentication

Update currency rate

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/currency-rates/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"currency_from_id\": 1,
    \"currency_to_id\": 2,
    \"rate\": 1.5,
    \"date\": \"2023-01-01\"
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/currency-rates/1"
);

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

let body = {
    "currency_from_id": 1,
    "currency_to_id": 2,
    "rate": 1.5,
    "date": "2023-01-01"
};

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

Example response (200):


{
    "data": {
        "id": 76,
        "currency_from_id": 825,
        "currency_to_id": 826,
        "rate": "0.8768",
        "date": "2025-12-09T00:00:00.000000Z",
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.000000Z"
    }
}
 

Request   

PATCH api/currency-rates/{rate_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

rate_id   integer   

The ID of the rate. Example: 1

Body Parameters

currency_from_id   string   

Currency from ID Example: 1

currency_to_id   string   

Currency to ID Example: 2

rate   string   

Rate Example: 1.5

date   string   

Date Example: 2023-01-01

Delete currency rate

requires authentication

Delete currency rate

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/currency-rates/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/currency-rates/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/currency-rates/{rate_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

rate_id   integer   

The ID of the rate. Example: 1

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": 48,
            "name": "Eichmann-Crist",
            "type": "fake",
            "is_active": true,
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z",
            "send_passenger_notifications": false,
            "excluded_carriers": null,
            "price_adjustment_percent": "0.00"
        },
        {
            "id": 49,
            "name": "Kohler, Zemlak and Rau",
            "type": "fake",
            "is_active": true,
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.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": 50,
        "name": "Metz-Maggio",
        "type": "fake",
        "is_active": true,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 51,
        "name": "Ullrich-Skiles",
        "type": "fake",
        "is_active": true,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 68,
        "display_name": "Hungary",
        "code": "ER",
        "is_active": true,
        "is_default": false,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 69,
        "display_name": "Djibouti",
        "code": "UY",
        "is_active": true,
        "is_default": false,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 174,
            "name": "Faustino Batz Sr.",
            "translations": {
                "name": {
                    "ua": "Karolann Wunsch",
                    "en": "Faustino Batz Sr."
                }
            },
            "icon_name": "Dudley Wuckert",
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        {
            "id": 175,
            "name": "Ms. Margret Hackett",
            "translations": {
                "name": {
                    "ua": "Oren DuBuque",
                    "en": "Ms. Margret Hackett"
                }
            },
            "icon_name": "Dr. Maeve Gusikowski MD",
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.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\": \"repudiandae\"
}"
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": "repudiandae"
};

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

Example response (200):


{
    "data": {
        "id": 176,
        "name": "Daron Towne",
        "translations": {
            "name": {
                "ua": "Mr. Davin Friesen PhD",
                "en": "Daron Towne"
            }
        },
        "icon_name": "Reinhold Huels",
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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: repudiandae

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\": \"in\"
}"
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": "in"
};

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

Example response (200):


{
    "data": {
        "id": 177,
        "name": "Jay West",
        "translations": {
            "name": {
                "ua": "Clare Purdy",
                "en": "Jay West"
            }
        },
        "icon_name": "Oliver Spencer PhD",
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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: in

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": 1423,
            "name": "Deangelo Mayer",
            "mark": "Betty Hickle",
            "model": "Tobin Osinski",
            "number_of_seats": 1,
            "number_of_floors": 1,
            "services": [
                {
                    "id": 178,
                    "name": "Prof. Enrico Predovic IV",
                    "translations": {
                        "name": {
                            "ua": "Prof. Felipe Padberg",
                            "en": "Prof. Enrico Predovic IV"
                        }
                    },
                    "icon_name": "Patience Effertz",
                    "created_at": "2025-12-09T14:41:09.000000Z",
                    "updated_at": "2025-12-09T14:41:09.000000Z"
                }
            ],
            "rows": 2,
            "columns": 2,
            "items": [
                {
                    "id": 41207,
                    "type": "seat",
                    "name": "Prof. Nicholaus Pouros",
                    "translations": {
                        "name": {
                            "en": "Prof. Nicholaus Pouros"
                        }
                    },
                    "seat_number": 631630,
                    "row_number": 186141105,
                    "column_number": 3541336,
                    "floor_number": 1
                },
                {
                    "id": 41208,
                    "type": "seat",
                    "name": "Seat 1",
                    "translations": {
                        "name": {
                            "en": "Seat 1"
                        }
                    },
                    "seat_number": 1,
                    "row_number": 1,
                    "column_number": 1,
                    "floor_number": 1
                },
                {
                    "id": 41209,
                    "type": "seat",
                    "name": "Seat 2",
                    "translations": {
                        "name": {
                            "en": "Seat 2"
                        }
                    },
                    "seat_number": 2,
                    "row_number": 1,
                    "column_number": 2,
                    "floor_number": 1
                },
                {
                    "id": 41210,
                    "type": "seat",
                    "name": "Seat 3",
                    "translations": {
                        "name": {
                            "en": "Seat 3"
                        }
                    },
                    "seat_number": 3,
                    "row_number": 2,
                    "column_number": 1,
                    "floor_number": 1
                },
                {
                    "id": 41211,
                    "type": "seat",
                    "name": "Seat 4",
                    "translations": {
                        "name": {
                            "en": "Seat 4"
                        }
                    },
                    "seat_number": 4,
                    "row_number": 2,
                    "column_number": 2,
                    "floor_number": 1
                }
            ],
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        {
            "id": 1425,
            "name": "Max Cole DDS",
            "mark": "Shaun Feeney",
            "model": "Dr. Stan Strosin I",
            "number_of_seats": 1,
            "number_of_floors": 1,
            "services": [
                {
                    "id": 179,
                    "name": "Dameon Crist V",
                    "translations": {
                        "name": {
                            "ua": "Anya Shanahan",
                            "en": "Dameon Crist V"
                        }
                    },
                    "icon_name": "Gene Gibson",
                    "created_at": "2025-12-09T14:41:09.000000Z",
                    "updated_at": "2025-12-09T14:41:09.000000Z"
                }
            ],
            "rows": 1,
            "columns": 1,
            "items": [
                {
                    "id": 41214,
                    "type": "seat",
                    "name": "Louisa Cole",
                    "translations": {
                        "name": {
                            "en": "Louisa Cole"
                        }
                    },
                    "seat_number": 260277,
                    "row_number": 43,
                    "column_number": 30488,
                    "floor_number": 1
                },
                {
                    "id": 41215,
                    "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-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.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": 1427,
        "name": "Sister Williamson",
        "mark": "Prof. Oran Sipes V",
        "model": "Lea Durgan PhD",
        "number_of_seats": 2,
        "number_of_floors": 1,
        "rows": 1,
        "columns": 1,
        "items": [
            {
                "id": 41220,
                "type": "seat",
                "name": "Ellie Harris",
                "translations": {
                    "name": {
                        "en": "Ellie Harris"
                    }
                },
                "seat_number": 154880237,
                "row_number": 11187853,
                "column_number": 8836254,
                "floor_number": 1
            },
            {
                "id": 41221,
                "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-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 1429,
        "name": "Wilfredo Gleason Jr.",
        "mark": "Dr. Ephraim Collins",
        "model": "Johann O'Reilly IV",
        "number_of_seats": 2,
        "number_of_floors": 1,
        "services": [
            {
                "id": 180,
                "name": "Chadd Schiller",
                "translations": {
                    "name": {
                        "ua": "Dr. Loraine Jerde",
                        "en": "Chadd Schiller"
                    }
                },
                "icon_name": "Georgianna Turner",
                "created_at": "2025-12-09T14:41:09.000000Z",
                "updated_at": "2025-12-09T14:41:09.000000Z"
            }
        ],
        "rows": 1,
        "columns": 1,
        "items": [
            {
                "id": 41223,
                "type": "seat",
                "name": "Clemmie McKenzie",
                "translations": {
                    "name": {
                        "en": "Clemmie McKenzie"
                    }
                },
                "seat_number": 49499477,
                "row_number": 5,
                "column_number": 9,
                "floor_number": 1
            },
            {
                "id": 41224,
                "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-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 1431,
        "name": "Gerry O'Hara MD",
        "mark": "Mr. Moriah Effertz",
        "model": "Prof. Terence Littel DDS",
        "number_of_seats": 1,
        "number_of_floors": 1,
        "rows": 1,
        "columns": 2,
        "items": [
            {
                "id": 41227,
                "type": "seat",
                "name": "Michel Ernser",
                "translations": {
                    "name": {
                        "en": "Michel Ernser"
                    }
                },
                "seat_number": 878,
                "row_number": 578867470,
                "column_number": 45720,
                "floor_number": 1
            },
            {
                "id": 41228,
                "type": "seat",
                "name": "Seat 1",
                "translations": {
                    "name": {
                        "en": "Seat 1"
                    }
                },
                "seat_number": 1,
                "row_number": 1,
                "column_number": 1,
                "floor_number": 1
            },
            {
                "id": 41229,
                "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-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 43705,
            "departure_start": 9,
            "departure_end": 8,
            "retention_percentage": 8,
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        {
            "id": 43706,
            "departure_start": 2,
            "departure_end": 5,
            "retention_percentage": 5,
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.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": 43707,
        "departure_start": 9,
        "departure_end": 2,
        "retention_percentage": 10,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 43708,
        "departure_start": 8,
        "departure_end": 7,
        "retention_percentage": 2,
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 100,
        "name": "similique",
        "translations": {
            "name": {
                "en": "similique",
                "ar": "reprehenderit"
            }
        },
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 101,
        "name": "ut",
        "translations": {
            "name": {
                "en": "ut",
                "ar": "ab"
            }
        },
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 61,
        "title": "illum",
        "content": "Qui accusamus dolorem excepturi hic ut sit laborum.",
        "translations": {
            "content": {
                "en": "Qui accusamus dolorem excepturi hic ut sit laborum.",
                "es": "Eius delectus sunt officiis animi quas nihil."
            },
            "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": 62,
        "title": "laudantium",
        "content": "Ipsa quod ut sapiente sed id laudantium.",
        "translations": {
            "content": {
                "en": "Ipsa quod ut sapiente sed id laudantium.",
                "es": "Culpa architecto nihil rerum similique."
            },
            "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": 16276,
            "name": "Baggage",
            "translations": {
                "name": {
                    "en": "Baggage"
                }
            },
            "prices": [
                {
                    "currency_id": 827,
                    "price": 100
                }
            ],
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.000000Z"
        },
        {
            "id": 16277,
            "name": "Baggage",
            "translations": {
                "name": {
                    "en": "Baggage"
                }
            },
            "prices": [
                {
                    "currency_id": 828,
                    "price": 100
                }
            ],
            "created_at": "2025-12-09T14:41:09.000000Z",
            "updated_at": "2025-12-09T14:41:09.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": 16278,
        "name": "Baggage",
        "translations": {
            "name": {
                "en": "Baggage"
            }
        },
        "prices": [
            {
                "currency_id": 829,
                "price": 100
            }
        ],
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 16279,
        "name": "Baggage",
        "translations": {
            "name": {
                "en": "Baggage"
            }
        },
        "prices": [
            {
                "currency_id": 830,
                "price": 100
            }
        ],
        "created_at": "2025-12-09T14:41:09.000000Z",
        "updated_at": "2025-12-09T14:41:09.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": 13881,
            "name": "Quia eos fuga tenetur autem ut tenetur.",
            "content": "Aut et aut sit assumenda blanditiis ullam qui. Vel quam aliquam sit voluptates ut illum repudiandae repudiandae. Exercitationem maxime sunt quasi suscipit nihil nulla ipsa.",
            "translations": {
                "name": {
                    "en": "Quia eos fuga tenetur autem ut tenetur."
                },
                "content": {
                    "en": "Aut et aut sit assumenda blanditiis ullam qui. Vel quam aliquam sit voluptates ut illum repudiandae repudiandae. Exercitationem maxime sunt quasi suscipit nihil nulla ipsa."
                }
            },
            "created_at": "2025-12-09T14:41:10.000000Z",
            "updated_at": "2025-12-09T14:41:10.000000Z"
        },
        {
            "id": 13882,
            "name": "Ad quis nam aspernatur nemo at ut maiores.",
            "content": "Veniam sed eos vero ut voluptatum corrupti aut. Nam tenetur voluptas commodi autem est itaque ipsam deleniti. Sint inventore quidem veritatis ea et. Nihil quisquam quis beatae.",
            "translations": {
                "name": {
                    "en": "Ad quis nam aspernatur nemo at ut maiores."
                },
                "content": {
                    "en": "Veniam sed eos vero ut voluptatum corrupti aut. Nam tenetur voluptas commodi autem est itaque ipsam deleniti. Sint inventore quidem veritatis ea et. Nihil quisquam quis beatae."
                }
            },
            "created_at": "2025-12-09T14:41:10.000000Z",
            "updated_at": "2025-12-09T14:41:10.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": 13883,
        "name": "Magni est soluta accusantium et facere velit.",
        "content": "Non et excepturi beatae non inventore dolorem aspernatur. Temporibus esse omnis tempora atque soluta.",
        "translations": {
            "name": {
                "en": "Magni est soluta accusantium et facere velit."
            },
            "content": {
                "en": "Non et excepturi beatae non inventore dolorem aspernatur. Temporibus esse omnis tempora atque soluta."
            }
        },
        "created_at": "2025-12-09T14:41:10.000000Z",
        "updated_at": "2025-12-09T14:41:10.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": 13884,
        "name": "Saepe fugit voluptates porro non quia molestiae.",
        "content": "Dolorum eveniet recusandae rem debitis repellat quia. Laborum et quasi vitae alias sequi. Illo at laboriosam excepturi fugiat in. Tenetur commodi autem asperiores et.",
        "translations": {
            "name": {
                "en": "Saepe fugit voluptates porro non quia molestiae."
            },
            "content": {
                "en": "Dolorum eveniet recusandae rem debitis repellat quia. Laborum et quasi vitae alias sequi. Illo at laboriosam excepturi fugiat in. Tenetur commodi autem asperiores et."
            }
        },
        "created_at": "2025-12-09T14:41:10.000000Z",
        "updated_at": "2025-12-09T14:41:10.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": 13885,
        "name": "Amet quis exercitationem omnis dicta odio magni.",
        "content": "Nihil nesciunt vero ut pariatur explicabo laudantium mollitia inventore. Veniam ut laboriosam omnis omnis laborum. Corrupti amet optio inventore dicta in et.",
        "translations": {
            "name": {
                "en": "Amet quis exercitationem omnis dicta odio magni."
            },
            "content": {
                "en": "Nihil nesciunt vero ut pariatur explicabo laudantium mollitia inventore. Veniam ut laboriosam omnis omnis laborum. Corrupti amet optio inventore dicta in et."
            }
        },
        "created_at": "2025-12-09T14:41:10.000000Z",
        "updated_at": "2025-12-09T14:41:10.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": 81,
        "slug": "veniam-autem-qui-laborum-iure",
        "title": "Reprehenderit magni enim incidunt quibusdam qui modi.",
        "content": "Aliquid aut et iure ipsam qui quo labore magni. Necessitatibus natus est laboriosam molestiae dolores incidunt temporibus. Ea quas laborum aut qui ut laudantium excepturi cupiditate. In tenetur nisi rerum quod adipisci soluta voluptatem.",
        "is_active": false,
        "translations": {
            "title": {
                "en": "Reprehenderit magni enim incidunt quibusdam qui modi."
            },
            "content": {
                "en": "Aliquid aut et iure ipsam qui quo labore magni. Necessitatibus natus est laboriosam molestiae dolores incidunt temporibus. Ea quas laborum aut qui ut laudantium excepturi cupiditate. In tenetur nisi rerum quod adipisci soluta voluptatem."
            }
        },
        "created_at": "2025-12-09T14:41:16.000000Z",
        "updated_at": "2025-12-09T14:41:16.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": 82,
        "slug": "sed-esse-aperiam-dolorem-perspiciatis-inventore-corrupti",
        "title": "Iure aut eaque molestias dolorem.",
        "content": "Alias veniam temporibus cumque. Impedit aut minima optio alias ullam magnam repellat. Rem suscipit quia soluta eum velit recusandae. Magni autem omnis repellat aliquid iusto ut sint.",
        "is_active": false,
        "translations": {
            "title": {
                "en": "Iure aut eaque molestias dolorem."
            },
            "content": {
                "en": "Alias veniam temporibus cumque. Impedit aut minima optio alias ullam magnam repellat. Rem suscipit quia soluta eum velit recusandae. Magni autem omnis repellat aliquid iusto ut sint."
            }
        },
        "created_at": "2025-12-09T14:41:16.000000Z",
        "updated_at": "2025-12-09T14:41:16.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": 154,
            "name": "cash",
            "display_name": "Cordia Kshlerin",
            "logo_path": "Art Tillman",
            "created_at": "2025-12-09T14:41:16.000000Z",
            "updated_at": "2025-12-09T14:41:16.000000Z"
        },
        {
            "id": 155,
            "name": "spot",
            "display_name": "Prof. Florine Boyer",
            "logo_path": "Damon Hand",
            "created_at": "2025-12-09T14:41:16.000000Z",
            "updated_at": "2025-12-09T14:41:16.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": 156,
        "name": "stripe",
        "display_name": "Miss Meta Zboncak V",
        "logo_path": "Giles Ryan",
        "created_at": "2025-12-09T14:41:16.000000Z",
        "updated_at": "2025-12-09T14:41:16.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": 157,
        "name": "spot",
        "display_name": "Dulce Keeling",
        "logo_path": "Blanca Gaylord",
        "created_at": "2025-12-09T14:41:16.000000Z",
        "updated_at": "2025-12-09T14:41:16.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": 2613007,
            "log_name": "default",
            "description": "Vel sint qui dignissimos eaque assumenda temporibus id.",
            "subject_id": 1443,
            "subject_type": "App\\Models\\BusSchema",
            "causer_id": 5905,
            "causer_type": "App\\Models\\User",
            "user": {
                "id": 5905,
                "first_name": "Nicolas",
                "last_name": "Harvey",
                "middle_name": "Trinity",
                "full_name": "Nicolas Harvey Trinity",
                "work_phone": null,
                "gender": null,
                "birthday": null,
                "name": "Beatrice Corwin Jr.",
                "phone": "+1 (561) 288-3446",
                "email": "clint65@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-12-09T14:41:16.000000Z",
                "updated_at": "2025-12-09T14:41:16.000000Z"
            },
            "properties": {
                "attributes": {
                    "name": "Mr. Moises Upton",
                    "status": "active"
                }
            },
            "event": "created",
            "created_at": "2025-12-09T14:41:16.000000Z",
            "updated_at": "2025-12-09T14:41:16.000000Z"
        },
        {
            "id": 2613011,
            "log_name": "default",
            "description": "Repellendus sed voluptatem quaerat.",
            "subject_id": 1444,
            "subject_type": "App\\Models\\BusSchema",
            "causer_id": 5906,
            "causer_type": "App\\Models\\User",
            "user": {
                "id": 5906,
                "first_name": "Dell",
                "last_name": "Smith",
                "middle_name": "Elody",
                "full_name": "Dell Smith Elody",
                "work_phone": null,
                "gender": null,
                "birthday": null,
                "name": "Lia Hodkiewicz DVM",
                "phone": "1-952-330-1201",
                "email": "boehm.jon@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-12-09T14:41:16.000000Z",
                "updated_at": "2025-12-09T14:41:16.000000Z"
            },
            "properties": {
                "attributes": {
                    "name": "Mr. Ryder Mertz",
                    "status": "active"
                }
            },
            "event": "created",
            "created_at": "2025-12-09T14:41:16.000000Z",
            "updated_at": "2025-12-09T14:41:16.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": 670,
        "group": "qui",
        "key": "unde",
        "text": {
            "en": "Perspiciatis aut quisquam quaerat exercitationem nisi.",
            "ru": "Nostrum doloribus tempora qui consequatur qui nam porro."
        },
        "created_at": "2025-12-09T14:41:16.000000Z",
        "updated_at": "2025-12-09T14:41:16.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": 63,
        "url": "https://runolfsson.com/iure-dolor-asperiores-animi-quisquam-eligendi-adipisci.html",
        "icon_name": "Anna Ondricka"
    }
}
 

Update social media link

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/system-settings/social-media-links/8" \
    --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/8"
);

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": 64,
        "url": "http://www.dibbert.net/consectetur-fuga-ut-odit-autem",
        "icon_name": "Rachelle Wiza"
    }
}
 

Delete social media link

Example request:
curl --request DELETE \
    "https://testapi.ticketbus365.com/api/system-settings/social-media-links/6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://testapi.ticketbus365.com/api/system-settings/social-media-links/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
 

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": 91,
            "name": "Darrion Ferry",
            "hotline_phone": null,
            "edrpou": null,
            "disclaimer": null,
            "logo_url": null,
            "translations": {
                "disclaimer": []
            }
        },
        {
            "id": 92,
            "name": "Rosamond Hansen",
            "hotline_phone": null,
            "edrpou": null,
            "disclaimer": null,
            "logo_url": 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": 93,
        "name": "Prof. Kiel Fahey",
        "hotline_phone": null,
        "edrpou": null,
        "disclaimer": null,
        "logo_url": 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": 94,
        "name": "Aubrey Mayert",
        "hotline_phone": null,
        "edrpou": null,
        "disclaimer": null,
        "logo_url": 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": 92,
            "name": "Violet McKenzie",
            "slug": null
        },
        {
            "id": 93,
            "name": "Mr. Markus Labadie DDS",
            "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": 94,
        "name": "Prof. Ibrahim Jacobi Sr.",
        "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": 95,
        "name": "Dr. Malachi Braun",
        "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: ad

mappable_id   integer   

Example: 3

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": "wifi",
                        "created_at": "2023-11-02T12:08:09.000000Z",
                        "updated_at": "2025-11-25T10:40:48.000000Z"
                    },
                    {
                        "id": 16,
                        "name": "USB-зарядки",
                        "translations": {
                            "name": {
                                "ua": "Індивідуальні  USB-зарядки",
                                "pl": "USB-зарядки",
                                "en": "USB-зарядки"
                            }
                        },
                        "icon_name": "индивидуальные  USB-зарядки",
                        "created_at": "2024-01-20T10:58:51.000000Z",
                        "updated_at": "2024-04-11T11:51:19.000000Z"
                    }
                ],
                "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,
                "logo_url": 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": "wifi",
                        "created_at": "2023-11-02T12:08:09.000000Z",
                        "updated_at": "2025-11-25T10:40:48.000000Z"
                    },
                    {
                        "id": 16,
                        "name": "USB-зарядки",
                        "translations": {
                            "name": {
                                "ua": "Індивідуальні  USB-зарядки",
                                "pl": "USB-зарядки",
                                "en": "USB-зарядки"
                            }
                        },
                        "icon_name": "индивидуальные  USB-зарядки",
                        "created_at": "2024-01-20T10:58:51.000000Z",
                        "updated_at": "2024-04-11T11:51:19.000000Z"
                    }
                ],
                "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,
                "logo_url": 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: 496
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: 495
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,
    \"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,
    "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": 40.71,
        "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

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": 656.54,
            "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

Cancel my tickets

requires authentication

Example request:
curl --request PATCH \
    "https://testapi.ticketbus365.com/api/cancel-tickets" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ticket_ids\": [
        1,
        2
    ]
}"
const url = new URL(
    "https://testapi.ticketbus365.com/api/cancel-tickets"
);

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

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

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

Request   

PATCH api/cancel-tickets

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

ticket_ids   string[]   

Tickets ids

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": 5742,
            "first_name": "Chaya",
            "last_name": "Cummings",
            "middle_name": "Wilfred",
            "full_name": "Chaya Cummings Wilfred",
            "work_phone": null,
            "gender": null,
            "birthday": null
        },
        {
            "id": 5744,
            "first_name": "Travon",
            "last_name": "Towne",
            "middle_name": "Velva",
            "full_name": "Travon Towne Velva",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Miss Myah Crona",
            "phone": "689.217.9628",
            "email": "ferry.ena@example.net",
            "subscribe_to_newsletter": false,
            "roles": [
                {
                    "id": 314,
                    "name": "Flo Schowalter",
                    "display_name": "Wendy Ankunding II",
                    "guard_name": "sanctum"
                }
            ],
            "status": "new",
            "need_change_password": true,
            "created_by": {
                "id": 5743,
                "first_name": "Clark",
                "last_name": "Upton",
                "middle_name": "Ebony",
                "full_name": "Clark Upton Ebony",
                "work_phone": null,
                "gender": null,
                "birthday": null,
                "name": "Mrs. Lacey Gottlieb",
                "phone": "1-479-918-1704",
                "email": "vidal46@example.org",
                "subscribe_to_newsletter": false,
                "roles": [
                    {
                        "id": 313,
                        "name": "Tavares Kulas",
                        "display_name": "Georgiana Russel",
                        "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-12-09T14:41:07.000000Z",
                "updated_at": "2025-12-09T14:41:07.000000Z"
            },
            "percent_of_withdrawal": 0,
            "percent_of_discount": 0,
            "send_sms_order_post_payment_link": true,
            "created_at": "2025-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41: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/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": 5746,
        "first_name": "Darlene",
        "last_name": "Runte",
        "middle_name": "Karelle",
        "full_name": "Darlene Runte Karelle",
        "work_phone": null,
        "gender": null,
        "birthday": null,
        "name": "Lizeth Huel MD",
        "phone": "434-552-4276",
        "email": "ksauer@example.com",
        "subscribe_to_newsletter": false,
        "roles": [
            {
                "id": 316,
                "name": "Mr. Logan Trantow",
                "display_name": "Sage Russel DVM",
                "guard_name": "sanctum"
            }
        ],
        "status": "new",
        "need_change_password": true,
        "created_by": {
            "id": 5745,
            "first_name": "Albert",
            "last_name": "Mertz",
            "middle_name": "Oswald",
            "full_name": "Albert Mertz Oswald",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Santiago Hermiston",
            "phone": "1-234-617-7440",
            "email": "orie44@example.com",
            "subscribe_to_newsletter": false,
            "roles": [
                {
                    "id": 315,
                    "name": "Ms. Christy Christiansen II",
                    "display_name": "Ewald Kris",
                    "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-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41:07.000000Z"
        },
        "percent_of_withdrawal": 0,
        "percent_of_discount": 0,
        "send_sms_order_post_payment_link": true,
        "created_at": "2025-12-09T14:41:07.000000Z",
        "updated_at": "2025-12-09T14:41:07.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": 5748,
        "first_name": "Lizeth",
        "last_name": "Weimann",
        "middle_name": "Bernie",
        "full_name": "Lizeth Weimann Bernie",
        "work_phone": null,
        "gender": null,
        "birthday": null,
        "name": "Hassan Gulgowski",
        "phone": "820-208-2606",
        "email": "braden42@example.net",
        "subscribe_to_newsletter": false,
        "roles": [
            {
                "id": 318,
                "name": "Lea Bauch",
                "display_name": "Juanita Johnson",
                "guard_name": "sanctum"
            }
        ],
        "status": "new",
        "need_change_password": true,
        "created_by": {
            "id": 5747,
            "first_name": "Addie",
            "last_name": "Bashirian",
            "middle_name": "Cornell",
            "full_name": "Addie Bashirian Cornell",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Prof. Logan Bergnaum",
            "phone": "+19254653826",
            "email": "lilla.leffler@example.com",
            "subscribe_to_newsletter": false,
            "roles": [
                {
                    "id": 317,
                    "name": "Mathilde Leannon V",
                    "display_name": "Harmony Heller",
                    "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-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41:07.000000Z"
        },
        "percent_of_withdrawal": 0,
        "percent_of_discount": 0,
        "send_sms_order_post_payment_link": true,
        "created_at": "2025-12-09T14:41:07.000000Z",
        "updated_at": "2025-12-09T14:41:07.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": 5750,
        "first_name": "Grover",
        "last_name": "Kuhlman",
        "middle_name": "Olen",
        "full_name": "Grover Kuhlman Olen",
        "work_phone": null,
        "gender": null,
        "birthday": null,
        "name": "Mr. Brendon Klocko Jr.",
        "phone": "318-412-5492",
        "email": "elissa.bosco@example.org",
        "subscribe_to_newsletter": false,
        "roles": [
            {
                "id": 320,
                "name": "Dr. Adonis King DVM",
                "display_name": "Dr. Donald Gibson",
                "guard_name": "sanctum"
            }
        ],
        "status": "new",
        "need_change_password": true,
        "created_by": {
            "id": 5749,
            "first_name": "Laurie",
            "last_name": "Carroll",
            "middle_name": "Gaetano",
            "full_name": "Laurie Carroll Gaetano",
            "work_phone": null,
            "gender": null,
            "birthday": null,
            "name": "Eliane Mitchell I",
            "phone": "229.644.6503",
            "email": "sienna.hoeger@example.net",
            "subscribe_to_newsletter": false,
            "roles": [
                {
                    "id": 319,
                    "name": "Margarett VonRueden",
                    "display_name": "Tyrel Wyman",
                    "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-12-09T14:41:07.000000Z",
            "updated_at": "2025-12-09T14:41:07.000000Z"
        },
        "percent_of_withdrawal": 0,
        "percent_of_discount": 0,
        "send_sms_order_post_payment_link": true,
        "created_at": "2025-12-09T14:41:07.000000Z",
        "updated_at": "2025-12-09T14:41:07.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