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
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.
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.
Endpoints disponibles
Tous les chemins ci-dessous sont préfixés par /api/public/booking.
/settings?clinicId=…Réglages publics et identité du cabinet
Accès · Public
/site-configConfiguration complète destinée au site cabinet
Accès · Clé
/appointment-typesTypes de rendez-vous publiés
Accès · Clé
/availabilityCréneaux disponibles pour une période
Accès · Clé
/formsFormulaires patient liés au type de rendez-vous
Accès · Clé
/consent/challengeEnvoi d’un code de consentement médical
Accès · Clé
/consent/verifyVérification du code de consentement
Accès · Clé
/requestsCréation d’une demande, jamais d’une confirmation directe
Accès · Clé
/requests/:token/statusÉtat de la demande patient
Accès · Clé + token
/requests/:token/cancelAnnulation par le patient
Accès · Clé + token
/requests/:token/rescheduleDemande de replanification
Accès · Clé + token
/requests/:token/proposalRéponse à un créneau proposé par le cabinet
Accès · Clé + token
/requests/:token/uploadAjout d’un document patient
Accès · Clé + token
/requests/:token/manageCapacités et informations de gestion
Accès · Clé + token
/requests/:token/paymentChoix du paiement hors ligne
Accès · Clé + token
/requests/:token/payment/proofDépôt d’un justificatif de paiement
Accès · Clé + token
| Méthode | Chemin | Accès | Rôle |
|---|---|---|---|
| GET | /settings?clinicId=… | Public | Réglages publics et identité du cabinet |
| GET | /site-config | Clé | Configuration complète destinée au site cabinet |
| GET | /appointment-types | Clé | Types de rendez-vous publiés |
| GET | /availability | Clé | Créneaux disponibles pour une période |
| GET | /forms | Clé | Formulaires patient liés au type de rendez-vous |
| POST | /consent/challenge | Clé | Envoi d’un code de consentement médical |
| POST | /consent/verify | Clé | Vérification du code de consentement |
| POST | /requests | Clé | Création d’une demande, jamais d’une confirmation directe |
| GET | /requests/:token/status | Clé + token | État de la demande patient |
| POST | /requests/:token/cancel | Clé + token | Annulation par le patient |
| POST | /requests/:token/reschedule | Clé + token | Demande de replanification |
| POST | /requests/:token/proposal | Clé + token | Réponse à un créneau proposé par le cabinet |
| POST | /requests/:token/upload | Clé + token | Ajout d’un document patient |
| GET | /requests/:token/manage | Clé + token | Capacités et informations de gestion |
| POST | /requests/:token/payment | Clé + token | Choix du paiement hors ligne |
| POST | /requests/:token/payment/proof | Clé + token | Dépôt d’un justificatif de paiement |
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.