Plataforma aberta
API Hospy v1
API REST multi-tenant para qualquer PMS (Digisat e outros) publicar quartos, tarifas e inventário e receber as reservas do motor próprio e das OTAs conectadas.
1. API XML padrão HUNIT (PMS e OTAs)
Implementamos o mesmo contrato XML usado pelo mercado (HUNIT v14), o que permite integrar Digisat e outros PMS, além de Booking.com, Decolar, Expedia e Trivago, sem desenvolvimento específico. Autenticação por userName, password e hotelId dentro do corpo XML. Base URL: https://hospy.app.br/api/public/hunit.
/portal/readportalRQPortais (OTAs) habilitados para o hotel./roomrate/readroomRateRQTipos de UH e planos tarifários do hotel./availability/updateavailabilityRQDisponibilidade, tarifa, minStay/maxStay, closed, CTA/CTD e tarifa por ocupação./booking/readbookingRQReservas pendentes de importação no PMS./confirme/postconfirmeRQPMS confirma a importação e devolve o localizador interno./occupancyrate/updateoccupancyRateRQIndicadores diários: ocupação, diária média, receita e RevPAR.curl -X POST https://hospy.app.br/api/public/hunit/availability/update \
-H "Content-Type: application/xml" \
--data '<?xml version="1.0" encoding="utf-8"?>
<availabilityRQ>
<userName>digisat</userName>
<password>SEGREDO</password>
<hotelId>1024</hotelId>
<updates>
<update>
<roomTypeId>suite-master</roomTypeId>
<rateTypeId>STD</rateTypeId>
<dateRange from="2026-09-10" to="2026-09-30" sat="true" sun="true" mon="true" tue="true" wed="true" thu="true" fri="true" />
<availability>4</availability>
<rate>780,0000</rate>
<minStay>2</minStay>
<closed>false</closed>
<cta>false</cta>
<ctd>false</ctd>
</update>
</updates>
</availabilityRQ>'Sucesso responde <availabilityRS><success /></availabilityRS> e falhas retornam <errors><error>…</error></errors>.
2. API REST JSON (alternativa) — credenciais
Cada hotel gera sua própria chave em Painel → Integrações. A chave é exibida uma única vez e identifica o tenant — não é preciso enviar o id do hotel nas chamadas.
Authorization: Bearer hspk_live_xxxxxxxxxxxxxxxx
Content-Type: application/json3. Endpoints REST
/room-typesLista os quartos do hotel autenticado (slug, capacidade, preços, unidades)./room-typesCria ou atualiza um quarto (upsert por slug ou external_ref)./ratesEnvia o tarifário por data: price, min_stay e closed por room_type e data./availabilityEnvia o inventário por data: total, sold e stop_sale. Base do anti-overbooking./reservations?since=&status=&channel=&limit=Puxa as reservas do motor e das OTAs a partir de um timestamp./reservations/{id}/ackConfirma que o PMS importou a reserva (acknowledged_at).Base URL: https://hospy.app.br/api/public/v1
4. Enviar tarifas e inventário (REST)
curl -X POST https://hospy.app.br/api/public/v1/rates \
-H "Authorization: Bearer $HOSPY_KEY" \
-H "Content-Type: application/json" \
-d '{
"rates": [
{ "room_slug": "suite-master", "date": "2026-09-10", "price": 780.00, "min_stay": 2, "closed": false }
]
}'
curl -X POST https://hospy.app.br/api/public/v1/availability \
-H "Authorization: Bearer $HOSPY_KEY" \
-H "Content-Type: application/json" \
-d '{
"availability": [
{ "room_slug": "suite-master", "date": "2026-09-10", "total": 4, "sold": 1, "stop_sale": false }
]
}'5. Receber reservas (pull)
curl "https://hospy.app.br/api/public/v1/reservations?since=2026-08-01T00:00:00Z&status=confirmed" \
-H "Authorization: Bearer $HOSPY_KEY"
curl -X POST https://hospy.app.br/api/public/v1/reservations/<id>/ack \
-H "Authorization: Bearer $HOSPY_KEY"6. Webhooks (push)
Cadastre a URL do seu PMS no painel. A Hospy envia reservation.created, reservation.updated e reservation.cancelled assinados com HMAC-SHA256 no header X-Hospy-Signature. Valide sempre a assinatura com o secret exibido na criação do webhook.
POST /seu-endpoint
X-Hospy-Signature: sha256=<hmac do corpo bruto>
{ "event": "reservation.created", "tenant": "hotel-x", "data": { "code": "HSP-AB12CD", "...": "..." } }7. Channel manager
Tarifas e inventário enviados pela API são a mesma fonte usada na distribuição para Booking.com, Airbnb, Expedia e Decolar. Reservas vindas das OTAs entram com o campo channel correspondente e descontam o inventário imediatamente, evitando overbooking entre motor próprio e OTAs.
Códigos de erro
401 missing_api_key / invalid_api_key— chave ausente, revogada ou inválida.403 tenant_inactive— hotel desativado.400 invalid_query / invalid_body— payload fora do schema.404 not_found— recurso inexistente para o tenant.
