Skip to main content

Busca de Disponibilidade — Long Stay

Endpoint

POST https://innerapi-scissors.niara.tech/booking/longstay/{landingPageLocator}/hotels/availability

landingPageLocator identifica a landing page/storefront da integração (ex.: meuLandingPageLocator).

Headers

HeaderObrigatórioDescrição
AuthorizationSimToken JWT de autenticação, enviado sem o prefixo Bearer. Veja Autenticação para saber como obter o token.

Parâmetros de Requisição

ParâmetroTipoObrigatoriedadeDescriçãoExemplo
isLongStaybooleanSimIdentifica a busca como Long Stay, habilitando o retorno de tarifas e do pacote.true
engineRuleVersion"1"SimVersão do motor de regras usada no cálculo das tarifas."1"
purchaseSessionIdstringSimIdentificador da sessão de compra/carrinho atual."beFpF7FL65mtXMGArO0I3"
criteria.time.startDatestring (YYYY-MM-DD)SimData de início da estadia (check-in)."2026-07-23"
criteria.time.endDatestring (YYYY-MM-DD)SimData de término da estadia (check-out)."2026-08-24"
criteria.occupancy.adultsnumberSimQuantidade de adultos. No fluxo Long Stay é fixado em 1.1
criteria.occupancy.quantitynumberSimQuantidade de unidades buscadas. No fluxo Long Stay é fixado em 1.1
criteria.destinationsobjectSimDefine o que está sendo buscado. O formato do objeto varia conforme o tipo de busca — veja Busca por Cidade/Região ou Busca por Hotel/Condomínio Específico ou Busca por Todos os Destinos.{ "propertyId": "3074" } ou { "hotelIds": ["HOTEL_OMNI_123456"] } ou { "contentType": "all", "propertyId": "ALL" }
isThirdPartyReservationbooleanNãoIndica se a reserva será feita para um terceiro (não o comprador autenticado).false
criteria.destinationNamestringNãoNome do destino em texto livre, usado para exibição/preenchimento."São Paulo (City)"
criteria.searchIdstringNãoIdentificador da busca gerado pelo chamador, usado para correlacionar resultados."a1b2c3d4"
criteria.promoCodestringNãoCódigo promocional aplicado à busca."VERAO10"
criteria.roomTypeIdstringNãoFiltra por um tipo de quarto específico."rt-001"
criteria.ratePlanIdstring | numberNãoFiltra por um plano de tarifa específico."rp-01"
criteria.roomRateIdsstring[]NãoFiltra por tarifas específicas já conhecidas.["rr-9001"]
criteria.availRatesOnlybooleanNãoRetorna apenas tarifas disponíveis.true

O objeto criteria.destinations (que define o que está sendo buscado) tem um formato diferente para cada tipo de busca — veja as páginas específicas:

Retorno do Endpoint (Response — 200 OK)

