API REST — Réservations en Ligne

Documentation officielle de l’interface de programmation pour l’intégration des réservations dans le système de gestion hôtelière MATRIIX HOTEL.

Version 1.0 Date Mai 2026 Base URL https://golden-k.cm/en/wp-json/ Auth Basic Auth (Application Password)
1. Présentation générale
Vue d’ensemble de l’API REST du GOLDEN-K RESORT

Le site web du GOLDEN-K RESORT (golden-k.cm) dispose d’un système de réservation en ligne intégré permettant aux clients de réserver des chambres directement depuis le site.

Une API REST a été activée afin de permettre au logiciel de gestion hôtelière MATRIIX HOTEL de récupérer automatiquement ces réservations en temps réel.

Hôtel

GOLDEN-K RESORT
golden-k.cm

Technologie

WordPress 6.9.4
REST API WP native

Mise en production

Mai 2026
Actif & fonctionnel

Chambres disponibles

11 types de chambres
Standard à Villas

2. Authentification
Méthode : HTTP Basic Auth avec Application Password WordPress

L’API est protégée et nécessite une authentification pour chaque requête. Toute tentative d’accès sans authentification retourne une erreur 401 Unauthorized.

Crédentiels d’accès

Paramètre Valeur Note
Méthode HTTP Basic Auth Standard HTTP RFC 7617
Username xxxxxxxx Compte administrateur WordPress
Password xxxx xxxx xxxx xxxx Application Password dédié MATRIIX HOTEL
⚠️ Sécurité : Ne pas partager pas ces identifiants. A stocker dans les variables d’environnement de votre système, jamais en dur dans le code source. Le mot de passe peut être révoqué à tout moment depuis WordPress.

Construction du header Authorization

L’authentification se fait en encodant username:password en Base64 et en l’ajoutant dans le header HTTP :

Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Exemple avec curl :

curl -u "username:password" \
  "https://golden-k.cm/en/wp-json/wp/v2/bookings?per_page=10"

Exemple en PHP :

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://golden-k.cm/en/wp-json/wp/v2/bookings");
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$bookings = json_decode($response, true);

Exemple en JavaScript / Node.js :

const response = await fetch(
  "https://golden-k.cm/en/wp-json/wp/v2/bookings",
  {
    headers: {
      "Authorization": "Basic " + btoa("username:password")
    }
  }
);
const bookings = await response.json();
3. Endpoints disponibles
URLs de l’API et actions possibles

URL de base de l’API :

https://golden-k.cm/en/wp-json/
GET/wp/v2/bookingsListe

Description : Récupère la liste de toutes les réservations. Supporte la pagination, le tri et le filtrage par date.

URL complète :

GEThttps://golden-k.cm/en/wp-json/wp/v2/bookings

Headers requis :

Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
GET/wp/v2/bookings/{id}Détail

Description : Récupère une réservation spécifique par son identifiant unique.

Paramètre d’URL :

Paramètre Type Exemple Description
id integer 1381 ID unique de la réservation
GEThttps://golden-k.cm/en/wp-json/wp/v2/bookings/1381
4. Structure des données — Champs JSON
Description de chaque champ retourné pour une réservation
Champ JSON Type Priorité Description Exemple
id integer Obligatoire Identifiant unique auto-incrémenté de la réservation (clé primaire) 1381
created_at string (datetime) Obligatoire Date et heure de création de la réservation (format Y-m-d H:i:s) 2026-05-04 15:44:25
date string (ISO 8601) Souhaitable Date de création au format ISO 8601 2026-05-04T15:44:25
modified string (ISO 8601) Optionnel Date de dernière modification 2026-05-04T15:44:25
client_name string Obligatoire Nom complet du client hilary danielle
client_email string Obligatoire Adresse email du client hilarydanielle90@gmail.com
client_phone string Obligatoire Numéro de téléphone du client 699150867
check_in string (date) Obligatoire Date d’arrivée (check-in) au format YYYY-MM-DD 2026-11-13
check_out string (date) Obligatoire Date de départ (check-out) au format YYYY-MM-DD 2026-11-15
guests string (integer) Obligatoire Nombre total de personnes 1
nights string (integer) Souhaitable Nombre de nuits calculé automatiquement 2
total_price string (float) Souhaitable Montant total de la réservation 100000
currency string Souhaitable Devise (toujours XAF - Franc CFA) XAF
room_id string (integer) Souhaitable Identifiant WordPress de la chambre réservée 181
room_name string Souhaitable Nom lisible de la chambre réservée Standard Room
booking_status string Souhaitable Statut de la réservation : new | confirmed | processed new
is_new string (bool) Souhaitable Indicateur brut : 1 = nouvelle, 0 = traitée 1
confirm_call string (bool) Optionnel Confirmation par appel téléphonique : 0 ou 1 0
confirm_email string (bool) Optionnel Confirmation par email : 0 ou 1 0
slug string Optionnel Identifiant textuel unique WordPress booking-hilary-danielle
title object Optionnel Titre WordPress de la réservation {"rendered": "Booking: hilary danielle"}
💡 Note : Les champs de type string (integer) ou string (bool) sont retournés sous forme de chaîne de caractères par WordPress. Votre système devra les convertir si nécessaire (intval(), floatval(), etc.).
5. Filtrage & Pagination
Paramètres de requête disponibles pour filtrer et paginer les résultats

