Solicitudes y respuestas
Esta página describe los formatos del cuerpo de las solicitudes, el envoltorio de las respuestas, la paginación, los formatos de fecha e importe, y cómo interpretar los códigos de estado HTTP.
Cuerpos de solicitud#
Los endpoints usan uno de estos dos formatos de cuerpo. La página de referencia de cada endpoint indica cuál se aplica.
| Formato | Content-Type | Lo usan |
|---|---|---|
| Campos de formulario | application/x-www-form-urlencoded o multipart/form-data | Inicio de sesión, lista de habitaciones, validación de cupones, países |
| JSON | application/json | Envío de reservas (BookingPushRQ), inicio del pago |
| Cadena de consulta | — | Todos los endpoints GET |
Los campos de tipo array de los cuerpos de formulario se repiten con corchetes: childAges[]=7&childAges[]=12. Los cuerpos JSON deben estar en UTF-8.
Envoltorio de la respuesta#
Las respuestas son JSON. La mayoría incluye un indicador success; las listas se devuelven con count y items:
{
"success": true,
"count": 3,
"items": [
{
"id": 1,
"titleCode": "TRY",
"symbol": "₺",
"price": 1
},
{
"id": 2,
"titleCode": "EUR",
"symbol": "€",
"price": 47.85000000000000142108547152020037174224853515625
}
]
}Cuando falla una comprobación de reglas de negocio, se devuelve success: false junto con una descripción del error, en una de estas dos formas:
{
"success": false,
"message": "online_cupon_is_not_found"
}{
"success": false,
"errorMessage": "Invalid parameters.",
"errorCode": 10022
}Excepciones: el endpoint de datos de contacto devuelve un objeto simple sin envoltorio, y el envío de reservas devuelve un objeto BookingPushRS. Ambos se muestran en la referencia.
Códigos de estado HTTP#
| Código | Cuándo | Qué hacer |
|---|---|---|
| 200 | Solicitud procesada (éxito o error de regla de negocio) | Revisa success y message / errorCode. |
| 401 | Token ausente, con formato incorrecto o desconocido | Vuelve a iniciar sesión; consulta Autenticación. |
| 404 | Un parámetro de ruta no corresponde a ningún registro (p. ej., /hotel/{hotelID}/…, /payment/type/{paymentType}) | Comprueba el ID. |
| 405 | Método HTTP incorrecto | Usa el método que indica la referencia (países y lista de habitaciones son POST). |
| 500 | Error inesperado del servidor | Reintenta tras una breve espera; si persiste, abre un ticket de soporte e incluye la solicitud. |
Paginación#
Los endpoints de listas (/external/currencies, /external/languages, /external/online/social/media, /external/stock/packages) se paginan por número de página:
| Parámetro | Descripción | Predeterminado |
|---|---|---|
limit | Registros por página. | 20 |
page | Número de página, empezando por 1. | 1 |
offset | Registros que se omiten. Si se indica, se ignora page. | — |
order | Campo de ordenación; antepón - para orden descendente (-id). Los campos permitidos se indican en cada endpoint. | — |
count es el número total de registros; no quedan más páginas cuando page × limit ≥ count.
Fechas, horas e importes#
| Tipo | Formato | Ejemplo |
|---|---|---|
| Fecha en la solicitud | YYYY-MM-DD | 2026-08-18 |
| Fecha de disponibilidad | YYYY-MM-DD o YYYY-MM-DDTHH:MM:SS | 2026-08-18T12:00:00 |
| Fecha de la tarifa por noche (respuesta) | DD.MM.YYYY (campo tarih) | 18.08.2026 |
| Intervalo del día de disponibilidad (respuesta) | YYYY-MM-DD HH:MM:SS, de 12:00 a 12:00 del día siguiente | 2026-08-18 12:00:00 |
| Importe | Cadena con dos decimales y punto como separador | "965.00" |
| Moneda | ISO 4217; según la configuración del canal online del hotel | TRY |
| Zona horaria | La zona horaria del hotel | Europe/Istanbul |
La fecha de salida no forma parte de la estancia: del 18 al 20 de agosto son dos noches. No sumes importes con float; usa una biblioteca de decimales o enteros en la unidad mínima de la moneda.
Idioma#
La lista de habitaciones recibe un campo language (ISO 639-1: tr, en, de…) y devuelve los nombres de habitación, los títulos de las características y los mensajes de error en ese idioma. La lista de paquetes espera un languageID; los IDs se obtienen del endpoint Idiomas.