{
"searchId": "{searchId}",
"engineRuleVersion": "1",
"recommendedStep": 0,
"hotels": [
{
"roomRates": [
{
"paymentOptions": [
{
"id": "{id}",
"enabled": true,
"paymentValue": 8370,
"actualTotalValue": 16740,
"paymentCurrency": "BRL",
"exchangeRates": [{ "currencyFrom": "BRL", "currencyTo": "BRL", "exchangeRate": 1 }],
"oncc_conditions": [
{
"maxInst": 1,
"cardBrands": ["MASTERCARD", "VISA"],
"minInstValue": 1,
"maxInstRule": 1,
"minBookingAmountInst": null,
"instRateEnabled": null,
"instRates": null
}
],
"originalCurrency": "BRL",
"recurringPayments": [
{ "value": 8370, "currency": "BRL", "date": "2026-07-15T03:00:00+00:00" },
{ "value": 8370, "currency": "BRL", "date": "2026-08-15T03:00:00+00:00" }
]
}
],
"engineRuleId": "{engineRuleId}",
"id": "{id}",
"idOnSource": "{idOnSource}",
"cancelPolicy": {
"nonRefundable": false,
"inPenalty": false,
"penaltyDate": "2026-07-13T12:00:00-03:00",
"priceComposition": {
"penalty": { "value": 55, "currency": "BRL", "percentage": null },
"total": { "value": 55, "currency": "BRL", "percentage": null }
},
},
"ratePlan": {
"type": "COMM",
"public": true,
"package": false,
"name": "Berrini 1 dorm",
"id": "{id}",
"inclusions": [
{ "id": "{id}", "name": "Geladeira Duplex LongStay", "description": "Geladeira Duplex LongStay" }
]
},
"roomType": { "name": "Apartamento 1 Dormitório - 40m² - Test Lonstay", "units": 194, "id": "{id}" },
"time": {
"startDate": "2026-07-15",
"endDate": "2026-09-15",
"reservationDate": "2026-07-08",
"penaltyDate": "2026-07-14",
"antecedence": 7,
"duration": 62
},
"available": true,
"depositPolicy": {
"amount": { "total": { "value": 30, "currency": "BRL" }, "type": "PERCENT" },
"isRequired": true
},
"descriptions": {
"cancelPolicy": [
{
"name": "Cancelamento 48 horas",
"description": "Cancelamento grátis até 48 horas antes da data do check in"
}
],
"generalPolicies": [
{ "name": "Política Geral TESTE", "description": "Descrição da política geral do hotel." }
],
"meal": [{ "name": null, "description": null }],
"payment": [{ "name": "Garantia - 1 Noite", "description": "Garantia - 1 Noite" }],
"roomType": [
{
"name": "Apartamento 1 Dormitório - 40m² - Test Lonstay",
"description": "Descrição do quarto Apartamento 1 Dormitório - 40m² - Test Lonstay."
}
],
"ratePlan": [
{ "name": "Berrini 1 dorm", "description": "Tarifário para o Berrini (Bee2Bee) 1 dorm." }
]
},
"meal": {
"breakfast": false,
"lunch": false,
"dinner": false,
"allInclusive": false,
"name": null,
"id": null
},
"promotion": null,
"priceSortValue": 16740,
"priceSortCurrency": "BRL",
"isDirectFromProperty": true,
"offers": [
{
"name": "Pacote 10% 2+ meses",
"discount": 10,
"freeNights": null,
"nightsRequired": 60,
"discountType": "STAY_DISCOUNT"
}
],
"checkoutStrategy": "PAYMENT_THEN_BOOKING",
"modificationAllowed": null,
"nights": [
{
"date": "2026-07-15",
"units": 200,
"restrictions": {
"requiredNightCount": null,
"minNightCount": 29,
"maxNightCount": null,
"minChildAge": null,
"maxChildAge": null,
"minTimeBetweenBookingAndCheckin": null,
"minAdultCount": 1,
"maxAdultCount": 3,
"minChildCount": 1,
"maxChildCount": 2,
"childrenAllowed": true,
"closedOnArrival": false,
"closedOnDeparture": false,
"closedSale": false
}
},
{
"date": "2026-07-16",
"units": 200,
"restrictions": {
"requiredNightCount": null,
"minNightCount": 29,
"maxNightCount": null,
"minChildAge": null,
"maxChildAge": null,
"minTimeBetweenBookingAndCheckin": null,
"minAdultCount": 1,
"maxAdultCount": 3,
"minChildCount": 1,
"maxChildCount": 2,
"childrenAllowed": true,
"closedOnArrival": false,
"closedOnDeparture": false,
"closedSale": false
}
},
"// ... 59 noites omitidas — uma por dia da estadia, mesmo formato acima (varia apenas date/units/restrictions) ...",
{
"date": "2026-09-14",
"units": 196,
"restrictions": {
"requiredNightCount": null,
"minNightCount": 29,
"maxNightCount": null,
"minChildAge": null,
"maxChildAge": null,
"minTimeBetweenBookingAndCheckin": null,
"minAdultCount": 1,
"maxAdultCount": 3,
"minChildCount": 1,
"maxChildCount": 2,
"childrenAllowed": true,
"closedOnArrival": false,
"closedOnDeparture": false,
"closedSale": false
}
}
],
"addons": [
{
"id": "{id}",
"addonId": "{addonId}",
"engineRuleId": "{engineRuleId}",
"priceComposition": {
"total": { "value": 4000, "currency": "BRL" },
"recurringPayment": { "value": 2000, "currency": "BRL" },
"originalPrice": { "value": 4000, "currency": "BRL" }
},
"paymentOptionsDetails": [
{
"id": "{id}",
"priceComposition": {
"total": { "value": 4000, "currency": "BRL" },
"recurringPayment": { "value": 2000, "currency": "BRL" },
"originalPrice": { "value": 4000, "currency": "BRL" }
},
"paymentOptionsTypes": ["INT_LATER", "INT_ON_CC"]
}
],
"paymentOptions": [
{
"id": "{id}",
"alias": "Cartão de Crédito",
"type": "ON_CC",
"internalType": "INT_ON_CC",
"description": "Cartão de Crédito",
"card": true,
"enabled": true,
"paymentValue": 2000,
"actualTotalValue": 4000,
"paymentCurrency": "BRL",
"oncc_conditions": [
{
"maxInst": 1,
"cardBrands": ["MASTERCARD", "VISA"],
"minInstValue": 1,
"maxInstRule": 1,
"minBookingAmountInst": null,
"instRateEnabled": null,
"instRates": null
}
],
"originalCurrency": "BRL",
"recurringPayments": [
{ "value": 2000, "currency": "BRL", "date": "2026-07-15T00:00:00+00:00" },
{ "value": 2000, "currency": "BRL", "date": "2026-08-15T00:00:00+00:00" }
]
}
],
"name": "Pacote",
"variantId": "{variantId}",
}
],
"priceComposition": {
"commission": { "value": 0, "currency": "BRL", "percentage": null },
"taxes": { "value": 0, "currency": "BRL", "percentage": null },
"discounts": { "value": -1860, "currency": "BRL" },
"nights": [
{ "value": 270, "currency": "BRL", "date": "2026-07-15", "units": 200 },
{ "value": 270, "currency": "BRL", "date": "2026-07-16", "units": 200 },
"// ... 59 noites omitidas, mesmo formato acima ...",
{ "value": 270, "currency": "BRL", "date": "2026-09-14", "units": 196 }
],
"recurringPayments": [],
"productPrice": { "value": 16740, "currency": "BRL" },
"total": { "value": 16740, "currency": "BRL", "percentage": null },
"totalReceivable": { "value": 16740, "currency": "BRL" },
"discountBreakdown": [
{
"currency": "BRL",
"value": 1860,
"description": "Pacote 10% 2+ meses",
"originType": "OFFER",
"code": null,
"displayName": null
}
],
"penalty": { "value": 55, "currency": "BRL" },
"recurringPayment": { "value": 8370, "currency": "BRL" }
},
"paymentOptionsDetails": [
{
"id": "{id}",
"priceComposition": {
"net": { "value": 16740, "currency": "BRL" },
"commission": { "value": 0, "currency": "BRL", "percentage": null },
"taxes": { "value": 0, "currency": "BRL", "percentage": null },
"discounts": { "value": -1860, "currency": "BRL" },
"nights": [
{ "value": 270, "currency": "BRL", "date": "2026-07-15", "units": 200 },
{ "value": 270, "currency": "BRL", "date": "2026-07-16", "units": 200 },
"// ... 59 noites omitidas, mesmo formato acima ...",
{ "value": 270, "currency": "BRL", "date": "2026-09-14", "units": 196 }
],
"recurringPayments": [],
"productPrice": { "value": 16740, "currency": "BRL" },
"total": { "value": 16740, "currency": "BRL", "percentage": null },
"totalReceivable": { "value": 16740, "currency": "BRL" },
"discountBreakdown": [
{
"currency": "BRL",
"value": 1860,
"description": "Pacote 10% 2+ meses",
"originType": "OFFER",
"code": null,
"displayName": null
}
],
"penalty": { "value": 55, "currency": "BRL" },
"recurringPayment": { "value": 8370, "currency": "BRL" }
},
"paymentOptionsTypes": ["INT_ON_CC", "INT_LATER"]
}
],
}
],
"notAvailableRoomRates": [],
"hotel": {
"id": "{id}",
"soupIds": ["{soupId}"],
"name": "DEMO - BEE2BEE (NIARA)",
"cityId": "{cityId}",
"citySoupIds": ["{citySoupId}"],
"countryId": "{countryId}",
"countrySoupIds": ["{countrySoupId}"],
"chainId": "{chainId}",
"chainSoupIds": ["{chainSoupId}"],
"position": { "latitude": -23.5469225, "longitude": -46.6458856 },
"chainName": "DEMO HOTEIS BRASIL",
"address": "Av. Endereço cadastrado para teste",
"award": 5,
"cityName": "Sao Paulo",
"stateName": "Sao Paulo",
"countryName": "Brasil",
"extra": { "thumbnail": "https://media.omnibees.com/Images/10027/Property/1215639.jpg" },
"meta": null,
"propertyId": "{propertyId}",
"detailsUrl": null
},
}
],
"messages": null,
"entitiesData": {
"favoriteHotelsRules": {},
"properties": {
"{propertyId}": {
"neighborhood": "República",
"city": "Sao Paulo",
"iataCityCode": "SAO",
"countryCode": "BR",
"gdsChainCode": null,
"giatId": "{giatId}",
"address": "Av. Endereço cadastrado para teste, Sao Paulo, Sao Paulo, Brasil",
"location": { "latitude": -23.5469225, "longitude": -46.6458856 },
"rating": 5
}
},
"regions": {},
"addons": {
"{addonId}": {
"name": "Pacote",
"type": "ROOM_SERVICES_BUNDLE",
"id": "{id}",
"mandatoryPurchase": true,
"images": [{ "name": "Pacote", "url": "" }],
"description": ["Pacote - Descrição"],
"descriptionBlocks": null,
"priceByVariant": [],
"priceByRoomType": [{ "roomId": "{roomId}" }, { "roomId": "{roomId}" }],
"unit": "PER_RESERVATION",
"billingType": "BILLING_TYPE_PER_MONTH",
"pricingType": "ROOM",
"schedule": null,
"schehuleType": null,
"extraFieldDefinitions": [],
"shouldIncludeAddonInRate": false,
"linkedRoomRates": null,
"excludedRoomRates": null,
"propertyId": "{propertyId}",
"propertyName": "DEMO - BEE2BEE",
"occupancies": null,
"filterWhenChildrenInCriteria": null,
"maxPurchasePerRoom": null
}
},
"paymentOptions": {
"{id}__ON_CC__INT_ON_CC": {
"alias": "Cartão de Crédito",
"description": "Cartão de Crédito",
"type": "ON_CC",
"internalType": "INT_ON_CC",
"card": true,
"partialPaymentCheckoutEnabled": null,
"partialPaymentCheckoutTermsText": null
}
}
},
"engineRuleId": "{engineRuleId}",
"totalCount": 1
}

