Documentation / Guide développeur

Référence API interne

Panorama des principaux endpoints de l'API Teranga, organisés par domaine fonctionnel.

Panorama des principaux domaines de l’API REST. Les endpoints marqués publics ne nécessitent pas d’authentification (jeton dans l’URL ou clé API dédiée) ; tous les autres exigent un JWT de session ou une clé API tenant.

Authentification

  • POST /api/auth/login — Connexion (retourne les rattachements aux établissements)
  • POST /api/auth/refresh — Renouvellement du token
  • POST /api/auth/logout — Déconnexion
  • GET /api/auth/me — Profil courant

Établissements, chambres, points de vente

  • /api/establishments, /api/rooms (+ PATCH /:id/status)
  • /api/points-of-sale — CRUD, plafonné par l’abonnement ; ?pointOfSaleId= filtre commandes, articles, catégories, tables, cuisine et rapports sur un point de vente précis

Réservations & commandes

  • /api/reservations (+ check-in, check-out, cancel) — facture auto-générée à la création
  • PATCH /api/reservations/:id — modification complète avec recalcul de facture
  • POST /api/reservations/admin/backfill-channel-invoices — régénération des factures manquantes (rôles superviseurs)
  • /api/orders (+ GET /kitchen/:estId, ?forUserId= qui inclut les commandes saisies par ou attribuées à l’utilisateur)
  • PATCH /api/orders/:id/voucher — bascule le flag « bon propriétaire »
  • POST /api/orders/:id/claim — prise en charge d’une commande QR non assignée

Commandes QR (publiques, sans authentification)

  • GET /api/public/menu/:token — menu de l’établissement à partir du token de table
  • POST /api/public/orders — créer une commande depuis un scan QR

Facturation & paiements

  • /api/invoices (+ GET /:id/qrcode, GET /:id/pdf)
  • /api/payments
  • /api/articles — accepte components (recette → décrément des composants à la vente) et sellable
  • /api/categories, /api/stock-movements, /api/stock-alerts
  • /api/suppliers (+ /:id/statement, /:id/ledger) — comptabilité SYSCOHADA fournisseurs
  • /api/supplier-portal/* — portail fournisseur (rôle dédié)

Approbations & ménage

  • /api/approvals — demandes d’approbation (création employé, article, chambre, modification réservation)
  • /api/cleaning — sessions de ménage (clock-in/clock-out)

Abonnements

  • GET /api/registration/plans — liste des plans (public)
  • POST /api/registration/register — inscription
  • /api/subscriptions (+ /renew, /activate)
  • POST /api/webhooks/fedapay — webhook FedaPay (public)

Notifications

  • GET /api/notifications (+ ?unread=true, /unread-count, /read-all)
  • GET /api/notifications/stream — flux temps réel (SSE)

Canaux de réservation (iCal)

  • /api/channels (+ /:id/sync, /:id/regenerate-token)
  • GET /api/calendar/:token.ics — flux iCal public (token dans l’URL, aucune donnée client)

Clés API

  • GET/POST /api/api-keys — la clé n’est retournée en clair qu’à la création
  • PATCH/DELETE /api/api-keys/:id

Intégrations externes

  • GET /api/availability.json / GET /api/availability.ics
  • POST /api/external-bookings — réservations Channel Manager par clé API, avec paiement FedaPay
  • POST /api/pos/transactions — transactions POS Android