Início rápido
Nesta página você vai gerar uma chave de API no painel do HMS do hotel e obter a lista de hóspedes no hotel. Você precisa de acesso ao painel com um usuário que tenha permissão para gerenciar chaves de API; caso contrário, a administração do hotel pode gerar a chave e repassá-la a você.
1. Gere uma chave#
- No painel administrativo do HMS, abra a página API e vá para a aba Custom API.
- No campo de descrição, informe onde a chave será usada (ex.: Hotspot – Prédio principal) e salve. O HMS gera uma chave de 13 caracteres.
- Copie a chave da lista. Ela fica vinculada ao hotel e não expira; deixa de valer no momento em que é excluída da lista.
export HMS_API_KEY="017f1daf2d139"Anote também o ID do hotel no HMS; os exemplos o enviam como HotelCode: 1000. Esse cabeçalho não é usado na validação, mas mostra nos logs qual hotel foi consultado.
2. Obtenha a lista#
O endpoint é chamado com POST e não recebe corpo:
curl -X POST "https://test.hms.gen.tr/public/json/customer/inhotel" \
-H "ApiKey: $HMS_API_KEY" \
-H "HotelCode: 1000"const res = await fetch("https://test.hms.gen.tr/public/json/customer/inhotel", {
method: "POST",
headers: {
"ApiKey": process.env.HMS_API_KEY,
"HotelCode": "1000"
}
});
if (res.status === 401) throw new Error("Invalid ApiKey");
const data = await res.json();
for (const g of data.otelde) {
console.log(g.roomName, g.firstName, g.lastName, new Date(g.checkout * 1000));
}$ch = curl_init('https://test.hms.gen.tr/public/json/customer/inhotel');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'ApiKey: ' . getenv('HMS_API_KEY'),
'HotelCode: 1000',
],
]);
$body = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) === 401) {
throw new RuntimeException('Invalid ApiKey');
}
$data = json_decode($body, true);
foreach ($data['otelde'] as $g) {
echo $g['roomName'], ' · ', $g['firstName'], ' ', $g['lastName'], ' · ', date('d.m.Y', $g['checkout']), "\n";
}3. Leia a resposta#
Cada hóspede no hotel é um registro separado no array otelde. Um exemplo resumido com dois hóspedes que dividem o mesmo quarto:
{
"success": 1,
"otelde": [
{
"unique": 58211,
"firstName": "AYŞE",
"lastName": "DEMİR",
"identityNumber": "11111111110",
"birthDate": "14.03.1985",
"roomID": 4,
"roomName": "104",
"checkin": 1788863400,
"checkout": 1788998400,
"rezervasyon_id": 282799
},
{
"unique": 58212,
"firstName": "MEHMET",
"lastName": "DEMİR",
"identityNumber": "22222222220",
"birthDate": "02.11.1982",
"roomID": 4,
"roomName": "104",
"checkin": 1788863400,
"checkout": 1788998400,
"rezervasyon_id": 282799
}
]
}uniqueé único por hóspede; vincule a ele o usuário do hotspot.rezervasyon_idé compartilhado pelos hóspedes do mesmo quarto.- O número do quarto pedido no portal é comparado com
roomName, e o sobrenome, comlastName. Os valores geralmente estão em maiúsculas. checkiné o momento do check-in;checkouté a data prevista de check-out (00:00 UTC), sem horário. Some o horário de check-out do hotel para obter o fim da sessão.- Se não houver ninguém no hotel,
oteldeé um array vazio esuccesscontinua sendo1.
E agora?#
- Fluxo de verificação de hóspedes — regras de correspondência, duração da sessão, sincronização periódica
- Autenticação — gestão de chaves e a resposta 401
- Referência da API — todos os campos explicados