Booking software

Security checks

Basic security checks are implemented in the run_channelmanager_result.php file. A portal token is checked to ensure that only authorized users can access the API. There are also restrictions on API usage, such as the maximum number of accesses per hour and minute. No specific IP filters or other security measures are documented.

API Calls Documentation

Fetch Stations

Endpoint: GET /run_channelmanager_result.php?call=fetchstations&portal={portal}
Description: Returns a list of available stations.
Parameters:
- Name: portal
Data type: Integer
Mandatory: Yes
Possible values and their meaning: Customer number of the portal
Example: 71

Relations

Endpoint: GET /run_channelmanager_result.php?call=relations&portal={portal}&station_id={station_id}&date={date}&destination_id={destination_id}&hidePrice={hidePrice}&hideRueckfahrt={hideRueckfahrt}&lhf_id={lhf_id}&linie_id={linie_id}
Description: Provides the timetable data and connections between two stations on a specific date.
Parameters:
- Name: portal
Data type: Integer
Mandatory: Yes
Possible values and their meaning: Customer number of the portal
Example: 71
- Name: station_id
Data type: Integer
Mandatory: Yes
Possible values and their meaning: ID of the start station
Example: 1
- Name: date
Data type: String
Mandatory: Yes
Possible values and their meaning: Date in the format YYYY-MM-DD
Example: 2023-10-01
- Name: zielstation_id
Data type: Integer
Mandatory: Yes
Possible values and their meaning: ID of the destination station
Example: 2
- Name: hidePrice
Data type: Boolean
Mandatory: No
Possible values and their meaning: true or false
Example: false
- Name: hideRueckfahrt
Data type: Boolean
Mandatory: No
Possible values and their meaning: true or false
Example: false
- Name: lhf_id
Data type: Integer
Mandatory: No
Possible values and their meaning: ID of the line port entry
Example: 3
- Name: linie_id
Data type: Integer
Mandatory: No
Possible values and their meaning: ID of the line
Example: 5

Availability

Endpoint: GET /run_channelmanager_result.php?call=availability&portal={portal}&product={product}&start={start}&stop={stop}
Description: Checks the availability of a product over a certain period of time.
Parameters:
- Name: portal
Data type: Integer
Mandatory: Yes
Possible values and their meaning: Customer number of the portal
Example: 71
- Name: product
Data type: String
Mandatory: Yes
Possible values and their meaning: Product ID
Example: 12345
- Name: start
Data type: String
Mandatory: Yes
Possible values and their meaning: Start date in the format YYYY-MM-DD HH:MM:SS
Example: 2023-10-01 10:00:00
- Name: stop
Data type: String
Mandatory: Yes
Possible values and their meaning: End date in the format YYYY-MM-DD HH:MM:SS
Example: 2023-10-01 12:00:00

Cancel

Endpoint: GET /run_channelmanager_result.php?call=cancel&portal={portal}&booking_reference={booking_reference}
Description: Cancels an existing reservation based on the booking reference.
Parameters:
- Name: portal
Data type: Integer
Mandatory: Yes
Possible values and their meaning: Customer number of the portal
Example: 71
- Name: booking_reference
Data type: Integer
Mandatory: Yes
Possible values and their meaning: Reference number of the booking
Example: 123456

Booking

Endpoint: POST /run_channelmanager_result.php?call=booking
Description: Creates a new booking and returns the booking details.
Parameters:
- Name: product
Data type: String
Mandatory: Yes
Possible values and their meaning: Product ID
Example: 12345
- Name: customer
Data type: String
Mandatory: Yes
Possible values and their meaning: Name of the customer
Example: Max Mustermann
- Name: customer_first_name
Data type: String
Mandatory: Yes
Possible values and their meaning: First name of the customer
Example: Max
- Name: email
Data type: String
Mandatory: Yes
Possible values and their meaning: Customer's e-mail address
Example: max@mustermann.de
- Name: phone
Data type: String
Mandatory: No
Possible values and their meaning: Phone number of the customer
Example: 0123456789
- Name: date
Data type: String
Mandatory: Yes
Possible values and their meaning: Date of the booking in the format YYYY-MM-DD
Example: 2023-10-01
- Name: ticket
Data type: Array
Mandatory: Yes
Possible values and their meaning: List of tickets with type and number
Beispiel: [{"id":1,"type":1,"quantity":2}]

Default response

Endpoint: GET /run_channelmanager_result.php
Description: Returns a standard response if no specific API call is recognized.
Parameters: No specific parameters required.

Summary

