Ce fichier explique les erreurs renvoyées par l'API DiddiFood. Il s'adresse aux clients HTTP, aux applications frontend et aux équipes QA.

Code Message type HTTP Cause Action du client
VALIDATION_ERROR Requête invalide 422 Champ absent ou valeur invalide Corriger le corps ou les paramètres.
INVALID_RESTAURANT_SEARCH Recherche restaurant invalide 422 latitude, longitude et radius_km ne sont pas fournis ensemble Envoyer les trois paramètres GPS, ou aucun.
UNAUTHORIZED Authentification requise 401 JWT humain absent ou invalide Obtenir un nouveau JWT auprès de DiddiFreeID.
SERVICE_AUTH_INVALID Identité service invalide 401 JWT S2S, client ou audience incorrect Vérifier le client DiddiFreeID et l'audience diddifood.
FORBIDDEN Accès interdit 403 Rôle restaurant ou rôle global insuffisant Utiliser le compte et le rôle autorisés.
SERVICE_FORBIDDEN Service interdit 403 Service S2S ou portée non autorisée Demander la portée prévue au propriétaire du contrat.
RESOURCE_NOT_FOUND Ressource introuvable 404 Restaurant, plat, commande ou paiement inconnu Vérifier l'identifiant et son environnement.
ORDER_INVALID_STATE Transition impossible 409 La commande n'est pas dans le statut attendu Relire la commande puis reprendre le parcours autorisé.
PAYMENT_INVALID_STATE Transition de paiement impossible 409 Paiement déjà terminé ou non confirmable Relire le paiement; ne pas répéter une transition terminale.
PICKUP_DISABLED Retrait sur place désactivé 409 DIDDIFOOD_PICKUP_ENABLED=false Utiliser la livraison en MVP.
PAYMENT_REQUIRED_BEFORE_PREPARATION Paiement en ligne non confirmé 409 Le paiement DiddiPay n'est pas encore succeeded Attendre la confirmation DiddiPay puis réessayer l'acceptation restaurant.
DIDDIPAY_NOT_CONFIGURED DiddiPay non configuré 503 Variables DiddiPay absentes Configurer l'intégration puis redéployer.
DIDDISEND_S2S_NOT_CONFIGURED DiddiSend non configuré 503 Identifiant ou credential Send absent Configurer le S2S Send puis redéployer.
DIDDIFOOD_DIDDIFILES_UNAVAILABLE DiddiFiles indisponible 503 Confirmation ou URL publique impossible Réessayer; l'affichage utilise un fallback si possible.
IDEMPOTENCY_KEY_REQUIRED Clé d'idempotence requise 400 Écriture S2S sans clé obligatoire Envoyer la même clé pour une nouvelle tentative.
IDEMPOTENCY_CONFLICT Clé déjà utilisée avec un autre contenu 409 Corps différent pour la même clé Générer une nouvelle clé et vérifier le résultat précédent.
PAYOUT_NOT_READY Retrait non disponible 409 Solde insuffisant, cash non régularisé ou bénéficiaire absent Corriger le prérequis puis relire le wallet.
DELIVERY_NOT_FOUND Livraison introuvable 404 La mission n'a pas encore été créée ou n'est pas liée à la commande Relire la commande et réessayer après l'acceptation.
DELIVERY_GATEWAY_NOT_CONFIGURED Livraison indisponible 503 DiddiSend n'est pas configuré ou joignable Afficher l'état en attente et proposer une nouvelle lecture.
DELIVERY_REFERENCE_MISMATCH Référence de livraison incohérente 502 DiddiSend a retourné une autre mission Ne pas afficher de succès; transmettre le request_id au support.
DELIVERY_FINANCIAL_BREAKDOWN_MISMATCH Ventilation livraison incohérente 502 Les montants Food et Send ne correspondent pas Bloquer la confirmation et transmettre au support.
RATING_NOT_FOUND Note absente 404 Le client n'a pas encore noté la commande Afficher l'état « aucune note ».
REFUND_BENEFICIARY_MISSING Bénéficiaire de remboursement absent 422 Une commande cash n'a pas d'identité de payeur exploitable Corriger le rattachement avant d'approuver.
ORDER_RESPONSE_TIMEOUT_INVALID Délai restaurant invalide 500 Configuration de déploiement incohérente Corriger DIDDIFOOD_RESTAURANT_RESPONSE_TIMEOUT_SECONDS.

Les réponses d'erreur contiennent un code, un message et, quand il existe, un request_id de corrélation.