Onde está o pacote na resposta

  • hotels[].roomRates[].addons[]: instância do addon aplicada àquela tarifa específica. Contém o addonId que referencia o dicionário entitiesData.addons, além de precificação e regras específicas daquela tarifa.
  • entitiesData.addons: dicionário addonId → Addon, com os dados descritivos e de configuração do pacote.

Campos de entitiesData.addons[addonId]

CampoTipoDescrição
idstringID do addon. É a mesma chave do dicionário e o valor usado em addonId nas instâncias de roomRates[].addons[].
namestringNome comercial do pacote ("Pacote").
descriptionstring[]Linhas de descrição do pacote.
typestring (enum)Categoria do addon. Para o pacote é "ROOM_SERVICES_BUNDLE".
billingTypestring (enum)Periodicidade de cobrança do pacote — tipicamente "BILLING_TYPE_PER_MONTH" no Long Stay.
pricingTypestring (enum)Como o preço do addon é determinado. "ROOM" indica que varia por tipo de quarto (ver priceByRoomType).
unitstring (enum)Unidade de cobrança, ex.: "PER_RESERVATION".
shouldIncludeAddonInRatebooleanSe true, o valor do addon já está embutido no total da tarifa. Se false (caso do pacote hoje), o addon tem cobrança própria, refletida em roomRates[].addons[].priceComposition.total.
mandatoryPurchasebooleanSe a compra do pacote é obrigatória junto com a reserva do quarto.
priceByRoomTypearrayReferências de preço por tipo de quarto (roomId), usadas quando pricingType é "ROOM".
priceByVariantarrayEquivalente a priceByRoomType, mas por variante do addon.
imagesarrayImagens do pacote (name, url).
propertyId / propertyNamestringPropriedade à qual o addon está vinculado.
linkedRoomRates / excludedRoomRatesstring[] | nullRestringe o addon a tarifas específicas ou o exclui delas.
filterWhenChildrenInCriteriastring | nullRegra de exibição do addon conforme presença de crianças na busca.
maxPurchasePerRoomnumber | nullLimite de compra por quarto.
occupanciesarray | nullOcupações aplicáveis ao addon.
extraFieldDefinitionsarrayDefinições de campos extras a preencher na compra do addon.
schedule / schehuleTypeobject | nullRegras de agendamento do addon.

