Documentation API Hotela
Connectez votre site web à votre tableau de bord Hotela. Vérifiez les disponibilités, créez des réservations et synchronisez les données de votre site vitrine — en temps réel, sans ressaisie manuelle.
/v1/public/availabilityChambres disponibles sur une périodeavailability:read/v1/public/roomsTypes de chambres avec disponibilitésrooms:read/v1/public/reservationsCréer une réservation (HTTP 201)reservations:write/v1/public/reservations/:idDétails d'une réservationreservations:readAuthentification
Tous les endpoints protégés requièrent deux en-têtes HTTP présents dans chaque requête. Ces identifiants sont générés dans votre tableau de bord sous Paramètres → Clés API.
Clé publique
x-api-key: YOUR_API_KEYIdentifie votre hôtel. Transmis avec chaque requête.
Secret
x-api-secret: YOUR_API_SECRETNe jamais exposer côté navigateur — serveur uniquement.
Sécurité : L'API secret ne doit jamais apparaître dans du code frontend, un dépôt public ou un bundle navigateur. Effectuez tous les appels API depuis votre serveur (backend, fonction serverless, etc.).
En-tête absent ou invalide → 401 Unauthorized
Permission manquante → 403 Forbidden
URL de base & Permissions
https://api.hotela.appTous les endpoints sous /v1/public/
https://sandbox.api.hotela.appTests uniquement. Aucune réservation réelle.
Chaque clé API est créée avec un jeu de permissions granulaires. Voir le tableau des permissions pour le détail.
/v1/public/availabilityavailability:readRetourne la liste des chambres physiques disponibles pour une période donnée, avec prix total calculé. Les chambres retournées ont le statut AVAILABLE ou CLEANING et aucune réservation CONFIRMED/PENDING en conflit.
Paramètres de requête
checkInstringrequisDate d'arrivée au format YYYY-MM-DD. Ex: 2025-08-15checkOutstringrequisDate de départ (YYYY-MM-DD). Doit être strictement après checkIn./v1/public/roomsrooms:readRetourne les types de chambres (RoomType) de l'hôtel avec leurs équipements. Le champ rooms[] contient les chambres physiques au statut AVAILABLE — son length indique la disponibilité instantanée sans filtre de dates.
Pour connaître la disponibilité sur une période précise, utilisez GET /availability. GET /rooms convient pour afficher le catalogue sans contrainte de dates.
/v1/public/reservationsreservations:writeCrée une réservation. Vous fournissez un roomTypeId — Hotela attribue automatiquement la première chambre physique disponible du type (ordre étage ASC, numéro ASC). Retourne HTTP 201 avec la réservation, la facture et le client.
Attribution auto
Pas besoin de connaître l'ID d'une chambre physique. Vous passez un roomTypeId, Hotela fait le reste.
Upsert client
Si guestEmail correspond à un client existant, sa fiche est mise à jour. Sinon un nouveau client est créé.
Facture + notif
Une facture INV-XXXX est générée automatiquement. Votre équipe reçoit une notification push en temps réel.
Corps de la requête (JSON)
roomTypeIdstringrequisID du type de chambre (obtenu via GET /v1/public/rooms). Hotela attribue la chambre physique disponible.guestNamestringrequisNom complet du client.guestEmailstringrequisEmail du client. Utilisé pour l'upsert du profil client dans le tableau de bord.guestPhonestringrequisTéléphone au format international. Ex: +225 07 00 00 00checkInstringrequisDate d'arrivée (YYYY-MM-DD).checkOutstringrequisDate de départ (YYYY-MM-DD). Strictement après checkIn.specialRequestsstringoptionnelDemandes spéciales visibles par votre équipe. Optionnel.La réservation est créée avec le statut PENDING et la source website. Le passage à CONFIRMED est effectué par votre équipe depuis le tableau de bord.
/v1/public/reservations/:idreservations:readRécupère les informations essentielles d'une réservation à partir de son ID interne (retourné lors de la création).
Paramètre de chemin
:idstringrequisID interne de la réservation (champ reservation.id retourné par POST /reservations).Codes d'erreur
Hotela utilise les codes HTTP standard. Le corps de chaque réponse d'erreur suit le format NestJS natif.
400Bad RequestParamètres invalides ou manquants (ex: dates incohérentes, checkIn ≥ checkOut).400Aucune disponibilitéAucune chambre du type demandé n'est libre sur la période.401Unauthorizedx-api-key ou x-api-secret manquant ou invalide.403ForbiddenLa clé API ne possède pas la permission requise pour cet endpoint.404Not FoundRéservation ou type de chambre introuvable, ou site non publié.500Server ErrorErreur interne. Contactez le support si persistant.Tableau des permissions
Chaque clé API est créée avec un sous-ensemble de permissions. Gérez-les dans Tableau de bord → Clés API.
availability:readLire les disponibilitésrooms:readLire les types de chambresreservations:writeCréer des réservationsreservations:readLire les réservationsPrêt à connecter votre site ?
Générez votre clé API gratuitement avec l'essai 30 jours. Notre équipe vous accompagne dans l'intégration.