Authenticatie

Toegang verloopt via een partneraccount dat HMS aanmaakt. Een partneraccount krijgt een apiKey en een apiSecret, en HMS bepaalt voor welke hotels het account geautoriseerd is. Het login-endpoint wisselt deze gegevens in voor een token dat aan één hotel gebonden is.

Login en token#

Verzoek
POST /external/public/login HTTP/1.1
Host: test.hms.gen.tr
Content-Type: application/x-www-form-urlencoded

apiKey=5y94tLmALIKDyUVdEPlAAjg5xWGQNgQtnALlV4%2BAm7Q%3D&apiSecret=a143d640…&hotelCode=1000
Antwoord · 200
{
    "success": true,
    "hotelCode": "1000",
    "token": "eyJlbmREYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTE1IDEwOjI0OjMxLjAwMDAwMCIs…",
    "hotelSeoUrl": "demo-otel"
}
VeldBeschrijving
apiKeyPartnersleutel. Bevat base64-tekens en moet daarom in een formulierbody URL-gecodeerd worden (+%2B, =%3D). HTTP-bibliotheken doen dit voor je.
apiSecretGeheime sleutel. Bewaar deze alleen aan de serverkant; neem hem nooit op in een browser- of mobiele app.
hotelCodeDe HMS-ID van het hotel. Is de partner niet geautoriseerd voor het hotel, dan krijg je hotel_permission_is_not_found terug.
hotelSeoUrlDe SEO-slug van het hotel. Wordt alleen door de eigen boekingsmodule van HMS gebruikt in plaats van hotelCode; integraties van derden sturen hotelCode.

Bearer-header#

Elk endpoint behalve de login verwacht het token in de header Authorization:

Verzoek
GET /external/currencies HTTP/1.1
Host: test.hms.gen.tr
Authorization: Bearer eyJlbmREYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTE1IDEwOjI0OjMxLjAwMDAwMCIs…

Ontbreekt de header, klopt de opbouw niet (geen voorvoegsel Bearer) of is het token onbekend, dan geeft de API 401 terug:

401 Unauthorized
{
    "success": false,
    "error": "Authentication required"
}

Geldigheid en vernieuwing van het token#

  • Het token is 7 dagen geldig. Vernieuw het door opnieuw in te loggen voordat het verloopt; inloggen is goedkoop en kan voor hetzelfde hotel herhaald worden.
  • Ontleed het token niet. Het is weliswaar een base64-gecodeerde structuur, maar het formaat is niet gegarandeerd; bewaar het en stuur het door als ondoorzichtige string.
  • Krijg je een 401, log dan nog één keer in en probeer het verzoek opnieuw; een tweede 401 betekent dat het sleutelpaar of de autorisatie voor het hotel is gewijzigd.

Hotelcontext#

Een token is gebonden aan één hotel. De parameter hotelID van de endpoints moet met dat hotel overeenkomen; vraag je een ander hotel op, dan krijg je een autorisatiefout of lege resultaten. Haal bij integraties voor meerdere hotels per hotel een apart token op en cache het per hotel.

Loginfouten#

messageBetekenis
partner_is_not_foundHet paar apiKey / apiSecret komt niet overeen. Controleer de sleutels en de URL-codering.
hotel_is_not_foundEr is geen hotel gevonden voor hotelSeoUrl.
hotel_permission_is_not_foundDe partner is niet geautoriseerd voor dit hotel, of de autorisatie is inactief. Neem contact op met HMS-support.

Deze fouten komen terug als HTTP 200 met success: false en token: null.

Laatst bijgewerkt: 21 september 2026Fout gevonden? Laat het ons weten