Campos de roomRates[].addons[]

CampoTipoDescrição
idstringID da instância do addon aplicada a esta tarifa (não confundir com addonId).
addonIdstringReferencia a chave em entitiesData.addons.
variantIdstringIdentifica a variante de preço aplicada (ex.: corresponde ao roomId em priceByRoomType quando pricingType é "ROOM").
namestringNome do addon (redundante com entitiesData.addons[addonId].name).
engineRuleIdstringID da regra do motor de tarifação usada para calcular este addon.
priceComposition.totalobject { value: number, currency: string }Preço total do addon para esta tarifa. Só é diferente de zero quando shouldIncludeAddonInRate (em entitiesData.addons) é false.
priceComposition.recurringPaymentobject { value: number, currency: string }Valor recorrente (mensal) cobrado pelo addon.
priceComposition.originalPriceobject { value: number, currency: string }Preço original do addon, antes de descontos/ajustes.
paymentOptionsarray — ver Campos de PaymentOptionFormas de pagamento disponíveis para o addon.
paymentOptionsDetailsarray { id: string, priceComposition: object, paymentOptionsTypes: string[] }Detalhamento de preço do addon por tipo de forma de pagamento (priceComposition no mesmo formato do campo priceComposition do addon, acima).

Estrutura Completa da Resposta

