API Booking Service
Содержание
- 1 Introduction
- 2 Installation and Configuration
- 3 Method Description
- 4 Admin
- 4.1 Agent Registration (SendAgentRegistration)
- 4.2 Getting Partner Data (GetAgentParams)
- 4.3 Editing a Partner (SaveAgentParams)
- 4.4 Authentication (Auth)
- 4.5 Getting Permissions (GetMyActions)
- 4.6 Getting Authorized Person Parameters (GetAuth)
- 4.7 Getting a list of online users (GetWebUsers)
- 4.8 Getting Online User Data (GetPersonParams)
- 4.9 Editing Online Users (SavePersonParams)
- 4.10 Delete Online Users (DeleteWebUser)
- 4.11 Getting markup types (GetMarkupTypes)
- 4.12 Getting Markups (GetMarkups)
- 4.13 Getting editable markup parameters (GetMarkupEditParams)
- 4.14 Editing markup parameters (SaveMarkupEditParams)
- 4.15 Delete Markups (DeleteMarkup)
- 4.16 Getting Additional Partner Parameters (GetPartnerExtras)
- 4.17 Editing Additional Partner Parameters (SavePartnerExtras)
- 4.18 Getting Payment Settings (GetPayments)
- 5 Booking
- 5.1 Create a Travel Package (Createreservation)
- 5.2 Advanced Travel Reservation (CreateReservationNew)
- 5.3 Getting information about a booked trip (GetReservation)
- 5.4 Getting Advanced Information about a Booked Trip (GetReservationNew)
- 5.5 Getting Files (GetFileData)
- 5.6 Getting bookings by arrival date (GetArrivalsByDate)
- 5.7 Getting bookings by departure dates (GetDeparturesByDate)
- 5.8 Travel Cancellation (CancelReservation)
- 5.9 Travel Cancellation with Extended Information (CancelReservationExtended)
- 5.10 Getting reservations by date (GetReservationsFrom)
- 5.11 Getting Reservations, Advanced (GetReservations)
- 5.12 Getting Filters for the Request Screen (GetReservationsFilters)
- 5.13 Getting service parameters (GetChangingServiceParams)
- 5.14 Checking Changed Service Parameters (CheckChangingServiceParams)
- 5.15 Changing Service Parameters (SaveChangingServiceParams)
- 5.16 Merge Payment Policy (MergePaymentPolicy)
- 5.17 Creating Reservation Messages (CreateReservationMessage)
Introduction
Booking Service provides an API for managing reservations and interacting with existing requests. The service allows you to: receive/create/edit/canceling requests, manage users and agent settings, work with additional services, transfers, and reports. To use the service, you must install a Windows service.
Installation and Configuration
Before installing the API, you must configure the appsettings.json configuration file.
- Connecting to the Master-Interlook database:
{
"ConnectionParameters": {
"MainDatabase": {
"databaseType": 1, - database type used: 1 - MSSQL, 2 - PostgreSQL (not yet implemented)
"server": "", - SQL server address
"database": "", - Interlook database name
"user": "", - database user login
"password": "", - database user password (fill in)
"appName": "Interlook_BookingService_VKE" - application name when connecting to the SQL server
},
"ExtraDatabases": [] - list of additional databases (if used)
},
- JWT service authentication:
JWT service authentication:
"Jwt": {
"Key": "", - secret encryption key generated by the user
"TokenValidityInMinutes": 2 - token lifetime in minutes
},
- Connecting to remote services:
"RemoteServices": {
"GDSIncomingServiceUrl": "http://localhost:7709", - GDS incoming request service address
"CalculateServiceUrl": "http://localhost:7701" - calculation service address
},
- Service operation modes:
"UseCalculateRemote": true - whether to use remote calculation. If true, it works through an external service (searth service); if false, it works through internal logic.
"UseMainCache": false - whether to load the main cache (if UseCalculateRemote is not enabled, it will calculate via the database, otherwise via the cache); default is false
- Restrictors:
"Restrictions": {
"IsAlwaysConfirmed": false - Controls the substitution of statuses for the external system (ES).
// If true, status normalization is enabled when sending to an external system:
// Confimed, WaitingConfirmation, Wait -> confirmed
// NotConfirmed, Canceled, Cancel -> cancelled
// WaitingCancellation -> pending
// If false, statuses are sent as is: Wait, Confimed, Cancel, NotConfirmed, WaitingCancellation
},
- Service operation logging:
"Logger": {
"EnableConsole": false, - output logs to the console (for application mode)
"EnableFile": true, - write logs to a file
"FilePath": "", - path to the log directory
"MaxLogFileSize": 10, - maximum log file size (MB)
"MaxOldLogFilesCount": 30, - maximum number of log files
"EnableLogService": false, - logging via the logging service
"LogServiceAddress": "" - logging service address
},
- Service installation/launch parameters:
"Install": {
"ServiceName": "Interlook_BookingService_VKE", - Windows service name
"ServiceAddress": [ "http://*:7070/booking" ], - address/port where the service is available
"IPAddress": "IPAddress.IPv6Any", - IP binding
"GRPCPort": 7071, - gRPC port
"HttpsCertificate": {
"CertFile": "", - path to the certificate file (if HTTPS is used)
"CertPassword": "", - certificate password
"CertHost": "", - host to which the certificate is issued
"CertHash": "", - certificate thumbprint
"CertStoreLocation": "LocalMachine" - certificate store location (CurrentUser/LocalMachine)
}
},
- Accessibility from external networks:
"AllowedHosts": "megatec.ru;*.megatec.ru" - a string of hosts separated by semicolons, "*" - allow any host
Method Description
Admin
Agent Registration (SendAgentRegistration)
Method: POST /booking/SendAgentRegistration
- Request Format:
- Accepted Parameters (Request Body):
- companyName – company name
- agencyName – agency name
- countryName – country name
- cityName – city name
- zipCode – postal code
- address – address
- id – identifier
- license – license
- vat – VAT number
- phones – phone numbers
- email – email
- contactPersonName – contact person
- comment – comment
- Return Result:
- isOk – general indicator of successful request processing: can be true (success) or false (error)
- hasSuccess – indicator Successful recipients/operations processed: can be true or false
- errors – array of errors (if any)
- title – error title/ID (e.g., email address)
- errorMessage – error/exception text
- success – array of successfully processed recipients/values (e.g., email list to which notification was sent)
|
Calling the /booking/SendAgentRegistration method POST http://localhost:7700/booking/SendAgentRegistration
{
"companyName": "string",
"agencyName": "string",
"countryName": "string",
"cityName": "string",
"zipCode": "string",
"address": "string",
"id": "string",
"license": "string",
"vat": "string",
"phones": "string",
"email": "string",
"contactPersonName": "string",
"comment": "string"
}
Return result: {
"isOk": true,
"hasSuccess": true,
"errors": [],
"success": [ "perlov@megatec.ru" ]
}
Return result (error): {
"isOk": false,
"hasSuccess": false,
"errors": [
{
"title": "stamsvam@gmail.com",
"errorMessage": "Error sending to mailing addresses (stamsvam@gmail.com): System.Net.Mail.SmtpException: Bad sequence of commands. The server response was: 5.5.4 Error: send AUTH command first. 1759681423-hNm8OHdMGqM0-uauNKH69\r\n at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)\r\n at System.Net.Mail.MailCommand.EndSend(IAsyncResult result)\r\n at System.Net.Mail.SendMailAsyncResult.SendMailFromCompleted(IAsyncResult result)\r\n--- End of stack trace from previous location ---\r\n at System.Net.Mail.SendMailAsyncResult.End(IAsyncResult result)\r\n at System.Net.Mail.SmtpClient.SendMailCallback(IAsyncResult result)\r\n--- End of stack trace from previous location ---\r\n at Megatec.Interlook.DataModel.Mail.Account.SendMessage(MailMessage mailMessage)\r\n at Megatec.Interlook.MailLayer.MailManager.SendMail(String msg, String subject, IEnumerable`1 addressees, Boolean isHtml, IEnumerable`1 attachments, Int32 action)"
}
],
"success": []
}
|
Getting Partner Data (GetAgentParams)
Method: GET /booking/GetAgentParams
- Request Format:
- No accepted parameters
- Returned Result:
- key – unique identifier
- name – title
- address – address
- phones – phone numbers
- email – email
- webSite – website URL
- webName – website name
- logoIcon – logo
- key – logo file identifier
- name – file name with extension
- size – size
- data – date added
- compressed – logo size
- mime – MIME file type (e.g., image/png)
- type – file format
- originalType – original file type
|
Calling the /booking/GetAgentParams method GET http://localhost:7700/booking/GetAgentParams
Return result:
<syntaxhighlight lang="java" enclose="div">
{
"key": 0,
"name": "string",
"address": "string",
"phones": "string",
"email": "string",
"webSite": "string",
"webName": "string",
"logoIcon": {
"key": 0,
"name": "string",
"size": 0,
"data": "string",
"compressed": false,
"mime": "string",
"type": "string",
"originalType": "string"
}
}
|
Editing a Partner (SaveAgentParams)
Method: PUT /booking/SaveAgentParams
- Request Format:
- Accepted Parameters (Request Body):
- key – unique identifier
- name – title
- address – address
- phones – phone numbers
- email – email
- webSite – website URL
- webName – website name
- logoIcon – logo
- key – logo file ID
- name – file name with extension
- size – size
- data – date added
- compressed – logo size
- mime – MIME file type (e.g., image/png)
- type – file format
- originalType – original file type
|
Calling the /booking/SaveAgentParams method PUT http://localhost:7700/booking/SaveAgentParams
{
"key": 0,
"name": "string",
"address": "string",
"phones": "string",
"email": "string",
"webSite": "string",
"webName": "string",
"logoIcon": {
"key": 0,
"name": "string",
"size": 0,
"data": "string",
"compressed": false,
"mime": "string",
"type": "string",
"originalType": "string"
}
}
Return result: HTTP/1.1 200 OK
|
Authentication (Auth)
Method: POST /booking/Auth
- Request format:
- Accepted parameters:
- token – authorization token
- Returned result:
- authCode – authentication code
- login – login
- password – password
- userID – user ID
- onlineUserKey – online user key
- userKey – user key
- partnerKey – partner key
- partnerName – partner name
- filialKey – branch key
- personConnectionId – personal ID
- name – title
- firstName – first name
- fullName – full name
- title – title
- birthDay – date of birth
- createDate – creation date
- actions – actions field
- authenticationType – authentication type
- isAuthenticated – can be true or false
- isBlocked – Can be true or false
- isPartnerHotel – Can be true or false
|
Calling the /booking/Auth method POST http://localhost:7700/booking/Auth
Returned result: {
"authCode": "string",
"login": "string",
"password": "string",
"userID": "string",
"onlineUserKey": 0,
"userKey": 0,
"partnerKey": 0,
"partnerName": "string",
"filialKey": 0,
"personConnectionId": 0,
"name": "string",
"firstName": "string",
"fullName": "string",
"title": "string",
"birthDay": "2025-10-05T17:01:04.411Z",
"createDate": "2025-10-05T17:01:04.411Z",
"actions": [
0
],
"authenticationType": "string",
"isAuthenticated": true,
"isBlocked": true,
"isPartnerHotel": true
}
Return result 400 Error: Bad Request {
"errors": {
"token": [
"The token field is required."
]
},
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-6a913f29fe774ba54a1c9a07a07ee604-33a17ac002471c42-00"
}
|
Getting Permissions (GetMyActions)
Method: GET /booking/GetMyActions
- Request Format:
- No accepted parameters
- Returned Result:
- key – unique user ID
- firstName – first name (string)
- name – short name/login display
- fullName – full name
- birthday – date of birth in ISO format (ISO 8601, e.g. 2025-10-05T17:20:11.154Z)
- title – job title
- login – user login
- password – password
- contacts – contact information
- phoneCell – mobile phone
- key – record ID
- value – phone number
- phoneOffice – work phone
- key – record ID
- value – phone number
- email – email address
- key – record ID
- value – email
- skype – Skype account
- key – record ID
- value – account name
- phoneCell – mobile phone
- actionGroups – action group membership flags, can be true or false
- permissions – User rights object
- editAddress – Allows address editing, can be true or false
- editContacts – Allows contact editing, can be true or false
- editPassword – Allows password changes, can be true or false
- editPersonData – Allows personal data editing, can be true or false
- editActions – Allows managing actions/roles, can be true or false
- titlesList – List of job titles
|
Calling the /booking/GetMyActions method GET http://localhost:7700/booking/GetMyActions
Return result: [
{
"key": 0,
"firstName": "string",
"name": "string",
"fullName": "string",
"birthday": "2025-10-05T17:20:11.154Z",
"title": "string",
"login": "string",
"password": "string",
"contacts": {
"phoneCell": {
"key": 0,
"value": "string"
},
"phoneOffice": {
"key": 0,
"value": "string"
},
"email": {
"key": 0,
"value": "string"
},
"skype": {
"key": 0,
"value": "string"
}
},
"actionGroups": {
"additionalProp1": true,
"additionalProp2": true,
"additionalProp3": true
},
"permissions": {
"editAddress": true,
"editContacts": true,
"editPassword": true,
"editPersonData": true,
"editActions": true
},
"titlesList": [
"string"
]
}
]
|
Getting Authorized Person Parameters (GetAuth)
Method: GET /booking/GetAuth
- Request Format:
- No accepted parameters
- Returned Result:
- authCode – Authentication code
- login – Username
- password – Password
- userID – User ID
- onlineUserKey – Online User Key
- userKey – User Key
- partnerKey – Partner Key
- partnerName – Partner Name
- filialKey – Branch Key
- personConnectionId – Personal Connection ID
- name – First Name
- firstName – Last Name
- fullName – Full Name
- title – Title
- birthDay – Date of Birth
- createDate – Creation Date
- actions – Actions Field
- authenticationType – Authentication Type
- isAuthenticated – Can be true or false
- isBlocked – may be true or false
- isPartnerHotel – may be true or false
|
Calling the /booking/GetAuth method GET http://localhost:7700/booking/GetAuth
Returned result: {
"authCode": "string",
"login": "string",
"password": "string",
"userID": "string",
"onlineUserKey": 0,
"userKey": 0,
"partnerKey": 0,
"partnerName": "string",
"filialKey": 0,
"personConnectionId": 0,
"name": "string",
"firstName": "string",
"fullName": "string",
"title": "string",
"birthDay": "2025-10-05T17:39:36.838Z",
"createDate": "2025-10-05T17:39:36.838Z",
"actions": [
0
],
"authenticationType": "string",
"isAuthenticated": true,
"isBlocked": true,
"isPartnerHotel": true
}
|
Getting a list of online users (GetWebUsers)
Method: POST /booking/GetWebUsers
- Request format:
- Accepted parameters (Request body):
- login – filter by user login
- name – filter by name/display name
- email – filter by email
- phone – filter by phone number
- paging – results pagination parameters
- number – page number (usually starting with 1; 0 may be interpreted by the service as the first page or disabled pagination)
- size – page size (> 0; maximum number of records per page)
- Returned result:
- key – unique user identifier
- login – user login
- firstName – Last Name
- First Name - First Name
- Full Name - Full Name
- CreateDate - Account creation date/time in ISO 8601 format (e.g., 2025-10-05T17:56:47.213Z)
- Birthday - Date of birth in ISO 8601 format (e.g., 2025-10-05T17:56:47.213Z)
- CanDelete - Whether this user can be deleted, can be true or false
- CanEdit - Whether this user can be edited, can be true or false
- IsLoggedIn - Whether the user is logged in, can be true or false
- IsSuperUser - Whether the user is a superuser/administrator, can be true or false
|
Calling the /booking/GetWebUsers method POST http://localhost:7700/booking/GetWebUsers
{
"login": "string",
"name": "string",
"email": "string",
"phone": "string",
"paging": {
"number": 0,
"size": 0
}
}
Return result: [
{
"key": 0,
"login": "string",
"firstName": "string",
"name": "string",
"fullName": "string",
"createDate": "2025-10-05T17:56:47.213Z",
"birthday": "2025-10-05T17:56:47.213Z",
"canDelete": true,
"canEdit": true,
"isLoggedIn": true,
"isSuperUser": true
}
]
|
Getting Online User Data (GetPersonParams)
Method: GET /booking/GetPersonParams
- Request Format:
- Accepted Parameters:
- personKey – personal key
- Returned Result:
- key – unique record identifier
- firstName – last name
- name – first name
- fullName – full name
- birthday – date of birth in ISO 8601 format (e.g., 2025-10-05T18:15:10.853Z)
- title – job title
- login – user login
- password – user password
- contacts – user contacts
- phoneCell – mobile phone
- key – contact record identifier
- value – phone number
- phoneOffice – work phone
- key – contact record identifier
- value – number Phone
- Email – Email address
- Key – Contact ID
- Value – Email
- Skype – Skype account
- Key – Contact ID
- Value – Account name
- phoneCell – mobile phone
- ActionGroups – Action Group membership flags object, can be true or false
- Permissions – User permissions object
- EditAddress – Allows address editing, can be true or false
- EditContacts – Allows contact editing, can be true or false
- EditPassword – Allows password change, can be true or false
- EditPersonData – Allows personal data editing, can be true or false
- EditActions – Allows actions/roles management, can be true or false
- TitlesList – List of user titles/tags
|
Calling the /booking/GetPersonParams method GET http://localhost:7700/booking/GetPersonParams
Return result: [
{
"key": 0,
"firstName": "string",
"name": "string",
"fullName": "string",
"birthday": "2025-10-05T18:15:10.853Z",
"title": "string",
"login": "string",
"password": "string",
"contacts": {
"phoneCell": {
"key": 0,
"value": "string"
},
"phoneOffice": {
"key": 0,
"value": "string"
},
"email": {
"key": 0,
"value": "string"
},
"skype": {
"key": 0,
"value": "string"
}
},
"actionGroups": {
"additionalProp1": true,
"additionalProp2": true,
"additionalProp3": true
},
"permissions": {
"editAddress": true,
"editContacts": true,
"editPassword": true,
"editPersonData": true,
"editActions": true
},
"titlesList": [
"string"
]
}
]
|
Editing Online Users (SavePersonParams)
Method: PUT /booking/SavePersonParams
- Request Format:
- Accepted Parameters (Request Body):
- key – unique user record identifier
- firstName – first name
- name – short/display name
- fullName – full name
- birthday – date of birth in ISO 8601 format (e.g., 2025-10-05T18:22:12.104Z)
- title – job title
- login – user login
- password – user password
- contacts – contact information object
- phoneCell – mobile phone
- key – contact record identifier
- value – phone number
- phoneOffice – work phone
- key – contact record identifier
- value – phone number
- email – email
- key – contact record identifier
- value – email
- skype – Skype account
- key – contact record identifier
- value – account name
- phoneCell – mobile phone
- actionGroups – action group membership flags object (true/false values)
- permissions – user rights object
- editAddress – allowed to edit address (true/false values)
- editContacts – allowed to edit contacts (true/false values)
- editPassword – allowed to change password (true/false values)
- editPersonData – allowed to edit personal data (true/false values)
- editActions – allowed to manage actions/roles (true/false values)
- titlesList – list of user titles/tags (string array)
- Returned result:
- key – unique user identifier
- login – user login
- firstName – Last Name
- First Name - First Name
- Full Name - Full Name
- CreateDate - Date/Time of Record Creation/Modification (ISO 8601)
- Birthday - Date of Birth (ISO 8601)
- CanDelete - Whether this user can be deleted (true/false values)
- CanEdit - Whether this user's data can be edited (true/false values)
- IsLoggedIn - Whether the user is actively logged in (true/false values)
- isSuperUser – superuser/administrator flag (true/false values)
|
Calling the /booking/SavePersonParams method PUT http://localhost:7700/booking/SavePersonParams
{
"key": 0,
"firstName": "string",
"name": "string",
"fullName": "string",
"birthday": "2025-10-05T18:22:12.104Z",
"title": "string",
"login": "string",
"password": "string",
"contacts": {
"phoneCell": {
"key": 0,
"value": "string"
},
"phoneOffice": {
"key": 0,
"value": "string"
},
"email": {
"key": 0,
"value": "string"
},
"skype": {
"key": 0,
"value": "string"
}
},
"actionGroups": {
"additionalProp1": true,
"additionalProp2": true,
"additionalProp3": true
},
"permissions": {
"editAddress": true,
"editContacts": true,
"editPassword": true,
"editPersonData": true,
"editActions": true
},
"titlesList": [
"string"
]
}
Return result: {
"key": 0,
"login": "string",
"firstName": "string",
"name": "string",
"fullName": "string",
"createDate": "2025-10-05T18:24:54.936Z",
"birthday": "2025-10-05T18:24:54.936Z",
"canDelete": true,
"canEdit": true,
"isLoggedIn": true,
"isSuperUser": true
}
|
Delete Online Users (DeleteWebUser)
Method: DELETE /booking/DeleteWebUser
- Request Format:
- Accepted Parameters:
- webUserKey – unique identifier of the web user to be deleted (integer, required). The value is taken from the key field in the GetWebUsers method results.
- Returned result:
- Code 200 OK — user successfully deleted
|
Calling the /booking/DeleteWebUser method (passing the ID in the query string) DELETE http://localhost:7700/booking/DeleteWebUser?webUserKey=123
Returned result: HTTP/1.1 200 OK
|
Getting markup types (GetMarkupTypes)
Method: GET /booking/GetMarkupTypes
- Request format:
- No accepted parameters
- Returned result: (array of markup types)
- key – unique markup type identifier
- name – name/display name of the markup type
|
Calling the /booking/GetMarkupTypes method GET http://localhost:7700/booking/GetMarkupTypes
Returned result: [
{
"key": 0,
"name": "string"
}
]
|
Getting Markups (GetMarkups)
Method: GET /booking/GetMarkups
- Request format:
- No accepted parameters
- Returned result:
- key – unique identifier of the markup record
- category – category/area of the markup application, e.g., "Hotel," "Geography," "Category"
- hotel – name of the hotel to which the markup applies (for hotel markups)
- geography – geographic area of application (city/region/country) (for geographic markups)
- amount – amount of the markup for adults. Interpretation depends on isPercent:
- if isPercent=true — a percentage (e.g., 10 = +10%)
- if isPercent=false — a fixed amount (in the base currency)
- childAmount — the surcharge amount for children, according to the same rules as amount
- isPercent — whether the surcharge is specified as a percentage. If false, a fixed amount is used
- isPerNight — the surcharge is applied per night. If true, the amount/percentage is calculated for each night; if false, for the entire stay
- type — the surcharge type, typically corresponds to one of the values from the surcharge type directory
- entityKey — the key of the related entity: for a hotel surcharge — the hotel key, for a geography — the region/city key, etc.
|
Calling the /booking/GetMarkups method GET http://localhost:7700/booking/GetMarkups
Return result: [
{
"key": 0,
"category": "string",
"hotel": "string",
"geography": "string",
"amount": 0,
"childAmount": 0,
"isPercent": true,
"isPerNight": true,
"type": 0,
"entityKey": 0
}
]
|
Getting editable markup parameters (GetMarkupEditParams)
Method: GET /booking/GetMarkupEditParams
- Request format:
- Accepted parameters:
- markupKey – unique identifier of the markup entry
- Returned result:
- key – unique identifier of the markup entry
- type – markup type
- amount – markup amount for adults: if isPercent=true, interpreted as a percentage; If false, as a fixed amount.
- childAmount – the surcharge amount for children, according to the same rules as amount.
- isPercent – indicates whether the surcharge is specified as a percentage. If false, a fixed amount is used.
- isPerNight – per-night pricing: true – charged per night, false – charged for the entire stay.
- value – linked entity object (what the markup is applied to, e.g., hotel/geography/category)
- key – entity identifier
- name – entity name.
|
Calling the /booking/GetMarkupEditParams method GET http://localhost:7700/booking/GetMarkupEditParams?markupKey=205
Returned result: {
"key": 0,
"type": 0,
"amount": 0,
"childAmount": 0,
"isPercent": true,
"isPerNight": true,
"value": {
"key": 0,
"name": "string"
}
}
|
Editing markup parameters (SaveMarkupEditParams)
Method: PUT /booking/SaveMarkupEditParams
- Request format:
- Accepted parameters (Request body):
- key – unique identifier of the markup being edited.
- type – markup type. The value matches one of the types in the reference list.
- amount – markup amount for adults. If isPercent = true, it is a percentage (e.g., 10 = +10%); if false, it is a fixed amount in the base currency.
- childAmount – markup amount for children, according to the same rules as amount.
- isPercent – indicates whether the markup is specified as a percentage. If false, a fixed amount is used.
- isPerNight – indicates whether the markup is applied "per night." If true, the markup is calculated for each night of the stay; if false, it is calculated for the entire stay. ** value – the bound entity object to which the surcharge is applied (hotel/geography/category, etc.)
- key – entity identifier – for example, the hotel or region key.
- name – entity name – for example, the name of the hotel or region.
- Returned result:
- key – unique identifier of the surcharge record
- category – category for which the surcharge is applied, e.g., "Hotel," "Geography," "Category"
- hotel – hotel name, if the surcharge is bound to a specific hotel; otherwise, empty
- geography – geographic region, if the surcharge is geographic; otherwise, empty
- amount – surcharge amount for adults, according to isPercent rules
- childAmount – surcharge amount for children, according to isPercent rules
- isPercent – flag for a percentage surcharge. If false, a fixed amount is used.
- isPerNight – flag for "per night" application. If true, the surcharge is applied for each night of stay; if false, for the entire stay.
- type – surcharge type, matches the type reference
- entityKey – key of the associated entity: the key of the hotel/region/category to which the surcharge is applied
|
Calling the /booking/SaveMarkupEditParams method PUT http://localhost:7700/booking/SaveMarkupEditParams
{
"key": 0,
"type": 0,
"amount": 0,
"childAmount": 0,
"isPercent": true,
"isPerNight": true,
"value": {
"key": 0,
"name": "string"
}
}
Returned result: {
"key": 0,
"category": "string",
"hotel": "string",
"geography": "string",
"amount": 0,
"childAmount": 0,
"isPercent": true,
"isPerNight": true,
"type": 0,
"entityKey": 0
}
|
Delete Markups (DeleteMarkup)
Method: DELETE /booking/DeleteMarkup
- Request format:
- Accepted parameters:
- markupKey – unique Markup record ID
- Returned result:
- Code 200 OK — markup successfully deleted
|
Calling the /booking/DeleteMarkup method DELETE http://localhost:7700/booking/DeleteMarkup?markupKey=205
Returned result: HTTP/1.1 200 OK
|
Getting Additional Partner Parameters (GetPartnerExtras)
Method: GET /booking/GetPartnerExtras
- Request Format:
- No accepted parameters
- Returned Result:
- key – unique identifier of the settings record
- prKey – identifier of the partner to which the settings apply
- daysOffsetCancellationPolicy – day offset for the cancellation policy: how many days before arrival the cancellation conditions (penalties, etc.) take effect/are changed
- daysOffsetPaymentPolicy – day offset for the payment policy: how many days before arrival the payment is due/payment conditions are changed
|
Calling the /booking/GetPartnerExtras method GET http://localhost:7700/booking/GetPartnerExtras
Return result: {
"key": 0,
"prKey": 0,
"daysOffsetCancellationPolicy": 0,
"daysOffsetPaymentPolicy": 0
}
|
Editing Additional Partner Parameters (SavePartnerExtras)
Method: PUT /booking/SavePartnerExtras
- Request format:
- Accepted parameters (Request body):
- key – unique identifier of the settings record
- prKey – identifier of the partner for which the settings are applied.
- daysOffsetCancellationPolicy – offset (number of days) for the cancellation policy: how many days before the check-in date do cancellation policies (penalties, etc.) take effect/change?
- daysOffsetPaymentPolicy – offset (number of days) for the payment policy: how many days before the check-in date do the payment deadlines become due/change?
- Returned result:
- key – unique settings record identifier
- prKey – partner identifier
- daysOffsetCancellationPolicy – configured day offset for cancellation policy
- daysOffsetPaymentPolicy – configured day offset for payment policy
|
Calling the /booking/SavePartnerExtras method PUT http://localhost:7700/booking/SavePartnerExtras
{
"key": 0,
"prKey": 0,
"daysOffsetCancellationPolicy": 0,
"daysOffsetPaymentPolicy": 0
}
Return result: {
"key": 0,
"prKey": 0,
"daysOffsetCancellationPolicy": 0,
"daysOffsetPaymentPolicy": 0
}
|
Getting Payment Settings (GetPayments)
Method: GET /booking/GetPayments
- Request Format:
- Accepted Parameters:
- dateFrom – interval start date/time (ISO 8601). Filter by payments from and including this date (e.g., 2025-10-01 or 2025-10-01T00:00:00Z).
- dateTo – interval end date/time (ISO 8601). Filter by payments up to and including this date (e.g., 2025-10-31 or 2025-10-31T23:59:59Z).
- Returned result:
- items – list of payments
- key – unique payment identifier
- docNumber – document/payment document number
- date – payment date/time (in ISO 8601 format)
- amount – payment amount
- currency – payment currency (e.g., RUB, USD, EUR)
- totals – aggregated totals for the selection
- key – total key
- value – total value
- items – list of payments
|
Calling the /booking/GetPayments method GET http://localhost:7700/booking/GetPayments?dateFrom=2025-10-01&dateTo=2025-10-31
Return result:
{
"items": [
{
"key": 0,
"docNumber": "string",
"date": "2025-10-05T19:31:45.484Z",
"amount": 0,
"currency": "string"
}
],
"totals": [
{
"key": 0,
"value": "string"
}
]
}
|
Booking
Create a Travel Package (Createreservation)
Method: POST /booking/CreateReservation
- Request format:
- Accepted parameters (Request body):
- rate – rate/offer for which the reservation is made
- id – rate identifier
- touristServices – tourist ↔ service links
- touristRoomNumber – room/boarding number for the tourist
- serviceID – service identifier
- touristID – tourist identifier
- services – list of services in the reservation
- externalID – external identifier of the service in an external system
- nMen – number of tourists for the service
- additionalParams – additional service parameters
- key – parameter name
- value – parameter value
- startDate – service start date (ISO 8601)
- duration – duration in nights/days
- id – service identifier
- hotel – hotel
- id – hotel identifier
- room – accommodation parameters
- roomTypeID – room type
- roomCategoryID – room category
- roomAccomodationID – accommodation type
- pansionID – board identifier
- tourists – list of tourists
- sex – gender
- birthDate – date of birth (ISO 8601)
- firstNameLat – first name in Latin characters
- surNameLat – last name in Latin characters
- foreignPassport – foreign passport
- serie – series
- number – number
- endDate – end date (ISO 8601)
- ageType – age type
- isMain – main tourist indicator, can be true or false
- id – tourist identifier
- phone – phone number
- tourOperatorID – tour operator identifier
- tourOperatorCode – tour operator code
- hasInvoices – indicator that by Bookings have invoices, can be true or false
- id – Booking ID
- externalID – Booking external ID
- rate – rate/offer for which the reservation is made
- Returned result:
- rate – Rate details
- additionalParams – Additional rate parameters
- key – Parameter name
- value – Parameter value
- name – Rate name
- id – Rate ID
- description – Description
- descriptionSpecified – Whether the description field is complete, can be true or false
- nameLat – Latin name
- nameLatSpecified – Whether nameLat is complete, can be true or false
- code – Rate code
- codeSpecified – Whether code is complete, can be true or false
- codeLat – Latin code
- codeLatSpecified – Whether codeLat is complete, can be true or false
- unicode – Unicode code/designation
- unicodeSpecified – Whether unicode is complete, can be true or false
- isMain – base rate flag, can be true or false
- isNational – national rate flag, can be true or false
- additionalParams – Additional rate parameters
- touristServices – links between tourists and services
- id – link identifier
- touristRoomNumber – room/boarding number
- serviceID – service identifier
- touristID – tourist identifier
- services – booking services
- externalID – external identifier
- price – service price
- nMen – number of tourists
- partnerID – partner identifier
- packetKey – package service/package key
- detailNetto – net detailing
- detailBrutto – gross detailing
- notes – notes
- name – service name
- startDate – service start date (ISO 8601)
- endDate – service end date (ISO 8601)
- startDay – "start day" relative to the tour
- duration – duration
- rateBrutto – gross rate
- brutto – amount gross
- rateNetto – net rate
- netto – net amount
- serviceClassID – service class
- touristCount – number of tourists for the service
- id – service identifier
- status – service status
- additionalParams – additional Status parameters
- key – parameter name
- value – parameter value
- name – status name
- id – status identifier
- description – status description
- descriptionSpecified – status status indicator, can be true or false
- nameLat – name in Latin characters
- nameLatSpecified – status status indicator, can be true or false
- code – status code
- codeSpecified – status status indicator, can be true or false
- codeLat – code in Latin characters
- codeLatSpecified – status status indicator, can be true or false
- unicode – Unicode code/designation
- unicodeSpecified – status status indicator
- additionalParams – additional Status parameters
- additionalParams – additional service parameters
- key – parameter name
- value – parameter value
- id – booking identifier
- name – booking name/code
- netto – net total amount
- grosstotal amount
- countryID – identifier Countries
- cityID – City ID
- partnerID – Partner ID
- startDate – Tour/stay start date (ISO 8601)
- endDate – Tour/stay end date (ISO 8601)
- duration – Tour duration
- creationDate – Booking creation date/time (ISO 8601)
- creatorID – Creator ID
- tourists – Total list of tourists in the booking
- sex – Gender
- firstName – First name
- lastName – Middle name
- surName – Last name
- birthDate – date of birth (ISO 8601)
- firstNameLat – first name in Latin
- surNameLat – last name in Latin
- lastNameLat – middle name/patronymic in Latin
- localPassport – domestic passport
- issuedBy – issued by
- serie – series
- number – number
- issueDate – issue date (ISO 8601)
- endDate – expiration date (ISO 8601)
- foreignPassport – international passport
- issuedBy – issued by
- serie – series
- number – number
- issueDate – issue date (ISO 8601)
- endDate – expiration date (ISO 8601)
- ageType – age type
- citizen – citizenship
- isMain – main tourist indicator, can be true or false
- externalID – external identifier
- additionalParams – additional tourist parameters
- key – parameter name
- value – parameter value
- id – tourist ID
- phone – phone
- email – email
- ownerID – owner/agency ID
- tourOperatorID – tour operator ID
- tourOperatorCode – tour operator code
- hasInvoices – flag for the presence of invoices, can be true or false
- externalID – external booking ID
- additionalParams – additional booking parameters
- key – parameter name
- value – parameter value
- rate – Rate details
|
Calling the /booking/CreateReservation method POST http://localhost:7700/booking/CreateReservation
{
"rate": {
"id": 1
},
"touristServices": [
{
"touristRoomNumber": "1408",
"serviceID": -1,
"touristID": -1
},
{
"touristRoomNumber": "1408",
"serviceID": -1,
"touristID": -2
}
],
"services": [
{
"externalID": 0,
"nMen": 2,
"additionalParams": [
{
"key": "Type",
"value": "HotelService"
}
],
"startDate": "2024-09-09T00:00:00",
"duration": 8,
"id": -1,
"hotel": {
"id": 4387
},
"room": {
"roomTypeID": 58,
"roomCategoryID": 65,
"roomAccomodationID": 2231
},
"pansionID": 29
}
],
"tourists": [
{
"sex": 0,
"birthDate": "1966-06-28T00:00:00",
"firstNameLat": "John",
"surNameLat": "Cusack",
"foreignPassport": {
"serie": "AA",
"number": "123456"
},
"ageType": 0,
"isMain": true,
"id": -1,
"phone": "+79661230947"
},
{
"sex": 0,
"birthDate": "1999-11-28T00:00:00",
"firstNameLat": "Mike",
"surNameLat": "Enslin",
"foreignPassport": {
"serie": "ZZ",
"number": "654321",
"endDate": "2024-08-14T00:00:00"
},
"ageType": 0,
"isMain": false,
"id": -2
}
],
"tourOperatorID": 0,
"tourOperatorCode": "bloodandsmoke",
"hasInvoices": false,
"id": 0,
"externalID": 0
}
Returned result:
{
"rate": {
"additionalParams": [
{
"key": "string",
"value": "string"
}
],
"name": "string",
"id": 0,
"description": "string",
"descriptionSpecified": true,
"nameLat": "string",
"nameLatSpecified": true,
"code": "string",
"codeSpecified": true,
"codeLat": "string",
"codeLatSpecified": true,
"unicode": "string",
"unicodeSpecified": true,
"isMain": true,
"isNational": true
},
"touristServices": [
{
"id": 0,
"touristRoomNumber": "string",
"serviceID": 0,
"touristID": 0
}
],
"services": [
{
"externalID": 0,
"price": 0,
"nMen": 0,
"partnerID": 0,
"packetKey": 0,
"detailNetto": "string",
"detailBrutto": "string",
"notes": "string",
"name": "string",
"startDate": "2025-10-05T19:51:21.646Z",
"endDate": "2025-10-05T19:51:21.646Z",
"startDay": 0,
"duration": 0,
"rateBrutto": "string",
"brutto": 0,
"rateNetto": "string",
"netto": 0,
"serviceClassID": 0,
"touristCount": 0,
"id": 0,
"status": {
"additionalParams": [
{
"key": "string",
"value": "string"
}
],
"name": "string",
"id": 0,
"description": "string",
"descriptionSpecified": true,
"nameLat": "string",
"nameLatSpecified": true,
"code": "string",
"codeSpecified": true,
"codeLat": "string",
"codeLatSpecified": true,
"unicode": "string",
"unicodeSpecified": true
},
"additionalParams": [
{
"key": "string",
"value": "string"
}
]
}
],
"id": 0,
"name": "string",
"netto": 0,
"brutto": 0,
"countryID": 0,
"cityID": 0,
"partnerID": 0,
"startDate": "2025-10-05T19:51:21.647Z",
"endDate": "2025-10-05T19:51:21.647Z",
"duration": 0,
"creationDate": "2025-10-05T19:51:21.647Z",
"creatorID": 0,
"tourists": [
{
"sex": 0,
"firstName": "string",
"lastName": "string",
"surName": "string",
"birthDate": "2025-10-05T19:51:21.647Z",
"firstNameLat": "string",
"surNameLat": "string",
"lastNameLat": "string",
"localPassport": {
"issuedBy": "string",
"serie": "string",
"number": "string",
"issueDate": "2025-10-05T19:51:21.647Z",
"endDate": "2025-10-05T19:51:21.647Z"
},
"foreignPassport": {
"issuedBy": "string",
"serie": "string",
"number": "string",
"issueDate": "2025-10-05T19:51:21.647Z",
"endDate": "2025-10-05T19:51:21.647Z"
},
"ageType": 0,
"citizen": "string",
"isMain": true,
"externalID": 0,
"additionalParams": [
{
"key": "string",
"value": "string"
}
],
"id": 0,
"phone": "string",
"email": "string"
}
],
"ownerID": 0,
"tourOperatorID": 0,
"tourOperatorCode": "string",
"hasInvoices": true,
"externalID": 0,
"additionalParams": [
{
"key": "string",
"value": "string"
}
]
}
|
Advanced Travel Reservation (CreateReservationNew)
Method: POST /booking/CreateReservationNew
- Request format:
- Accepted parameters (Request body):
- hotel_id – ID of the hotel for which the reservation is being created
- client_reference_id – External ID/client reference, allows you to match the reservation in your system
- reservation_holder – Primary reservation holder
- first_name – First name of the holder
- last_name – Last name of the holder
- is_child – Indicates that the holder is a child, can be true or false
- age – Age of the holder
- birthday – Date of birth of the holder (ISO 8601)
- gender – Gender
- email – Email of the holder
- phone – Phone of the holder
- isMain – Indicates that this is the main tourist, can be true or false false
- id – holder identifier
- contact_info – contact information for the reservation
- phone – contact phone number
- email – contact email address
- webpage – web page/site
- rates – list of selected rates/rooms
- rate_id – rate/offer identifier
- price – rate price
- room – room parameters
- id – room/accommodation option identifier
- guests – list of guests staying in this room
- first_name – guest's first name
- last_name – guest's last name
- is_child – flag that the guest is a child, can be true or false
- age – guest's age
- birthday – guest's date of birth (ISO 8601)
- gender – gender
- email – guest's email
- phone – guest's phone number
- isMain – "main guest" flag in the room, can be true or false
- id – guest identifier
- extras – additional services tariff
- id – additional service type identifier
- key – additional service entry/option key
- date_from – additional service start date (ISO 8601)
- date_to – additional service end date (ISO 8601)
- is_duration – indicates whether the service is long-term, can be true or false
- guests – list of guest IDs to which the service applies
- comments – comments on the tariff/room
- transfers – transfers within the booking
- id – transfer type identifier
- key – transfer option key
- date – transfer date/time (ISO 8601)
- guests – list of guest IDs for the transfer
- price – transfer cost
- pointTo – destination point
- pointFrom – departure point
- transferName – transfer name
- transferType – transfer type
- key – type identifier
- name – type name
- currency – settlement currency (e.g., RUB, USD)
- routeNumber – flight/route number
- isGroup – group transfer, can be true or false
- maxPax – maximum capacity
- notes – internal notes for the reservation
- preferences – guest preferences
- booking_service_type – booking service type/channel
- Returned result:
- reservationId – string reservation identifier in external/front-end format
- reservationKey – numeric reservation key in the system
- clientReferenceId – returned external client identifier
- hotelConfirmationCode – hotel confirmation code
- status – reservation status, e.g., CONFIRMED, PENDING, CANCELLED
|
Calling the /booking/CreateReservation method POST http://localhost:7700/booking/CreateReservation
{
"hotel_id": 0,
"client_reference_id": "string",
"reservation_holder": {
"first_name": "string",
"last_name": "string",
"is_child": true,
"age": 0,
"birthday": "string",
"gender": 0,
"email": "string",
"phone": "string",
"isMain": true,
"id": 0
},
"contact_info": {
"phone": "string",
"email": "string",
"webpage": "string"
},
"rates": [
{
"rate_id": "string",
"price": 0,
"room": {
"id": "string",
"guests": [
{
"first_name": "string",
"last_name": "string",
"is_child": true,
"age": 0,
"birthday": "string",
"gender": 0,
"email": "string",
"phone": "string",
"isMain": true,
"id": 0
}
]
},
"extras": [
{
"id": "string",
"key": 0,
"date_from": "2025-10-05T20:20:18.919Z",
"date_to": "2025-10-05T20:20:18.919Z",
"is_duration": true,
"guests": [
0
]
}
],
"comments": "string"
}
],
"transfers": [
{
"id": "string",
"key": 0,
"date": "2025-10-05T20:20:18.919Z",
"guests": [
0
],
"price": 0,
"pointTo": "string",
"pointFrom": "string",
"transferName": "string",
"transferType": {
"key": 0,
"name": "string"
},
"currency": "string",
"routeNumber": "string",
"isGroup": true,
"maxPax": 0
}
],
"notes": "string",
"preferences": "string",
"booking_service_type": 0
}
Return result: {
"reservationId": "string",
"reservationKey": 0,
"clientReferenceId": "string",
"hotelConfirmationCode": "string",
"status": "string"
}
|
Getting information about a booked trip (GetReservation)
Method: GET /booking/GetReservation
- Request format:
- Accepted parameters:
- dgKey – the numeric key (ID) of the reservation used to retrieve full reservation details.
Returned result:
- rate – rate details
- additionalParams – additional rate parameters
- key – parameter name
- value – parameter value
- name – rate name
- id – rate identifier
- description – rate description
- descriptionSpecified – whether the description is filled in, can be true or false
- nameLat – name in Latin characters
- nameLatSpecified – whether the nameLat is filled in, can be true or false
- code – rate code
- codeSpecified – whether the code is filled in, can be true or false
- codeLat – code in Latin characters
- codeLatSpecified – whether the codeLat is filled in, can be true or false
- unicode – Unicode code/designation
- unicodeSpecified – whether the unicode is filled in, can be true or false
- isMain – whether the rate is main, can be true or false
- isNational – whether the rate is national, can be true or false
- additionalParams – additional rate parameters
- touristServices – connections between tourists and services
- id – identifier connections
- touristRoomNumber – room/boarding number
- serviceID – service identifier
- touristID – tourist identifier
- services – service parameters
- externalID – external service identifier
- price – service price
- nMen – number of tourists for the service
- partnerID – partner identifier
- packetKey – package service/package key
- detailNetto – net detailing
- detailBrutto – gross detailing
- notes – notes
- name – service name
- endDate – service end date (ISO 8601)
- startDay – "start day" relative to the tour
- rateBrutto – gross rate
- brutto – gross amount
- rateNetto – net rate
- netto – net amount
- touristCount – number of tourists for the service
- id – service identifier
- additionalParams – additional service parameters
- key – parameter name
- value – parameter value
- cityKey – service city identifier
- excursionID – Tour ID
- startDate – service start date (ISO 8601)
- duration – duration
- serviceClassID – service class/type
- id – booking ID
- name – booking name/code
- netto – net total amount
- grosstotal amount
- countryID – country ID
- cityID – city ID
- partnerID – partner ID
- startDate – tour/stay start date (ISO 8601)
- endDate – tour/stay end date (ISO 8601)
- duration – tour duration
- creationDate – booking creation date/time (ISO 8601)
- creatorID – creator ID
- tourists – list of tourists
- sex – gender
- firstName – first name
- lastName – patronymic/middle name
- surName – last name
- birthDate – date of birth (ISO 8601)
- firstNameLat – First name in Latin
- surNameLat – Last name in Latin
- lastNameLat – Middle name/middle name in Latin
- localPassport – Internal passport
- issuedBy – Issuer
- serie – Series
- number – Number
- issueDate – Issue date (ISO 8601)
- endDate – Expiration date (ISO 8601)
- foreignPassport – International passport
- issuedBy – Issuer
- serie – Series
- number – Number
- issueDate – Issue date (ISO 8601)
- endDate – Expiration date (ISO 8601)
- ageType – Age type
- citizen – Citizenship
- isMain – Main tourist indicator, can be true or false
- externalID – External ID
- additionalParams – Additional tourist parameters
- key – Parameter name
- value – Parameter value
- id – ID Tourist
- Phone – Phone
- Email – Email
- OwnerID – Owner/Agency ID
- TourOperatorID – Tour Operator ID
- TourOperatorCode – Tour Operator Code
- HasInvoices – Indicates whether invoices are available, can be true or false
- ExternalID – External ID of the reservation
- AdditionalParams – Additional booking parameters
- Key – Parameter name
- Value – Parameter value
- rate – rate details
|
Calling the /booking/GetReservation method GET http://localhost:7700/booking/GetReservation?dgKey=987654
Return result: {
"rate": {
"additionalParams": [
{
"key": "string",
"value": "string"
}
],
"name": "string",
"id": 0,
"description": "string",
"descriptionSpecified": true,
"nameLat": "string",
"nameLatSpecified": true,
"code": "string",
"codeSpecified": true,
"codeLat": "string",
"codeLatSpecified": true,
"unicode": "string",
"unicodeSpecified": true,
"isMain": true,
"isNational": true
},
"touristServices": [
{
"id": 0,
"touristRoomNumber": "string",
"serviceID": 0,
"touristID": 0
}
],
"services": {
"externalID": 0,
"price": 0,
"nMen": 0,
"partnerID": 0,
"packetKey": 0,
"detailNetto": "string",
"detailBrutto": "string",
"notes": "string",
"name": "string",
"endDate": "2025-10-05T20:50:25.957Z",
"startDay": 0,
"rateBrutto": "string",
"brutto": 0,
"rateNetto": "string",
"netto": 0,
"touristCount": 0,
"id": 0,
"additionalParams": [
{
"key": "string",
"value": "string"
}
],
"cityKey": 0,
"excursionID": 0,
"startDate": "2025-10-05T20:50:25.957Z",
"duration": 0,
"serviceClassID": 0
},
"id": 0,
"name": "string",
"netto": 0,
"brutto": 0,
"countryID": 0,
"cityID": 0,
"partnerID": 0,
"startDate": "2025-10-05T20:50:25.957Z",
"endDate": "2025-10-05T20:50:25.957Z",
"duration": 0,
"creationDate": "2025-10-05T20:50:25.957Z",
"creatorID": 0,
"tourists": [
{
"sex": 0,
"firstName": "string",
"lastName": "string",
"surName": "string",
"birthDate": "2025-10-05T20:50:25.957Z",
"firstNameLat": "string",
"surNameLat": "string",
"lastNameLat": "string",
"localPassport": {
"issuedBy": "string",
"serie": "string",
"number": "string",
"issueDate": "2025-10-05T20:50:25.957Z",
"endDate": "2025-10-05T20:50:25.957Z"
},
"foreignPassport": {
"issuedBy": "string",
"serie": "string",
"number": "string",
"issueDate": "2025-10-05T20:50:25.957Z",
"endDate": "2025-10-05T20:50:25.957Z"
},
"ageType": 0,
"citizen": "string",
"isMain": true,
"externalID": 0,
"additionalParams": [
{
"key": "string",
"value": "string"
}
],
"id": 0,
"phone": "string",
"email": "string"
}
],
"ownerID": 0,
"tourOperatorID": 0,
"tourOperatorCode": "string",
"hasInvoices": true,
"externalID": 0,
"additionalParams": [
{
"key": "string",
"value": "string"
}
]
}
|
Getting Advanced Information about a Booked Trip (GetReservationNew)
Method: GET /booking/GetReservationNew
- Request format:
- Accepted parameters:
- dgId – The reservation key (ID) for which you want to retrieve information
Returned result:
- reservation_id – String reservation ID
- reservation_key – Numeric reservation key
- client_reference_id – External ID from your system
- status_key – Numeric reservation status code
- status_name – Reservation status
- price – Total cost of the reservation
- paid – Amount paid
- create_date – Date/time of reservation creation (ISO 8601)
- confirmation_date – Date/time of reservation confirmation (ISO 8601)
- check_in – Check-in date/time (ISO 8601)
- check_out – check-out date/time (ISO 8601)
- pay_to – full payment deadline (ISO 8601)
- prepay_to – prepayment deadline (ISO 8601)
- reserved_by – who created/made the reservation (login/name)
- hotel_id – hotel ID
- doc_invoice – list of linked invoices/documents
- fileKey – invoice file key
- invoiceKey – invoice/waybill key
- invoiceName – invoice name
- fileName – invoice file name
- updateDate – document update date (ISO 8601)
- messages – reservation exchange messages/log
- dmId – message ID
- dmIsOutgoing – direction (0/1), 0 – incoming, 1 – outgoing
- dmDgkey – the booking key to which the message pertains
- dmRemark – a brief note/remark
- dmTypeCode – the message type code
- dmTableId – the associated record/table ID
- dmProcessed – the processing flag (0/1)
- dmCreateDate – the message creation date/time (ISO 8601)
- dmText – the message text
- dmTourOperKey – the tour operator ID for the message
- dmXml – the raw XML content (if any)
- dmSendername – the sender's name
- dmExternalId – the external message identifier
- dmDir – the destination according to the internal classification (numeric code)
- dmIsRead – the "read" flag: can be true (read) or false (not read)
- rates – a list of rates/accommodation options in Reservations
- id – Rate ID
- price – Total rate price
- basicPrice – Base price (before markups/discounts)
- bar_price – BAR price (if applicable)
- commission – Commission
- supplier_min_price – Minimum supplier price
- taxes – Rate taxes/fees
- type – Tax/fee type
- currency – Tax/fee currency
- is_included – Included in price: true (tax included) / false (additional charge)
- amount – Tax/fee amount
- payment_type – Rate payment type (e.g., prepayment/on-site payment)
- currency – Rate currency
- basicCurrency – Base currency
- meals – Included meal types
- id – Meal ID
- name – Meal name
- code – Meal code
- Cancellation_policies – Shortened rules Cancellations
- from – the start date/time of the specified sanction/penalty
- amount – the amount of the penalty/deduction
- cancellation_policies_extended – extended cancellation policies
- policyKey – rule key
- dateFrom – the validity period "from" (ISO 8601)
- dateTo – the validity period "to" (ISO 8601)
- penaltyValue – penalty amount
- isPercent – penalty amount format: true (as a percentage) / false (fixed amount)
- description – rule/penalty description
- payment_policies – payment terms for the tariff
- description – text description of the terms
- prepayDateTo – prepayment deadline (ISO 8601)
- prepayAmount – prepayment amount
- nonrefAmount – non-refundable portion
- payDateTo – full payment deadline (ISO 8601)
- payAmount – total amount to be paid
- rate – rate designation
- generatedName – generated condition name
- addHots – additional "hot" services/surcharges
- count – quantity
- description – description
- gross – gross amount
- canDeleteService – whether this service can be deleted: true (yes) / false (no)
- cancellationPolicy – cancellation policy for the service
- extraServices – additional services
- count – quantity
- description – description
- gross – gross amount
- canDeleteService – whether this service can be deleted: true / false
- cancellationPolicy – cancellation policy
- manualExtraServices – manually added additional services
- id – string identifier of the service
- key – service key
- date_from – start date (ISO 8601)
- date_to – end date (ISO 8601)
- duration – duration
- is_duration – interpret as a long-term service: true / false
- guests – list of guest keys applicable to
- price – price
- currency – currency
- serviceClass – service class
- key – class key
- name – class name
- service – service type/kind
- key – type key
- name – type name
- linkType – service link type to booking
- key – link type key
- name – link type name
- isGroup – group service: true / false
- isCalculated – calculated by the system: true / false
- rooms – rooms/accommodation options
- id – room identifier
- name – room name
- bed_groups – bed groups
- id – group identifier
- name – group name
- bed_types – list of bed types
- name – bed type
- quantity – quantity
- allotment – quota of places per room
- roomVariant – room option (code)
- roomAccommodation – accommodation type
- guestGroup – aggregated group of guests by rate
- adults – number of adults
- children_ages – ages of children
- groupMultiplier – group multiplier (for multiplying the price/quota)
- guests – list of guests in the rate (structure is similar to the guest in the application)
- quotaType – quota/availability type
- quotaPlaces – information about quotas/places
- key - key
- value - value
- bruttoDetail - gross details
- uniqueCode - unique rate/element code
- city - city
- key - key
- value - value
- region - region
- key - key
- value - value
- hotel - hotel
- key - key
- value - value
- isAnul - service cancellation flag: true (cancelled) / false (active)
- notes - notes
- hotelExtra - additional information about the hotel/service
- provider - code/identifier Supplier
- isEditable – Can be edited: true / false
- payment_policies – Payment terms for the booking (structured as above for the fare)
- transfers – Transfers linked to the booking
- id – Transfer type identifier
- key – Transfer option key
- date – Transfer date/time (ISO 8601)
- guests – Guest keys for the guest booking the transfer
- price – Cost
- pointTo – Destination
- pointFrom – Departure point
- transferName – Transfer name
- transferType – Transfer type
- key – Type key
- name – Type name
- currency – Currency
- routeNumber – Flight/route number
- isGroup – Group transfer: true / false
- maxPax – Maximum capacity
Calling the /booking/GetReservationNew method GET http://localhost:7700/booking/GetReservationNew?dgId=987654
Returned result:
{
"reservation_id": "string",
"reservation_key": 0,
"client_reference_id": "string",
"status_key": 0,
"status_name": "string",
"price": 0,
"paid": 0,
"create_date": "2025-10-05T20:53:55.309Z",
"confirmation_date": "2025-10-05T20:53:55.309Z",
"check_in": "2025-10-05T20:53:55.309Z",
"check_out": "2025-10-05T20:53:55.309Z",
"pay_to": "2025-10-05T20:53:55.309Z",
"prepay_to": "2025-10-05T20:53:55.309Z",
"reserved_by": "string",
"hotel_id": 0,
"doc_invoice": [
{
"fileKey": 0,
"invoiceKey": 0,
"invoiceName": "string",
"fileName": "string",
"updateDate": "2025-10-05T20:53:55.309Z"
}
],
"messages": [
{
"dmId": 0,
"dmIsOutgoing": 0,
"dmDgkey": 0,
"dmRemark": "string",
"dmTypeCode": 0,
"dmTableId": 0,
"dmProcessed": 0,
"dmCreateDate": "2025-10-05T20:53:55.309Z",
"dmText": "string",
"dmTourOperKey": 0,
"dmXml": "string",
"dmSendername": "string",
"dmExternalId": 0,
"dmDir": 0,
"dmIsRead": true
}
],
"rates": [
{
"id": "string",
"price": 0,
"basicPrice": 0,
"bar_price": 0,
"commission": 0,
"supplier_min_price": 0,
"taxes": [
{
"type": "string",
"currency": "string",
"is_included": true,
"amount": 0
}
],
"payment_type": "string",
"currency": "string",
"basicCurrency": "string",
"meals": [
{
"id": "string",
"name": "string",
"code": "string"
}
],
"cancellation_policies": [
{
"from": "string",
"amount": 0
}
],
"cancellation_policies_extended": [
{
"policyKey": 0,
"dateFrom": "2025-10-05T20:53:55.309Z",
"dateTo": "2025-10-05T20:53:55.309Z",
"penaltyValue": 0,
"isPercent": true,
"description": "string"
}
],
"payment_policies": {
"description": "string",
"prepayDateTo": "2025-10-05T20:53:55.309Z",
"prepayAmount": 0,
"nonrefAmount": 0,
"payDateTo": "2025-10-05T20:53:55.309Z",
"payAmount": 0,
"rate": "string",
"generatedName": "string"
},
"addHots": [
{
"count": 0,
"description": "string",
"brutto": 0,
"canDeleteService": true,
"cancellationPolicy": "string"
}
],
"extraServices": [
{
"count": 0,
"description": "string",
"brutto": 0,
"canDeleteService": true,
"cancellationPolicy": "string"
}
],
"manualExtraServices": [
{
"id": "string",
"key": 0,
"date_from": "2025-10-05T20:53:55.309Z",
"date_to": "2025-10-05T20:53:55.309Z",
"duration": 0,
"is_duration": true,
"guests": [
0
],
"price": 0,
"currency": "string",
"serviceClass": {
"key": 0,
"name": "string"
},
"service": {
"key": 0,
"name": "string"
},
"linkType": {
"key": 0,
"name": "string"
},
"isGroup": true,
"isCalculated": true
}
],
"rooms": [
{
"id": "string",
"name": "string",
"bed_groups": [
{
"id": "string",
"name": "string",
"bed_types": [
{
"name": "string",
"quantity": 0
}
]
}
],
"allotment": 0,
"roomVariant": 0,
"roomAccommodation": "string"
}
],
"guestGroup": {
"adults": 0,
"children_ages": [
0
],
"groupMultiplier": 0
},
"guests": [
{
"first_name": "string",
"last_name": "string",
"is_child": true,
"age": 0,
"birthday": "string",
"gender": 0,
"email": "string",
"phone": "string",
"isMain": true,
"id": 0
}
],
"quotaType": 0,
"quotaPlaces": {
"key": "string",
"value": 0
},
"bruttoDetail": "string",
"uniqueCode": "string",
"city": {
"key": "string",
"value": 0
},
"region": {
"key": "string",
"value": 0
},
"hotel": {
"key": "string",
"value": 0
},
"isAnul": true,
"notes": "string",
"hotelExtra": "string",
"provider": 0,
"isEditable": true
}
],
"payment_policies": {
"description": "string",
"prepayDateTo": "2025-10-05T20:53:55.309Z",
"prepayAmount": 0,
"nonrefAmount": 0,
"payDateTo": "2025-10-05T20:53:55.309Z",
"payAmount": 0,
"rate": "string",
"generatedName": "string"
},
"transfers": [
{
"id": "string",
"key": 0,
"date": "2025-10-05T20:53:55.309Z",
"guests": [
0
],
"price": 0,
"pointTo": "string",
"pointFrom": "string",
"transferName": "string",
"transferType": {
"key": 0,
"name": "string"
},
"currency": "string",
"routeNumber": "string",
"isGroup": true,
"maxPax": 0
}
]
}
|
Getting Files (GetFileData)
Method: GET /booking/GetFileData
- Request format:
- Accepted parameters:
- key – key (identifier) of the file whose contents you want to retrieve
Returned result: (file object)
- key – key (identifier) of the file
- name – file name (with extension)
- size – file size in bytes
- data – file contents in Base64
- compressed – content compression flag: can be true (data is compressed) or false (data is not compressed)
- mime – MIME type (e.g., application/pdf, image/png)
- type – file type/class (internal designation)
- originalType – original type/extension when uploading
|
Calling the /booking/GetFileData method GET http://localhost:7700/booking/GetFileData?key=9001
Return result: {
"key": 0,
"name": "string",
"size": 0,
"data": "string",
"compressed": true,
"mime": "string",
"type": "string",
"originalType": "string"
}
|
Getting bookings by arrival date (GetArrivalsByDate)
Method: GET /booking/GetArrivalsByDate
- Request format:
- Accepted parameters:
- date – the arrival (check-in) date for which you want to retrieve a list of bookings; Specify in ISO format (e.g., 2025-10-07 or 2025-10-07T00:00:00Z)
- countryKey – filter by country (country key)
- regionKey – filter by region/province (region key)
- cityKey – filter by city (city key)
- hotelKey – filter by hotel (hotel key)
- Returned result:
- row with a summary of arrivals for the specified filters
|
Method call /booking/GetArrivalsByDate GET http://localhost:7700/booking/GetArrivalsByDate?date=2025.10.07&cityKey=213
Returned result: "ARRIVALS: date=2025-10-07; hotelKey=4387; expectedCount=12"
|
Getting bookings by departure dates (GetDeparturesByDate)
Method: GET /booking/GetDeparturesByDate
- Request format:
- Accepted parameters:
- date – departure date for which you want to retrieve a list of departures; In ISO format (e.g., 2025-10-07 or 2025-10-07T00:00:00Z)
- countryKey – filter by country (country key)
- regionKey – filter by region/province (region key)
- cityKey – filter by city (city key)
- hotelKey – filter by hotel (hotel key)
- Returned result:
- row with a summary of departures for the specified filters
|
Method call /booking/GetDeparturesByDate GET http://localhost:7700/booking/GetDeparturesByDate?date=2025-10-07&hotelKey=4387
Returned result: "DEPARTURES: date=2025-10-07; hotelKey=4387; expectedCount=9"
|
Travel Cancellation (CancelReservation)
Method: GET /booking/CancelReservation
- Request format:
- Accepted parameters:
- dgKey – the key (ID) of the reservation to be cancelled
- annulReasonID – the ID of the cancellation reason (from the reasons directory; used to correctly record the reason for cancellation)
- note – a comment on the cancellation (e.g., an explanation for an internal log or partner)
- Returned result:
- a string with the operation result (e.g., the cancellation confirmation text or an error message)
|
Calling the /booking/CancelReservation method GET http://localhost:7700/booking/CancelReservation?dgKey=987654&annulReasonID=3¬e=Client%20requested%20cancellation
Return result: "Reservation 987654 canceled (reason 3)"
|
Travel Cancellation with Extended Information (CancelReservationExtended)
- Request Format:
- Accepted Parameters:
- dgKey – Key (ID) of the reservation to be cancelled
- annulReasonID – Cancellation reason ID (from the reasons directory; allows for the correct recording of the cancellation reason)
- note – Cancellation comment (custom text for the journal/partner)
Returned Result:
- status – Final operation status code
- canceledServiceResults – List of results for each affected service
- isStatusOk – Successful service cancellation indicator: can be true (successful) or false (error)
- error – Error message when canceling the service (if any)
- number – Service/item number (if numbering is used)
- key – service key (identifier)
- resultMessage – text description of the service result
- penaltyCost – details of the penalty/penalty upon cancellation
- policyKey – key of the applied rule
- dateFrom – date/time of penalty start (ISO 8601)
- dateTo – date/time of penalty end (ISO 8601)
- penaltyValue – penalty amount
- isPercent – penalty amount format: can be true (as a percentage) or false (a fixed amount)
- netto – net amount to which the penalty/deduction is applied
- totalPenalty – calculated total penalty amount
- description – description of the applied rule/penalty
|
Calling the /booking/CancelReservationExtended method GET http://localhost:7700/booking/CancelReservationExtended?dgKey=987654&annulReasonID=3¬e=Client
Return result: {
"status": 0,
"canceledServiceResults": [
{
"isStatusOk": true,
"error": "string",
"number": 0,
"key": 0,
"resultMessage": "string",
"penaltyCost": {
"policyKey": 0,
"dateFrom": "2025-10-05T21:31:31.531Z",
"dateTo": "2025-10-05T21:31:31.531Z",
"penaltyValue": 0,
"isPercent": true,
"netto": 0,
"totalPenalty": 0,
"description": "string"
}
}
]
}
|
Getting reservations by date (GetReservationsFrom)
Method: GET /booking/GetReservationsFrom
- Request format:
- Accepted parameters:
- dateFrom – start date of the period (ISO 8601), inclusive
- dateTo – end date of the period (ISO 8601), inclusive
Returned result:
- message – service message about the selection result
- error – error text, if one occurred (empty if successful)
- count – number of reservations found
- data – array of reservation summary records
- key – reservation key (ID)
- code – reservation code/number
- childrenAges – list of ages of children included in the selected reservations
- adults – total number of adults in the selection
|
Calling the /booking/GetReservationsFrom method GET http://localhost:7700/booking/GetReservationsFrom?dateFrom=2025-10-01&dateTo=2025-10-07
Return result: {
"message": "string",
"error": "string",
"count": 0,
"data": [
{
"key": 0,
"code": "string"
}
],
"childrenAges": [
0
],
"adults": 0
}
|
Getting Reservations, Advanced (GetReservations)
Method: POST /booking/GetReservations
- Request format:
- Accepted parameters (Request body):
- sorting – result sorting parameters
- property – field to sort by (e.g., createDate, tourStart, price)
- descending – sort direction: true – descending, false – ascending
- paging – pagination parameters
- number – page number (usually starting with 1)
- size – page size (number of records per page)
- tourCreateDate – range by reservation creation date
- from – lower bound (ISO 8601)
- to – upper bound (ISO 8601)
- tourDateFrom – range by start date tour/arrival
- from – lower limit (ISO 8601)
- to – upper limit (ISO 8601)
- tourDateTo – interval by tour/departure date
- from – lower limit (ISO 8601)
- to – upper limit (ISO 8601)
- tourPrePayment – interval by prepayment terms
- from – lower limit (ISO 8601)
- to – upper limit (ISO 8601)
- tourPayment – interval by full payment terms
- from – lower limit (ISO 8601)
- to – upper limit (ISO 8601)
- dogovorCode – filter by agreement number
- hotels – list of hotel keys for filtering
- cities – list of city keys for filtering
- statuses – list of booking status codes/keys for filtering
- logins – list of identifiers Users who made reservations
- touristSurname – Filter by tourist's last name
- sorting – result sorting parameters
- Returned result:
- message – Service message about request execution
- error – Error text (empty if successful)
- count – Total number of records found, taking into account filters
- data – Array of brief information about reservations
- code – Reservation code/number
- customerCode – Customer/payer code
- key – Reservation key (ID)
- city – Reservation city
- key – City name/code
- value – City key
- Region – Reservation region
- key – Region name/code
- value – Region key
- Hotel – Primary hotel of the reservation
- key – Hotel key
- name – Hotel short name
- fullName – Hotel full name
- fullContextName – Display name with context
- regionKey – Region key
- cityKey – City key
- categoryKey – Category key Hotel
- dates – dates of stay
- from – arrival date (ISO 8601)
- to – departure date (ISO 8601)
- mealsKeys – list of meal type keys
- hasDescription – hotel has a description: true / false
- extraHotels – additional hotels included in the reservation (if any)
- (field structure is similar to hotel)
- duration – tour/stay duration (in days/nights, according to system rules)
- tourStart – tour start date (ISO 8601)
- tourEnd – tour end date (ISO 8601)
- createDate – reservation creation date (ISO 8601)
- price – total cost
- paid – amount paid
- rate – rate/conditions (label)
- invoicesIssued – list of issued invoices
- inId – invoice ID
- inCustomerKey – key Client
- inProviderKey – Supplier key
- inNumber – Invoice number
- inCurrency – Invoice currency
- inPrice – Invoice amount
- inPayed – Invoice amount paid
- inCreateDate – Invoice creation date (ISO 8601)
- inCreateUser – Invoice creation user key
- inNotes – Invoice notes
- inDogovors – Contract link(s)
- inCheckInDate – Invoice check-in date (ISO 8601)
- inPaymentDate – Invoice payment due date (ISO 8601)
- inIsDeleted – Deletion flag: true / false
- inCheckInEnd – Invoice check-out date (ISO 8601)
- inInvoiceType – Invoice type (code)
- inNumberVersion – Invoice version Invoice numbers
- inInvoiceKind – Invoice type (code)
- login – Username of the user who made the reservation
- status – Reservation status
- key – Text designation/status code
- value – Numeric status code
- roomsCount – Number of rooms
- adultsCount – Number of adults
- childrenCount – Number of children
- mainTourist – Full name of the main tourist
- tourists – List of tourists (full name as a string)
- roomDetails – Room details
- adults – Number of adults in the room
- children – Number of children in the room
- payment_policies – Payment terms for the reservation
- description – Text description of the terms
- prepayDateTo – Advance payment deadline (ISO 8601)
- prepayAmount – Advance payment amount
- nonrefAmount – Non-refundable portion
- payDateTo – Full payment deadline (ISO 8601)
- payAmount – amount to be paid
- rate – rate designation
- generatedName – generated name of conditions
- childrenAges – list of children's ages in the sample
- adults – total number of adults in the sample
|
Calling the /booking/GetReservations method POST http://localhost:7700/booking/GetReservations
{
"sorting": {
"property": "string",
"descending": true
},
"paging": {
"number": 0,
"size": 0
},
"tourCreateDate": {
"from": "2025-10-05T21:42:47.492Z",
"to": "2025-10-05T21:42:47.492Z"
},
"tourDateFrom": {
"from": "2025-10-05T21:42:47.492Z",
"to": "2025-10-05T21:42:47.492Z"
},
"tourDateTo": {
"from": "2025-10-05T21:42:47.492Z",
"to": "2025-10-05T21:42:47.492Z"
},
"tourPrePayment": {
"from": "2025-10-05T21:42:47.492Z",
"to": "2025-10-05T21:42:47.492Z"
},
"tourPayment": {
"from": "2025-10-05T21:42:47.492Z",
"to": "2025-10-05T21:42:47.492Z"
},
"dogovorCode": "string",
"hotels": [
0
],
"cities": [
0
],
"statuses": [
0
],
"logins": [
0
],
"touristSurname": "string"
}
Return result: {
"message": "string",
"error": "string",
"count": 0,
"data": [
{
"code": "string",
"customerCode": "string",
"key": 0,
"city": {
"key": "string",
"value": 0
},
"region": {
"key": "string",
"value": 0
},
"hotel": {
"key": 0,
"name": "string",
"fullName": "string",
"fullContextName": "string",
"regionKey": 0,
"cityKey": 0,
"categoryKey": 0,
"dates": {
"from": "2025-10-05T21:42:48.852Z",
"to": "2025-10-05T21:42:48.852Z"
},
"mealsKeys": [
0
],
"hasDescription": true
},
"extraHotels": [
{
"key": 0,
"name": "string",
"fullName": "string",
"fullContextName": "string",
"regionKey": 0,
"cityKey": 0,
"categoryKey": 0,
"dates": {
"from": "2025-10-05T21:42:48.852Z",
"to": "2025-10-05T21:42:48.852Z"
},
"mealsKeys": [
0
],
"hasDescription": true
}
],
"duration": 0,
"tourStart": "2025-10-05T21:42:48.852Z",
"tourEnd": "2025-10-05T21:42:48.852Z",
"createDate": "2025-10-05T21:42:48.852Z",
"price": 0,
"paid": 0,
"rate": "string",
"invoicesIssued": [
{
"inId": 0,
"inCustomerKey": 0,
"inProviderKey": 0,
"inNumber": "string",
"inCurrency": "string",
"inPrice": 0,
"inPayed": 0,
"inCreateDate": "2025-10-05T21:42:48.852Z",
"inCreateUser": 0,
"inNotes": "string",
"inDogovors": "string",
"inCheckInDate": "2025-10-05T21:42:48.852Z",
"inPaymentDate": "2025-10-05T21:42:48.852Z",
"inIsDeleted": true,
"inCheckInEnd": "2025-10-05T21:42:48.852Z",
"inInvoiceType": 0,
"inNumberVersion": 0,
"inInvoiceKind": 0
}
],
"login": "string",
"status": {
"key": "string",
"value": 0
},
"roomsCount": 0,
"adultsCount": 0,
"childrenCount": 0,
"mainTourist": "string",
"tourists": [
"string"
],
"roomDetails": [
{
"adults": 0,
"children": 0
}
],
"payment_policies": {
"description": "string",
"prepayDateTo": "2025-10-05T21:42:48.852Z",
"prepayAmount": 0,
"nonrefAmount": 0,
"payDateTo": "2025-10-05T21:42:48.852Z",
"payAmount": 0,
"rate": "string",
"generatedName": "string"
}
}
],
"childrenAges": [
0
],
"adults": 0
}
|
Getting Filters for the Request Screen (GetReservationsFilters)
Method: GET /booking/GetReservationsFilters
- Request format:
- No accepted parameters
Returned result:
- statuses – List of available booking statuses for filtering
- key – Textual designation/status code
- value – Numeric status code
- cities – List of cities for filtering
- key – City key
- name – City name
- type – Locality type (e.g., "city", "resort")
- regions – List of regions for filtering
- key – Region key
- name – Region name
- type – Territorial unit type
- countries – List of countries for filtering
- key – Country code (name/ISO code)
- value – Numeric country key
- hotels – List of hotels for filtering
- key – Hotel key
- name – short hotel name
- fullName – full hotel name
- fullContextName – name with context (city/region)
- regionKey – region key
- cityKey – city key
- categoryKey – category/star rating key
- dates – available stay dates
- from – period start date (ISO 8601)
- to – period end date (ISO 8601)
- mealsKeys – list of keys for available meal types
- hasDescription – whether the hotel has a description: can be true (description available) or false (no description available)
- logins – list of users to filter bookings by
- key – username/ID
- value – numeric user key
- statuses – List of available booking statuses for filtering
|
Calling the /booking/GetReservationsFilters method GET http://localhost:7700/booking/GetReservationsFilters
Return result: {
"statuses": [
{
"key": "string",
"value": 0
}
],
"cities": [
{
"key": 0,
"name": "string",
"type": "string"
}
],
"regions": [
{
"key": 0,
"name": "string",
"type": "string"
}
],
"countries": [
{
"key": "string",
"value": 0
}
],
"hotels": [
{
"key": 0,
"name": "string",
"fullName": "string",
"fullContextName": "string",
"regionKey": 0,
"cityKey": 0,
"categoryKey": 0,
"dates": {
"from": "2025-10-05T21:52:40.981Z",
"to": "2025-10-05T21:52:40.981Z"
},
"mealsKeys": [
0
],
"hasDescription": true
}
],
"logins": [
{
"key": "string",
"value": 0
}
]
}
|
Getting service parameters (GetChangingServiceParams)
Method: GET /booking/GetChangingServiceParams
- Request format:
- Accepted parameters:
- dlKey – the key (ID) of the service in the booking for which you want to get the change parameters
- Returned result:
- dlKey – the key of the service for which the parameters were returned
- serviceType – the service type (code; e.g., accommodation, transfer, etc.)
- dateFrom – the current service start date (ISO 8601)
- dateTo – the current service end date (ISO 8601)
- roomKey – the currently selected room (key)
- pansionKey – the currently selected type Meals (key)
- guests – list of guests by service
- first_name – guest's first name
- last_name – guest's last name
- is_child – whether the guest is a child: can be true (child) or false (adult)
- age – guest's age
- birthday – date of birth (ISO 8601)
- gender – gender
- email – guest's email
- phone – guest's phone number
- isMain – whether the guest is the main guest by service: can be true (main) or false (regular)
- id – guest identifier
- availableRooms – available room options for modification
- id – room option identifier
- name – room option name
- bed_groups – bed groups
- id – group identifier
- name – group name
- bed_types – bed types
- name – bed type
- quantity – quantity
- allotment – available allotment for the room
- roomVariant – option code rooms
- roomAccommodation – accommodation type (e.g., Double or Twin Room, Triple Room)
- availableBansions – available boarding options
- id – boarding ID
- name – boarding name
- code – boarding code
- removeExtras – list of extra service keys that will be removed upon change
|
Calling the /booking/GetChangingServiceParams method GET http://localhost:7700/booking/GetChangingServiceParams?dlKey=7001
Return result: {
"dlKey": 0,
"serviceType": 0,
"dateFrom": "2025-10-05T21:55:50.991Z",
"dateTo": "2025-10-05T21:55:50.991Z",
"roomKey": 0,
"pansionKey": 0,
"guests": [
{
"first_name": "string",
"last_name": "string",
"is_child": true,
"age": 0,
"birthday": "string",
"gender": 0,
"email": "string",
"phone": "string",
"isMain": true,
"id": 0
}
],
"availableRooms": [
{
"id": "string",
"name": "string",
"bed_groups": [
{
"id": "string",
"name": "string",
"bed_types": [
{
"name": "string",
"quantity": 0
}
]
}
],
"allotment": 0,
"roomVariant": 0,
"roomAccommodation": "string"
}
],
"availablePansions": [
{
"id": "string",
"name": "string",
"code": "string"
}
],
"removeExtras": [
0
]
}
|
Checking Changed Service Parameters (CheckChangingServiceParams)
Method: POST /booking/CheckChangingServiceParams
- Request Format:
- Received Parameters (Request Body):
- dlKey – Key (ID) of the service in the booking for which the change is being checked
- serviceType – Service type (code) to be changed
- Returned Result: (Preview of available conditions and price after the change)
- id – ID of the calculated option
- price – Final price of the option
- commission – Commission
- meals – Available meal options
- id – Meal ID
- name – Meal name
- code – Meal code
- cancellation_policies – Brief cancellation policies
- from – Start date of the specified rule
- amount – Amount of deduction for the rule
- cancellation_policies_extended – Extended cancellation policies
- policyKey – Rule key
- dateFrom – Valid from period
- dateTo – Valid to period
- penaltyValue – Penalty amount
- isPercent – Penalty amount format: can be true (as a percentage) or false (fixed amount)
- description – Rule description
- payment_policies – Payment terms for the option
- description – Text description of the terms
- prepayDateTo – Prepayment deadline
- prepayAmount – Prepayment amount
- nonrefAmount – Non-refundable portion
- payDateTo – Full payment deadline
- payAmount – Amount to be paid
- rate – Rate designation
- generatedName – Generated name of the terms
- addHots – Additional "hot" services/surcharges
- count – Quantity
- description – Description
- grossto – Gross amount
- canDeleteService – Whether this service can be deleted: can be true (can) or false (not allowed)
- cancellationPolicy – cancellation policy for the service
- extraServices – extra services
- count – quantity
- description – description
- grossto – gross amount
- canDeleteService – can delete: can be true or false
- cancellationPolicy – cancellation policy
- rooms – available room options
- id – room identifier
- name – room name
- bed_groups – bed groups
- id – group identifier
- name – group name
- bed_types – bed types
- name – bed type
- quantity – quantity
- allotment – available allotment
- roomVariant – room option code
- roomAccommodation – accommodation type
- quotaType – quota/availability type
- quotaPlaces – quota/place details
- key – key
- value – value
- bruttoDetail – text detailing of the gross amount
- uniqueCode – unique Calculated variant code
- guests – list of guests for whom the change is being checked
- first_name – guest's first name
- last_name – guest's last name
- is_child – "child" flag: can be true (child) or false (adult)
- age – age
- birthday – date of birth
- gender – gender (code)
- email – email
- phone – phone number
- isMain – "main guest" flag: can be true or false
- id – guest ID
|
Calling the /booking/CheckChangingServiceParams method POST http://localhost:7700/booking/CheckChangingServiceParams
{ "dlKey": 7001, "serviceType": 1 }
Returned result: {
"id": "string",
"price": 0,
"commission": 0,
"meals": [
{
"id": "string",
"name": "string",
"code": "string"
}
],
"cancellation_policies": [
{
"from": "string",
"amount": 0
}
],
"cancellation_policies_extended": [
{
"policyKey": 0,
"dateFrom": "2025-10-05T22:01:28.034Z",
"dateTo": "2025-10-05T22:01:28.034Z",
"penaltyValue": 0,
"isPercent": true,
"description": "string"
}
],
"payment_policies": {
"description": "string",
"prepayDateTo": "2025-10-05T22:01:28.034Z",
"prepayAmount": 0,
"nonrefAmount": 0,
"payDateTo": "2025-10-05T22:01:28.034Z",
"payAmount": 0,
"rate": "string",
"generatedName": "string"
},
"addHots": [
{
"count": 0,
"description": "string",
"brutto": 0,
"canDeleteService": true,
"cancellationPolicy": "string"
}
],
"extraServices": [
{
"count": 0,
"description": "string",
"brutto": 0,
"canDeleteService": true,
"cancellationPolicy": "string"
}
],
"rooms": [
{
"id": "string",
"name": "string",
"bed_groups": [
{
"id": "string",
"name": "string",
"bed_types": [
{
"name": "string",
"quantity": 0
}
]
}
],
"allotment": 0,
"roomVariant": 0,
"roomAccommodation": "string"
}
],
"quotaType": 0,
"quotaPlaces": {
"key": "string",
"value": 0
},
"bruttoDetail": "string",
"uniqueCode": "string",
"guests": [
{
"first_name": "string",
"last_name": "string",
"is_child": true,
"age": 0,
"birthday": "string",
"gender": 0,
"email": "string",
"phone": "string",
"isMain": true,
"id": 0
}
]
}
|
Changing Service Parameters (SaveChangingServiceParams)
Method: POST /booking/SaveChangingServiceParams
- Request Format:
- Accepted Parameters:
- dogovorKey – The booking/contract key for which changes are being saved
- Accepted Parameters (Request Body):
- dlKey – The key of the service to be changed
- serviceType – The service type (code)
- Returned Result:
- reservation_id – The reservation ID
- reservation_key – The reservation key
- client_reference_id – The external client reference
- status_key – The reservation status code
- status_name – The name of the reservation status
- price – The total price
- paid – The amount paid
- create_date – The date/time the reservation was created
- confirmation_date – Confirmation date/time
- check_in – Check-in date/time
- check_out – Check-out date/time
- pay_to – Full payment deadline
- prepay_to – Prepayment deadline
- reserved_by – Username/name of the user who made the reservation
- hotel_id – Hotel ID
- doc_invoice – Linked invoices/documents
- fileKey – File key
- invoiceKey – Invoice key
- invoiceName – Invoice name
- fileName – File name
- updateDate – Update date
- messages – Messages/message log
- dmId – Message ID
- dmIsOutgoing – Direction: can be true (outgoing) or false (incoming)
- dmDgkey – Reservation key
- dmRemark – Remark
- dmTypeCode – Message type code
- dmTableId – Linked record ID
- dmProcessed – Processing flag: can be true or false
- dmCreateDate – Creation date/time
- dmText – Message text
- dmTourOperKey – Tour operator ID
- dmXml – Raw XML content
- dmSendername – Sender name
- dmExternalId – External message ID
- dmDir – Destination (code)
- dmIsRead – Read flag: can be true or false
- Rates – Rates/Accommodation options, taking into account saved changes
- id – Rate ID
- price – Rate price
- basicPrice – Base price
- bar_price – BAR price
- commission – Commission
- supplier_min_price – Minimum supplier price
- Taxes – Taxes/Fees
- type – Tax/Fees type
- currency – Currency
- is_included – Tax Included in price: can be true or false
- amount – amount
- payment_type – rate payment type
- currency – rate currency
- basicCurrency – base currency
- meals – included meal types
- id – meal identifier
- name – meal name
- code – meal code
- cancellation_policies – short cancellation policies
- from – rule start date
- amount – deduction amount
- cancellation_policies_extended – extended cancellation policies
- policyKey – rule key
- dateFrom – validity period "from"
- dateTo – validity period "to"
- penaltyValue – penalty amount
- isPercent – penalty format: can be true (percentage) or false (fixed amount)
- description – rule description
- payment_policies – payment terms
- description – terms text
- prepayDateTo – prepayment due date
- prepayAmount – prepayment amount
- nonrefAmount – nonrefundable portion
- payDateTo – full payment deadline
- payAmount – amount to be paid
- rate – rate designation
- generatedName – generated name of conditions
- addHots – "hot" extra services/surcharges
- count – quantity
- description – description
- gross – gross amount
- canDeleteService – can be deleted: can be true or false
- cancellationPolicy – cancellation policy
- extraServices – extra services
- count – quantity
- description – description
- gross – gross amount
- canDeleteService – can be deleted: can be true or false
- cancellationPolicy – cancellation policy
- manualExtraServices – manually added services
- id – string identifier
- key – key
- date_from – start date
- date_to – end date
- duration – duration
- is_duration – the service is long-term: can be true or false
- guests – guest keys
- price – price
- currency – currency
- serviceClass – service class
- key – class key
- name – class name
- service – service type/kind
- key – type key
- name – type name
- linkType – service link type to booking
- key – link type key
- name – link type name
- isGroup – group service: can be true or false
- isCalculated – calculated by the system: can be true or false
- rooms – rooms/accommodation options
- id – room option identifier
- name – room option name
- bed_groups – bed groups
- id – bed group identifier
- name – group name
- bed_types – bed types in the group
- name – bed type/format
- quantity – number of such beds
- allotment – available quota
- roomVariant – room option code
- roomAccommodation – accommodation type
- guestGroup – aggregated guest group
- adults – number of adults
- children_ages – list of children's ages
- groupMultiplier – group multiplier
- guests – guests of the rate
- first_name – guest's first name
- last_name – guest's last name
- is_child – child indicator: can be true or false
- age – age
- birthday – date of birth
- gender – gender (code)
- email – email
- phone – phone number
- isMain – "main guest" indicator: can be true or false
- id – guest identifier
- quotaType – quota/availability type
- quotaPlaces – quotas/places
- key – quota key/code
- value – quota/remaining places value
- bruttoDetail – text detailing of the gross amount
- uniqueCode – unique option code
- city – city
- key – city name/code
- value – city key
- region – region
- key – region name/code
- value – region key
- hotel – hotel
- key – hotel name/code
- value – hotel key
- isAnul – service cancelled: can be true or false
- notes – notes
- hotelExtra – additional hotel information
- provider – provider code/ID
- isEditable – editable: can be true or false
- payment_policies – payment terms for the entire reservation
- description – terms text
- prepayDateTo – prepayment due date
- prepayAmount – prepayment amount
- nonrefAmount – non-refundable portion
- payDateTo – full payment due date
- payAmount – amount to be paid
- rate – rate designation
- generatedName – generated terms name
- transfers – transfers
- id – transfer type ID
- key – option key
- date – transfer date/time
- guests – guest keys
- price – cost
- pointTo – destination
- pointFrom – departure point
- transferName – transfer name
- transferType – transfer type
- key – transfer type key
- name – transfer type name
- currency – currency
- routeNumber – flight/route number
- isGroup – group transfer: can be true or false
- maxPax – maximum capacity
|
Calling the /booking/SaveChangingServiceParams method POST http://localhost:7700/booking/SaveChangingServiceParams?dogovorKey=987654
[
{
"dlKey": 0,
"serviceType": 0
}
]
Returned result: {
"reservation_id": "string",
"reservation_key": 0,
"client_reference_id": "string",
"status_key": 0,
"status_name": "string",
"price": 0,
"paid": 0,
"create_date": "2025-10-05T22:14:49.952Z",
"confirmation_date": "2025-10-05T22:14:49.952Z",
"check_in": "2025-10-05T22:14:49.952Z",
"check_out": "2025-10-05T22:14:49.952Z",
"pay_to": "2025-10-05T22:14:49.952Z",
"prepay_to": "2025-10-05T22:14:49.952Z",
"reserved_by": "string",
"hotel_id": 0,
"doc_invoice": [
{
"fileKey": 0,
"invoiceKey": 0,
"invoiceName": "string",
"fileName": "string",
"updateDate": "2025-10-05T22:14:49.952Z"
}
],
"messages": [
{
"dmId": 0,
"dmIsOutgoing": 0,
"dmDgkey": 0,
"dmRemark": "string",
"dmTypeCode": 0,
"dmTableId": 0,
"dmProcessed": 0,
"dmCreateDate": "2025-10-05T22:14:49.952Z",
"dmText": "string",
"dmTourOperKey": 0,
"dmXml": "string",
"dmSendername": "string",
"dmExternalId": 0,
"dmDir": 0,
"dmIsRead": true
}
],
"rates": [
{
"id": "string",
"price": 0,
"basicPrice": 0,
"bar_price": 0,
"commission": 0,
"supplier_min_price": 0,
"taxes": [
{
"type": "string",
"currency": "string",
"is_included": true,
"amount": 0
}
],
"payment_type": "string",
"currency": "string",
"basicCurrency": "string",
"meals": [
{
"id": "string",
"name": "string",
"code": "string"
}
],
"cancellation_policies": [
{
"from": "string",
"amount": 0
}
],
"cancellation_policies_extended": [
{
"policyKey": 0,
"dateFrom": "2025-10-05T22:14:49.952Z",
"dateTo": "2025-10-05T22:14:49.952Z",
"penaltyValue": 0,
"isPercent": true,
"description": "string"
}
],
"payment_policies": {
"description": "string",
"prepayDateTo": "2025-10-05T22:14:49.952Z",
"prepayAmount": 0,
"nonrefAmount": 0,
"payDateTo": "2025-10-05T22:14:49.952Z",
"payAmount": 0,
"rate": "string",
"generatedName": "string"
},
"addHots": [
{
"count": 0,
"description": "string",
"brutto": 0,
"canDeleteService": true,
"cancellationPolicy": "string"
}
],
"extraServices": [
{
"count": 0,
"description": "string",
"brutto": 0,
"canDeleteService": true,
"cancellationPolicy": "string"
}
],
"manualExtraServices": [
{
"id": "string",
"key": 0,
"date_from": "2025-10-05T22:14:49.952Z",
"date_to": "2025-10-05T22:14:49.952Z",
"duration": 0,
"is_duration": true,
"guests": [
0
],
"price": 0,
"currency": "string",
"serviceClass": {
"key": 0,
"name": "string"
},
"service": {
"key": 0,
"name": "string"
},
"linkType": {
"key": 0,
"name": "string"
},
"isGroup": true,
"isCalculated": true
}
],
"rooms": [
{
"id": "string",
"name": "string",
"bed_groups": [
{
"id": "string",
"name": "string",
"bed_types": [
{
"name": "string",
"quantity": 0
}
]
}
],
"allotment": 0,
"roomVariant": 0,
"roomAccommodation": "string"
}
],
"guestGroup": {
"adults": 0,
"children_ages": [
0
],
"groupMultiplier": 0
},
"guests": [
{
"first_name": "string",
"last_name": "string",
"is_child": true,
"age": 0,
"birthday": "string",
"gender": 0,
"email": "string",
"phone": "string",
"isMain": true,
"id": 0
}
],
"quotaType": 0,
"quotaPlaces": {
"key": "string",
"value": 0
},
"bruttoDetail": "string",
"uniqueCode": "string",
"city": {
"key": "string",
"value": 0
},
"region": {
"key": "string",
"value": 0
},
"hotel": {
"key": "string",
"value": 0
},
"isAnul": true,
"notes": "string",
"hotelExtra": "string",
"provider": 0,
"isEditable": true
}
],
"payment_policies": {
"description": "string",
"prepayDateTo": "2025-10-05T22:14:49.952Z",
"prepayAmount": 0,
"nonrefAmount": 0,
"payDateTo": "2025-10-05T22:14:49.952Z",
"payAmount": 0,
"rate": "string",
"generatedName": "string"
},
"transfers": [
{
"id": "string",
"key": 0,
"date": "2025-10-05T22:14:49.952Z",
"guests": [
0
],
"price": 0,
"pointTo": "string",
"pointFrom": "string",
"transferName": "string",
"transferType": {
"key": 0,
"name": "string"
},
"currency": "string",
"routeNumber": "string",
"isGroup": true,
"maxPax": 0
}
]
}
|
Merge Payment Policy (MergePaymentPolicy)
Method: POST /booking/MergePaymentPolicy
- Request Format:
- Accepted Parameters (Request Body):
- description – text description of payment terms
- prepayDateTo – prepayment deadline (ISO 8601 date/time)
- prepayAmount – prepayment amount
- nonrefAmount – nonrefundable amount
- payDateTo – full payment deadline (ISO 8601 date/time)
- payAmount – full payment amount
- rate – rate/rule designation to which the policy applies (e.g., "BAR")
- generatedName – system-generated "short name" of the policy
- Returned Result:
- description – aggregated description Payment terms
- prepayDateTo – Final prepayment deadline
- prepayAmount – Final prepayment amount
- nonrefAmount – Final nonrefundable amount
- payDateTo – Final full payment deadline
- payAmount – Final amount payable
- rate – Final rate designation
- generatedName – Generated name of the summary policy
|
Calling the /booking/MergePaymentPolicy method POST http://localhost:7700/booking/MergePaymentPolicy
[
{
"description": "string",
"prepayDateTo": "2025-10-05T22:34:46.415Z",
"prepayAmount": 0,
"nonrefAmount": 0,
"payDateTo": "2025-10-05T22:34:46.415Z",
"payAmount": 0,
"rate": "string",
"generatedName": "string"
}
]
Return result: {
"description": "string",
"prepayDateTo": "2025-10-05T22:34:47.898Z",
"prepayAmount": 0,
"nonrefAmount": 0,
"payDateTo": "2025-10-05T22:34:47.898Z",
"payAmount": 0,
"rate": "string",
"generatedName": "string"
}
|
Creating Reservation Messages (CreateReservationMessage)
Method: GET /booking/CreateReservationMessage
- Request Format:
- Accepted Parameters:
- dgKey – the reservation key (ID) to which the message is appended
- message – the message text
- senderName – the name/login of the sender on whose behalf the message is being recorded
- Returned Result:
- Code 200 OK – message successfully added to the reservation
|
Calling the /booking/CreateReservationMessage method GET http://localhost:7700/booking/CreateReservationMessage?dgKey=987654&message=Client%20will%20arrive%20late%20after%2022%3A00&senderName=ipetrov
Returned result: HTTP/1.1 200 OK
|