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.