As tabelas abaixo destrincham as propriedades presentes no exemplo de resposta acima. Campos aninhados em objetos complexos têm sua própria subseção, referenciada na coluna "Tipo" da tabela do objeto pai.

Campos da Resposta (nível raiz)

CampoTipoDescrição
searchIdstringIdentificador da busca, gerado pela Niara. Corresponde ao tipo GetHotelAvailResponse.searchId.
recommendedStepnumberPaginação recomendada pelo backend.
hotelsarray — ver Campos de hotels[]Lista de resultados (um item por combinação hotel/credencial).
messagesarray | nullMensagens de nível de busca (tipo GetHotelAvailResponse.messages, formato: array de objetos com severity igual a "INFO", "ERROR" ou "WARNING", e message: string). null quando não há mensagens.
entitiesDataobject — ver Campos de entitiesDataDicionários de apoio (addons, propriedades, formas de pagamento, etc.) referenciados pelos itens de hotels[].
totalCountnumberQuantidade total de hotéis encontrados.

Campos de hotels[]

CampoTipoDescrição
roomRatesarray — ver Campos de hotels[].roomRates[]Tarifas disponíveis para este hotel/credencial.
notAvailableRoomRatesarrayTarifas encontradas mas indisponíveis para reserva. Mesma estrutura de roomRates[] (tipo OriginalNotAvailableRoomRate), com o campo available sempre fixado em false.
hotelobject — ver Campos de hotels[].hotelDados do hotel/propriedade.

Campos de hotels[].hotel

