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.

FormatoContent-TypeUsado por
Campos de formulárioapplication/x-www-form-urlencoded ou multipart/form-dataLogin, lista de quartos, validação de cupom, países
JSONapplication/jsonEnvio da reserva (BookingPushRQ), início do pagamento
Query stringTodos 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:

Resposta de lista (resumida)
{
    "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:

Formato message
{
    "success": false,
    "message": "online_cupon_is_not_found"
}
Formato errorCode (lista de quartos)
{
    "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ódigoQuandoO que fazer
200Requisição processada (sucesso ou erro de regra de negócio)Verifique success e message / errorCode.
401Token ausente, malformado ou desconhecidoFaça login novamente; veja Autenticação.
404Um parâmetro de caminho não corresponde a nenhum registro (ex.: /hotel/{hotelID}/…, /payment/type/{paymentType})Verifique o ID.
405Método HTTP incorretoUse o método indicado na referência (países e lista de quartos são POST).
500Erro inesperado no servidorTente 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âmetroDescriçãoPadrão
limitRegistros por página.20
pageNúmero da página, a partir de 1.1
offsetRegistros a pular. Se informado, page é ignorado.
orderCampo 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#

TipoFormatoExemplo
Data na requisiçãoYYYY-MM-DD2026-08-18
Data de disponibilidadeYYYY-MM-DD ou YYYY-MM-DDTHH:MM:SS2026-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 seguinte2026-08-18 12:00:00
ValorString com duas casas decimais, separador ponto"965.00"
MoedaISO 4217; vem das configurações do canal online do hotelTRY
Fuso horárioO fuso horário do hotelEurope/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.

Última atualização: 21 de setembro de 2026Encontrou um erro? Avise-nos