Requisições e respostas
Esta página trata dos formatos do corpo da requisição, do envelope de resposta, da paginação, dos formatos de data e valor e de como interpretar os códigos de status HTTP.
Corpo da requisição#
Os endpoints usam um de dois formatos de corpo. A página de referência de cada endpoint indica qual deles se aplica.
| Formato | Content-Type | Usado por |
|---|---|---|
| Campos de formulário | application/x-www-form-urlencoded ou multipart/form-data | Login, lista de quartos, validação de cupom, países |
| JSON | application/json | Envio da reserva (BookingPushRQ), início do pagamento |
| Query string | — | Todos os endpoints GET |
Campos de array em corpos de formulário são repetidos com colchetes: childAges[]=7&childAges[]=12. Corpos JSON devem estar em UTF-8.
Envelope de resposta#
As respostas são JSON. A maioria traz o indicador success; as listas vêm com count e items:
{
"success": true,
"count": 3,
"items": [
{
"id": 1,
"titleCode": "TRY",
"symbol": "₺",
"price": 1
},
{
"id": 2,
"titleCode": "EUR",
"symbol": "€",
"price": 47.85000000000000142108547152020037174224853515625
}
]
}Falhas em regras de negócio retornam success: false mais uma descrição do erro, em um de dois formatos:
{
"success": false,
"message": "online_cupon_is_not_found"
}{
"success": false,
"errorMessage": "Invalid parameters.",
"errorCode": 10022
}Exceções: o endpoint de dados de contato retorna um objeto simples, sem o envelope, e o envio da reserva retorna um objeto BookingPushRS. Ambos aparecem na referência.
Códigos de status HTTP#
| Código | Quando | O que fazer |
|---|---|---|
| 200 | Requisição processada (sucesso ou erro de regra de negócio) | Verifique success e message / errorCode. |
| 401 | Token ausente, malformado ou desconhecido | Faça login novamente; veja Autenticação. |
| 404 | Um parâmetro de caminho não corresponde a nenhum registro (ex.: /hotel/{hotelID}/…, /payment/type/{paymentType}) | Verifique o ID. |
| 405 | Método HTTP incorreto | Use o método indicado na referência (países e lista de quartos são POST). |
| 500 | Erro inesperado no servidor | Tente novamente após um breve intervalo; se persistir, abra um chamado de suporte com a requisição. |
Paginação#
Os endpoints de lista (/external/currencies, /external/languages, /external/online/social/media, /external/stock/packages) são paginados por número de página:
| Parâmetro | Descrição | Padrão |
|---|---|---|
limit | Registros por página. | 20 |
page | Número da página, a partir de 1. | 1 |
offset | Registros a pular. Se informado, page é ignorado. | — |
order | Campo de ordenação; use o prefixo - para ordem decrescente (-id). Os campos permitidos são listados em cada endpoint. | — |
count é o número total de registros; a lista termina quando page × limit ≥ count.
Datas, horários e valores#
| Tipo | Formato | Exemplo |
|---|---|---|
| Data na requisição | YYYY-MM-DD | 2026-08-18 |
| Data de disponibilidade | YYYY-MM-DD ou YYYY-MM-DDTHH:MM:SS | 2026-08-18T12:00:00 |
| Data da tarifa por noite (resposta) | DD.MM.YYYY (o campo tarih) | 18.08.2026 |
| Intervalo do dia de disponibilidade (resposta) | YYYY-MM-DD HH:MM:SS, das 12:00 às 12:00 do dia seguinte | 2026-08-18 12:00:00 |
| Valor | String com duas casas decimais, separador ponto | "965.00" |
| Moeda | ISO 4217; vem das configurações do canal online do hotel | TRY |
| Fuso horário | O fuso horário do hotel | Europe/Istanbul |
A data de check-out não faz parte da estadia: de 18 a 20 de agosto são duas noites. Não some valores com float; use uma biblioteca decimal ou valores inteiros em centavos.
Idioma#
A lista de quartos recebe o campo language (ISO 639-1: tr, en, de…) e retorna nomes de quartos, títulos de comodidades e mensagens de erro nesse idioma. A lista de pacotes espera um languageID; os IDs vêm do endpoint Idiomas.