Autentificare

Accesul se acordă printr-un cont de partener definit de HMS. Un cont de partener primește un apiKey și un apiSecret, iar HMS stabilește la ce hoteluri are acces. Endpointul de login schimbă aceste credențiale pe un token legat de hotel.

Login și token#

Cerere
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
Răspuns · 200
{
    "success": true,
    "hotelCode": "1000",
    "token": "eyJlbmREYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTE1IDEwOjI0OjMxLjAwMDAwMCIs…",
    "hotelSeoUrl": "demo-otel"
}
CâmpDescriere
apiKeyCheia de partener. Conține caractere base64, deci trebuie codificată URL într-un corp de formular (+%2B, =%3D). Bibliotecile HTTP fac asta automat.
apiSecretCheia secretă. Păstrați-o exclusiv pe server; nu o includeți niciodată într-o aplicație de browser sau de mobil.
hotelCodeID-ul HMS al hotelului. Dacă partenerul nu este autorizat pentru hotel, se returnează hotel_permission_is_not_found.
hotelSeoUrlSlugul SEO al hotelului. Folosit în locul lui hotelCode doar de motorul de rezervări propriu al HMS; integrările terțe trimit hotelCode.

Antetul Bearer#

Toate endpointurile, cu excepția loginului, așteaptă tokenul în antetul Authorization:

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

Dacă antetul lipsește, este malformat (fără prefixul Bearer) sau tokenul este necunoscut, API-ul returnează 401:

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

Valabilitatea și reînnoirea tokenului#

  • Tokenul este valabil 7 zile. Reînnoiți-l făcând din nou login înainte să expire; loginul este o operațiune ieftină și poate fi repetat pentru același hotel.
  • Nu parsați tokenul. Deși este o structură codificată base64, formatul său nu este garantat; stocați-l și transmiteți-l ca șir opac.
  • La un 401, faceți încă o dată login și reîncercați cererea; un al doilea 401 înseamnă că s-au schimbat perechea de chei sau autorizarea pentru hotel.

Contextul hotelului#

Un token este legat de un singur hotel. Parametrul hotelID al endpointurilor trebuie să corespundă acelui hotel; o cerere pentru alt hotel duce la o eroare de autorizare sau la rezultate goale. Pentru integrările cu mai multe hoteluri, obțineți câte un token separat pentru fiecare hotel și păstrați-l în cache per hotel.

Erori de login#

messageSemnificație
partner_is_not_foundPerechea apiKey / apiSecret nu corespunde. Verificați cheile și codificarea URL.
hotel_is_not_foundNiciun hotel nu corespunde lui hotelSeoUrl.
hotel_permission_is_not_foundPartenerul nu este autorizat pentru acest hotel sau autorizarea este inactivă. Contactați echipa de asistență HMS.

Aceste erori vin cu HTTP 200, cu success: false și token: null.

Ultima actualizare: 21 septembrie 2026Ați găsit o greșeală? Anunțați-ne