Contrat API DiddiFood

Le contrat détaillé des routes est généré depuis FastAPI dans openapi.json. Ce document explique le périmètre et les conventions qui ne sont pas déductibles des schémas.

Conventions

  • Les routes privées utilisent un JWT DiddiFreeID.
  • Les montants sont des entiers en XOF (*_minor_units).
  • Les dates sont ISO 8601 ; les statistiques utilisent Africa/Abidjan.
  • X-Request-ID doit être propagé pour permettre le support.
  • Une réponse 503 signifie qu'une dépendance n'est pas configurée ou disponible ; le client ne doit jamais afficher une réussite inventée.
  • Après reconnexion temps réel, relire la commande, le paiement et la livraison par HTTP.

Statut des surfaces

Surface Statut Propriété
Catalogue, commande en livraison, paiement cash/online MVP DiddiFood avec DiddiPay pour le paiement
Livraison et collecte cash MVP intégré DiddiSend reste propriétaire de l'exécution
Wallet et retrait restaurant MVP intégré sous dépendances DiddiPay exécute le payout
Support administratif et décisions de remboursement MVP intégré Backoffice audité avec food:payments:write
pickup_mode=pickup hors MVP, prévu V1 DiddiFood
Substitution de plat hors MVP, prévu V1 DiddiFood
Recharge wallet restaurant hors MVP DiddiFood
Notation client route active après livraison DiddiFood

Une route hors MVP reste documentée et peut être appelée dans un environnement où sa porte est activée. Le statut produit ne constitue pas une suppression de la route.

Responsabilités interservices

  • DiddiSend possède le coursier, la position, l'ETA réelle, la preuve de remise et la résolution opérationnelle d'un échec de livraison.
  • DiddiPay possède les mouvements financiers et l'exécution des remboursements ou payouts.
  • DiddiFood possède la commande, la projection de livraison, la politique de remboursement et l'état local de réconciliation.
  • DiddiSupport lit le contexte Food ; les décisions financières passent par le circuit Backoffice audité.