Anfragen und Antworten
Diese Seite beschreibt die Formate des Request-Bodys, den Antwort-Envelope, die Paginierung, Datums- und Betragsformate sowie die Auswertung der HTTP-Statuscodes.
Request-Bodys#
Die Endpunkte verwenden eines von zwei Body-Formaten. Welches gilt, steht auf der Referenzseite des jeweiligen Endpunkts.
| Format | Content-Type | Verwendet von |
|---|---|---|
| Formularfelder | application/x-www-form-urlencoded oder multipart/form-data | Anmeldung, Zimmerliste, Gutscheinprüfung, Länder |
| JSON | application/json | Buchungsübermittlung (BookingPushRQ), Start der Zahlung |
| Query-String | — | Alle GET-Endpunkte |
Array-Felder werden in Formular-Bodys mit eckigen Klammern wiederholt: childAges[]=7&childAges[]=12. JSON-Bodys müssen UTF-8-kodiert sein.
Antwort-Envelope#
Antworten sind JSON. Die meisten enthalten ein success-Flag; Listen werden mit count und items zurückgegeben:
{
"success": true,
"count": 3,
"items": [
{
"id": 1,
"titleCode": "TRY",
"symbol": "₺",
"price": 1
},
{
"id": 2,
"titleCode": "EUR",
"symbol": "€",
"price": 47.85000000000000142108547152020037174224853515625
}
]
}Schlägt eine Prüfung der Geschäftsregeln fehl, wird success: false mit einer Fehlerbeschreibung in einer von zwei Formen zurückgegeben:
{
"success": false,
"message": "online_cupon_is_not_found"
}{
"success": false,
"errorMessage": "Invalid parameters.",
"errorCode": 10022
}Ausnahmen: Der Endpunkt für Kontaktdaten gibt ein einfaches Objekt ohne Envelope zurück, die Buchungsübermittlung ein BookingPushRS-Objekt. Beide sind in der Referenz dargestellt.
HTTP-Statuscodes#
| Code | Wann | Was tun |
|---|---|---|
| 200 | Anfrage verarbeitet (Erfolg oder Fehler aus Geschäftsregeln) | success, message / errorCode prüfen. |
| 401 | Token fehlt, ist fehlerhaft oder unbekannt | Erneut anmelden; siehe Authentifizierung. |
| 404 | Ein Pfadparameter passt zu keinem Datensatz (z. B. /hotel/{hotelID}/…, /payment/type/{paymentType}) | ID prüfen. |
| 405 | Falsche HTTP-Methode | Die in der Referenz angegebene Methode verwenden (Länder und Zimmerliste sind POST). |
| 500 | Unerwarteter Serverfehler | Nach kurzer Wartezeit erneut versuchen; besteht der Fehler weiter, ein Support-Ticket mit der Anfrage eröffnen. |
Paginierung#
Listen-Endpunkte (/external/currencies, /external/languages, /external/online/social/media, /external/stock/packages) werden nach Seitennummer paginiert:
| Parameter | Beschreibung | Standard |
|---|---|---|
limit | Datensätze pro Seite. | 20 |
page | Seitennummer, beginnend bei 1. | 1 |
offset | Anzahl zu überspringender Datensätze. Wenn angegeben, wird page ignoriert. | — |
order | Sortierfeld; für absteigende Reihenfolge - voranstellen (-id). Die zulässigen Felder sind je Endpunkt aufgeführt. | — |
count ist die Gesamtzahl der Datensätze; die Liste ist vollständig abgerufen, wenn page × limit ≥ count gilt.
Datum, Uhrzeit und Beträge#
| Typ | Format | Beispiel |
|---|---|---|
| Datum in der Anfrage | YYYY-MM-DD | 2026-08-18 |
| Verfügbarkeitsdatum | YYYY-MM-DD oder YYYY-MM-DDTHH:MM:SS | 2026-08-18T12:00:00 |
| Datum des Preises pro Nacht (Antwort) | DD.MM.YYYY (Feld tarih) | 18.08.2026 |
| Tageszeitraum der Verfügbarkeit (Antwort) | YYYY-MM-DD HH:MM:SS, 12:00 Uhr bis 12:00 Uhr am Folgetag | 2026-08-18 12:00:00 |
| Betrag | String mit zwei Nachkommastellen, Punkt als Dezimaltrennzeichen | "965.00" |
| Währung | ISO 4217; aus den Einstellungen des Online-Kanals des Hotels | TRY |
| Zeitzone | Die Zeitzone des Hotels | Europe/Istanbul |
Der Abreisetag gehört nicht zum Aufenthalt: 18. bis 20. August sind zwei Nächte. Addieren Sie Beträge nicht mit float; verwenden Sie eine Dezimal-Bibliothek oder ganzzahlige kleinste Währungseinheiten.
Sprache#
Die Zimmerliste akzeptiert ein Feld language (ISO 639-1: tr, en, de…) und gibt Zimmernamen, Ausstattungsbezeichnungen und Fehlermeldungen in dieser Sprache zurück. Die Paketliste erwartet eine languageID; die IDs liefert der Endpunkt Sprachen.