CampoTipoDescrição
idstringID do hotel.
namestringNome do hotel/propriedade.
cityIdstringID da cidade.
countryIdstringID do país.
positionobject { latitude: number, longitude: number }Coordenadas geográficas do hotel.
addressstringEndereço do hotel.
awardnumberCategoria/classificação do hotel (estrelas).
cityNamestringNome da cidade.
stateNamestringNome do estado.
countryNamestringNome do país.
extra.thumbnailstringURL da imagem de capa do hotel.
metaobject { boost: number | null, favoriteHotelsRuleId: string | null } | nullMetadados opcionais de ranqueamento. null quando o hotel não tem regra de destaque/boost aplicada.
propertyIdstringID da propriedade (usado em criteria.destinations.propertyId e em entitiesData.properties).
detailsUrlstring | nullURL para detalhes adicionais do hotel, quando aplicável.

Campos de hotels[].roomRates[]

CampoTipoDescrição
idstringID da tarifa.
idOnSourcestringID da tarifa na origem/fornecedor.
availablebooleanSe a tarifa está disponível para reserva.
roomTypeobject — ver Campos de roomRates[].roomTypeTipo de quarto/apartamento.
ratePlanobject — ver Campos de roomRates[].ratePlanPlano de tarifa.
priceCompositionobject — ver Campos de roomRates[].priceCompositionComposição de preço da tarifa.
cancelPolicyobject — ver Campos de roomRates[].cancelPolicyPolítica de cancelamento.
depositPolicyobject — ver Campos de roomRates[].depositPolicyRegra de depósito/sinal exigido na reserva.
mealobject — ver Campos de roomRates[].mealRegime de alimentação incluso.
descriptionsobject — ver Campos de roomRates[].descriptionsTextos descritivos por categoria.
promotionobject { code: string, description: string, total: number, currency: string } | nullPromoção aplicada à tarifa. null quando não há promoção aplicada.
offersarray — ver Campos de roomRates[].offers[]Ofertas/descontos aplicáveis.
isDirectFromPropertybooleanSe a tarifa vem direto da propriedade (sem intermediação de OTA/canal).
nightsarray — ver Campos de roomRates[].nights[]Disponibilidade e restrições de cada noite da estadia.
addonsarray — ver Campos de roomRates[].addons[]Addons vinculados a esta tarifa (ex.: pacote).
paymentOptionsarray — ver Campos de PaymentOptionFormas de pagamento disponíveis para a tarifa.
paymentOptionsDetailsarray { id: string, priceComposition: object, paymentOptionsTypes: string[] }Detalhamento de preço da tarifa por forma de pagamento — um item por forma de pagamento, com a composição de preço específica (priceComposition, mesma estrutura de Campos de roomRates[].priceComposition) e os tipos de pagamento cobertos (paymentOptionsTypes, ex.: ["INT_ON_CC", "INT_LATER"]).

Campos de roomRates[].roomType

CampoTipoDescrição
idstringID do tipo de quarto/apartamento.
namestringNome do tipo de quarto/apartamento.
unitsnumberQuantidade de unidades daquele tipo de quarto.

Campos de roomRates[].ratePlan

CampoTipoDescrição
idstring | numberID do plano de tarifa.
namestringNome do plano de tarifa.
type"COMM" | "NET"Tipo de remuneração da tarifa.
publicbooleanSe o plano de tarifa é público.
packagebooleanSe a tarifa está em formato de pacote.
inclusionsarray { id: string, name: string, description: string | null }Itens inclusos no plano de tarifa (ex.: mobília, utensílios).

Campos de roomRates[].priceComposition

