HotelGestãoHotelGestãoDesenvolvedores Entrar

API do HotelGestão

Ligue o site próprio, o channel manager, um chatbot, o BI ou a sua automação às reservas do hotel — com o mesmo preço e a mesma disponibilidade do balcão, e a trava do banco impedindo reserva dupla entre canais.

REST + JSONOpenAPI 3.1Webhooks com HMAC120 chamadas/min

Comece em 3 passos

  1. 1Gere a chave

    O dono do hotel cria em Configurações → Integrações → Canais → API: chave de canal de venda (só as reservas que ela criar) ou de gestão, com leitura e escrita ou somente leitura. A chave aparece uma vez.

  2. 2Consulte

    Disponibilidade e preço para duas pessoas:

    curl "https://app.hotelgestao.com.br/api/v1/availability?checkIn=2026-10-10&checkOut=2026-10-12&guests=2" \
      -H "Authorization: Bearer hg_SUA_CHAVE"
  3. 3Reserve

    Repetir com a mesma Idempotency-Key devolve a mesma reserva:

    curl -X POST "https://app.hotelgestao.com.br/api/v1/reservations" \
      -H "Authorization: Bearer hg_SUA_CHAVE" \
      -H "Idempotency-Key: pedido-000123" \
      -H "Content-Type: application/json" \
      -d '{"roomType":"Standard","checkIn":"2026-10-10",
           "checkOut":"2026-10-12","guests":2,
           "guest":{"name":"Maria Silva","phone":"99988887777"}}'

Endereço base: https://app.hotelgestao.com.br/api/v1 · datas em AAAA-MM-DD no dia do hotel · valores em reais · erros em português, com o campo que causou.

O que dá para fazer

  • Inventário e preço

    Unidades livres por tipo e por noite, preço de cada ocupação, taxas e estadia mínima.

  • Reservas

    Criar (um ou vários quartos), listar, alterar observações e cancelar, com trava contra reserva dupla.

  • Hóspedes

    Buscar e cadastrar sem duplicar — só para a chave de gestão do hotel.

  • Bloqueios

    Fechar e reabrir datas de uma unidade (stop-sell).

  • Avisos e eventos

    Reserva, disponibilidade, tarifa e conteúdo: aviso assinado com HMAC e fila para recuperar o que se perdeu.

  • Conteúdo do anúncio

    Endereço, coordenadas, fotos, comodidades e políticas do hotel e de cada tipo.

Para manter em dia: carregue /hotel, /room-types e /inventory, receba os avisos (webhook) e, se ficar fora do ar, recupere em /events a partir do último id. Nos avisos de reserva, checkIn e checkOut são o dia do hotel, como na API.

Referência completa

Cada rota, parâmetro, corpo e resposta. Toque numa rota para abrir.

Hotel

Dados do estabelecimento e das unidades (quartos, suítes, chalés, camas…).

get/hotelDados do hotel

Tudo o que um anúncio precisa: nome, descrição, endereço em campos, coordenadas, telefone, horários, fotos, comodidades e políticas. O que o hotel não informou sai null (ou vazio) — nunca um valor inventado.

Respostas

  • 200Hotel
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/room-typesTipos de unidade

Cada tipo com o identificador estável, quantas unidades tem, a capacidade máxima, a diária-base por número de hóspedes (sem temporada), descrição, comodidades, fotos e as unidades que o compõem.

Respostas

  • 200Tipos
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/roomsUnidades

Parâmetros

  • typena URL · stringFiltra por tipo.

Respostas

  • 200Unidades
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/rooms/{id}Uma unidade

Parâmetros

  • idno caminho · string · obrigatórioId da unidade.

Respostas

  • 200Unidade
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 404Não existe.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.

Disponibilidade e preço

O que dá para vender e por quanto, com as regras do hotel aplicadas.

get/availabilityDisponibilidade e preço de uma estadia

Por tipo: quantas unidades estão livres no período inteiro e o total da estadia (a mais barata livre do tipo, com temporada e taxas obrigatórias). price é o do número de hóspedes pedido; prices traz todas as ocupações. minStay é a estadia mínima dessas datas — a API informa, quem vende aplica.

Parâmetros

  • checkInna URL · string (date) · obrigatórioEntrada.
  • checkOutna URL · string (date) · obrigatórioSaída.
  • guestsna URL · integer · padrão 2Número de hóspedes (padrão 2).

Respostas

  • 200Disponibilidade
  • 400Datas inválidas.
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/inventoryInventário por tipo e por noite

