API publique de réservation

Le site vitrine (ex. cabinet-dr-maghfour.ma) appelle Shifai depuis son backend uniquement. Ne jamais exposer la clé booking dans le navigateur.

Variables côté vitrine

SHIFAI_BOOKING_API_BASE_URL=https://api.shifai.ma
SHIFAI_BOOKING_API_KEY=<clé générée dans Shifai>
SHIFAI_CLINIC_ID=<id ou slug clinique>

SHIFAI_BOOKING_API_BASE_URL est une variable d’environnement du projet vitrine (Vercel, Netlify, Fly, etc.) — pas un enregistrement DNS Cloudflare. Avant bascule sous-domaines, https://shifai-app.fly.dev ou l’apex fonctionnait aussi tant que l’API y était servie.

Authentification

En-tête HTTP sur les routes protégées :

x-booking-key: <SHIFAI_BOOKING_API_KEY>

Endpoints (aperçu)

  • GET /api/public/booking/settings?clinicId=… — public, rate-limité
  • GET /api/public/booking/availability — créneaux (clé)
  • POST /api/public/booking/requests — nouvelle demande (clé)
  • Gestion patient via token : /api/public/booking/requests/[token]/…

Contrat détaillé dans le repo : docs/public-booking-api-contract.md.