CampoTipoDescrição
commissionobject { value: number, currency: string, percentage: number | null }Comissão sobre a tarifa.
taxesobject { value: number, currency: string, percentage: number | null }Valor de taxas da tarifa.
discountsobject { value: number, currency: string }Valor total de descontos aplicados.
nightsarray { value: number, currency: string, date: string | null, units: number | null }Preço por noite da estadia.
discountBreakdownarray { currency: string | null, value: number | null, description: string | null, code: string | null, displayName: string | null, originType: "COUPON" | "PROMOCODE" | "OFFER" | "MANUAL_DISCOUNT" | "MANUAL_DISCOUNT_MARKUP" | "MANUAL_DISCOUNT_COMMISSION" | "PREVIEW_PAYMENT_DISCOUNT" | null }Detalhamento dos descontos aplicados (ex.: origem "OFFER" para a oferta de desconto por estadia longa).
recurringPaymentsarray { value: number, currency: string, date: string, discountValue: number | null } | nullLista de pagamentos recorrentes futuros programados para esta tarifa (datas e valores).
productPriceobject { value: number, currency: string }Valor do produto (tarifa) usado como base de cálculo do preço total, sem taxas e fees.
totalReceivableobject { value: number, currency: string }Valor total recebível.
penaltyobject { value: number, currency: string }Valor da multa de cancelamento, espelhado aqui a partir de cancelPolicy.priceComposition.penalty para facilitar a exibição do valor sem precisar acessar cancelPolicy.
recurringPaymentobject { value: number, currency: string }Valor agregado do pagamento recorrente (mensal) desta tarifa — no Long Stay, já incorpora o valor recorrente de addons embutidos, como o pacote.

Campos de roomRates[].cancelPolicy

CampoTipoDescrição
nonRefundablebooleanSe a tarifa é não reembolsável.
inPenaltybooleanSe a tarifa já está dentro do período de multa.
penaltyDatestringData a partir da qual passa a incidir multa de cancelamento.
priceComposition.penaltyobject { value: number, currency: string, percentage: number | null }Valor da multa, convertido para a moeda de venda.
priceComposition.totalobject { value: number, currency: string, percentage: number | null }Valor total da multa no cancelamento (com markup).

Campos de roomRates[].depositPolicy

CampoTipoDescrição
amount.total.valuenumberValor do depósito/sinal exigido.
amount.total.currencystringMoeda do valor do depósito/sinal.
amount.type"PERCENT"Forma de cálculo do valor do depósito (percentual sobre o total da tarifa).
isRequiredbooleanSe o depósito/sinal é obrigatório para esta tarifa.

Campos de roomRates[].descriptions

CampoTipoDescrição
cancelPolicyarray { name: string | null, description: string | null }Texto descritivo da política de cancelamento.
generalPoliciesarray { name: string | null, description: string | null }Texto descritivo das políticas gerais do hotel.
mealarray { name: string | null, description: string | null }Texto descritivo do regime de alimentação. Retorna name/description como null quando não há texto descritivo de alimentação cadastrado.
paymentarray { name: string | null, description: string | null }Texto descritivo das condições de pagamento/garantia.
roomTypearray { name: string | null, description: string | null }Texto descritivo do tipo de quarto.
ratePlanarray { name: string | null, description: string | null }Texto descritivo do plano de tarifa.

Campos de roomRates[].meal

CampoTipoDescrição
breakfastbooleanSe o café da manhã está incluso.
lunchbooleanSe o almoço está incluso.
dinnerbooleanSe o jantar está incluso.
namestring | nullNome do regime de alimentação, quando definido.
allInclusivebooleanSe o regime é all-inclusive.
idnumber | nullID do regime de alimentação, quando definido. null quando o regime não tem refeições inclusas.

Campos de roomRates[].offers[]

CampoTipoDescrição
namestringNome da oferta/desconto.
discountnumberPercentual ou valor do desconto.
freeNightsnumber | nullQuantidade de noites grátis, quando o desconto for desse tipo.
discountType"DISCOUNT" | "FREE_NIGHT" | "LAST_MINUTE" | "STAY_DISCOUNT"Tipo de desconto. Ex.: "STAY_DISCOUNT" para desconto por estadia longa.
nightsRequirednumberQuantidade mínima de noites exigida para que a oferta seja aplicada (ex.: 60 noites para o desconto "10% 2+ meses").

Campos de roomRates[].nights[]

CampoTipoDescrição
datestring (YYYY-MM-DD)Data da noite.
unitsnumberUnidades/estoque disponível naquela noite.
restrictionsobject — ver abaixoRestrições de reserva aplicáveis àquela noite.

