Requêtes et réponses
Cette page décrit les formats de corps de requête, l’enveloppe de réponse, la pagination, les formats de date et de montant, ainsi que l’interprétation des codes de statut HTTP.
Corps de requête#
Les endpoints utilisent l’un des deux formats de corps suivants. La page de référence de chaque endpoint indique lequel s’applique.
| Format | Content-Type | Utilisé par |
|---|---|---|
| Champs de formulaire | application/x-www-form-urlencoded ou multipart/form-data | Connexion, liste des chambres, validation de coupon, pays |
| JSON | application/json | Transmission de la réservation (BookingPushRQ), lancement du paiement |
| Chaîne de requête | — | Tous les endpoints GET |
Dans les corps de formulaire, les champs de type tableau sont répétés avec des crochets : childAges[]=7&childAges[]=12. Les corps JSON doivent être encodés en UTF-8.
Enveloppe de réponse#
Les réponses sont en JSON. La plupart contiennent un champ success ; les listes sont renvoyées avec count et items :
{
"success": true,
"count": 3,
"items": [
{
"id": 1,
"titleCode": "TRY",
"symbol": "₺",
"price": 1
},
{
"id": 2,
"titleCode": "EUR",
"symbol": "€",
"price": 47.85000000000000142108547152020037174224853515625
}
]
}En cas d’échec d’une règle métier, la réponse contient success: false et une description de l’erreur, sous l’une des deux formes suivantes :
{
"success": false,
"message": "online_cupon_is_not_found"
}{
"success": false,
"errorMessage": "Invalid parameters.",
"errorCode": 10022
}Exceptions : l’endpoint des coordonnées renvoie un objet brut sans enveloppe, et la transmission de la réservation renvoie un objet BookingPushRS. Les deux sont présentés dans la référence.
Codes de statut HTTP#
| Code | Quand | Que faire |
|---|---|---|
| 200 | Requête traitée (succès ou erreur métier) | Examinez success, message / errorCode. |
| 401 | Jeton absent, mal formé ou inconnu | Reconnectez-vous ; voir Authentification. |
| 404 | Un paramètre de chemin ne correspond à aucun enregistrement (p. ex. /hotel/{hotelID}/…, /payment/type/{paymentType}) | Vérifiez l’identifiant. |
| 405 | Méthode HTTP incorrecte | Utilisez la méthode indiquée dans la référence (pays et liste des chambres sont en POST). |
| 500 | Erreur serveur inattendue | Réessayez après un court délai ; si le problème persiste, ouvrez un ticket de support en joignant la requête. |
Pagination#
Les endpoints de liste (/external/currencies, /external/languages, /external/online/social/media, /external/stock/packages) sont paginés par numéro de page :
| Paramètre | Description | Valeur par défaut |
|---|---|---|
limit | Nombre d’enregistrements par page. | 20 |
page | Numéro de page, à partir de 1. | 1 |
offset | Nombre d’enregistrements à ignorer. S’il est fourni, page est ignoré. | — |
order | Champ de tri ; préfixez par - pour un ordre décroissant (-id). Les champs autorisés sont indiqués pour chaque endpoint. | — |
count est le nombre total d’enregistrements ; la liste est épuisée lorsque page × limit ≥ count.
Dates, heures et montants#
| Type | Format | Exemple |
|---|---|---|
| Date de requête | YYYY-MM-DD | 2026-08-18 |
| Date de disponibilité | YYYY-MM-DD ou YYYY-MM-DDTHH:MM:SS | 2026-08-18T12:00:00 |
| Date du tarif par nuit (réponse) | DD.MM.YYYY (champ tarih) | 18.08.2026 |
| Plage journalière de disponibilité (réponse) | YYYY-MM-DD HH:MM:SS, de 12:00 à 12:00 le lendemain | 2026-08-18 12:00:00 |
| Montant | Chaîne à deux décimales, point comme séparateur | "965.00" |
| Devise | ISO 4217 ; issue des paramètres du canal en ligne de l’hôtel | TRY |
| Fuseau horaire | Fuseau horaire de l’hôtel | Europe/Istanbul |
La date de départ ne fait pas partie du séjour : du 18 au 20 août, cela fait deux nuits. N’additionnez pas les montants en float ; utilisez une bibliothèque décimale ou des entiers en centimes.
Langue#
La liste des chambres accepte un champ language (ISO 639-1 : tr, en, de…) et renvoie dans cette langue les noms des chambres, les libellés des équipements et les messages d’erreur. La liste des forfaits attend un languageID ; les identifiants proviennent de l’endpoint Langues.