A carga de quem vende: para cada tipo e cada noite da janela, quantas unidades estão livres (available), se a noite está fechada (closed), a estadia mínima (minStay) e a diária de cada ocupação (rates). fees é a tabela de taxas obrigatórias da estadia, para montar o total sem cotar estadia por estadia; optionalFees, as que o hotel cobra à parte (pet, veículo). Janela padrão 30 dias; máxima 366. O total exato de uma estadia é o de /availability.

Parâmetros

  • fromna URL · string (date)Primeira noite (padrão: hoje no hotel).
  • tona URL · string (date)Dia seguinte à última noite.
  • roomTypena URL · stringSó um tipo: o nome ou o id de /room-types.

Respostas

  • 200Inventário
  • 400Datas inválidas ou janela acima de 366 dias.
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 404Tipo não existe.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/calendarCalendário por unidade

Dia a dia, se cada unidade está livre, e o que a ocupa; minStay traz a estadia mínima de cada noite. Janela padrão 30 dias; máxima 366. Para saber quantas unidades de cada TIPO estão livres, use /inventory.

Parâmetros

  • fromna URL · string (date)Primeiro dia (padrão: hoje).
  • tona URL · string (date)Dia seguinte ao último.

Respostas

  • 200Calendário
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/ratesDiárias por noite

Diária de cada noite por tipo, para o número de hóspedes, com temporada e dia da semana aplicados. A diária não leva taxa por estadia: fees traz a tabela de taxas obrigatórias (limpeza, hóspede extra) e minStay, a estadia mínima de cada noite.

Parâmetros

  • fromna URL · string (date)Primeira noite (padrão: hoje).
  • tona URL · string (date)Dia seguinte à última noite.
  • guestsna URL · integer · padrão 2Número de hóspedes (padrão 2).

Respostas

  • 200Diárias
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.

Reservas

get/reservationsListar reservas

Para sincronizar: guarde o updatedAt mais recente e volte com updatedSince.

Parâmetros

  • statusna URL · stringUm ou vários, separados por vírgula.
  • updatedSincena URL · string (date-time)
  • checkInFromna URL · string (date)Entrada a partir de.
  • checkInTona URL · string (date)Entrada até (inclusive).
  • externalIdna URL · stringO id da reserva no SEU sistema — para achar a reserva depois de uma queda de conexão.
  • groupIdna URL · stringAs reservas do mesmo pedido de vários quartos.
  • limitna URL · integer · padrão 50
  • cursorna URL · stringO nextCursor da página anterior.

Respostas

  • 200Reservas (a chave de canal recebe só as que ela criou)
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
post/reservationsCriar reserva

Com roomType, a API escolhe a unidade livre mais barata do tipo que caiba os hóspedes; com roomId, usa exatamente aquela. Sem total, o preço é o da tabela do hotel (com as taxas obrigatórias). Vários quartos: mande rooms (até 10) no lugar de roomType/roomId. Entram todos ou nenhum, cada item numa unidade diferente, no mesmo grupo; a resposta é { groupId, reservations, total, paid, balance } e total/paid do pedido são divididos pela tabela de cada quarto. Idempotente: repetir com o mesmo cabeçalho Idempotency-Key devolve a mesma reserva com duplicate: true, no estado em que ela estiver. O mesmo externalId devolve a reserva enquanto ela estiver viva; depois de cancelada, o mesmo externalId cria outra — é assim que se muda uma estadia (cancele e crie de novo). A mesma chave com datas ou quartos diferentes é recusada com 409, não devolvida calada. Dinheiro: paid é o que o canal já recebeu; payment.collectedBy diz quem cobra o hóspede. A API não lança nada no caixa do hotel: o caixa é do balcão. Atenção: se o hotel usa a expiração de reserva sem pagamento (policies.unpaidExpiryDays em GET /hotel), a reserva criada com paid: 0 é cancelada sozinha depois desse prazo. O hóspede é reaproveitado pelo documento, ou pelo telefone + nome.

Parâmetros

  • Idempotency-Keyheader · string

Corpo (JSON)

  • roomTypestringTipo (o nome, como em /room-types). Obrigatório se não houver roomId nem rooms.
  • roomIdstringUnidade exata.
  • roomslista de objectVários quartos no mesmo pedido (no lugar de roomType/roomId/guests): entram todos ou nenhum.
  • checkInstring (date) · obrigatório
  • checkOutstring (date) · obrigatório
  • guestsinteger
  • guestHospedeEntrada · obrigatório
  • totalnumberValor acertado no canal (do pedido inteiro). Sem ele, vale a tabela do hotel.
  • paidnumberQuanto já foi pago no canal (do pedido inteiro).
  • paymentPagamentoDoCanal
  • statusstring
  • channelstringNome do canal para o relatório (ex.: "Site próprio", "Chatbot").
  • externalIdstringId da reserva no seu sistema (também torna a criação idempotente).
  • notesstring