Paramètres de pagination

Paramètre Type Défaut Description Exemple
per_page integer 10 Nombre de résultats par page (max : 100) ?per_page=50
page integer 1 Numéro de la page à récupérer ?page=2

Paramètres de tri

Paramètre Valeurs possibles Défaut Description
orderby date | id | modified date Champ de tri
order asc | desc desc Ordre de tri

Paramètres de filtrage par date

Paramètre Format Description Exemple
after ISO 8601 Récupère uniquement les réservations créées après cette date ?after=2026-05-01T00:00:00
before ISO 8601 Récupère uniquement les réservations créées avant cette date ?before=2026-06-01T00:00:00

En-têtes de réponse pour la pagination

Chaque réponse liste inclut des en-têtes HTTP donnant les informations de pagination :

Header HTTP Description Exemple
X-WP-Total Nombre total de réservations (toutes pages confondues) 18
X-WP-TotalPages Nombre total de pages 2

💡 Exemples de requêtes combinées

# Toutes les réservations, 50 par page, du plus récent au plus ancien
GET /wp/v2/bookings?per_page=50&orderby=date&order=desc

# Nouvelles réservations depuis le 1er mai 2026
GET /wp/v2/bookings?after=2026-05-01T00:00:00&orderby=date&order=asc

# Page 2 avec 20 résultats par page
GET /wp/v2/bookings?per_page=20&page=2&orderby=date&order=desc
6. Exemples de réponses réelles
Données réelles retournées par l’API au moment de la rédaction

Requête : Récupérer une réservation par ID

GEThttps://golden-k.cm/en/wp-json/wp/v2/bookings/1381

Réponse (200 OK) :

{
  "id": 1381,
  "date": "2026-05-04T15:44:25",
  "modified": "2026-05-04T15:44:25",
  "slug": "booking-hilary-danielle",
  "status": "publish",
  "title": { "rendered": "Booking: hilary danielle" },
  "created_at": "2026-05-04 15:44:25",
    // ─── Informations client ───────────────────────────────
  "client_name": "hilary danielle",
  "client_email": "hilarydanielle90@gmail.com",
  "client_phone": "699150867",
    // ─── Dates du séjour ────────────────────────────────
  "check_in": "2026-11-13",
  "check_out": "2026-11-15",
  "guests": "1",
  "nights": "2",
    // ─── Chambre & tarif ────────────────────────────────
  "room_id": "181",
  "room_name": "Standard Room",
  "total_price": "100000",
  "currency": "XAF",
    // ─── Statut ───────────────────────────────────────────
  "booking_status": "new",
  "is_new": "1",
  "confirm_call": "0",
  "confirm_email": "0"
}

Requête : Liste des réservations (réponse réduite)

GEThttps://golden-k.cm/en/wp-json/wp/v2/bookings?per_page=2&orderby=date&order=desc

Headers de réponse :

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
X-WP-Total: 18
X-WP-TotalPages: 9

Body (tableau JSON) :

[
  { "id": 1381, "client_name": "hilary danielle", "check_in": "2026-11-13", "booking_status": "new", ... },
  { "id": 1380, "client_name": "Jordan Yantchoukam", "check_in": "2026-05-12", "booking_status": "new", ... }
]

Réponse sans authentification (401) :

{
  "code": "rest_not_logged_in",
  "message": "Authentification requise pour acceder aux reservations. Utilisez un Application Password.",
  "data": { "status": 401 }
}
7. Codes d’erreur
Réponses d’erreur possibles et solutions
Code HTTP Code interne Cause Solution
401 rest_not_logged_in Aucune authentification fournie ou invalide Vérifier les crédentiels Basic Auth et le format du header
403 rest_forbidden Utilisateur authentifié mais sans les droits nécessaires Contacter l’administrateur GOLDEN-K pour vérifier les permissions
404 rest_post_invalid_id L’ID de réservation demandé n’existe pas Vérifier l’ID utilisé dans l’URL
400 rest_invalid_param Paramètre de requête invalide (ex: format de date incorrect) Vérifier le format ISO 8601 pour les dates (ex: 2026-05-01T00:00:00)
500 Erreur interne du serveur Contacter l’équipe technique GOLDEN-K
200 Requête réussie
Contact & Support Technique
Pour toute question relative à cette API

GOLDEN-K RESORT

Site web : golden-k.cm
Email developpeur : njapabrice@golden-k.cm
Developpeur : Njapa Brice Diotreph

Informations API

Version : 1.0
WordPress : 6.9.4
Plugin : Golden-k Theme Pack