The above API calls allow users to retrieve information about stations, obtain timetable data, check availability, cancel bookings and create new bookings. Each call has specific parameters that are required for correct execution.

Safety checks

Access protection is implemented in the file run_fahrplan_ausgabe.php. It is checked whether the IP address of the client is available in an authorized list. If not, access is denied. There is also a session check which ensures that unauthenticated users only have restricted access. Further security measures such as token verification or IP filters are not explicitly mentioned.

API calls

Event calendar

Endpoint: run_fahrplan_ausgabe.php?action=eventcalendar

Description: This call generates a calendar for events that are linked to specific line and port IDs. It allows you to retrieve schedules for a specific time period and returns them in a calendar format.

Parameters: - Name: linie_typ_id - Data type: String - Mandatory: Yes - Possible values: IDs of the line types to be displayed. - Example: 1,2,3

  • Name: date
    • Data type: String
    • Mandatory: No
    • Possible values: A date in German format (e.g. dd.mm.yyyy).
    • Example: 15.03.2023
  • Name: extra_months
    • Data type: Integer
    • Mandatory: No
    • Possible values: Number of months to be added to or subtracted from the date.
    • Example: 2
  • Name: use_station_id
    • Data type: Integer
    • Mandatory: No
    • Possible values: ID of the station to be used.
    • Example: 5
  • Name: newwindow
    • Data type: Boolean
    • Mandatory: No
    • Possible values: true or false
    • Example: true
  • Name: godirect
    • Data type: Boolean
    • Mandatory: No
    • Possible values: true or false
    • Example: false
  • Name: target
    • Data type: String
    • Mandatory: No
    • Possible values: Target URL for links.
    • Example: someTarget

Trip search

Endpoint: run_fahrplan_ausgabe.php?aktion=fahrtsuche

Description: This call searches for available trips based on the entered criteria and returns a list of the trips found.

Parameters: - Name: station_id - Data type: Integer - Mandatory: Yes - Possible values: ID of the departure station. - Example: 1

  • Name: start
    • Data type: String
    • Mandatory: Yes
    • Possible values: Start date in German format (e.g. dd.mm.yyyy).
    • Example: 15.03.2023
  • Name: period
    • Data type: Integer
    • Mandatory: Yes
    • Possible values: Period in days.
    • Example: 5
  • Name: linientyp_id
    • Data type: Integer
    • Mandatory: Yes
    • Possible values: ID of the line type.
    • Example: 2

List categories

Endpoint: run_fahrplan_ausgabe.php?action=listcategories

Description: This call returns a list of categories that are relevant for the lines and their journeys.

Parameters: - Name: start - Data type: Integer - Mandatory: No - Possible values: A date from which the categories should be displayed. - Example: 1672537600 (Unix timestamp)

  • Name: max
    • Data type: Integer
    • Mandatory: No
    • Possible values: Specifies whether the maximum number of categories displayed should be limited.
    • Example: 10
  • Name: station_id
    • Data type: Integer
    • Mandatory: Yes
    • Possible values: ID of the station.
    • Example: 3

Traffic days

Endpoint: run_fahrplan_ausgabe.php?aktion=verkehrstage

Description: This call determines the traffic days for the specified line and time period.

Parameters: - Name: hafen_id - Data type: Integer - Mandatory: Yes - Possible values: ID of the port. - Example: 4

  • Name: datum_start
    • Data type: String
    • Mandatory: Yes
    • Possible values: Start date in German format (e.g. dd.mm.yyyy).
    • Example: 01.03.2023
  • Name: datum_stop
    • Data type: String
    • Mandatory: Yes
    • Possible values: End date in German format (e.g. dd.mm.yyyy).
    • Example: 31.03.2023
  • Name: linien_ids
    • Data type: String
    • Mandatory: Yes
    • Possible values: Comma-separated list of line IDs.
    • Example: 1,2,3

Find

Endpoint: run_fahrplan_ausgabe.php?action=find

Description: This call searches for trips based on various criteria and returns the results.

Parameters: - Name: linien_ids - Data type: String - Mandatory: Yes - Possible values: Comma-separated list of line IDs. - Example: 1,2,3

  • Name: linie_typ_id
    • Data type: Integer
    • Mandatory: No
    • Possible values: ID of the line type.
    • Example: 1
  • Name: start_datum
    • Data type: String
    • Mandatory: Yes
    • Possible values: A date in German format (e.g. dd.mm.yyyy).
    • Example: 15.03.2023

Traffic days (mode)

Endpoint: run_fahrplan_ausgabe.php?modus=verkehrstage

Description: This call returns the traffic days for the specified line, based on the mode.

