Schnellstart
Auf dieser Seite erzeugen Sie im HMS-Panel des Hotels einen API-Schlüssel und rufen die Liste der Gäste im Haus ab. Sie benötigen Zugang zum Panel mit einem Benutzer, der API-Schlüssel verwalten darf; andernfalls kann die Hotelleitung den Schlüssel erzeugen und an Sie weitergeben.
1. Schlüssel erzeugen#
- Öffnen Sie im HMS-Admin-Panel die Seite API und wechseln Sie zum Tab Custom API.
- Tragen Sie im Beschreibungsfeld ein, wo der Schlüssel verwendet wird (z. B. Hotspot – Hauptgebäude), und speichern Sie. HMS erzeugt einen 13-stelligen Schlüssel.
- Kopieren Sie den Schlüssel aus der Liste. Er ist an das Hotel gebunden und läuft nicht ab; er wird ungültig, sobald er aus der Liste gelöscht wird.
export HMS_API_KEY="017f1daf2d139"Notieren Sie sich außerdem die HMS-ID des Hotels; die Beispiele senden sie als HotelCode: 1000. Der Header wird nicht zur Validierung verwendet, zeigt aber in Protokollen, welches Hotel abgefragt wurde.
2. Liste abrufen#
Der Endpunkt wird mit POST aufgerufen und erwartet keinen Body:
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. Antwort auswerten#
Jeder Gast im Haus ist ein eigener Datensatz im Array otelde. Ein gekürztes Beispiel für zwei Gäste in einem Zimmer:
{
"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
}
]
}uniqueist je Gast eindeutig; verknüpfen Sie den Hotspot-Benutzer mit diesem Wert.rezervasyon_idist für Gäste im selben Zimmer gleich.- Die im Portal abgefragte Zimmernummer wird mit
roomNameverglichen, der Nachname mitlastName. Die Werte sind meist in Großbuchstaben. checkinist der Zeitpunkt des Check-ins;checkoutist nur das Datum der geplanten Abreise (00:00 UTC), ohne Uhrzeit. Addieren Sie die Check-out-Zeit des Hotels, um das Sitzungsende zu erhalten.- Ist niemand im Haus, ist
oteldeein leeres Array undsuccesstrotzdem1.
Wie geht es weiter?#
- Ablauf der Gästeverifizierung — Abgleichsregeln, Sitzungsdauer, periodische Synchronisierung
- Authentifizierung — Schlüsselverwaltung und die 401-Antwort
- API-Referenz — alle Felder erklärt