Campos de roomRates[].nights[].restrictions

CampoTipoDescrição
requiredNightCountnumber | nullQuantidade exata de noites exigida, quando aplicável.
minNightCountnumber | nullQuantidade mínima de noites (no Long Stay, tipicamente 29+).
maxNightCountnumber | nullQuantidade máxima de noites permitida.
minChildAgenumber | nullIdade mínima de criança aceita.
maxChildAgenumber | nullIdade máxima de criança aceita.
minTimeBetweenBookingAndCheckinnumber | nullAntecedência mínima entre reserva e check-in.
minAdultCountnumberQuantidade mínima de adultos.
maxAdultCountnumberQuantidade máxima de adultos.
minChildCountnumberQuantidade mínima de crianças.
maxChildCountnumberQuantidade máxima de crianças.
childrenAllowedbooleanSe crianças são permitidas.
closedOnArrivalbooleanSe a data está fechada para check-in (chegada) nesta noite.
closedOnDeparturebooleanSe a data está fechada para check-out (partida) nesta noite.
closedSalebooleanSe a venda está fechada para esta noite.

Campos de PaymentOption

Usado em roomRates[].paymentOptions[] e em roomRates[].addons[].paymentOptions[].

CampoTipoDescrição
idstringID da forma de pagamento.
aliasstringNome de exibição da forma de pagamento (quando presente neste nível — no exemplo de roomRates[].paymentOptions[] este campo não aparece).
enabledbooleanSe a forma de pagamento está habilitada.
paymentValuenumberValor da parcela/pagamento nesta forma de pagamento.
actualTotalValuenumberValor total a pagar nesta forma de pagamento.
paymentCurrencystringMoeda do pagamento.
oncc_conditionsarray { maxInst: number, cardBrands: string[], minInstValue: number | null, maxInstRule: number | null, minBookingAmountInst: number | null, instRateEnabled: boolean, instRates: array | null }Condições de parcelamento no cartão de crédito.
recurringPaymentsarray { value: number, currency: string, date: string } | nullParcelas recorrentes (cobranças futuras), quando aplicável.
originalCurrencystringMoeda original do valor antes de eventual conversão cambial (relacionado a exchangeRates).

Campos de entitiesData

CampoTipoDescrição
favoriteHotelsRulesobject {string, { recommendedBadge: string, recommendedText: string }}Regras de destaque de hotéis favoritos. recommendedBadge é a imagem de favorito (tamanho sugerido 80x80px); recommendedText é o texto de favorito, não exibido quando existe imagem de favorito.
propertiesobject — ver Campos de entitiesData.properties[propertyId]Dados complementares por propriedade.
regionsobject {string, { id: string, name: string, coordinates: { lat: string, lon: string } }}Dados complementares por região, indexados pelo ID da região.
addonsobject — ver Campos de entitiesData.addons[addonId]Dicionário de addons
paymentOptionsobject — ver Campos de entitiesData.paymentOptions[chave]Dados complementares de formas de pagamento.

Campos de entitiesData.properties[propertyId]

CampoTipoDescrição
neighborhoodstringBairro da propriedade.
citystringCidade da propriedade.
locationobject { latitude: number, longitude: number }Coordenadas geográficas da propriedade.
ratingnumberClassificação/estrelas da propriedade.
countryCodestringCódigo do país da propriedade.
addressstringEndereço completo da propriedade.

Campos de entitiesData.paymentOptions[chave]

CampoTipoDescrição
aliasstringNome de exibição da forma de pagamento.
descriptionstringTexto explicativo exibido ao comprador.
typestringTipo de pagamento (ex.: "ON_CC").
internalTypestringTipo interno de pagamento (ex.: "INT_ON_CC").
cardbooleanSe a forma de pagamento exige cartão.
partialPaymentCheckoutEnabledboolean | nullSe o pagamento parcial está habilitado para esta forma de pagamento.
partialPaymentCheckoutTermsTextstring | nullTexto dos termos exibido no checkout de pagamento parcial.