Parameters: - Name: linien_ids - Data type: String - Mandatory: Yes - Possible values: Comma-separated list of line IDs. - Example: 1,2,3

  • Name: start_datum
    • Data type: String
    • Mandatory: Yes
    • Possible values: A date in German format (e.g. dd.mm.yyyy).
    • Example: 15.03.2023
  • Name: end_datum
    • Data type: String
    • Mandatory: Yes
    • Possible values: A date in German format (e.g. dd.mm.yyyy).
    • Example: 15.04.2023

Conclusion

The file contains several API calls that make it possible to query various information about timetables and lines. Each call has specific parameters that are necessary for it to function correctly. The API calls documented here are designed for use by external systems or applications.

Security checks

Security checks are implemented in the xml_v1.php file that control access to certain API calls based on tokens and user logins. It is checked whether the passed token is valid and whether the user is logged in. Valid tokens are required to access most API calls. There are no specific IP filters or restrictions on allowed IP ranges visible in the code.

API call documentation

Retrieve background image

Endpoint: GET /xml_v1.php?action=background_image
Description: Returns the URL of the background image. If the image does not exist, a default image is returned.
Parameters: None.


Retrieve bookings for the iOS customer app

Endpoint: GET /xml_v1.php?aktion=getBuchungen&kundennummer=123&email=test@example.com
Description: Returns the bookings of a specific user, identified by the customer number and email address.
Parameters:
- Name: customer number
Data type: Integer
Mandatory: Yes
Possible values: Positive integers
Example: 123
- Name: email
Data type: String
Mandatory: Yes
Possible values: E-mail addresses
Example: test@example.com


General access protection

Endpoint: GET /xml_v1.php (general access protection)
Description: Checks the validity of the token for access to the API. If the token is invalid, an error is returned.
Parameters:
- Name: token
Data type: String
Mandatory: Yes
Possible values: Valid tokens
Example: abc123


Check live capacity

Endpoint: GET /xml_v1.php?action=checkLiveCapacity&date=2023-10-01&port_id=1&line_port_schedule_id=2
Description: Checks the availability for a specific date and port.
Parameters:
- Name: date
Data type: String
Mandatory: Yes
Possible values: Dates in the format YYYY-MM-DD
Example: 2023-10-01
- Name: hafen_id
Data type: Integer
Mandatory: Yes
Possible values: Positive integers
Example: 1
- Name: linie_hafen_fahrplan_id
Data type: Integer
Mandatory: Yes
Possible values: Positive integers
Example: 2


User login

Endpoint: POST /xml_v1.php?action=login
Description: Authenticates a user and returns the user data.
Parameters:
- Name: name
Data type: String
Mandatory: Optional, depending on the authentication method
Possible values: User name
Example: MaxMustermann
- Name: email
Data type: String
Mandatory: Optional, depending on the authentication method
Possible values: E-mail address
Example: max@example.com
- Name: username
Data type: String
Mandatory: Optional, depending on the authentication method
Possible values: User name
Example: MaxM
- Name: password
Data type: String
Mandatory: Yes
Possible values: Password
Example: mypassword123


Cancel booking

Endpoint: GET /xml_v1.php?action=cancel&reservation_id=1
Description: Cancels a booking based on the reservation ID.
Parameters:
- Name: reservation_id
Data type: Integer
Mandatory: Yes
Possible values: Positive integers
Example: 1


Retrieve payment methods

Endpoint: GET /xml_v1.php?action=getPaymentMethods
Description: Returns the available payment methods.
Parameters: None.


Check voucher value

Endpoint: GET /xml_v1.php?action=checkGutscheinValue&gutscheincode=ABC123&reservierung_id=1
Description: Checks the value of a voucher using the voucher code and the reservation ID.
Parameter:
- Name: vouchercode
Data type: String
Mandatory: Yes
Possible values: Voucher codes
Example: ABC123
- Name: reservation_id
Data type: Integer
Mandatory: Yes
Possible values: Positive integers
Example: 1


Retrieve tickets

Endpoint: GET /xml_v1.php?aktion=getTickets&datum_start=2023-10-01&datum_stop=2023-10-31
Description: Returns all tickets within a certain time period.
Parameters:
- Name: datum_start
Data type: String
Mandatory: Yes
Possible values: Dates in the format YYYY-MM-DD
Example: 2023-10-01
- Name: datum_stop
Data type: String
Mandatory: Yes
Possible values: Dates in the format YYYY-MM-DD
Example: 2023-10-31


Retrieve article

