Skip to content
Changelog API

Token-based autentifikácia (Auth v2)

OAuth2 token flow s refresh token rotation nahrádza priame HTTP Basic volania. Access token posielate ako Authorization: Bearer na modulové endpointy.

Predpoklady

  1. V manageri (Nastavenia → Pripojenia → Detail → Token credentials) vygenerujte client_id + client_secret. Secret sa zobrazí len raz.
  2. IP whitelist (hostip) z API spojenia platí aj pre token flow.
  3. Komunikácia výhradne cez HTTPS. JWT neukladajte do logov.

Tok autentifikácie

Client → POST /api/auth/v2/token (client_credentials) → access_token + refresh_token
Client → GET /api/crm/?type=users  (Authorization: Bearer …)  [1 h]
Client → POST /api/auth/v2/token (refresh_token) → nový access + nový refresh (rotation)

Prvotné prihlásenie

POST https://{tenant}/api/auth/v2/token

Request JSON
Response 200

Alternatíva: Authorization: Basic base64(client_id:client_secret). TTL: access 1 h, refresh 30 dní.

Refresh token rotation

Request JSON

Pri rotácii dostanete nový access aj refresh token. Replay starého refresh tokenu zrevokuje celú rodinu tokenov (family_id) — klient musí znova spustiť client_credentials.

Volanie chránených modulov

curl -sS -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/json' \
  'https://{tenant}/api/crm/?type=users&limit=50'

Scopes (výber)

ScopeModulPoznámka
chmbase:read / write/api/chmbase/Rezervácie, ceny, dostupnosť
stays:read/api/stays/Plachta, hotelový účet
stays:gdprstays 1srchresGDPR vyhľadávanie
money:read / write/api/money/Faktúry, bločky
crm:*/api/crm/CRM operácie (podľa DB flagov)
bor:write/api/bor/Zápis na izbu
wb:*rooms, offers, …Web booking kanály
analytics:booking/api/analytics/Export vyhľadávaní (BI / Looker, LYST) — analytics_api=1
rms:readrmsbookingsRMS export rezervácií

OAuth2 chyby

HTTPerrorKedy
401invalid_clientZlé client_id / client_secret
401invalid_tokenExpirovaný alebo revokovaný JWT
403insufficient_scopeToken nemá požadovaný scope
429rate_limited>30 token requestov/min z IP

Auth endpointy

Autentifikácia

OAuth2 token API v2 nahrádza priame HTTP Basic volania. Token získate cez client_credentials, potom posielate Authorization: Bearer.

5 operácií
POST /api/auth/v2/token/

Vystavenie access + refresh tokenu (client_credentials alebo refresh_token rotation)

Auth: client_id + client_secret (Basic alebo JSON body)

cURL príklad
curl -sS -X POST 'https://{tenant}/api/auth/v2/token/' -H 'Content-Type: application/json' -d '{"grant_type":"client_credentials","client_id":"ak_…","client_secret":"…"}'
JSON príklady
Request
Response 200
POST /api/auth/v2/revoke/

Revokácia refresh alebo access tokenu (RFC 7009)

Auth: client credentials

cURL príklad
curl -sS -X POST 'https://{tenant}/api/auth/v2/revoke/' -H 'Content-Type: application/json' -d '{"token":"rt_…"}'
JSON príklady
Request
POST /api/auth/v2/introspect/

Overenie stavu tokenu (RFC 7662)

Auth: client credentials

JSON príklady
Request
Response 200
GET /api/auth/v2/discovery/

OAuth2 metadata (TTL tokenov, podporované granty)

Auth: verejné

cURL príklad
curl -sS 'https://{tenant}/api/auth/v2/discovery/'
GET /api/auth/v2/jwks/

JWKS (HS256 — kid, bez verejného kľúča)

Auth: verejné

cURL príklad
curl -sS 'https://{tenant}/api/auth/v2/jwks/'

Podpora: alerts@horecagroup.sk