Verzoeken en antwoorden
Deze pagina behandelt de formaten van de body van een verzoek, de envelop van het antwoord, paginering, de notatie van datums en bedragen, en hoe je HTTP-statuscodes interpreteert.
Body van het verzoek#
Endpoints gebruiken een van twee body-formaten. Op de referentiepagina van elk endpoint staat welk formaat geldt.
| Formaat | Content-Type | Gebruikt door |
|---|---|---|
| Formuliervelden | application/x-www-form-urlencoded of multipart/form-data | Login, kamerlijst, validatie van kortingscodes, landen |
| JSON | application/json | Boeking doorsturen (BookingPushRQ), betaling starten |
| Querystring | — | Alle GET-endpoints |
Arrayvelden in een formulierbody worden herhaald met vierkante haken: childAges[]=7&childAges[]=12. Een JSON-body moet UTF-8 zijn.
Envelop van het antwoord#
Antwoorden zijn JSON. De meeste bevatten een success-veld; lijsten komen terug met count en items:
{
"success": true,
"count": 3,
"items": [
{
"id": 1,
"titleCode": "TRY",
"symbol": "₺",
"price": 1
},
{
"id": 2,
"titleCode": "EUR",
"symbol": "€",
"price": 47.85000000000000142108547152020037174224853515625
}
]
}Mislukte controles van de bedrijfslogica geven success: false terug met een foutbeschrijving, in een van twee vormen:
{
"success": false,
"message": "online_cupon_is_not_found"
}{
"success": false,
"errorMessage": "Invalid parameters.",
"errorCode": 10022
}Uitzonderingen: het endpoint voor contactgegevens geeft een los object zonder envelop terug, en het doorsturen van een boeking geeft een BookingPushRS-object terug. Beide staan in de referentie.
HTTP-statuscodes#
| Code | Wanneer | Wat te doen |
|---|---|---|
| 200 | Verzoek verwerkt (succes of fout in de bedrijfslogica) | Controleer success en message / errorCode. |
| 401 | Token ontbreekt, is ongeldig opgebouwd of onbekend | Log opnieuw in; zie Authenticatie. |
| 404 | Een padparameter komt niet overeen met een record (bijv. /hotel/{hotelID}/…, /payment/type/{paymentType}) | Controleer de ID. |
| 405 | Verkeerde HTTP-methode | Gebruik de methode uit de referentie (landen en kamerlijst zijn POST). |
| 500 | Onverwachte serverfout | Probeer het na een korte pauze opnieuw; blijft de fout, open dan een supportticket met het verzoek. |
Paginering#
Lijstendpoints (/external/currencies, /external/languages, /external/online/social/media, /external/stock/packages) zijn gepagineerd op paginanummer:
| Parameter | Beschrijving | Standaard |
|---|---|---|
limit | Aantal records per pagina. | 20 |
page | Paginanummer, vanaf 1. | 1 |
offset | Aantal records dat wordt overgeslagen. Als dit is opgegeven, wordt page genegeerd. | — |
order | Sorteerveld; zet er - voor om aflopend te sorteren (-id). De toegestane velden staan per endpoint vermeld. | — |
count is het totale aantal records; de lijst is volledig doorlopen wanneer page × limit ≥ count.
Datums, tijden en bedragen#
| Type | Formaat | Voorbeeld |
|---|---|---|
| Datum in verzoek | YYYY-MM-DD | 2026-08-18 |
| Datum voor beschikbaarheid | YYYY-MM-DD of YYYY-MM-DDTHH:MM:SS | 2026-08-18T12:00:00 |
| Datum van prijs per nacht (antwoord) | DD.MM.YYYY (het veld tarih) | 18.08.2026 |
| Dagbereik bij beschikbaarheid (antwoord) | YYYY-MM-DD HH:MM:SS, van 12:00 tot 12:00 de volgende dag | 2026-08-18 12:00:00 |
| Bedrag | String met twee decimalen, punt als scheidingsteken | "965.00" |
| Valuta | ISO 4217; uit de instellingen van het online kanaal van het hotel | TRY |
| Tijdzone | De tijdzone van het hotel | Europe/Istanbul |
De uitcheckdatum hoort niet bij het verblijf: 18–20 augustus is twee nachten. Tel bedragen niet op met float; gebruik een decimal-bibliotheek of gehele bedragen in de kleinste munteenheid.
Taal#
De kamerlijst accepteert een veld language (ISO 639-1: tr, en, de…) en geeft kamernamen, namen van voorzieningen en foutmeldingen in die taal terug. De pakketlijst verwacht een languageID; de ID’s komen van het endpoint Talen.