Respostas

  • 200Repetição: a mesma resposta, com duplicate: true
  • 201Criada: a reserva; ou, com rooms, o grupo de reservas
  • 400Campo inválido (veja field).
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura.
  • 404roomId/roomType não existe.
  • 409Sem unidade livre no período, ou a chave de idempotência já foi usada em outro pedido.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/reservations/{id}Uma reserva

Parâmetros

  • idno caminho · string · obrigatórioId da reserva.

Respostas

  • 200Reserva
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 404Não existe.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
patch/reservations/{id}Alterar reserva

Muda observações, número de hóspedes (até a capacidade da unidade; o valor não é recalculado) e contato do hóspede. Datas, unidade e valores mudam no balcão, onde a troca fica registrada no histórico da reserva; pela API, cancele e crie outra.

Parâmetros

  • idno caminho · string · obrigatórioId da reserva.

Corpo (JSON)

  • notesstring
  • guestsinteger
  • guestobject

Respostas

  • 200Alterada
  • 400Campo não permitido ou inválido.
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura.
  • 404Não existe.
  • 409Reserva cancelada ou encerrada.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
post/reservations/{id}/cancelCancelar reserva

Idempotente. Reserva com check-in feito é cancelada no balcão (409). O que já foi pago fica registrado na reserva; devolução é decisão do hotel, no balcão. Num pedido de vários quartos, cancele cada reserva do grupo. Não comparecimento (no_show) é marcado pelo hotel e chega como reservation.cancelled.

Parâmetros

  • idno caminho · string · obrigatórioId da reserva.

Corpo (JSON)

  • reasonstring

Respostas

  • 200Cancelada
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura.
  • 404Não existe.
  • 409Check-in já feito.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.

Hóspedes

get/guestsListar/buscar hóspedes

Só chave de gestão. A base de hóspedes é do hotel: a chave de canal de venda recebe 403 (ela já tem o hóspede das reservas que criou).

Parâmetros

  • qna URL · stringNome, telefone, e-mail ou documento (mín. 2 caracteres).
  • limitna URL · integer · padrão 50
  • cursorna URL · stringO nextCursor da página anterior.

Respostas

  • 200Hóspedes
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave de canal de venda: esta rota é só para chave de gestão.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
post/guestsCadastrar hóspede

Só chave de gestão. Se já existir (mesmo documento, ou mesmo telefone + nome), devolve o cadastro com duplicate: true.

Corpo (JSON)

  • namestring · obrigatório
  • phonestringDDD + número, só dígitos (10 a 13).
  • emailstring (email)
  • documentstringCPF, passaporte ou outro documento.

Respostas

  • 200Já existia
  • 201Criado
  • 400Campo inválido.
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura, ou chave de canal de venda.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/guests/{id}Um hóspede

Só chave de gestão.

Parâmetros

  • idno caminho · string · obrigatórioId do hóspede.

Respostas

  • 200Hóspede
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave de canal de venda: esta rota é só para chave de gestão.
  • 404Não existe.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.

Bloqueios

Fechar datas de uma unidade (stop-sell, manutenção combinada, uso próprio).

put/blocks/{uid}Fechar datas de uma unidade

Idempotente pelo uid que VOCÊ escolhe (ex.: stopsell-natal-101): enviar de novo com outras datas move o bloqueio. Na chave de canal de venda o uid é só dela — outra integração do mesmo hotel pode usar o mesmo nome sem mexer no seu bloqueio.

Parâmetros

  • uidno caminho · string · obrigatório

Corpo (JSON)

  • roomIdstring · obrigatório
  • startstring (date) · obrigatório
  • endstring (date) · obrigatórioDia seguinte à última noite fechada.
  • reasonstring

Respostas

  • 200Bloqueado
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura.
  • 404roomId não existe.
  • 409Já há reserva no período.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
delete/blocks/{uid}Reabrir datas

Parâmetros

  • uidno caminho · string · obrigatório

Respostas

  • 200Removido
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura.
  • 404Não existe.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.

Chave, avisos e eventos

O que a sua chave pode, o webhook dela e a fila de eventos para quem ficou fora do ar.

get/meQuem é esta chave

O hotel, o tipo da chave (canal de venda ou gestão), se ela escreve, o limite de chamadas e se tem webhook. Boa primeira chamada de uma integração.

Respostas

  • 200Chave
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/eventsEventos (recuperar o que o webhook não entregou)

A mesma fila que alimenta os avisos, com o mesmo data, do mais antigo para o mais novo. Guarde o id do último evento processado e volte com after; na primeira vez, use since com a hora em que começou a carga inicial. nextCursor vem preenchido enquanto houver mais; lastId é o ponto onde você parou. A chave de canal de venda recebe os eventos de reserva e bloqueio só do que ela criou, e os de disponibilidade, tarifa e conteúdo de todos. Os eventos ficam guardados por 30 dias.

