Intégration serveur

API de réservation

Le site du cabinet présente les disponibilités et collecte la demande ; Shifai reste la source de vérité pour les règles, les créneaux et le traitement par l’équipe du cabinet.

Révisé le 21 août 2026

01

Configurer le serveur du site

Trois variables suffisent pour établir le contexte d’un cabinet.

SHIFAI_BOOKING_API_BASE_URL=https://api.shifai.ma
SHIFAI_BOOKING_API_KEY=<clé générée dans Paramètres → Site>
SHIFAI_CLINIC_ID=<identifiant ou slug du cabinet>

Base URL

Origine de l’API publique Shifai.

Clé secrète

Stockée uniquement dans l’environnement serveur.

Cabinet

Identifie la configuration publique à charger.

02

Authentifier les appels

Ajoutez l’en-tête à chaque endpoint protégé depuis votre backend.

x-booking-key: <SHIFAI_BOOKING_API_KEY>

Seul GET /settings?clinicId=… est accessible sans clé. Il ne retourne que des champs publics et reste limité en débit. Les réponses de l’API ne doivent pas être mises en cache comme des données publiques persistantes.

03

Endpoints disponibles

Tous les chemins ci-dessous sont préfixés par /api/public/booking.

GET/settings?clinicId=…

Réglages publics et identité du cabinet

Accès · Public

GET/site-config

Configuration complète destinée au site cabinet

Accès · Clé

GET/appointment-types

Types de rendez-vous publiés

Accès · Clé

GET/availability

Créneaux disponibles pour une période

Accès · Clé

GET/forms

Formulaires patient liés au type de rendez-vous

Accès · Clé

POST/consent/challenge

Envoi d’un code de consentement médical

Accès · Clé

POST/consent/verify

Vérification du code de consentement

Accès · Clé

POST/requests

Création d’une demande, jamais d’une confirmation directe

Accès · Clé

GET/requests/:token/status

État de la demande patient

Accès · Clé + token

POST/requests/:token/cancel

Annulation par le patient

Accès · Clé + token

POST/requests/:token/reschedule

Demande de replanification

Accès · Clé + token

POST/requests/:token/proposal

Réponse à un créneau proposé par le cabinet

Accès · Clé + token

POST/requests/:token/upload

Ajout d’un document patient

Accès · Clé + token

GET/requests/:token/manage

Capacités et informations de gestion

Accès · Clé + token

POST/requests/:token/payment

Choix du paiement hors ligne

Accès · Clé + token

POST/requests/:token/payment/proof

Dépôt d’un justificatif de paiement

Accès · Clé + token

04

Créer une demande correctement

Une demande reçue doit encore être traitée par le cabinet.

  • Envoyez le consentement demandé et, lorsqu’il est activé, le jeton Turnstile obtenu côté patient.
  • Conservez le publicToken retourné : il permet au patient de suivre ou gérer sa demande.
  • Affichez “demande envoyée” après POST /requests, jamais “rendez-vous confirmé”.
  • En cas d’erreur, montrez un message neutre au patient et journalisez le détail uniquement côté serveur.