Autenticación

El acceso se concede mediante una cuenta de partner definida por HMS. Una cuenta de partner recibe un apiKey y un apiSecret, y HMS autoriza a qué hoteles puede acceder. El endpoint de inicio de sesión canjea estas credenciales por un token vinculado al hotel.

Inicio de sesión y token#

Solicitud
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
Respuesta · 200
{
    "success": true,
    "hotelCode": "1000",
    "token": "eyJlbmREYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTE1IDEwOjI0OjMxLjAwMDAwMCIs…",
    "hotelSeoUrl": "demo-otel"
}
CampoDescripción
apiKeyClave de partner. Contiene caracteres base64, así que en un cuerpo de formulario debe ir codificada como URL (+%2B, =%3D). Las bibliotecas HTTP lo hacen por ti.
apiSecretClave secreta. Guárdala solo en el servidor; nunca la incluyas en un navegador ni en una app móvil.
hotelCodeID del hotel en HMS. Si el partner no está autorizado para el hotel, se devuelve hotel_permission_is_not_found.
hotelSeoUrlSlug SEO del hotel. Solo lo usa el propio motor de reservas de HMS, en lugar de hotelCode; las integraciones de terceros envían hotelCode.

Encabezado Bearer#

Todos los endpoints, excepto el de inicio de sesión, esperan el token en el encabezado Authorization:

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

Si el encabezado falta, tiene un formato incorrecto (sin el prefijo Bearer) o el token es desconocido, la API devuelve 401:

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

Vigencia y renovación del token#

  • El token es válido durante 7 días. Renuévalo iniciando sesión de nuevo antes de que caduque; el inicio de sesión es una operación ligera y se puede repetir para el mismo hotel.
  • No analices el token. Aunque es una estructura codificada en base64, su formato no está garantizado; guárdalo y reenvíalo como una cadena opaca.
  • Si recibes un 401, vuelve a iniciar sesión una vez y reintenta la solicitud; un segundo 401 significa que el par de claves o la autorización del hotel han cambiado.

Contexto del hotel#

Un token está vinculado a un solo hotel. El parámetro hotelID de los endpoints debe coincidir con ese hotel; si pides datos de otro hotel, obtendrás un error de autorización o resultados vacíos. En integraciones con varios hoteles, obtén un token distinto para cada hotel y guárdalo en caché por hotel.

Errores de inicio de sesión#

messageSignificado
partner_is_not_foundEl par apiKey / apiSecret no coincide. Revisa las claves y la codificación URL.
hotel_is_not_foundNingún hotel coincide con hotelSeoUrl.
hotel_permission_is_not_foundEl partner no está autorizado para este hotel o la autorización está inactiva. Contacta con el soporte de HMS.

Estos errores se devuelven como HTTP 200 con success: false y token: null.

Última actualización: 21 de septiembre de 2026¿Has encontrado un error? Avísanos