Download OpenAPI specification:
External API
BlaBlaCar Pro IMS API is an external API designed to provide partners and developers with access to various functionalities of BlaBlaCar’s Inventory Management System (IMS). This API allows third-party services to integrate seamlessly with BlaBlaCar Pro by searching and booking operations for bus journeys through HTTP requests.
This guide provides a step-by-step overview of how to interact with the BlaBlaCar Pro IMS API. The API allows partners to manage journey bookings, retrieve journey details, and access transport schedules.
Before accessing any resources, you must authenticate using the /organizations/authentication/login endpoint to obtain a token. This token is required for all subsequent API requests.
POST /organizations/authentication/loginUse your credentials to authenticate and receive an authorization token, which you will include in the header of all future requests.
Once authenticated, you can retrieve all available combinations of cities and stops where journey searches can be performed. This should be done daily to keep the data up to date.
GET /inventory/journeys/axesUse this endpoint to get the axes (combinations of locations or stop points) that are available for journey searches. This data should be refreshed daily.
To get more detailed information about locations and stops, use the following endpoints. These endpoints provide additional geographic data that might be necessary for your application.
GET /inventory/geo/locations/** – Retrieves information about cities, towns, or geographic locations.GET /inventory/geo/points/** – Retrieves details about specific stops or points of interest within those locations.Once the axes are retrieved and mapped to yuor geography data (if it's needed), you can search for available journeys between specific stops or locations for a particular journey date.
POST /inventory/journeys/searchUse this endpoint to search for journey options between two stops or locations for a specific date. The result will include all available journey options for the specified route.
After finding a suitable journey, you can get more detailed information about that journey, such as prices, availability, available seats, route details, and applicable discounts.
POST /inventory/journeys/detailsThis endpoint provides detailed information about a specific journey, including available seats, pricing, discounts, and the journey schedule/route info.
You can perform various operations related to booking, purchasing, canceling, and refunding tickets using the /inventory/orders endpoints. These operations include purchase tickets, booking tickets, confirming bookings, canceling bookings, and retrieving information about previously booked tickets and orders. Each of these operations work in scope of order, except refund. Refund operation works in scope of particular ticket.
PUT /inventory/orders/{order_id} – Book a journey (create order with tickets) in various ways.PUT /inventory/orders/{order_id}/cancellation – Cancel an order with tickets.PUT /inventory/orders/tickets/{ticket_id}/cancellation – Cancel a ticket.GET /inventory/orders/{order_id}/tickets/{ticket_id}/refund-options – Get available refund optionsPUT /inventory/orders/{order_id}/tickets/{ticket_id}/refund – Refund a purchased ticket.PUT /inventory/orders/{order_id}/payment-confirmation – Confirm payment for a booking.GET /inventory/orders/{order_id} – Retrieve information about an existing order, including tickets.GET /inventory/orders/tickets/{ticket_id} – Retrieve information about an existing ticket.To maintain a local index of available bus lines and avoid performing a search for journey variants each time, you can retrieve the full available bus schedule once a day. This will allow you to perform offline searches and order processing.
GET /inventory/overviews/sellable-inventory – Retrieves the full schedule of sellable inventory.POST /inventory/journeys/bus-line-scoped-search – Searches for available journeys within specific bus line.These endpoints are used to build a local cache of available bus lines, so agents can handle orders without querying for journey search every time.
This section describes endpoints that allow you to get the names of objects by their identifiers
POST /organizations/carriers/name-lookup – Getting a list of carrier names by a list of their IDs.This section describes the endpoints that allow the management of personal customer accounts.
POST /inventory/customers/accounts – Register a new customer with an account or an account for an existing customer of your organization.POST /inventory/customers/accounts/login – Log in customer of your organization to their account.GET /inventory/customers/{customer_id}/account – Get customer account data.PUT /inventory/customers/{customer_id}/account – Update customer account data.POST /inventory/customers/accounts/password-reset-requests – Request to initiate a password reset process for a customer account.POST /inventory/customers/accounts/password-reset-code-checks – Check the validity of the password reset codePOST /inventory/customers/accounts/password-resets – Reset password for a customer account.GET /inventory/customer-order-histories/{customer_id} – Get list of orders created for a customer of your organization.Managing personal customer accounts only makes sense if you implement your own sales channel (website, mobile app) with support for a personal customer account and also if you want to use personal customer accounts to link them to orders made through this sales channel. This also makes it possible to use personal discounts for customers, such as "Bonus Trip" or "Promo Code".
All endpoints in the BlaBlaCar Pro IMS API can return localized information based on the X-Locale header. This header allows you to specify the language in which the API should return responses.
en)uk)cs)pl)pt)ru)To use this feature, simply include the X-Locale header in your request with one of the supported language codes. The API will then return responses with localized data, such as translated messages and region-specific formats.
All endpoints related to prices or currency-based information support an optional X-Currency header. This header allows you to specify the desired currency code for returned prices, based on the ISO 4217 currency standard.
The X-Currency header should contain a valid ISO 4217 currency code (e.g., USD for US dollars, EUR for euros). By providing this header, you can request prices in a specific currency.
If the X-Currency header is not provided, the API will return prices in the default currency set for the partner organization. This default currency is configured based on the partner’s profile parameters.
The IMS BlaBlaCar Pro system provides two types of discounts:
Automatically applied discounts:
Discounts selected manually by a user of the system (cashier, call-center operator, driver, etc.) or by a passenger from a list, depending on the booking method:
All these discounts can be dynamically set by the carrier with various parameters, both for a specific bus line and for the carrier as a whole, as well as in mixed variations. Each can have its own percentage and other settings. It is impossible to strictly classify these discounts (for example, by tariff type).
Therefore, in the response to a request to the /journeys/details endpoint, you can see two different fields related to discounts for each segment (there can be more than one if there is a return trip).
The first such field is ticket_pricing.automatic_discount. It can only contain one discount object, as this is the discount automatically calculated by the system.
The ticket_pricing.automatic_discount object has the following fields:
id - the discount code to apply when booking tickets for the ordername - the name of the discountticket_price_with_discount - the ticket price including the applied discount.value - the discount value object, which can contain either a percentage or amount, depending on the type field.category - the discount category as an object:name - the discount type:GROUP - group (for the number of tickets in an order)PRE_BOOKING - daily (for advance purchase)TWO_WAY - round trip (for the return journey)PERIOD - for a period (for a date interval)WEEKLY - by days of the week (for specific days of the week)The second such field is ticket_pricing.available_discounts. It contains an array of discount objects, as these are the discounts that are selected manually (for display in a selection field).
Any of these objects can be applied to any passenger, but if an automatically calculated discount could be applied, it is replaced by the one that was selected. That is, only one discount can apply to a single passenger.
Each object in this ticket_pricing.available_discounts array has the same fields as the ticket_pricing.automatic_discount object, and this is where the following discount types are found:
AGE - age-based (by passenger age parameters)SPECIAL - benefit (by passenger benefit category)STUDENT - studentThe application of discounts has some additional features; in the response to a /journeys/details request, you can receive:
ticket_pricing.base_ticket_price (without discount)ticket_pricing.ticket_price_with_automatic_discountticket_pricing.automatic_discount object (there can be only one).ticket_pricing.available_discounts.The automatically applied discount must be explicitly specified by its id in the order_items.rides.discount.id field when submitting a request to the PUT /orders/{order_id} endpoint to create an order. Otherwise, this discount will not be applied, and the order will be processed at the basic price.
The discount objects (both automatic and selectable) contain everything needed: code, price, name, percentage. For this to be applied during purchase, the discount ID must be passed in the order_items.rides.discount.id field for each passenger to whom the discount applies.
Regarding the /journeys/search endpoint, in the rides.ticket_pricing object, you can get:
ticket_pricing.base_ticket_price (without discount)ticket_pricing.ticket_price_with_automatic_discountautomatic_discount.valueticket_pricing.statutory_discounts, which only includes the selectable discount types:AGE - age-based (by passenger age parameters)SPECIAL - benefit (by passenger benefit category)STUDENT - studentUser must call this endpoint to login to BlaBlaCar Pro
| login required | string non-empty User login |
| password required | string non-empty Password provided by user |
{- "login": "osem",
- "password": "bNgtI8_Ht"
}{- "token": "string",
- "token_expires_at": 1725185410,
- "user_id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "organization_id": "692614f3-49a1-4bb8-ae02-55e62d3595ed"
}Get a list of carrier names by IDs. Return names even for carriers that marked as deleted. Method POST is used to be able to send a large list of IDs.
ID of a carrier
[- "54ecbbaf-f192-431c-b0da-8b3ac3494301"
]{- "names": [
- {
- "id": "d78a745a-4b86-4057-91a7-51d010e1d875",
- "name": "Name"
}
]
}Get list of orders created for a customer of your organization
| customer_id required | string <uuid> Example: 2c9d85b7-e364-4f3d-a32b-10c4ab62f052 ID of the customer |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
{- "orders": [
- {
- "id": "7aed543e-2ab8-4ed5-af43-f116eb47207c",
- "number": "1231",
- "created_at": "2022-01-01T11:11:11Z",
- "price": {
- "currency_code": "UAH",
- "currency_symbol": "₴",
- "amount": 503.99
}, - "tickets": [
- {
- "id": "92d9acb4-2daa-49c9-b193-bea48eb54fc9",
- "number": "6548732",
- "status_details": {
- "status": "RESERVED",
- "name": "Booked",
- "assigned_at": "2022-07-20T10:00:00Z"
}, - "bus_line": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "number": "4242",
- "name": "Dnipro - Kharkiv",
- "type": "INTERCITY"
}, - "carrier": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Carrier",
- "legal_identifier": "20077720",
- "contact_info": {
- "city": "Kharkiv city",
- "address": "Gagaryna street, 24-B, office 33",
- "phone": "+38(066) 345 26 15; +38(099) 657-46-32"
}
}, - "departure": {
- "departure_date_time": "2022-07-20T10:00:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "arrival": {
- "arrival_date_time": "2022-07-21T04:30:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "trip_time": "PT7H30M",
- "passenger": {
- "first_name": "John",
- "last_name": "Smith",
- "phone_number": "+38(099) 123-21-12",
- "email": "john.smith@blackbus.com",
- "birthdate": "2020-11-21",
- "citizenship": "UA",
- "gender": "MALE",
- "document": {
- "type": "PASSPORT",
- "number": "AK 122302",
- "issuing_country": "UA",
- "expiration_date": "2025-12-31"
}, - "discount_document": {
- "type": "PASSPORT",
- "number": "AK 122302"
}
}, - "seat": {
- "with_seat_number": false,
- "seat_number": 0,
- "seat_number_text": "To a free seat"
}, - "price_details": {
- "price": 40,
- "fare": 40,
- "type": "FULL",
- "discount": {
- "category": {
- "name": "PERIOD",
- "available_from": "2026-06-01T00:00:00Z",
- "available_until": "2026-07-01T00:00:00Z"
}, - "name": "string",
- "value_type": "PERCENTAGE",
- "percentage": 20,
- "amount": 10
}, - "luggage": {
- "fee": 42,
- "count": 4,
- "total_amount": 168
}, - "currency_code": "UAH"
}, - "refund_request": {
- "reason": "TRIP_DELAY",
- "registered_at": "2019-08-24T14:15:22Z"
}, - "available_operations": {
- "refund": true,
- "amend_refund": false,
- "edit_passenger": false,
- "get_pdf": false,
- "cancellation": false,
- "edit_note": false,
- "reissue": false,
- "cancel_refund": true
}, - "statistical_groups_inclusion": {
- "ordered_with_future_departure": true,
- "ordered_with_past_departure": false,
- "voided": false
}
}
], - "available_operations": {
- "cancel": true,
- "confirm_payment": false,
- "reissue": {
- "available": true,
- "ticket_ids_to_reissue": [
- "92d9acb4-2daa-49c9-b193-bea48eb54fc9"
]
}
}
}
]
}Register a new customer with an account or an account for an existing customer of your organization
| login required | string |
| password required | string |
| first_name required | string |
| last_name required | string |
| email required | string |
required | object (CustomerPhoneNumber) |
{- "login": "john-doe-42",
- "password": "password123*",
- "first_name": "John",
- "last_name": "Doe",
- "email": "john_doe@example.com",
- "phone_number": {
- "value": "+380 12 345 67 89",
- "messaging_channels_availability": {
- "whats_app": true,
- "viber": false,
- "telegram": true
}
}
}{- "customer_id": "2c9d85b7-e364-4f3d-a32b-10c4ab62f052",
- "login": "john-doe-42",
- "first_name": "John",
- "last_name": "Doe",
- "email": "john_doe@example.com",
- "phone_number": {
- "value": "+380 12 345 67 89",
- "messaging_channels_availability": {
- "whats_app": true,
- "viber": false,
- "telegram": true
}
}
}Request to initiate a password reset process for a customer account
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
| email required | string Email of the customer account for which to initiate password reset |
| password_reset_page_url required | string URL of the web page to which to send the link to the customer. URL will be appended with a password reset code required for completing the password reset |
{- "email": "john_doe@example.com",
- "password_reset_page_url": "string"
}{- "code": "ERROR_ILLEGAL_ARGUMENT",
- "message": "Invalid value provided for property name",
- "arguments": [
- {
- "name": "string",
- "value": "string"
}
]
}Reset password for a customer account
| new_password required | string New password to set for customer account |
| password_reset_code required | string Code sent to the customer as a part of a password reset link, when password reset was initiated |
{- "new_password": "newpassword123*",
- "password_reset_code": "9vbOafxZBKwQZu1rVCBQ0mwTgMWv8IDq"
}{- "code": "ERROR_ILLEGAL_ARGUMENT",
- "message": "Invalid value provided for property name",
- "arguments": [
- {
- "name": "string",
- "value": "string"
}
]
}Check the validity of the password reset code
| password_reset_code required | string Code sent to the customer as a part of a password reset link, when password reset was initiated |
{- "password_reset_code": "9vbOafxZBKwQZu1rVCBQ0mwTgMWv8IDq"
}{- "valid": true,
- "customer_id": "2c9d85b7-e364-4f3d-a32b-10c4ab62f052"
}Log in customer of your organization to their account
| login required | string |
| password required | string |
{- "login": "john-doe-42",
- "password": "password123*"
}{- "account": {
- "customer_id": "2c9d85b7-e364-4f3d-a32b-10c4ab62f052",
- "login": "john-doe-42",
- "first_name": "John",
- "last_name": "Doe",
- "email": "john_doe@example.com",
- "phone_number": {
- "value": "+380 12 345 67 89",
- "messaging_channels_availability": {
- "whats_app": true,
- "viber": false,
- "telegram": true
}
}
}, - "authentication": {
- "token": "bm90aGluZyB0byBzZWUgaGVyZQ",
- "expires_at": 1725185410
}
}Get customer account data
| customer_id required | string <uuid> Example: 2c9d85b7-e364-4f3d-a32b-10c4ab62f052 ID of the customer |
| X-Customer-Authentication | string Example: bm90aGluZyB0byBzZWUgaGVyZQ Token that was returned after customer authentication. Proves that current operation is performed on behalf of that customer |
{- "customer_id": "2c9d85b7-e364-4f3d-a32b-10c4ab62f052",
- "login": "john-doe-42",
- "first_name": "John",
- "last_name": "Doe",
- "email": "john_doe@example.com",
- "phone_number": {
- "value": "+380 12 345 67 89",
- "messaging_channels_availability": {
- "whats_app": true,
- "viber": false,
- "telegram": true
}
}
}Update customer account data
| customer_id required | string <uuid> Example: 2c9d85b7-e364-4f3d-a32b-10c4ab62f052 ID of the customer |
| X-Customer-Authentication | string Example: bm90aGluZyB0byBzZWUgaGVyZQ Token that was returned after customer authentication. Proves that current operation is performed on behalf of that customer |
| login required | string |
| password | string |
| first_name required | string |
| last_name required | string |
| email required | string |
required | object (CustomerPhoneNumber) |
{- "login": "john-doe-42",
- "password": "password123*",
- "first_name": "John",
- "last_name": "Doe",
- "email": "john_doe@example.com",
- "phone_number": {
- "value": "+380 12 345 67 89",
- "messaging_channels_availability": {
- "whats_app": true,
- "viber": false,
- "telegram": true
}
}
}{- "customer_id": "2c9d85b7-e364-4f3d-a32b-10c4ab62f052",
- "login": "john-doe-42",
- "first_name": "John",
- "last_name": "Doe",
- "email": "john_doe@example.com",
- "phone_number": {
- "value": "+380 12 345 67 89",
- "messaging_channels_availability": {
- "whats_app": true,
- "viber": false,
- "telegram": true
}
}
}Search locations by part of name
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
| query required | string >= 2 characters A part of the location name search for |
| limit | integer Default: 20 Limit of elements in response. Default 20. |
{- "query": "Kye",
- "limit": 10
}{- "locations": [
- {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
]
}Get list location by IDs. Used by POST to be able to send a large list of location IDs.
ID of a location
[- 1290
]{- "locations": [
- {
- "id": 1290,
- "name": {
- "default": "Kiev",
- "translations": {
- "uk": "Київ",
- "ru": "Киев",
- "en": "Kiev",
- "cs": "Kyjev"
}
}, - "country_code": "UA",
- "country": {
- "default": "Ukraine",
- "translations": {
- "uk": "Україна",
- "ru": "Украина",
- "en": "Ukraine",
- "cs": "Ukrajina"
}
}, - "region": {
- "uk": "Київська обл.",
- "ru": "Киевская обл.",
- "en": "Kyivska obl."
}, - "type": {
- "uk": "м.",
- "ru": "г.",
- "en": "c."
}, - "timezone_name": "Europe/Kiev"
}
]
}Get list of points by location ID in short form
| location_id required | integer <int64> (LocationId) Example: 1290 ID of a location |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
{- "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}, - "points": [
- {
- "id": 1048592,
- "name": "Troyeshchina (shopping center Festyvalny)",
- "address": "Volodymyra Mayakovskoho Ave 43/2",
- "latitude": 48.858858,
- "longitude": 2.347059
}
]
}Get list location by IDs in short form with localized names. Used by POST to be able to send a large list of location IDs.
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
ID of a location
[- 1290
]{- "locations": [
- {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
]
}Get list points by IDs Used by POST to be able to send a large list of point IDs.
ID of a point
[- 1048592
]{- "points": [
- {
- "id": 1048592,
- "name": {
- "default": "Troyeshchina (shopping center Festyvalny)",
- "translations": {
- "uk": "Зупинка \"Троєщина\" (універсам Фестивальний)",
- "ru": "Остановка \"Троещина\" (универсам Фестивальный)",
- "en": "Troyeshchina (shopping center Festyvalny)",
- "cs": "Troyeshchina (nákupní centrum Festyvalny)"
}
}, - "address": {
- "default": "Volodymyra Mayakovskoho Ave 43/2",
- "translations": {
- "uk": "проспект Володимира Маяковського; будинок 43/2",
- "ru": "проспект Владимира Маяковского; дом 43/2",
- "en": "Volodymyra Mayakovskoho Ave 43/2",
- "cs": "Volodymyra Mayakovskoho Ave 43/2"
}
}, - "location": {
- "id": 1290,
- "name": {
- "default": "Kiev",
- "translations": {
- "uk": "Київ",
- "ru": "Киев",
- "en": "Kiev",
- "cs": "Kyjev"
}
}, - "country_code": "UA",
- "country": {
- "default": "Ukraine",
- "translations": {
- "uk": "Україна",
- "ru": "Украина",
- "en": "Ukraine",
- "cs": "Ukrajina"
}
}, - "region": {
- "uk": "Київська обл.",
- "ru": "Киевская обл.",
- "en": "Kyivska obl."
}, - "type": {
- "uk": "м.",
- "ru": "г.",
- "en": "c."
}, - "timezone_name": "Europe/Kiev"
}, - "latitude": 48.858858,
- "longitude": 2.347059
}
]
}Get list points by IDs in short form with localized names Used by POST to be able to send a large list of point IDs.
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
ID of a point
[- 1048592
]{- "points": [
- {
- "id": 1048592,
- "name": "Troyeshchina (shopping center Festyvalny)",
- "address": "Volodymyra Mayakovskoho Ave 43/2",
- "latitude": 48.858858,
- "longitude": 2.347059,
- "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}
]
}Search for journeys
| include_statutory_discounts | boolean Example: include_statutory_discounts=true specifies if the list of available statutory discounts for every ride should be returned |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
| X-Currency required | string Example: gbp The currency that will be used when including prices in response |
| X-Client | string Example: ims-frontend The client that is making the request. |
required | object (JourneySearchRequestedPath) Requested journey origin and destination |
| departure_date required | string <date> Desired departure date |
| return_date | string <date> Desired return date for round trip |
| date_flexibility | integer [ 1 .. 3 ] The number of days before and after the specified departure/return date that should also be checked for available journeys. If not specified, journeys will only be searched for on the specified date. |
| passenger_count | integer >= 1 Default: 1 Number of passengers |
| customer_id | string <uuid> ID of the customer for whom this journey search is performed |
{- "path": {
- "type": "LOCATION_TO_LOCATION",
- "origin_location_id": 1290,
- "destination_location_id": 70012
}, - "departure_date": "2022-07-15",
- "return_date": "2022-07-16",
- "date_flexibility": 2,
- "passenger_count": 2,
- "customer_id": "2c9d85b7-e364-4f3d-a32b-10c4ab62f052"
}{- "journeys": [
- {
- "id": "arbitrarystring",
- "rides": [
- {
- "id": "arbitrarystring",
- "departure": {
- "date_time": "2022-07-20T10:00:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}
}, - "arrival": {
- "date_time": "string",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}
}, - "duration": "PT7H30M",
- "ticket_pricing": {
- "currency_code": "UAH",
- "base_ticket_price": 42.5,
- "ticket_price_with_automatic_discount": 39.1,
- "ticket_automatic_discount_percentage": 8,
- "automatic_discount": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "percentage": 15,
- "value": {
- "type": "PERCENTAGE",
- "percentage": 15
}, - "ticket_price_with_discount": 39,
- "category": {
- "name": "PERIOD",
- "available_from": "2026-06-01T00:00:00Z",
- "available_until": "2026-07-01T00:00:00Z"
}
}, - "statutory_discounts": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "percentage": 15,
- "value": {
- "type": "PERCENTAGE",
- "percentage": 15
}, - "ticket_price_with_discount": 39,
- "category": {
- "name": "PERIOD",
- "available_from": "2026-06-01T00:00:00Z",
- "available_until": "2026-07-01T00:00:00Z"
}
}
], - "luggage_fee": {
- "fee": 42.5,
- "max_count": 4
}
}, - "booking": {
- "available_seat_count": 3,
- "seat_number_selection_allowed": true,
- "detailed_passenger_information_required": true,
- "refund_rule_descriptions": [
- "72 hours and more before departure - 90% of the ticket cost",
- "between 24 and 72 hours before departure - 80% of the ticket cost",
- "less than 24 hours before departure - 30% of the ticket cost"
], - "sales_closing_planned_at": "2025-10-21T17:30:00Z"
}, - "boarding": {
- "printed_ticket_required": true
}, - "carrier": {
- "id": "e772bc74-973d-4f3d-8467-3579b82756fe",
- "name": "Brilliant rides",
- "legal_identifier": "20077720"
}, - "branding": {
- "brand_name": "Blackbus"
}, - "bus_line": {
- "id": "2406b198-4df1-6c66-91ee-782920ca7d0b",
- "number": "4242",
- "name": "Dnipro - Kharkiv"
}, - "bus": {
- "id": "2406b198-6c66-4df1-91ee-83ca7d29200b",
- "name": "NEOPLAN SHD, DA/38",
- "seat_count": 38,
- "amenities": [
- "COFFEE_TEA",
- "WIFI",
- "WC"
]
}, - "bus_change": {
- "point_id": 1048592,
- "point_name": "Bus stop 15",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "date_time": "2022-07-15T15:30:00",
- "duration": "PT30M"
}, - "note": "string",
- "direction": "OUTBOUND"
}
], - "allowed_operations": {
- "purchase_allowed": true,
- "book_allowed": false,
- "book_with_payment_at_boarding_allowed": false
}
}
]
}Returns details of journey
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
| X-Currency required | string Example: gbp The currency that will be used when including prices in response |
| X-Client | string Example: ims-frontend The client that is making the request. |
| id required | string Journey ID |
| passengers_size | integer Deprecated Number of passengers in journey. Deprecated, use |
| passenger_count | integer >= 1 Default: 1 Number of passengers |
| customer_id | string <uuid> ID of the customer for whom this journey is considered |
{- "id": "YjgxYTc2YmYtZjgxYi00YTI5LTkxY2MtNzVlOTdlOTZkNjQ2OjExNzA4MzQ6MTQwNDk2OQ==",
- "passengers_size": 3,
- "passenger_count": 2,
- "customer_id": "2c9d85b7-e364-4f3d-a32b-10c4ab62f052"
}{- "id": "YjgxYTc2YmYtZjgxYi00YTI5LTkxY2MtNzVlOTdlOTZkNjQ2OjExNzA4MzQ6MTQwNDk2OQ==",
- "rides": [
- {
- "id": "YjgxYTc2YmYtZjgxYi00YTI5LTkxY2MtNzVlOTdlOTZkNjQ2OjExNzA4MzQ6MTQwNDk2OQ==",
- "departure": {
- "date_time": "2022-07-20T10:00:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "bus_arrival_date_time": "string"
}, - "arrival": {
- "date_time": "string",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}
}, - "duration": "PT7H30M",
- "ticket_pricing": {
- "currency_code": "UAH",
- "base_ticket_price": 42.5,
- "ticket_price_with_automatic_discount": 39.1,
- "automatic_discount": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "percentage": 15,
- "value": {
- "type": "PERCENTAGE",
- "percentage": 15
}, - "ticket_price_with_discount": 39,
- "category": {
- "name": "PERIOD",
- "available_from": "2026-06-01T00:00:00Z",
- "available_until": "2026-07-01T00:00:00Z"
}
}, - "available_discounts": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "percentage": 15,
- "value": {
- "type": "PERCENTAGE",
- "percentage": 15
}, - "ticket_price_with_discount": 39,
- "category": {
- "name": "PERIOD",
- "available_from": "2026-06-01T00:00:00Z",
- "available_until": "2026-07-01T00:00:00Z"
}
}
], - "luggage_fee": {
- "fee": 42.5,
- "max_count": 4
}, - "allow_custom_ticket_price": true
}, - "booking": {
- "available_seat_count": 3,
- "seat_number_selection_allowed": true,
- "detailed_passenger_information_required": true,
- "refund_rule_descriptions": [
- "72 hours and more before departure - 90% of the ticket cost",
- "between 24 and 72 hours before departure - 80% of the ticket cost",
- "less than 24 hours before departure - 30% of the ticket cost"
], - "sales_closing_planned_at": "2025-10-21T17:30:00Z",
- "available_seat_numbers": [
- 5,
- 10,
- 16
], - "refund_rules": [
- {
- "time_point": "-PT6H",
- "percent": 50,
- "ticket_price_to_refund": 36.22
}
]
}, - "boarding": {
- "printed_ticket_required": true,
- "ees_passenger_verification_required": true
}, - "carrier": {
- "id": "e772bc74-973d-4f3d-8467-3579b82756fe",
- "name": "Brilliant rides",
- "legal_identifier": "20077720",
- "city": "Kyiv",
- "address": "Peremogi str, 24-B, office 33",
- "phone": "+380 (44) 345 2615; +380 (44) 345 2616"
}, - "insurer": {
- "id": "0b31b6e0-837e-4c1f-a364-7cd365bbfcbe",
- "name": "PAT European Insurer Aliance",
- "address": "m. Kyiv,vul. Hlybochytska, 33-37",
- "phone": "+38(044) 353-53-53; +38(067) 353-53-53"
}, - "bus_line": {
- "id": "2406b198-4df1-6c66-91ee-782920ca7d0b",
- "number": "4242",
- "name": "Dnipro - Kharkiv",
- "luggage_rules": "Free in the cabin: two carry-on luggage with a size of 20 x 30 x 40 cm weighing up to 5kg. Free in luggage compartment: one luggage up to 30 x 60 x 80 cm in size and weighing up to 25 kg. For extra charge: Other luggage, if space is available in the luggage compartment."
}, - "bus": {
- "id": "2406b198-6c66-4df1-91ee-83ca7d29200b",
- "name": "NEOPLAN SHD, DA/38",
- "seat_count": 38,
- "amenities": [
- "COFFEE_TEA",
- "WIFI",
- "WC"
], - "seat_map": {
- "floors": [
- {
- "rows": [
- [
- {
- "type": "SEAT",
- "seat_number": 1
}, - {
- "type": "SEAT",
- "seat_number": 2
}, - {
- "type": "AISLE"
}, - {
- "type": "ENTRY"
}
], - [
- {
- "type": "SEAT",
- "seat_number": 3
}, - {
- "type": "SEAT",
- "seat_number": 4
}, - {
- "type": "AISLE"
}, - {
- "type": "SEAT",
- "seat_number": 5
}
]
]
}
]
}
}, - "note": "string",
- "trip": {
- "stops": [
- {
- "departure_date_time": "2022-07-20T10:00:00",
- "arrival_date_time": "2022-07-20T10:00:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "bus_changed": true,
- "bus_change_duration": "PT30M"
}
]
}, - "direction": "OUTBOUND"
}
], - "allowed_operations": {
- "purchase_allowed": true,
- "book_allowed": false,
- "book_with_payment_at_boarding_allowed": false
}, - "ordering": {
- "passenger_data_requirements": {
- "reasons": {
- "ees_passenger_verification_required": true
}, - "breakdown": {
- "first_name": {
- "requirement_level": "RECOMMENDED"
}, - "last_name": {
- "requirement_level": "RECOMMENDED"
}, - "birthdate": {
- "requirement_level": "RECOMMENDED"
}, - "citizenship": {
- "requirement_level": "RECOMMENDED"
}, - "gender": {
- "requirement_level": "RECOMMENDED"
}, - "document": {
- "type": {
- "requirement_level": "RECOMMENDED",
- "acceptable_values": [
- "PASSPORT",
- "TRAVEL_PASSPORT",
- "MILITARY_ID"
]
}, - "number": {
- "requirement_level": "RECOMMENDED"
}, - "issuing_country": {
- "requirement_level": "RECOMMENDED"
}, - "expiration_date": {
- "requirement_level": "RECOMMENDED"
}
}
}
}
}
}Returns all available axes for journeys. Available axes include all possible connections from stop point id to stop point id and from location id to location id, with separate summary descriptions for all stop points and locations that occur in the axes.
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
| X-Currency | string Example: gbp The currency that will be used when including prices in response |
| X-Client | string Example: ims-frontend The client that is making the request. |
{- "point_axes": [
- {
- "departure_point_id": 1048592,
- "arrival_point_ids": [
- 1650019,
- 1147984,
- 1173864,
- 1161581,
- 1138490
]
}
], - "location_axes": [
- {
- "departure_location_id": 1290,
- "arrival_location_ids": [
- 1324,
- 1730,
- 1429,
- 1425,
- 1291
]
}
], - "points": [
- {
- "id": 1048592,
- "location_id": 1290,
- "name": "Kyiv Bus station",
- "address": "Tarasa Shevchenka square 2",
- "latitude": 48.858858,
- "longitude": 2.347059
}
], - "locations": [
- {
- "id": 1290,
- "name": "Kyiv",
- "region": "Kyivska obl.",
- "country_code": "UA",
- "country": "Ukraine"
}
]
}Search for available journeys in scope of the specified bus line
| bus_line_id required | string <uuid> Bus line ID |
required | object (JourneySearchRequestedPointToPointPath) Request journey origin and destination points |
| departure_date required | string <local-date> Date of departure from origin point |
{- "bus_line_id": "c87499fc-5bc2-4314-87d9-d001ff07684a",
- "path": {
- "type": "LOCATION_TO_LOCATION",
- "origin_location_id": 1290,
- "destination_location_id": 70012,
- "origin_point_id": 1048592,
- "destination_point_id": 1048592
}, - "departure_date": "string"
}{- "journeys": [
- {
- "id": "YjgxYTc2YmYtZjgxYi00YTI5LTkxY2MtNzVlOTdlOTZkNjQ2OjExNzA4MzQ6MTQwNDk2OQ=="
}
]
}Create new order
| order_id required | string <uuid> Example: 7aed543e-2ab8-4ed5-af43-f116eb47207c |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
| X-Client | string Example: ims-frontend The client that is making the request. |
| create_mode required | string Enum: "PURCHASE" "BOOK" "RESERVE" "BOOK_WITH_PAYMENT_AT_BOARDING" Mode that should be used to create the order
Available modes depend on the
|
| currency_code required | string ISO 4217 alpha-3 currency code of this order |
| journey_id required | string ID of journey from a search result |
required | Array of objects (CreateOrderRequestItem) non-empty List of passengers and their places for all journey rides. |
| cashless_payment | boolean Whether the order have been paid using cashless method. Can be specified only with 'create_mode' = |
| reservation_hold_time | string Time during which seats will be reserved before payment confirmation or automatic cancellation of the order. Can be specified only with 'create_mode' = |
| customer_id | string <uuid> ID of the customer of your organization for whom this order is created |
{- "create_mode": "RESERVE",
- "currency_code": "EUR",
- "journey_id": "ZGlyZWN0fDF8OTI5MTU4fDExMzY4OTR8OGJlYjA4ZmMtZjcyYS00MjczLTgyNmEtZjJkMzU4MzBmNGRj",
- "order_items": [
- {
- "passenger": {
- "first_name": "John",
- "last_name": "Smith",
- "phone_number": "+38(099) 123-21-12",
- "email": "john.smith@blackbus.com",
- "birthdate": "2020-11-21",
- "citizenship": "UA",
- "gender": "MALE",
- "document": {
- "type": "PASSPORT",
- "number": "AK 122302",
- "issuing_country": "UA",
- "expiration_date": "2025-12-31"
}
}, - "rides": [
- {
- "ride_id": "cb6ae339-a393-451b-a7b9-5ea5574b0233-236476-23812",
- "seat_number": 20,
- "discount": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "document": {
- "type": "PASSPORT",
- "number": "AK 122302"
}
}, - "note": "Arbitrary string",
- "custom_ticket_price": 56.5,
- "luggage_count": 2
}
]
}
], - "cashless_payment": false,
- "reservation_hold_time": "PT30M",
- "customer_id": "6ef93320-28ad-4a1f-9aed-479e28fa567f"
}{- "id": "7aed543e-2ab8-4ed5-af43-f116eb47207c",
- "number": "1231",
- "creation_details": {
- "create_mode": "PURCHASE",
- "created_by": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Adam Smith"
}, - "organization": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co.",
- "support_contacts": {
- "phone_numbers": [
- {
- "phone": "+380 (50) 123-4567",
- "has_viber": true,
- "has_whatsapp": true,
- "has_telegram": true
}
], - "emails": [
- "contact@blackbus.com"
]
}
}, - "created_at": "2022-01-01T11:11:11Z",
- "locale": "uk"
}, - "payment_details": {
- "organization_received_payment": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co."
}, - "payment_confirmed_by": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Adam Smith"
}, - "cashless_payment": false,
- "paid_at": "2022-01-01T11:13:23Z",
- "has_tickets_paid_separately": false
}, - "cancellation_details": {
- "reason": "REQUEST",
- "cancelled_at": "2022-01-01T11:11:11Z"
}, - "reissued_from": {
- "order_id": "30d2e016-8592-43fc-9302-25ee857b144c",
- "order_number": "23564"
}, - "reissue_details": {
- "reissued_to": {
- "order_number": "23527",
- "order_id": "a4b585e7-fd03-4c4d-ab6c-4a2ba62ff8c2"
}, - "kept_original_price": false
}, - "reservation_expires_at": "2022-07-21T17:32:28Z",
- "booking_expires_at": "2022-07-21T17:32:28Z",
- "price": {
- "currency_code": "UAH",
- "currency_symbol": "₴",
- "amount": 503.99
}, - "customer": {
- "id": "a171b444-c6ba-4047-ae49-01c6309f206a",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "johndoe@gmail.com",
- "phone_numbers": [
- "+380 12 345 67 89",
- "380-98-765-43-21"
]
}, - "allowed_operations": [
- "CANCELLATION"
], - "available_operations": {
- "cancel": true,
- "confirm_payment": false,
- "reissue": {
- "available": true,
- "ticket_ids_to_reissue": [
- "92d9acb4-2daa-49c9-b193-bea48eb54fc9"
]
}
}, - "tickets": [
- {
- "id": "92d9acb4-2daa-49c9-b193-bea48eb54fc9",
- "order_id": "7aed543e-2ab8-4ed5-af43-f116eb47207c",
- "number": "6548732",
- "created_by_organization": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Blackbus",
- "legal_identifier": "20077720"
}, - "status_details": {
- "status": "RESERVED",
- "name": "Booked",
- "assigned_at": "2022-07-20T10:00:00Z"
}, - "departure": {
- "departure_date_time": "2022-07-20T10:00:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "arrival": {
- "arrival_date_time": "2022-07-21T04:30:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "route_details": {
- "bus_changes": [
- {
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "date_time": "2022-07-15T15:30:00",
- "duration": "PT30M"
}
]
}, - "passenger": {
- "first_name": "John",
- "last_name": "Smith",
- "phone_number": "+38(099) 123-21-12",
- "email": "john.smith@blackbus.com",
- "birthdate": "2020-11-21",
- "citizenship": "UA",
- "gender": "MALE",
- "document": {
- "type": "PASSPORT",
- "number": "AK 122302",
- "issuing_country": "UA",
- "expiration_date": "2025-12-31"
}, - "discount_document": {
- "type": "PASSPORT",
- "number": "AK 122302"
}
}, - "seat": {
- "with_seat_number": false,
- "seat_number": 0,
- "seat_number_text": "To a free seat"
}, - "bus_line": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "number": "4242",
- "name": "Dnipro - Kharkiv",
- "type": "INTERCITY"
}, - "trip": {
- "id": "cb6ae339-a393-451b-a7b9-5ea5574b0233",
- "departure_date_time": "2022-07-19T22:30:00",
- "printed_ticket_required_for_boarding": true,
- "note": "string"
}, - "bus": {
- "id": "f24e4332-099a-4e2e-8bd4-c98773776419",
- "model_name": "NEOPLAN SHD, DA/38",
- "seat_count": 38,
- "registration_number": "AA9988CO"
}, - "carrier": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Carrier",
- "legal_identifier": "20077720",
- "contact_info": {
- "city": "Kharkiv city",
- "address": "Gagaryna street, 24-B, office 33",
- "phone": "+38(066) 345 26 15; +38(099) 657-46-32"
}
}, - "insurer": {
- "id": "0b31b6e0-837e-4c1f-a364-7cd365bbfcbe",
- "name": "PAT European Insurer Aliance",
- "address": "m. Kyiv,vul. Hlybochytska, 33-37",
- "phone": "+38(044) 353-53-53; +38(067) 353-53-53",
- "insurance_contract": {
- "number": "IC-1234567890",
- "sign_date": "2022-01-01",
- "passenger_liability_coverage_limit": 300000,
- "luggage_liability_coverage_limit": 2000,
- "currency_code": "UAH"
}
}, - "inventory_source": {
- "organization": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Blackbus",
- "legal_identifier": "20077720"
}, - "contract": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "number": "32",
- "sign_date": "2019-01-01",
- "start_date_time": "2019-01-01T11:11:11Z",
- "end_date_time": "2019-01-01T11:11:11Z"
}
}, - "price_details": {
- "price": 40,
- "fare": 40,
- "type": "FULL",
- "discount": {
- "category": {
- "name": "PERIOD",
- "available_from": "2026-06-01T00:00:00Z",
- "available_until": "2026-07-01T00:00:00Z"
}, - "name": "string",
- "value_type": "PERCENTAGE",
- "percentage": 20,
- "amount": 10
}, - "luggage": {
- "fee": 42,
- "count": 4,
- "total_amount": 168
}, - "currency_code": "UAH"
}, - "price_breakdown": {
- "vat_total": 7,
- "components": [
- {
- "type": "FARE",
- "amount": 42,
- "vat_rate": 20,
- "vat": 7
}
]
}, - "payment_details": {
- "organization_collected_payment": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co."
}, - "payment_confirmed_by": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Adam Smith"
}, - "paid_at": "2022-01-01T11:13:23Z"
}, - "refund_request": {
- "reason": "TRIP_DELAY",
- "registered_at": "2019-08-24T14:15:22Z",
- "note": "The bus was scheduled for 10:00 but was cancelled. As per your T&C, passengers are entitled to a refund"
}, - "refund_details": {
- "used_refund_option": {
- "refund_type": "BY_RULE",
- "name": "50%",
- "amount_to_refund": 580,
- "amount_to_withhold": 580,
- "percentage_to_refund": 50,
- "rule_time_point": "-PT6H"
}, - "organization": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co."
}, - "refunded_at": "2022-01-01T11:11:11Z",
- "non_refundable_sales_commission": false
}, - "refund_rules": {
- "description": [
- "from 72 h and more before departure - 75% of the cost of ticket",
- "from 24 h to 72 h before departure - 50% of the cost of ticket",
- "from 12 h to 24 h before departure - 25% of the cost of ticket",
- "less 12 h before departure - ticket costs are not refundable"
]
}, - "luggage_rules": "You may have only one 30kg bag",
- "reissued_from": {
- "ticket_id": "595be628-f6f2-4262-9c10-6389c6c4a5b8",
- "ticket_number": "string"
}, - "reissue_details": {
- "reissued_to": {
- "ticket_id": "595be628-f6f2-4262-9c10-6389c6c4a5b8",
- "ticket_number": "string"
}, - "status_before_reissue": {
- "status": "PAID",
- "name": "Paid"
}
}, - "branding": {
- "organization": {
- "name": "Black Bus Inc.",
- "brand_name": "Blackbus",
- "legal_identifier": "20077720",
- "legal_address": "Kyiv, Nezalezhnosti St 20",
- "bank_requisites": "PrivatBank, IBAN: 14095614980756, 958724",
- "logo_data": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0"
}, - "support_contacts": {
- "phone_numbers": [
- {
- "phone": "+380 (50) 123-4567",
- "has_viber": true,
- "has_whatsapp": true,
- "has_telegram": true
}
], - "emails": [
- "contact@blackbus.com"
]
}
}, - "qr_code": {
- "data": "string",
- "media_type": "image/png",
- "text": "{tkt:\"92d9acb4-2daa-49c9-b193-bea48eb54fc9\", \"trip\":\"9cc3e801-6c5e-4450-9296-c1cf7b502bf7\"}"
}, - "available_operations": {
- "refund": true,
- "amend_refund": false,
- "edit_passenger": false,
- "get_pdf": false,
- "cancellation": false,
- "edit_note": false,
- "reissue": false,
- "cancel_refund": true
}, - "note": "string"
}
]
}Get an order
| order_id required | string <uuid> Example: 7aed543e-2ab8-4ed5-af43-f116eb47207c |
| ticket_id | string <uuid> Deprecated Example: ticket_id=9950e86b-024a-4dcf-9276-8e1c5e6e240f If this parameter is specified then the response contains data only for the given ticket ID. Deprecated. |
| include_tickets | boolean Default: true Example: include_tickets=false If this parameter is |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
{- "id": "7aed543e-2ab8-4ed5-af43-f116eb47207c",
- "number": "1231",
- "creation_details": {
- "create_mode": "PURCHASE",
- "created_by": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Adam Smith"
}, - "organization": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co.",
- "support_contacts": {
- "phone_numbers": [
- {
- "phone": "+380 (50) 123-4567",
- "has_viber": true,
- "has_whatsapp": true,
- "has_telegram": true
}
], - "emails": [
- "contact@blackbus.com"
]
}
}, - "created_at": "2022-01-01T11:11:11Z",
- "locale": "uk"
}, - "payment_details": {
- "organization_received_payment": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co."
}, - "payment_confirmed_by": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Adam Smith"
}, - "cashless_payment": false,
- "paid_at": "2022-01-01T11:13:23Z",
- "has_tickets_paid_separately": false
}, - "cancellation_details": {
- "reason": "REQUEST",
- "cancelled_at": "2022-01-01T11:11:11Z"
}, - "reissued_from": {
- "order_id": "30d2e016-8592-43fc-9302-25ee857b144c",
- "order_number": "23564"
}, - "reissue_details": {
- "reissued_to": {
- "order_number": "23527",
- "order_id": "a4b585e7-fd03-4c4d-ab6c-4a2ba62ff8c2"
}, - "kept_original_price": false
}, - "reservation_expires_at": "2022-07-21T17:32:28Z",
- "booking_expires_at": "2022-07-21T17:32:28Z",
- "price": {
- "currency_code": "UAH",
- "currency_symbol": "₴",
- "amount": 503.99
}, - "customer": {
- "id": "a171b444-c6ba-4047-ae49-01c6309f206a",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "johndoe@gmail.com",
- "phone_numbers": [
- "+380 12 345 67 89",
- "380-98-765-43-21"
]
}, - "allowed_operations": [
- "CANCELLATION"
], - "available_operations": {
- "cancel": true,
- "confirm_payment": false,
- "reissue": {
- "available": true,
- "ticket_ids_to_reissue": [
- "92d9acb4-2daa-49c9-b193-bea48eb54fc9"
]
}
}, - "tickets": [
- {
- "id": "92d9acb4-2daa-49c9-b193-bea48eb54fc9",
- "order_id": "7aed543e-2ab8-4ed5-af43-f116eb47207c",
- "number": "6548732",
- "created_by_organization": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Blackbus",
- "legal_identifier": "20077720"
}, - "status_details": {
- "status": "RESERVED",
- "name": "Booked",
- "assigned_at": "2022-07-20T10:00:00Z"
}, - "departure": {
- "departure_date_time": "2022-07-20T10:00:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "arrival": {
- "arrival_date_time": "2022-07-21T04:30:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "route_details": {
- "bus_changes": [
- {
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "date_time": "2022-07-15T15:30:00",
- "duration": "PT30M"
}
]
}, - "passenger": {
- "first_name": "John",
- "last_name": "Smith",
- "phone_number": "+38(099) 123-21-12",
- "email": "john.smith@blackbus.com",
- "birthdate": "2020-11-21",
- "citizenship": "UA",
- "gender": "MALE",
- "document": {
- "type": "PASSPORT",
- "number": "AK 122302",
- "issuing_country": "UA",
- "expiration_date": "2025-12-31"
}, - "discount_document": {
- "type": "PASSPORT",
- "number": "AK 122302"
}
}, - "seat": {
- "with_seat_number": false,
- "seat_number": 0,
- "seat_number_text": "To a free seat"
}, - "bus_line": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "number": "4242",
- "name": "Dnipro - Kharkiv",
- "type": "INTERCITY"
}, - "trip": {
- "id": "cb6ae339-a393-451b-a7b9-5ea5574b0233",
- "departure_date_time": "2022-07-19T22:30:00",
- "printed_ticket_required_for_boarding": true,
- "note": "string"
}, - "bus": {
- "id": "f24e4332-099a-4e2e-8bd4-c98773776419",
- "model_name": "NEOPLAN SHD, DA/38",
- "seat_count": 38,
- "registration_number": "AA9988CO"
}, - "carrier": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Carrier",
- "legal_identifier": "20077720",
- "contact_info": {
- "city": "Kharkiv city",
- "address": "Gagaryna street, 24-B, office 33",
- "phone": "+38(066) 345 26 15; +38(099) 657-46-32"
}
}, - "insurer": {
- "id": "0b31b6e0-837e-4c1f-a364-7cd365bbfcbe",
- "name": "PAT European Insurer Aliance",
- "address": "m. Kyiv,vul. Hlybochytska, 33-37",
- "phone": "+38(044) 353-53-53; +38(067) 353-53-53",
- "insurance_contract": {
- "number": "IC-1234567890",
- "sign_date": "2022-01-01",
- "passenger_liability_coverage_limit": 300000,
- "luggage_liability_coverage_limit": 2000,
- "currency_code": "UAH"
}
}, - "inventory_source": {
- "organization": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Blackbus",
- "legal_identifier": "20077720"
}, - "contract": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "number": "32",
- "sign_date": "2019-01-01",
- "start_date_time": "2019-01-01T11:11:11Z",
- "end_date_time": "2019-01-01T11:11:11Z"
}
}, - "price_details": {
- "price": 40,
- "fare": 40,
- "type": "FULL",
- "discount": {
- "category": {
- "name": "PERIOD",
- "available_from": "2026-06-01T00:00:00Z",
- "available_until": "2026-07-01T00:00:00Z"
}, - "name": "string",
- "value_type": "PERCENTAGE",
- "percentage": 20,
- "amount": 10
}, - "luggage": {
- "fee": 42,
- "count": 4,
- "total_amount": 168
}, - "currency_code": "UAH"
}, - "price_breakdown": {
- "vat_total": 7,
- "components": [
- {
- "type": "FARE",
- "amount": 42,
- "vat_rate": 20,
- "vat": 7
}
]
}, - "payment_details": {
- "organization_collected_payment": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co."
}, - "payment_confirmed_by": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Adam Smith"
}, - "paid_at": "2022-01-01T11:13:23Z"
}, - "refund_request": {
- "reason": "TRIP_DELAY",
- "registered_at": "2019-08-24T14:15:22Z",
- "note": "The bus was scheduled for 10:00 but was cancelled. As per your T&C, passengers are entitled to a refund"
}, - "refund_details": {
- "used_refund_option": {
- "refund_type": "BY_RULE",
- "name": "50%",
- "amount_to_refund": 580,
- "amount_to_withhold": 580,
- "percentage_to_refund": 50,
- "rule_time_point": "-PT6H"
}, - "organization": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co."
}, - "refunded_at": "2022-01-01T11:11:11Z",
- "non_refundable_sales_commission": false
}, - "refund_rules": {
- "description": [
- "from 72 h and more before departure - 75% of the cost of ticket",
- "from 24 h to 72 h before departure - 50% of the cost of ticket",
- "from 12 h to 24 h before departure - 25% of the cost of ticket",
- "less 12 h before departure - ticket costs are not refundable"
]
}, - "luggage_rules": "You may have only one 30kg bag",
- "reissued_from": {
- "ticket_id": "595be628-f6f2-4262-9c10-6389c6c4a5b8",
- "ticket_number": "string"
}, - "reissue_details": {
- "reissued_to": {
- "ticket_id": "595be628-f6f2-4262-9c10-6389c6c4a5b8",
- "ticket_number": "string"
}, - "status_before_reissue": {
- "status": "PAID",
- "name": "Paid"
}
}, - "branding": {
- "organization": {
- "name": "Black Bus Inc.",
- "brand_name": "Blackbus",
- "legal_identifier": "20077720",
- "legal_address": "Kyiv, Nezalezhnosti St 20",
- "bank_requisites": "PrivatBank, IBAN: 14095614980756, 958724",
- "logo_data": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0"
}, - "support_contacts": {
- "phone_numbers": [
- {
- "phone": "+380 (50) 123-4567",
- "has_viber": true,
- "has_whatsapp": true,
- "has_telegram": true
}
], - "emails": [
- "contact@blackbus.com"
]
}
}, - "qr_code": {
- "data": "string",
- "media_type": "image/png",
- "text": "{tkt:\"92d9acb4-2daa-49c9-b193-bea48eb54fc9\", \"trip\":\"9cc3e801-6c5e-4450-9296-c1cf7b502bf7\"}"
}, - "available_operations": {
- "refund": true,
- "amend_refund": false,
- "edit_passenger": false,
- "get_pdf": false,
- "cancellation": false,
- "edit_note": false,
- "reissue": false,
- "cancel_refund": true
}, - "note": "string"
}
]
}Confirm payment for a previously booked or reserved order
| order_id required | string <uuid> Example: 7aed543e-2ab8-4ed5-af43-f116eb47207c |
| cashless_payment required | boolean Whether the order have been paid using cashless method. |
{- "cashless_payment": false
}{- "code": "BAD_REQUEST",
- "message": "Request was specified incorrectly. Please check."
}Cancel order. All tickets will be cancelled. Paid orders can be cancelled within a limited time window after payment confirmation or order creation to cancel an erroneous purchase operation.
| order_id required | string <uuid> Example: 7aed543e-2ab8-4ed5-af43-f116eb47207c |
{- "order": {
- "id": "af6aa551-2802-4075-b4e3-21acd1995ce8",
- "number": "34123"
}, - "tickets": [
- {
- "id": "f9fe17de-3ce6-4826-bf3d-842312b6f78e",
- "number": "1234"
}, - {
- "id": "574e5d00-b158-488b-a60f-017dbdd0d05e",
- "number": "1235"
}
]
}Get a PDF document with ticket printed forms of the order. If specified the ticket_id parameter then a response contains a print form only for this ticket. Deprecated: use /orders/{order_id}/tickets/printout/pdf instead
| order_id required | string <uuid> Example: 7aed543e-2ab8-4ed5-af43-f116eb47207c |
| ticket_id | string <uuid> Example: ticket_id=9950e86b-024a-4dcf-9276-8e1c5e6e240f If this parameter is specified then the response contains data only for the given ticket ID. |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
{- "code": "BAD_REQUEST",
- "message": "Request was specified incorrectly. Please check."
}Get a PDF document with ticket printed forms of the order. If specified the ticket_id parameter then a response contains a print form only for this ticket.
| order_id required | string <uuid> Example: 7aed543e-2ab8-4ed5-af43-f116eb47207c |
| ticket_id | string <uuid> Example: ticket_id=9950e86b-024a-4dcf-9276-8e1c5e6e240f If this parameter is specified then the response contains data only for the given ticket ID. |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
{- "code": "BAD_REQUEST",
- "message": "Request was specified incorrectly. Please check."
}Get options that can be used to refund ticket
| order_id required | string <uuid> Example: 7aed543e-2ab8-4ed5-af43-f116eb47207c |
| ticket_id required | string <uuid> Example: 92d9acb4-2daa-49c9-b193-bea48eb54fc9 |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
{- "options": [
- {
- "refund_type": "BY_RULE",
- "name": "50%",
- "amount_to_refund": 580,
- "amount_to_withhold": 580,
- "percentage_to_refund": 50,
- "rule_time_point": "-PT6H"
}, - {
- "refund_type": "FULL",
- "name": "Full",
- "amount_to_refund": 1160,
- "amount_to_withhold": 0,
- "percentage_to_refund": 100
}
]
}Refund specified ticket
| order_id required | string <uuid> Example: 7aed543e-2ab8-4ed5-af43-f116eb47207c |
| ticket_id required | string <uuid> Example: 92d9acb4-2daa-49c9-b193-bea48eb54fc9 |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
| refund_type required | string Enum: "BY_RULE" "FULL" "BLOCKED_TRIP" "CUSTOM" The type of the refund which will be used for the refund operation. |
| percentage_to_refund | number Percentage to be return by rule. Specified for refund type BY_RULE. Should be from one of available refund options. |
| enforce_refund | boolean Whether requesting refund with specified refund type that is not available in the refund options list. It is not guaranteed that request will be performed |
| non_refundable_sales_commission | boolean Whether agent commission should be taken first. Applicable only for BlaBlaCar-affiliated agents |
{- "refund_type": "BY_RULE",
- "percentage_to_refund": 50,
- "enforce_refund": false,
- "non_refundable_sales_commission": false
}{- "ticket_id": "92d9acb4-2daa-49c9-b193-bea48eb54fc9",
- "ticket_number": "6548732",
- "ticket_price": 250.5,
- "currency_code": "UAH",
- "ticket_created_at": "2022-01-01T11:11:11Z",
- "ticket_refunded_at": "2022-01-02T10:05:11Z",
- "departure": {
- "departure_date_time": "2022-07-20T10:00:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "arrival": {
- "arrival_date_time": "2022-07-21T04:30:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "passenger": {
- "first_name": "John",
- "last_name": "Smith",
- "phone_number": "+38(099) 123-21-12",
- "email": "john.smith@blackbus.com",
- "birthdate": "2020-11-21",
- "citizenship": "UA",
- "gender": "MALE",
- "document": {
- "type": "PASSPORT",
- "number": "AK 122302",
- "issuing_country": "UA",
- "expiration_date": "2025-12-31"
}, - "discount_document": {
- "type": "PASSPORT",
- "number": "AK 122302"
}
}, - "seat": {
- "with_seat_number": false,
- "seat_number": 0,
- "seat_number_text": "To a free seat"
}, - "bus": {
- "id": "f24e4332-099a-4e2e-8bd4-c98773776419",
- "model_name": "NEOPLAN SHD, DA/38",
- "seat_count": 38,
- "registration_number": "AA9988CO"
}, - "bus_line": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "number": "4242",
- "name": "Dnipro - Kharkiv",
- "type": "INTERCITY"
}, - "trip": {
- "id": "cb6ae339-a393-451b-a7b9-5ea5574b0233",
- "departure_date_time": "2022-07-19T22:30:00",
- "printed_ticket_required_for_boarding": true,
- "note": "string"
}, - "carrier": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Carrier",
- "legal_identifier": "20077720",
- "contact_info": {
- "city": "Kharkiv city",
- "address": "Gagaryna street, 24-B, office 33",
- "phone": "+38(066) 345 26 15; +38(099) 657-46-32"
}
}, - "insurer": {
- "id": "0b31b6e0-837e-4c1f-a364-7cd365bbfcbe",
- "name": "PAT European Insurer Aliance",
- "address": "m. Kyiv,vul. Hlybochytska, 33-37",
- "phone": "+38(044) 353-53-53; +38(067) 353-53-53",
- "insurance_contract": {
- "number": "IC-1234567890",
- "sign_date": "2022-01-01",
- "passenger_liability_coverage_limit": 300000,
- "luggage_liability_coverage_limit": 2000,
- "currency_code": "UAH"
}
}, - "inventory_source": {
- "organization": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Blackbus",
- "legal_identifier": "20077720"
}, - "contract": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "number": "32",
- "sign_date": "2019-01-01",
- "start_date_time": "2019-01-01T11:11:11Z",
- "end_date_time": "2019-01-01T11:11:11Z"
}
}, - "branding": {
- "organization": {
- "name": "Black Bus Inc.",
- "brand_name": "Blackbus",
- "legal_identifier": "20077720",
- "legal_address": "Kyiv, Nezalezhnosti St 20",
- "bank_requisites": "PrivatBank, IBAN: 14095614980756, 958724",
- "logo_data": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0"
}, - "support_contacts": {
- "phone_numbers": [
- {
- "phone": "+380 (50) 123-4567",
- "has_viber": true,
- "has_whatsapp": true,
- "has_telegram": true
}
], - "emails": [
- "contact@blackbus.com"
]
}
}, - "qr_code": {
- "data": "string",
- "media_type": "image/png",
- "text": "{tkt:\"92d9acb4-2daa-49c9-b193-bea48eb54fc9\", \"trip\":\"9cc3e801-6c5e-4450-9296-c1cf7b502bf7\"}"
}, - "seller_contacts": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co.",
- "support_contacts": {
- "phone_numbers": [
- {
- "phone": "+380 (50) 123-4567",
- "has_viber": true,
- "has_whatsapp": true,
- "has_telegram": true
}
], - "emails": [
- "contact@blackbus.com"
]
}
}, - "used_refund_option": {
- "refund_type": "BY_RULE",
- "name": "50%",
- "amount_to_refund": 580,
- "amount_to_withhold": 580,
- "percentage_to_refund": 50,
- "rule_time_point": "-PT6H"
}, - "refund_breakdown": {
- "vat_total": 7,
- "components": [
- {
- "type": "FARE",
- "amount": 42,
- "vat_rate": 20,
- "vat": 7
}
]
}, - "ticket_note": "string"
}Cancel one ticket. Paid ticket can be cancelled within a limited time window after payment confirmation or order creation to cancel an erroneous purchase operation.
| ticket_id required | string <uuid> Example: 92d9acb4-2daa-49c9-b193-bea48eb54fc9 |
{- "code": "BAD_REQUEST",
- "message": "Request was specified incorrectly. Please check."
}Get a ticket
| ticket_id required | string <uuid> Example: 92d9acb4-2daa-49c9-b193-bea48eb54fc9 |
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
{- "id": "92d9acb4-2daa-49c9-b193-bea48eb54fc9",
- "order_id": "7aed543e-2ab8-4ed5-af43-f116eb47207c",
- "number": "6548732",
- "created_by_organization": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Blackbus",
- "legal_identifier": "20077720"
}, - "status_details": {
- "status": "RESERVED",
- "name": "Booked",
- "assigned_at": "2022-07-20T10:00:00Z"
}, - "departure": {
- "departure_date_time": "2022-07-20T10:00:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "arrival": {
- "arrival_date_time": "2022-07-21T04:30:00",
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "platform_number": "1B"
}, - "route_details": {
- "bus_changes": [
- {
- "point": {
- "id": 1048592,
- "name": "Bus stop 12",
- "address": "metro Vidubichі; street Naberezhno-Pecherska road; building 10",
- "coordinates": {
- "latitude": 48.858858,
- "longitude": 2.347059
}, - "location": {
- "id": 1290,
- "name": "Kiev",
- "region": "obl. Mykolaiv ds. Voznesenskyi",
- "country": "Ukraine",
- "country_code": "UA",
- "type": "c.",
- "timezone": "Kyiv/Europe"
}
}, - "date_time": "2022-07-15T15:30:00",
- "duration": "PT30M"
}
]
}, - "passenger": {
- "first_name": "John",
- "last_name": "Smith",
- "phone_number": "+38(099) 123-21-12",
- "email": "john.smith@blackbus.com",
- "birthdate": "2020-11-21",
- "citizenship": "UA",
- "gender": "MALE",
- "document": {
- "type": "PASSPORT",
- "number": "AK 122302",
- "issuing_country": "UA",
- "expiration_date": "2025-12-31"
}, - "discount_document": {
- "type": "PASSPORT",
- "number": "AK 122302"
}
}, - "seat": {
- "with_seat_number": false,
- "seat_number": 0,
- "seat_number_text": "To a free seat"
}, - "bus_line": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "number": "4242",
- "name": "Dnipro - Kharkiv",
- "type": "INTERCITY"
}, - "trip": {
- "id": "cb6ae339-a393-451b-a7b9-5ea5574b0233",
- "departure_date_time": "2022-07-19T22:30:00",
- "printed_ticket_required_for_boarding": true,
- "note": "string"
}, - "bus": {
- "id": "f24e4332-099a-4e2e-8bd4-c98773776419",
- "model_name": "NEOPLAN SHD, DA/38",
- "seat_count": 38,
- "registration_number": "AA9988CO"
}, - "carrier": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Carrier",
- "legal_identifier": "20077720",
- "contact_info": {
- "city": "Kharkiv city",
- "address": "Gagaryna street, 24-B, office 33",
- "phone": "+38(066) 345 26 15; +38(099) 657-46-32"
}
}, - "insurer": {
- "id": "0b31b6e0-837e-4c1f-a364-7cd365bbfcbe",
- "name": "PAT European Insurer Aliance",
- "address": "m. Kyiv,vul. Hlybochytska, 33-37",
- "phone": "+38(044) 353-53-53; +38(067) 353-53-53",
- "insurance_contract": {
- "number": "IC-1234567890",
- "sign_date": "2022-01-01",
- "passenger_liability_coverage_limit": 300000,
- "luggage_liability_coverage_limit": 2000,
- "currency_code": "UAH"
}
}, - "inventory_source": {
- "organization": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Blackbus",
- "legal_identifier": "20077720"
}, - "contract": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "number": "32",
- "sign_date": "2019-01-01",
- "start_date_time": "2019-01-01T11:11:11Z",
- "end_date_time": "2019-01-01T11:11:11Z"
}
}, - "price_details": {
- "price": 40,
- "fare": 40,
- "type": "FULL",
- "discount": {
- "category": {
- "name": "PERIOD",
- "available_from": "2026-06-01T00:00:00Z",
- "available_until": "2026-07-01T00:00:00Z"
}, - "name": "string",
- "value_type": "PERCENTAGE",
- "percentage": 20,
- "amount": 10
}, - "luggage": {
- "fee": 42,
- "count": 4,
- "total_amount": 168
}, - "currency_code": "UAH"
}, - "price_breakdown": {
- "vat_total": 7,
- "components": [
- {
- "type": "FARE",
- "amount": 42,
- "vat_rate": 20,
- "vat": 7
}
]
}, - "payment_details": {
- "organization_collected_payment": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co."
}, - "payment_confirmed_by": {
- "id": "8fb86ca0-5b47-46b4-a2f3-c96843bcb552",
- "name": "Adam Smith"
}, - "paid_at": "2022-01-01T11:13:23Z"
}, - "refund_request": {
- "reason": "TRIP_DELAY",
- "registered_at": "2019-08-24T14:15:22Z",
- "note": "The bus was scheduled for 10:00 but was cancelled. As per your T&C, passengers are entitled to a refund"
}, - "refund_details": {
- "used_refund_option": {
- "refund_type": "BY_RULE",
- "name": "50%",
- "amount_to_refund": 580,
- "amount_to_withhold": 580,
- "percentage_to_refund": 50,
- "rule_time_point": "-PT6H"
}, - "organization": {
- "id": "3d8c4c8b-c4bc-4b31-bf98-0457309093f1",
- "name": "Excellent agent co."
}, - "refunded_at": "2022-01-01T11:11:11Z",
- "non_refundable_sales_commission": false
}, - "refund_rules": {
- "description": [
- "from 72 h and more before departure - 75% of the cost of ticket",
- "from 24 h to 72 h before departure - 50% of the cost of ticket",
- "from 12 h to 24 h before departure - 25% of the cost of ticket",
- "less 12 h before departure - ticket costs are not refundable"
]
}, - "luggage_rules": "You may have only one 30kg bag",
- "reissued_from": {
- "ticket_id": "595be628-f6f2-4262-9c10-6389c6c4a5b8",
- "ticket_number": "string"
}, - "reissue_details": {
- "reissued_to": {
- "ticket_id": "595be628-f6f2-4262-9c10-6389c6c4a5b8",
- "ticket_number": "string"
}, - "status_before_reissue": {
- "status": "PAID",
- "name": "Paid"
}
}, - "branding": {
- "organization": {
- "name": "Black Bus Inc.",
- "brand_name": "Blackbus",
- "legal_identifier": "20077720",
- "legal_address": "Kyiv, Nezalezhnosti St 20",
- "bank_requisites": "PrivatBank, IBAN: 14095614980756, 958724",
- "logo_data": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0"
}, - "support_contacts": {
- "phone_numbers": [
- {
- "phone": "+380 (50) 123-4567",
- "has_viber": true,
- "has_whatsapp": true,
- "has_telegram": true
}
], - "emails": [
- "contact@blackbus.com"
]
}
}, - "qr_code": {
- "data": "string",
- "media_type": "image/png",
- "text": "{tkt:\"92d9acb4-2daa-49c9-b193-bea48eb54fc9\", \"trip\":\"9cc3e801-6c5e-4450-9296-c1cf7b502bf7\"}"
}, - "available_operations": {
- "refund": true,
- "amend_refund": false,
- "edit_passenger": false,
- "get_pdf": false,
- "cancellation": false,
- "edit_note": false,
- "reissue": false,
- "cancel_refund": true
}, - "note": "string"
}Get an overview of the inventory available for sale
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
| X-Currency | string Example: gbp The currency that will be used when including prices in response |
{- "currency": "UAH",
- "bus_lines": [
- {
- "id": "595b5671-79f6-4093-9e31-39b4cb37a631",
- "basics": {
- "number": "4250",
- "name": "Dnipro - Kharkiv",
- "carrier_id": "a6fe6016-cc2e-4ad2-ba1a-ed628f4066e9",
- "departure_time": "10:00",
- "frequency": {
- "type": "TEMPLATE",
- "template": [
- true,
- false,
- false,
- true
], - "template_start_date": "2022-12-01"
}
}, - "schedule": {
- "stops": [
- {
- "point_id": 1048593,
- "distance_from_departure_point": 123.456,
- "arrival_time": "10:00",
- "arrival_day_offset": 0,
- "departure_time": "10:00",
- "departure_day_offset": 0,
- "boarding_allowed": true,
- "alighting_allowed": true
}
]
}, - "segments": [
- {
- "departure_point_id": 1048593,
- "arrival_point_id": 9377502,
- "base_ticket_price": 68.5
}
], - "trips": [
- {
- "departure_date": "2022-01-12",
- "bus": {
- "id": "3f1b9009-37f5-4148-baaf-0ab2b03d14bb",
- "name": "Neoplan 7",
- "seat_count": 49
}, - "free_seats_count": 6
}
]
}
]
}Get an overview of the trip seats available for sale
| X-Locale required | string <BCP47Locale> (BCP47Locale) ^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-[a-zA-Z]{2}|... Example: en-GB The locale on which the response will be created |
| X-Currency | string Example: gbp The currency that will be used when including prices in response |
| trip_departure_date required | string <local-date> Departure date of the trips included in the seat availability overview |
{- "trip_departure_date": "2024-05-31"
}{- "currency": "UAH",
- "trips": [
- {
- "id": "aa64c80c-f174-4afa-b74f-66c4ba3f150b",
- "bus_line_id": "ff7f0d4a-6d3a-4df9-9e12-87139582eaff",
- "bus_line_number": "1234",
- "bus_line_name": "Kyiv, Central Railway Station - Lviv, Market Square",
- "bus_line_frequency": {
- "type": "TEMPLATE",
- "template": [
- true,
- false,
- false,
- true
], - "template_start_date": "2022-12-01"
}, - "departure_date": "2022-05-20",
- "departure_time": "10:00",
- "carrier_id": "77f622cc-f9cf-43e7-a68e-29f1bb0034d6",
- "segments": [
- {
- "start_point_id": 1048592,
- "start_stop_index": 0,
- "end_point_id": 1048594,
- "end_stop_index": 5,
- "sellable_seats": [
- 2,
- 5,
- 18
]
}
]
}
]
}/journeys/search response ticket_pricing.ticket_automatic_discount_percentage is deprecated in favor of the new automatic_discount.value property.RideDiscount model the percentage property is deprecated in favor of the new value property. It affects the following:statutory_discounts in the /journeys/search responseautomatic_discount and available_discounts in the /journeys/details responsevalue_type property to the ticket discount model to indicate whether the discount is a percentage or a fixed amount.branding to the Ride model with carrier organization brand name.route_details to the Ticket with information about bus changes.Ticket model extended the insurer object with insurance_contract containing information about the insurance contract related to the ticket.price_breakdown, refund_rules, luggage_rules, branding, and qr_code properties added to the ticket model.price_breakdown: Provides a detailed breakdown of the ticket price components.refund_rules: Contains information about the refund conditions for the ticket.luggage_rules: A text description of the luggage transportation rules.branding: Contains organization branding data for ticket forms.qr_code: Provides a QR code for use with the driver mobile application.ordering object has been added to the details of journey response model. This introduces several new schemas to provide detailed information about what passenger data is recommended for booking.sales_closing_planned_at field to the details of journey model for each ride.ees_passenger_verification_required field to the details of journey model for each ride.document field in CreateOrderPassenger and TicketPassenger schemas now references PassengerTravelDocument instead of PassengerDocument.document field in CreateOrderPassenger and TicketPassenger schemas which references PassengerDocument renamed to discount_document.PassengerTravelDocument schema expands the document information to include issuing_country and expiration_date.point_id and point_name fields in the RideBusChange schema are now deprecated. They are replaced by a new point object.X-Locale header parameter was changed from a generic string to a stricter BCP47Locale format.TicketRefund schema was renamed to TicketRefundDetails. The structure of these renamed schemas remains the sameExtendedPhoneNumber schema was renamed to OrganizationPhoneNumber. The structure of these renamed schemas remains the samepayment_processing field has been removed from the order model.detailed_passenger_information_required field in the details of journey ride models is now marked as deprecated.payment_processing parameter for the PUT inventory/orders/{order_id} endpoint has been removed since it was never supportedticket_id parameter for the GET inventory/orders/{order_id} endpoint has been deprecatedpassenger_count parameter to inventory/journeys/search endpointcustomer_id parameter to inventory/journeys/search endpointcustomer_id parameter to inventory/journeys/details endpointpassengers_size parameter for the inventory/journeys/details endpoint has been deprecated and a new passenger_count parameter has been added insteadBONUS_TRIP category to available discounts with qualifying_trip_count and ticket_limit individual propertiescreated_by_organization field to the ticket details information in responses related to orders and tickets