DiddiFood — catalogue d’erreurs MVP

Les erreurs métier sont retournées dans la réponse d’erreur avec code et un statut HTTP. Le frontend ne doit pas afficher le message technique brut.

Code HTTP Parcours
RESTAURANT_OUTSIDE_HOURS 409 Devis/commande hors horaires
OUTSIDE_SERVICE_RADIUS 409 Devis/commande hors rayon
DISH_NOT_AVAILABLE 409 Plat indisponible
PICKUP_DISABLED 409 Retrait sur place désactivé
CANCELLATION_WINDOW_CLOSED 409 Commande déjà acceptée
PAYMENT_NOT_REFUNDABLE 409 Paiement non remboursable
REFUND_REQUEST_NOT_FOUND 404 Demande de remboursement absente
DELIVERY_NOT_FOUND 404 Livraison absente
DIDDISEND_UNAVAILABLE 503 Send indisponible
DIDDISEND_STATUS_UNSUPPORTED 502 Statut Send inconnu
WITHDRAWAL_QUOTE_EXPIRED 409 Devis de retrait expiré
WITHDRAWAL_QUOTE_ALREADY_USED 409 Devis déjà utilisé
WITHDRAWAL_QUOTE_MISMATCH 409 Montant différent du devis
PAYOUT_BENEFICIARY_NOT_CONFIGURED 409 Compte de versement absent

Règles d’affichage

  • RESTAURANT_OUTSIDE_HOURS : restaurant fermé.
  • OUTSIDE_SERVICE_RADIUS : adresse hors zone.
  • PICKUP_DISABLED : retrait sur place indisponible.
  • CANCELLATION_WINDOW_CLOSED : commande déjà acceptée.
  • DIDDISEND_UNAVAILABLE : livraison temporairement indisponible, réessayer.
  • Tout code inconnu : message générique, sans exposer le détail technique.

Vérification

Les erreurs de devis et de retrait sont produites par l’orchestration wallet : devis expiré/invalide, montant incohérent, bénéficiaire absent et conflit d’idempotence. Les remboursements restent confirmés par DiddiPay, jamais localement.