Parâmetros

  • afterna URL · integerO id do último evento que você já processou.
  • sincena URL · string (date-time)A partir deste instante (ISO-8601).
  • typesna URL · stringSó estes tipos, separados por vírgula.
  • limitna URL · integer · padrão 100

Respostas

  • 200Eventos
  • 400Parâmetro inválido (veja field).
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/webhookWebhook desta chave

O endereço, os eventos assinados e a situação da fila do hotel: quantos avisos esperam entrega e quantos esgotaram as tentativas. O segredo nunca volta aqui.

Respostas

  • 200Webhook
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
put/webhookConfigurar o webhook

Liga (ou muda) o endereço que recebe os avisos desta chave. O segredo whsec_… vem só na primeira configuração ou quando você pede rotateSecret — guarde-o. Sem events, a lista atual fica como está (chave nova: os cinco eventos de reserva e bloqueio); ["*"] assina todos.

Corpo (JSON)

  • urlstring (uri) · obrigatórioHTTPS, com nome de domínio público.
  • eventslista de stringEventos assinados. ["*"] = todos.
  • rotateSecretbooleanGera um segredo novo (o anterior para de valer na hora).

Respostas

  • 200Configurado
  • 400Endereço que não é HTTPS público, ou evento desconhecido.
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
delete/webhookRemover o webhook

Desliga os avisos desta chave e apaga o segredo. Os eventos continuam em GET /events.

Respostas

  • 200Removido
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
post/webhook/testMandar um aviso de teste

Manda agora um evento ping, assinado como os de verdade, para o endereço desta chave, e diz o que o seu servidor respondeu. Até 6 por minuto.

Respostas

  • 200Resultado da entrega
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura.
  • 409A chave não tem webhook.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.

Motel

Suítes por período (2h, 3h, pernoite) para totem de autoatendimento, tablet da recepção e integrações. Só para hotel do tipo Motel, com a tabela preenchida em Configurações do Sistema → Motel.

get/suitesSuítes agora, com preço de cada período

Estado de cada suíte (livre, ocupada, excedida, limpeza, manutencao, reservada), quanto falta do período em curso e o preço de cada período para aquele tipo de suíte no momento (fim de semana e data especial já aplicados). É o que o totem mostra na tela. Só chave de gestão.

Respostas

  • 200Suítes
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave de canal de venda: esta rota é só para chave de gestão.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
post/suites/{id}/staysAbrir entrada numa suíte

Abre a permanência por período. Sem cadastro do hóspede: a placa é opcional. Uma suíte só pode ter uma entrada aberta (o banco recusa a segunda).

Parâmetros

  • idno caminho · string · obrigatórioId da suíte (roomId).

Corpo (JSON)

  • periodIdstring · obrigatórioId do período (ex.: 2h, pernoite), como vem em /suites.
  • platestringPlaca do carro (opcional).
  • notestring

Respostas

  • 201Entrada aberta
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura, ou chave de canal de venda.
  • 404Suíte não encontrada.
  • 409Suíte ocupada, em limpeza ou em manutenção.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/staysPermanências

Parâmetros

  • statusna URL · string · padrão abertaaberta (padrão), agendada, fechada ou cancelada.
  • limitna URL · integer · padrão 50

Respostas

  • 200Permanências
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave de canal de venda: esta rota é só para chave de gestão.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
get/stays/{id}Uma permanência, com a conta do momento

Parâmetros

  • idno caminho · string · obrigatórioId da permanência.

Respostas

  • 200Permanência
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave de canal de venda: esta rota é só para chave de gestão.
  • 404Não existe.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.
post/stays/{id}/closeFechar a conta da suíte

Calcula período, hora adicional (com tolerância), consumo e desconto, exige que os pagamentos somem o total a pagar, lança no caixa aberto do hotel e devolve a suíte para limpeza.

Parâmetros

  • idno caminho · string · obrigatórioId da permanência.

Corpo (JSON)

  • paymentslista de object · obrigatório
  • discountnumberDesconto em reais sobre o total.

Respostas

  • 200Conta fechada
  • 401Chave ausente, inválida ou revogada.
  • 402O plano do hotel não inclui a API ou está vencido/bloqueado.
  • 403Chave somente leitura, ou chave de canal de venda.
  • 404Permanência aberta não encontrada.
  • 409Sem caixa aberto no hotel.
  • 423Hotel suspenso pela VisionX.
  • 429Mais de 120 chamadas por minuto nesta chave (veja o cabeçalho retry-after).
  • 500Erro interno — informe o requestId ao suporte.