Endpoint: GET /xml_v1.php?action=getArticle&category_id=1&online=true
Description: Returns the articles from a specific category.
Parameters:
- Name: kategorie_id
Data type: Integer
Mandatory: Optional
Possible values: Positive integers
Example: 1
- Name: online
Data type: String
Mandatory: Optional
Possible values: true or false
Example: true


Retrieve traffic days

Endpoint: GET /xml_v1.php?action=traffic_days&line_id=1
Description: Returns all traffic days for a specific line.
Parameters:
- Name: line_id
Data type: Integer
Mandatory: Yes
Possible values: Positive integers
Example: 1


Insert reservation

Endpoint: POST /xml_v1.php?action=insertReserveration
Description: Adds a new reservation.
Parameters:
- Name: data
Data type: JSON (Array)
Mandatory: Yes
Possible values: Contains all required reservation data
Example: {"line_id":1, "port_id":2, "destination_id":3, "booking_code": "XYZ123"}


Please note that some API calls have not been documented due to the exceptions.

API documentation for xml_v2.php

Security checks

Access to the API is secured by token verification. Tokens are accepted via both GET and POST requests. Authentication is done by checking the tokens against predefined global settings. There are no specific IP filters or restrictions regarding permitted IP ranges.

API calls

Retrieving the charter types

Endpoint: GET /xml_v2.php?call=purp
Description: Returns a list of available charter types.
Parameters: None.


Retrieve locations

Endpoint: GET /xml_v2.php?call=locations
Description: Returns a list of available locations, including their region and operator IDs.
Parameters: None.


Retrieve resources

Endpoint: GET /xml_v2.php?call=resources
Description: Returns a list of available resources (ships).
Parameters: None.


Seat reservation

Endpoint: GET /xml_v2.php?call=place
Description: Reserves a place with the specified parameters.
Parameters: - Name: typ_id - Data type: Integer - Mandatory: Mandatory - Possible values: ID of the reservation type - Example: 1 - Name: remarks - Data type: String - Mandatory: Optional - Possible values: Free text for remarks - Example: "Special request" - Name: station_id - Data type: Integer - Mandatory: Mandatory - Possible values: ID of the departure point - Example: 5 - Name: resource_id - Data type: Integer - Mandatory: Mandatory - Possible values: ID of the resource (ship) - Example: 10 - Name: start - Data type: String - Mandatory: Mandatory - Possible values: Start date and time - Example: "2023-04-22 10:00:00" - Name: stop - Data type: String - Mandatory: Mandatory - Possible values: End date and time - Example: "2023-04-22 12:00:00"


Article check

Endpoint: GET /xml_v2.php?call=checkItem
Description: Checks the validity of an item using a barcode.
Parameters: - Name: barcode - Data type: String - Mandatory: Mandatory - Possible values: Barcode of the item - Example: "123456-7890"


Cancellation of a reservation

Endpoint: GET /xml_v2.php?call=cancel
Description: Cancels a reservation based on the transaction number.
Parameters: - Name: vorgang_nr - Data type: Integer - Mandatory: Mandatory - Possible values: ID of the reservation - Example: 12345 - Name: remarks - Data type: String - Mandatory: optional - Possible values: Free text for remarks - Example: "Cancellation at customer request"


Retrieving the price types

Endpoint: GET /xml_v2.php?call=getPriceTypes
Description: Returns a list of available price types.
Parameters: None.


Retrieve the product keys

Endpoint: GET /xml_v2.php?call=getProductKeys
Description: Returns the product keys for the specified portal.
Parameters: - Name: portal - Data type: Integer - Mandatory: Mandatory - Possible values: ID of the portal - Example: 1


Retrieving ratings

Endpoint: GET /xml_v2.php?call=ratings
Description: Returns the ratings for a specific line.
Parameters: - Name: line_id - Data type: Integer - Mandatory: Mandatory - Possible values: ID of the line - Example: 2


Retrieving customer information

Endpoint: GET /xml_v2.php?call=getCustomer
Description: Returns a list of customers based on the customer type.
Parameters: - Name: customer_category - Data type: String - Mandatory: Mandatory - Possible values: Comma-separated list of customer type IDs - Example: "1,2,3"


Retrieving bookings

Endpoint: GET /xml_v2.php?call=getBookings
Description: Returns a list of bookings for a specific date.
Parameters: - Name: date - Data type: String - Mandatory: Mandatory - Possible values: Date in the format yyyy-mm-dd - Example: "2023-04-22"


This documentation provides an overview of the API calls in the xml_v2.php file. Each call has specific parameters and functions that enable various information to be queried or actions to be performed.