{"status":"ok","generatedAt":"2026-09-04T17:20:28.542Z","message":"Opération réussie.","meta":{"version":"1.1.0","generatedAt":"2026-06-19","totalCodes":1204,"url":"https://api.upjunoo-dev.tech/v1/meta/error-codes","usage":"Toute réponse d'erreur porte un message FR prêt à afficher (champ racine `message` ET `error.message`). Le front peut afficher `message` tel quel, ou utiliser `error.code` comme clé i18n. Les réponses de succès portent aussi un `message` FR.","apiShape":{"status":"error","generatedAt":"ISO-8601","message":"Course introuvable","error":{"code":"RIDE_NOT_FOUND","message":"Course introuvable","details":"optional"}},"successShape2xx":{"status":"ok | created | accepted","generatedAt":"ISO-8601","message":"Opération réussie.","...":"données métier"},"successShape":{"status":"ok","generatedAt":"ISO-8601","meta":{"version":"1.0.0","totalCodes":452,"url":"..."},"codes":{"RIDE_NOT_FOUND":{"http":404,"en":"Ride not found","fr":"Course introuvable"}}}},"codes":{"ACCOUNTANT_COUNTRY_UNSET":{"http":403,"en":"Accountant country unset","fr":"Compte comptable sans pays rattaché. Contactez un administrateur."},"ACCOUNTANT_NOT_FOUND":{"http":404,"en":"Accountant not found","fr":"Comptable introuvable."},"ACCOUNTANT_REQUIRED":{"http":403,"en":"Accountant required","fr":"Accès réservé à la comptabilité."},"ACCOUNT_BLOCKED":{"http":403,"en":"Account blocked","fr":"Votre compte est suspendu. Contactez le support."},"ACCOUNT_DELETE_FAILED":{"http":[],"en":"Account delete failed","fr":"Impossible de supprimer — compte"},"ADDRESSES_FETCH_FAILED":{"http":500,"en":"Addresses fetch failed","fr":"Échec de la récupération — adresses"},"ADDRESS_CREATE_FAILED":{"http":400,"en":"Address create failed","fr":"Impossible de créer — adresse"},"ADDRESS_DELETE_FAILED":{"http":400,"en":"Address delete failed","fr":"Impossible de supprimer — adresse"},"ADDRESS_NOT_FOUND":{"http":404,"en":"Address not found","fr":"Adresse introuvable"},"ADDRESS_UPDATE_FAILED":{"http":400,"en":"Address update failed","fr":"Impossible de mettre à jour — adresse"},"ADMIN_ACCOUNTANTS_FETCH_FAILED":{"http":500,"en":"Admin accountants fetch failed","fr":"Impossible de charger les comptables."},"ADMIN_ACCOUNTANTS_PROFILES_FAILED":{"http":500,"en":"Admin accountants profiles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ADMIN_ACCOUNTANT_AUTH_CREATE_FAILED":{"http":400,"en":"Admin accountant auth create failed","fr":"Impossible de créer le comptable."},"ADMIN_ACCOUNTANT_COUNTRY_LOOKUP_FAILED":{"http":500,"en":"Admin accountant country lookup failed","fr":"Impossible de retrouver le pays."},"ADMIN_ACCOUNTANT_COUNTRY_REQUIRED":{"http":400,"en":"Admin accountant country required","fr":"Une information obligatoire est manquante."},"ADMIN_ACCOUNTANT_FETCH_FAILED":{"http":500,"en":"Admin accountant fetch failed","fr":"Impossible de charger le comptable."},"ADMIN_ACCOUNTANT_FIELDS_REQUIRED":{"http":400,"en":"Admin accountant fields required","fr":"Une information obligatoire est manquante."},"ADMIN_ACCOUNTANT_ROLE_ASSIGN_FAILED":{"http":500,"en":"Admin accountant role assign failed","fr":"Impossible d'effectuer l'affectation."},"ADMIN_ACCOUNTANT_ROLE_MISSING":{"http":500,"en":"Admin accountant role missing","fr":"Une information obligatoire est manquante."},"ADMIN_CATALOG_CREATE_FAILED":{"http":400,"en":"Admin catalog create failed","fr":"Impossible de créer l'élément catalogue"},"ADMIN_CATALOG_DISABLE_FAILED":{"http":400,"en":"Admin catalog disable failed","fr":"Impossible de désactiver l'élément catalogue"},"ADMIN_CATALOG_FETCH_FAILED":{"http":500,"en":"Admin catalog fetch failed","fr":"Échec de la récupération du catalogue administration"},"ADMIN_CATALOG_RESOURCE_INVALID":{"http":400,"en":"Unknown catalog resource","fr":"Ressource catalogue inconnue — administration"},"ADMIN_CATALOG_UPDATE_FAILED":{"http":400,"en":"Admin catalog update failed","fr":"Impossible de mettre à jour l'élément catalogue"},"ADMIN_COUNT_FAILED":{"http":500,"en":"Admin count failed","fr":"Échec du comptage — administration"},"ADMIN_DELIVERIES_FETCH_FAILED":{"http":500,"en":"Admin deliveries fetch failed","fr":"Échec de la récupération — administration livraisons"},"ADMIN_DRIVERS_BATCH_FETCH_FAILED":{"http":500,"en":"Admin drivers batch fetch failed","fr":"Impossible de charger les chauffeurs."},"ADMIN_DRIVERS_COUNT_FAILED":{"http":500,"en":"Admin drivers count failed","fr":"Échec du comptage — administration chauffeurs"},"ADMIN_DRIVERS_FETCH_FAILED":{"http":500,"en":"Admin drivers fetch failed","fr":"Échec de la récupération — administration chauffeurs"},"ADMIN_DRIVERS_SEARCH_FAILED":{"http":500,"en":"Admin drivers search failed","fr":"La recherche a échoué. Réessayez."},"ADMIN_DRIVER_APPROVE_FAILED":{"http":400,"en":"Admin driver approve failed","fr":"Impossible d'approuver pour le moment."},"ADMIN_DRIVER_DELETE_FAILED":{"http":400,"en":"Admin driver delete failed","fr":"Impossible de supprimer le chauffeur."},"ADMIN_DRIVER_FETCH_FAILED":{"http":500,"en":"Admin driver fetch failed","fr":"Impossible de charger le chauffeur."},"ADMIN_DRIVER_PATCH_EMPTY":{"http":400,"en":"No valid fields to update","fr":"Aucun champ valide à mettre à jour"},"ADMIN_DRIVER_PATCH_FAILED":{"http":400,"en":"Admin driver patch failed","fr":"Impossible de modifier — administration chauffeur"},"ADMIN_DRIVER_REJECT_FAILED":{"http":400,"en":"Admin driver reject failed","fr":"Impossible de rejeter pour le moment."},"ADMIN_FILTERS_CITIES_FAILED":{"http":500,"en":"Admin filters cities failed","fr":"Échec de la récupération des filtres villes"},"ADMIN_FILTERS_FRANCHISES_FAILED":{"http":500,"en":"Admin filters franchises failed","fr":"Échec de la récupération des filtres franchises"},"ADMIN_FILTERS_PARTNERS_FAILED":{"http":500,"en":"Admin filters partners failed","fr":"Échec de la récupération des filtres partenaires"},"ADMIN_FRANCHISES_COUNT_FAILED":{"http":500,"en":"Admin franchises count failed","fr":"Impossible de calculer le total pour le moment."},"ADMIN_FRANCHISES_FETCH_FAILED":{"http":500,"en":"Admin franchises fetch failed","fr":"Impossible de charger les franchises."},"ADMIN_FRANCHISE_ADMIN_REQUIRED":{"http":400,"en":"Admin franchise admin required","fr":"Une information obligatoire est manquante."},"ADMIN_FRANCHISE_ARCHIVE_FAILED":{"http":400,"en":"Admin franchise archive failed","fr":"Impossible d'archiver la franchise."},"ADMIN_FRANCHISE_AUTH_CREATE_FAILED":{"http":400,"en":"Admin franchise auth create failed","fr":"Impossible de créer la franchise."},"ADMIN_FRANCHISE_CONTACT_ALREADY_USED":{"http":409,"en":"Franchise contact email or phone already used","fr":"Cet e-mail ou ce téléphone est déjà rattaché à un compte existant. Si la franchise correspondante a été archivée, réactivez-la plutôt que d'en créer une nouvelle."},"ADMIN_FRANCHISE_CITY_LOOKUP_FAILED":{"http":500,"en":"Admin franchise city lookup failed","fr":"Impossible de retrouver la ville."},"ADMIN_FRANCHISE_CITY_REQUIRED":{"http":400,"en":"Admin franchise city required","fr":"Une information obligatoire est manquante."},"ADMIN_FRANCHISE_COUNTRY_LOOKUP_FAILED":{"http":500,"en":"Admin franchise country lookup failed","fr":"Impossible de retrouver le pays."},"ADMIN_FRANCHISE_CREATE_FAILED":{"http":400,"en":"Admin franchise create failed","fr":"Impossible de créer la franchise."},"ADMIN_FRANCHISE_FETCH_FAILED":{"http":500,"en":"Admin franchise fetch failed","fr":"Impossible de charger la franchise."},"ADMIN_FRANCHISE_MEMBER_CREATE_FAILED":{"http":400,"en":"Admin franchise member create failed","fr":"Impossible de créer le membre."},"ADMIN_FRANCHISE_NAME_REQUIRED":{"http":400,"en":"Admin franchise name required","fr":"Une information obligatoire est manquante."},"ADMIN_FRANCHISE_PATCH_EMPTY":{"http":400,"en":"Admin franchise patch empty","fr":"Aucune modification fournie."},"ADMIN_FRANCHISE_PATCH_FAILED":{"http":400,"en":"Admin franchise patch failed","fr":"Impossible de mettre à jour la franchise."},"ADMIN_FRANCHISE_REVENUE_FAILED":{"http":500,"en":"Admin franchise revenue failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ADMIN_FRANCHISE_ZONES_FAILED":{"http":500,"en":"Admin franchise zones failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ADMIN_INSERT_FAILED":{"http":400,"en":"Admin insert failed","fr":"Impossible d'insérer — administration"},"ADMIN_KYC_COUNT_FAILED":{"http":500,"en":"Admin kyc count failed","fr":"Échec du comptage — administration KYC"},"ADMIN_KYC_FETCH_FAILED":{"http":500,"en":"Admin kyc fetch failed","fr":"Échec de la récupération — administration KYC"},"ADMIN_KYC_QUEUE_FAILED":{"http":500,"en":"Admin kyc queue failed","fr":"Échec de la file d'attente — administration KYC"},"ADMIN_LIVE_DRIVERS_COUNT_FAILED":{"http":500,"en":"Admin live drivers count failed","fr":"Impossible de calculer le total pour le moment."},"ADMIN_LIVE_DRIVERS_FAILED":{"http":500,"en":"Admin live drivers failed","fr":"Échec — administration temps réel chauffeurs"},"ADMIN_LIVE_VEHICLES_FAILED":{"http":500,"en":"Admin live vehicles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ADMIN_LIVE_VEHICLE_REFS_FAILED":{"http":500,"en":"Admin live vehicle refs failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ADMIN_LIVE_VIEWPORT_BBOX_REQUIRED":{"http":400,"en":"Admin live viewport bbox required","fr":"Une information obligatoire est manquante."},"ADMIN_LIVE_VIEWPORT_COUNT_FAILED":{"http":500,"en":"Admin live viewport count failed","fr":"Impossible de calculer le total pour le moment."},"ADMIN_LIVE_VIEWPORT_DRIVERS_FAILED":{"http":500,"en":"Admin live viewport drivers failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ADMIN_LIVE_VIEWPORT_VALIDATE_FAILED":{"http":500,"en":"Admin live viewport validate failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ADMIN_ORDERS_COUNT_FAILED":{"http":500,"en":"Admin orders count failed","fr":"Échec du comptage — administration commandes"},"ADMIN_ORDERS_FETCH_FAILED":{"http":500,"en":"Admin orders fetch failed","fr":"Échec de la récupération — administration commandes"},"ADMIN_ORDER_DETAIL_UNSUPPORTED":{"http":501,"en":"Only RIDE orders are supported for now","fr":"Seules les commandes RIDE sont prises en charge pour l'instant"},"ADMIN_PARTNERS_BATCH_FETCH_FAILED":{"http":500,"en":"Admin partners batch fetch failed","fr":"Impossible de charger les partenaires."},"ADMIN_PARTNERS_COUNT_FAILED":{"http":500,"en":"Admin partners count failed","fr":"Échec du comptage — administration partenaires"},"ADMIN_PARTNERS_FETCH_FAILED":{"http":500,"en":"Admin partners fetch failed","fr":"Échec de la récupération — administration partenaires"},"ADMIN_PARTNER_FETCH_FAILED":{"http":500,"en":"Admin partner fetch failed","fr":"Impossible de charger le partenaire."},"ADMIN_PARTNER_PATCH_EMPTY":{"http":400,"en":"Admin partner patch empty","fr":"Aucune modification fournie."},"ADMIN_PARTNER_PATCH_FAILED":{"http":400,"en":"Admin partner patch failed","fr":"Impossible de mettre à jour le partenaire."},"ADMIN_PARTNER_RIDE_STATS_FAILED":{"http":500,"en":"Admin partner ride stats failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ADMIN_PENDING_WITHDRAWALS_FETCH_FAILED":{"http":500,"en":"Admin pending withdrawals fetch failed","fr":"Impossible de charger les retraits."},"ADMIN_PROFILES_BATCH_FETCH_FAILED":{"http":500,"en":"Admin profiles batch fetch failed","fr":"Impossible de charger les profils."},"ADMIN_REQUIRED":{"http":403,"en":"Admin JWT required for live map room","fr":"Droits administrateur requis"},"ADMIN_RIDES_FETCH_FAILED":{"http":500,"en":"Admin rides fetch failed","fr":"Échec de la récupération — administration courses"},"ADMIN_ROLE_ASSIGN_FAILED":{"http":500,"en":"Admin role assign failed","fr":"Impossible d'effectuer l'affectation."},"ADMIN_ROLE_ASSIGN_LOOKUP_FAILED":{"http":500,"en":"Admin role assign lookup failed","fr":"Impossible de retrouver le rôle."},"ADMIN_ROLE_LOOKUP_FAILED":{"http":500,"en":"Admin role lookup failed","fr":"Impossible de retrouver le rôle."},"ADMIN_TABLE_FETCH_FAILED":{"http":500,"en":"Admin table fetch failed","fr":"Échec de la récupération de la table administration"},"ADMIN_UPDATE_FAILED":{"http":400,"en":"Admin update failed","fr":"Impossible de mettre à jour — administration"},"ADMIN_USERS_COUNT_FAILED":{"http":500,"en":"Admin users count failed","fr":"Échec du comptage — administration utilisateurs"},"ADMIN_USERS_FETCH_FAILED":{"http":500,"en":"Admin users fetch failed","fr":"Échec de la récupération — administration utilisateurs"},"ADMIN_USER_DELETE_FAILED":{"http":400,"en":"Admin user delete failed","fr":"Impossible de supprimer l'utilisateur."},"ADMIN_USER_FETCH_FAILED":{"http":500,"en":"Admin user fetch failed","fr":"Impossible de charger l'utilisateur."},"ADMIN_USER_PATCH_EMPTY":{"http":400,"en":"Admin user patch empty","fr":"Aucune modification fournie."},"ADMIN_USER_PATCH_FAILED":{"http":400,"en":"Admin user patch failed","fr":"Impossible de mettre à jour l'utilisateur."},"ADMIN_USER_STATUS_FAILED":{"http":400,"en":"Admin user status failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ADMIN_VEHICLES_BATCH_FETCH_FAILED":{"http":500,"en":"Admin vehicles batch fetch failed","fr":"Impossible de charger les véhicules."},"ADMIN_VEHICLES_COUNT_FAILED":{"http":500,"en":"Admin vehicles count failed","fr":"Impossible de calculer le total pour le moment."},"ADMIN_VEHICLES_FETCH_FAILED":{"http":500,"en":"Admin vehicles fetch failed","fr":"Impossible de charger les véhicules."},"ADMIN_VEHICLE_DELETE_FAILED":{"http":400,"en":"Admin vehicle delete failed","fr":"Impossible de supprimer le véhicule."},"ADMIN_VEHICLE_FETCH_FAILED":{"http":500,"en":"Admin vehicle fetch failed","fr":"Impossible de charger le véhicule."},"ADMIN_VEHICLE_PATCH_EMPTY":{"http":400,"en":"Admin vehicle patch empty","fr":"Aucune modification fournie."},"ADMIN_VEHICLE_PATCH_FAILED":{"http":400,"en":"Admin vehicle patch failed","fr":"Impossible de mettre à jour le véhicule."},"ADMIN_WALLETS_BATCH_FETCH_FAILED":{"http":500,"en":"Admin wallets batch fetch failed","fr":"Impossible de charger les portefeuilles."},"ADMIN_WITHDRAWALS_COUNT_FAILED":{"http":500,"en":"Admin withdrawals count failed","fr":"Échec du comptage — administration retraits"},"ADMIN_WITHDRAWALS_FETCH_FAILED":{"http":500,"en":"Admin withdrawals fetch failed","fr":"Échec de la récupération — administration retraits"},"ADMIN_WITHDRAWAL_FETCH_FAILED":{"http":500,"en":"Admin withdrawal fetch failed","fr":"Impossible de charger le retrait."},"AMOUNT_INVALID":{"http":400,"en":"${field} must be a positive number","fr":"Montant invalide"},"APP_BANNERS_FETCH_FAILED":{"http":500,"en":"App banners fetch failed","fr":"Échec de la récupération — application bannières"},"AUTH_ADMIN_INVITE_REQUIRED":{"http":403,"en":"Admin registration requires a valid inviteCode (or devBypass in dev sandbox)","fr":"Code d'invitation administrateur requis"},"AUTH_ALREADY_REGISTERED":{"http":409,"en":"Auth already registered","fr":"Un compte existe déjà avec ces informations."},"AUTH_DRIVER_OTP_SEND_FAILED":{"http":400,"en":"Auth driver otp send failed","fr":"Échec de l'envoi du code OTP chauffeur"},"AUTH_DRIVER_OTP_VERIFY_FAILED":{"http":400,"en":"Auth driver otp verify failed","fr":"Échec de la vérification — authentification code OTP"},"AUTH_DRIVER_OTP_VERIFY_INVALID":{"http":400,"en":"countryCode, phone and code are required","fr":"Code OTP invalide"},"AUTH_DRIVER_PHONE_REQUIRED":{"http":400,"en":"countryCode and phone are required","fr":"Indicatif pays et numéro de téléphone requis"},"AUTH_EXISTS_INVALID":{"http":400,"en":"Auth exists invalid","fr":"Requête invalide."},"AUTH_FORBIDDEN":{"http":403,"en":"Auth forbidden","fr":"Accès refusé."},"AUTH_FRANCHISE_ID_REQUIRED":{"http":400,"en":"franchiseId is required for franchise registration","fr":"Identifiant franchise requis"},"AUTH_INVALID":{"http":[],"en":"Invalid or expired token","fr":"Jeton invalide ou expiré"},"AUTH_LOGIN_FAILED":{"http":401,"en":"Invalid login credentials","fr":"Identifiants incorrects"},"SESSION_SUPERSEDED":{"http":401,"en":"Session superseded by a new login on another device","fr":"Connexion détectée sur un autre appareil. Vous avez été déconnecté."},"AUTH_LOGIN_INVALID":{"http":400,"en":"email and password are required","fr":"E-mail et mot de passe requis"},"AUTH_OTP_VERIFY_FAILED":{"http":400,"en":"Auth otp verify failed","fr":"Code de vérification invalide ou expiré."},"AUTH_OTP_VERIFY_INVALID":{"http":400,"en":"Auth otp verify invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"AUTH_PHONE_INVALID":{"http":400,"en":"Invalid phone number format","fr":"Numéro de téléphone invalide"},"AUTH_PROFILE_FETCH_FAILED":{"http":500,"en":"Auth profile fetch failed","fr":"Échec de la récupération — authentification profil"},"AUTH_PROFILE_MISSING":{"http":403,"en":"User profile not found","fr":"Profil utilisateur introuvable"},"AUTH_PROFILE_UPSERT_FAILED":{"http":500,"en":"Auth profile upsert failed","fr":"Impossible d'enregistrer — authentification profil"},"AUTH_REFRESH_FAILED":{"http":401,"en":"Auth refresh failed","fr":"Session expirée. Veuillez vous reconnecter."},"AUTH_REGISTER_FAILED":{"http":400,"en":"Auth register failed","fr":"Impossible d'enregistrer — authentification"},"AUTH_REGISTER_INVALID":{"http":400,"en":"email and password are required","fr":"E-mail et mot de passe requis"},"AUTH_REQUIRED":{"http":401,"en":"Authentication required","fr":"Authentification requise"},"AUTH_RESET_PASSWORD_FAILED":{"http":400,"en":"Auth reset password failed","fr":"Impossible de réinitialiser le mot de passe."},"AUTH_RESET_PASSWORD_INVALID":{"http":400,"en":"Auth reset password invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"AUTH_ROLE_ASSIGN_FAILED":{"http":500,"en":"Auth role assign failed","fr":"Impossible d'attribuer — authentification rôle"},"AUTH_ROLE_LOOKUP_FAILED":{"http":500,"en":"Auth role lookup failed","fr":"Échec de la recherche — authentification rôle"},"AUTH_ROLE_MISMATCH":{"http":403,"en":"Expected user_type ${expected}, got ${userType}. Use POST ${hint} or add \"role\":\"${userType.toLowerCase()}\" in the body.","fr":"Ce compte ne correspond pas au rôle demandé"},"BAD_REQUEST":{"http":400,"en":"Bad request","fr":"Requête invalide. Vérifiez les informations saisies."},"BONUS_AWARDS_FETCH_FAILED":{"http":500,"en":"Bonus awards fetch failed","fr":"Impossible de charger le bonus."},"BONUS_AWARD_INSERT_FAILED":{"http":500,"en":"Bonus award insert failed","fr":"Impossible de créer le bonus."},"BONUS_EVAL_DRIVERS_FETCH_FAILED":{"http":500,"en":"Bonus eval drivers fetch failed","fr":"Impossible de charger les chauffeurs."},"BONUS_FRANCHISE_REQUIRED":{"http":400,"en":"Bonus franchise required","fr":"Une information obligatoire est manquante."},"BONUS_HISTORY_FETCH_FAILED":{"http":500,"en":"Bonus history fetch failed","fr":"Impossible de charger le bonus."},"BONUS_PARTNER_REQUIRED":{"http":400,"en":"Bonus partner required","fr":"Une information obligatoire est manquante."},"BONUS_RULES_FETCH_FAILED":{"http":500,"en":"Bonus rules fetch failed","fr":"Impossible de charger le bonus."},"BONUS_RULE_CREATE_FAILED":{"http":400,"en":"Bonus rule create failed","fr":"Impossible de créer le bonus."},"BONUS_RULE_UPDATE_FAILED":{"http":400,"en":"Bonus rule update failed","fr":"Impossible de mettre à jour le bonus."},"BONUS_SETTINGS_UPDATE_FAILED":{"http":400,"en":"Bonus settings update failed","fr":"Impossible de mettre à jour les paramètres."},"BONUS_TIERS_REQUIRED":{"http":400,"en":"Bonus tiers required","fr":"Une information obligatoire est manquante."},"BONUS_TRIP_COUNT_FAILED":{"http":500,"en":"Bonus trip count failed","fr":"Impossible de calculer le total pour le moment."},"BONUS_WEEK_START_INVALID":{"http":400,"en":"Bonus week start invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"BOOKING_CLIENT_CREATE_FAILED":{"http":400,"en":"Booking client create failed","fr":"Impossible de créer le client."},"BOOKING_CLIENT_LOOKUP_FAILED":{"http":500,"en":"Booking client lookup failed","fr":"Impossible de retrouver le client."},"BOOKING_NOT_FOUND":{"http":404,"en":"Booking not found","fr":"Réservation introuvable."},"BUSINESS_ACCOUNTS_FETCH_FAILED":{"http":500,"en":"Business accounts fetch failed","fr":"Échec de la récupération des comptes entreprise"},"BUSINESS_ACCOUNT_CREATE_FAILED":{"http":500,"en":"Business account create failed","fr":"Impossible de créer le compte entreprise"},"BUSINESS_ACCOUNT_FETCH_FAILED":{"http":500,"en":"Business account fetch failed","fr":"Échec de la récupération du compte entreprise"},"BUSINESS_ACCOUNT_NOT_FOUND":{"http":404,"en":"Business account not found","fr":"Compte entreprise introuvable"},"BUSINESS_ACCOUNT_UPDATE_FAILED":{"http":500,"en":"Business account update failed","fr":"Impossible de mettre à jour le compte entreprise"},"BUSINESS_FORBIDDEN":{"http":403,"en":"Business forbidden","fr":"Vous n'êtes pas autorisé pour cette entreprise."},"BUSINESS_MEMBERSHIPS_FETCH_FAILED":{"http":500,"en":"Business memberships fetch failed","fr":"Échec de la récupération — entreprise adhésions"},"BUSINESS_MEMBERS_FETCH_FAILED":{"http":500,"en":"Business members fetch failed","fr":"Échec de la récupération — entreprise membres"},"BUSINESS_MEMBER_CREATE_FAILED":{"http":500,"en":"Business member create failed","fr":"Impossible de créer — entreprise membre"},"BUSINESS_MEMBER_FETCH_FAILED":{"http":500,"en":"Business member fetch failed","fr":"Impossible de charger le membre."},"BUSINESS_MEMBER_NOT_FOUND":{"http":404,"en":"Business member not found","fr":"Membre introuvable."},"BUSINESS_MEMBER_UPDATE_FAILED":{"http":500,"en":"Business member update failed","fr":"Impossible de mettre à jour — entreprise membre"},"BUSY_DRIVERS_DELIVERIES_FAILED":{"http":500,"en":"Busy drivers deliveries failed","fr":"Échec — chauffeurs occupés chauffeurs livraisons"},"BUSY_DRIVERS_RIDES_FAILED":{"http":500,"en":"Busy drivers rides failed","fr":"Échec — chauffeurs occupés chauffeurs courses"},"CALL_LOG_CREATE_FAILED":{"http":500,"en":"Call log create failed","fr":"Impossible de créer — journal"},"CALL_NOT_ALLOWED":{"http":403,"en":"Call not allowed","fr":"L'appel n'est pas autorisé à ce stade."},"CALL_ORDER_REQUIRED":{"http":400,"en":"Call order required","fr":"Une commande est requise pour appeler."},"CAMPAIGNS_FETCH_FAILED":{"http":500,"en":"Campaigns fetch failed","fr":"Échec de la récupération — campagnes"},"CANCELLATION_REASON_LOOKUP_FAILED":{"http":500,"en":"Cancellation reason lookup failed","fr":"Recherche impossible pour le moment."},"CASH_RECONCILIATIONS_FETCH_FAILED":{"http":500,"en":"Cash reconciliations fetch failed","fr":"Échec de la récupération des rapprochements espèces"},"CASH_RECONCILIATION_CREATE_FAILED":{"http":400,"en":"Cash reconciliation create failed","fr":"Impossible de créer — espèces rapprochement"},"CASH_RECONCILIATION_NOT_FOUND":{"http":404,"en":"Cash reconciliation not found","fr":"Rapprochement espèces introuvable"},"CATALOG_BRANDS_FAILED":{"http":500,"en":"Catalog brands failed","fr":"Échec de la récupération des marques catalogue"},"CATALOG_BRAND_CODE_REQUIRED":{"http":400,"en":"brandCode query is required (ex. ?brandCode=TOYOTA)","fr":"Le code marque est requis"},"CATALOG_BRAND_FAILED":{"http":500,"en":"Catalog brand failed","fr":"Échec de la récupération de la marque catalogue"},"CATALOG_BRAND_NOT_FOUND":{"http":404,"en":"Vehicle brand not found: ${ref}","fr":"Marque de véhicule introuvable : ${ref}"},"CATALOG_CATEGORY_FAILED":{"http":500,"en":"Catalog category failed","fr":"Échec de la récupération de la catégorie catalogue"},"CATALOG_CATEGORY_NOT_FOUND":{"http":404,"en":"Category not found: ${ref}","fr":"Catégorie introuvable : ${ref}"},"CATALOG_CITIES_FAILED":{"http":500,"en":"Catalog cities failed","fr":"Échec de la récupération des villes catalogue"},"CATALOG_CITY_FAILED":{"http":500,"en":"Catalog city failed","fr":"Échec de la récupération de la ville catalogue"},"CATALOG_CITY_NOT_FOUND":{"http":404,"en":"City not found: ${cityRef}","fr":"Ville introuvable : ${cityRef}"},"CATALOG_CITY_REF_REQUIRED":{"http":400,"en":"Provide citySlug + countryCode (ex. ?countryCode=CI&citySlug=abidjan) or cityId","fr":"La référence ville est requise"},"CATALOG_COLORS_FAILED":{"http":500,"en":"Catalog colors failed","fr":"Échec de la récupération des couleurs catalogue"},"CATALOG_COLOR_FAILED":{"http":500,"en":"Catalog color failed","fr":"Échec de la récupération de la couleur catalogue"},"CATALOG_COLOR_NOT_FOUND":{"http":404,"en":"Vehicle color not found: ${ref}","fr":"Couleur de véhicule introuvable : ${ref}"},"CATALOG_COUNTRY_CODE_REQUIRED":{"http":400,"en":"countryCode query is required (ex. ?countryCode=CI)","fr":"Le code pays est requis"},"CATALOG_COUNTRY_FAILED":{"http":500,"en":"Catalog country failed","fr":"Échec de la récupération du pays catalogue"},"CATALOG_COUNTRY_NOT_FOUND":{"http":404,"en":"Country not found: ${ref}","fr":"Pays introuvable : ${ref}"},"CATALOG_DOCUMENT_TYPES_FAILED":{"http":500,"en":"Catalog document types failed","fr":"Échec de la récupération des types de documents catalogue"},"CATALOG_FETCH_FAILED":{"http":500,"en":"Catalog fetch failed","fr":"Échec de la récupération du catalogue"},"CATALOG_GEO_DIVISIONS_FAILED":{"http":500,"en":"Catalog geo divisions failed","fr":"Une erreur est survenue. Réessayez plus tard."},"CATALOG_GEO_DIVISION_FAILED":{"http":500,"en":"Catalog geo division failed","fr":"Une erreur est survenue. Réessayez plus tard."},"CATALOG_GEO_DIVISION_NOT_FOUND":{"http":404,"en":"Catalog geo division not found","fr":"Ressource introuvable."},"CATALOG_MODELS_FAILED":{"http":500,"en":"Catalog models failed","fr":"Échec de la récupération des modèles catalogue"},"CATALOG_MODEL_FAILED":{"http":500,"en":"Catalog model failed","fr":"Échec de la récupération du modèle catalogue"},"CATALOG_MODEL_LOOKUP_FAILED":{"http":500,"en":"Catalog model lookup failed","fr":"Échec de la recherche du modèle catalogue"},"CATALOG_MODEL_NOT_FOUND":{"http":404,"en":"Vehicle model not found: ${modelRef}","fr":"Modèle de véhicule introuvable : ${modelRef}"},"CATALOG_PARTNERS_FAILED":{"http":500,"en":"Catalog partners failed","fr":"Échec de la récupération des partenaires catalogue"},"CATALOG_RIDE_OPTIONS_FAILED":{"http":500,"en":"Catalog ride options failed","fr":"Échec de la récupération des options course catalogue"},"CATALOG_SERVICE_CLASSES_FAILED":{"http":500,"en":"Catalog service classes failed","fr":"Échec de la récupération des catégories de service catalogue"},"CATALOG_SERVICE_TYPES_FAILED":{"http":500,"en":"Catalog service types failed","fr":"Échec de la récupération des types de service catalogue"},"CHANNEL_MESSAGES_FETCH_FAILED":{"http":500,"en":"Channel messages fetch failed","fr":"Échec de la récupération — canal messages"},"CHANNEL_MESSAGE_CREATE_FAILED":{"http":400,"en":"Channel message create failed","fr":"Impossible de créer le message."},"CHANNEL_MESSAGE_FIELDS_REQUIRED":{"http":400,"en":"Channel message fields required","fr":"Une information obligatoire est manquante."},"CHANNEL_READ_STATE_CREATE_FAILED":{"http":500,"en":"Channel read state create failed","fr":"Impossible de créer — canal état"},"CHANNEL_READ_STATE_FETCH_FAILED":{"http":500,"en":"Channel read state fetch failed","fr":"Échec de la récupération — canal état"},"CHANNEL_READ_STATE_UPDATE_FAILED":{"http":500,"en":"Channel read state update failed","fr":"Impossible de mettre à jour — canal état"},"CHAT_CONVERSATIONS_FETCH_FAILED":{"http":500,"en":"Chat conversations fetch failed","fr":"Échec de la récupération des conversations"},"CHAT_CONVERSATION_CREATE_FAILED":{"http":500,"en":"Chat conversation create failed","fr":"Impossible de créer la conversation."},"CHAT_CONVERSATION_FETCH_FAILED":{"http":500,"en":"Chat conversation fetch failed","fr":"Impossible de charger la conversation."},"CHAT_CONVERSATION_FORBIDDEN":{"http":403,"en":"Chat conversation forbidden","fr":"Vous n'êtes pas autorisé pour cette conversation."},"CHAT_CONVERSATION_NOT_FOUND":{"http":404,"en":"Chat conversation not found","fr":"Conversation introuvable."},"CHAT_CONVERSATION_READ_UPDATE_FAILED":{"http":500,"en":"Chat conversation read update failed","fr":"Impossible de mettre à jour la conversation."},"CHAT_MESSAGES_FETCH_FAILED":{"http":500,"en":"Chat messages fetch failed","fr":"Échec de la récupération — messagerie messages"},"CHAT_MESSAGE_CREATE_FAILED":{"http":500,"en":"Chat message create failed","fr":"Impossible d'envoyer le message"},"CHAT_MESSAGE_EMPTY":{"http":400,"en":"body or attachments are required","fr":"Le message ou une pièce jointe est requis"},"CHAT_ORDER_ID_REQUIRED":{"http":400,"en":"Chat order id required","fr":"Une information obligatoire est manquante."},"CHAT_UNREAD_COUNT_FAILED":{"http":500,"en":"Chat unread count failed","fr":"Impossible de calculer le total pour le moment."},"CITY_COUNTRY_RESOLVE_FAILED":{"http":500,"en":"City country resolve failed","fr":"Une erreur est survenue. Réessayez plus tard."},"CITY_NOT_FOUND":{"http":404,"en":"City not found","fr":"Ville introuvable."},"CLIENT_FETCH_FAILED":{"http":500,"en":"Client fetch failed","fr":"Impossible de charger le client."},"CLIENT_NOT_FOUND":{"http":404,"en":"Client not found","fr":"Client introuvable."},"COMMISSION_ALLOCATION_INVALID":{"http":400,"en":"Commission allocation invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"COMMISSION_BACKFILL_FETCH_FAILED":{"http":500,"en":"Commission backfill fetch failed","fr":"Impossible de charger la commission."},"COMMISSION_FETCH_FAILED":{"http":500,"en":"Commission fetch failed","fr":"Échec de la récupération — commission"},"COMMISSION_FORBIDDEN":{"http":403,"en":"Commission forbidden","fr":"Vous n'êtes pas autorisé à gérer les commissions."},"COMMISSION_LEDGER_POST_FAILED":{"http":500,"en":"Commission ledger post failed","fr":"Une erreur est survenue. Réessayez plus tard."},"COMMISSION_ORDER_ID_REQUIRED":{"http":400,"en":"order.id is required","fr":"L'identifiant commande (order.id) est requis"},"COMMISSION_RULES_FETCH_FAILED":{"http":500,"en":"Commission rules fetch failed","fr":"Impossible de charger la commission."},"COMMISSION_RULE_FETCH_FAILED":{"http":500,"en":"Commission rule fetch failed","fr":"Échec de la récupération — commission règle"},"COMMISSION_STORE_FAILED":{"http":500,"en":"Commission store failed","fr":"Impossible d'enregistrer — commission"},"COMPLIANCE_DOCS_BATCH_FAILED":{"http":500,"en":"Compliance docs batch failed","fr":"Une erreur est survenue. Réessayez plus tard."},"COMPLIANCE_SUBJECT_REQUIRED":{"http":400,"en":"Compliance subject required","fr":"Une information obligatoire est manquante."},"CONFLICT":{"http":409,"en":"Conflict","fr":"Conflit : l'état actuel ne permet pas cette action."},"CONSENT_INVALID":{"http":400,"en":"consent_type is required","fr":"Le type de consentement est requis"},"CONSENT_RECORD_FAILED":{"http":400,"en":"Consent record failed","fr":"Échec — consentement enregistrement"},"CONTRIBUTION_CREATE_FAILED":{"http":500,"en":"Contribution create failed","fr":"Impossible de créer la contribution."},"CONTRIBUTION_MISSING_COORDS":{"http":400,"en":"Contribution missing coords","fr":"Coordonnées (lat/lng) requises."},"COUNTRY_NOT_FOUND":{"http":404,"en":"Country not found","fr":"Pays introuvable."},"DASHBOARD_ACTIVE_CLIENTS_FAILED":{"http":500,"en":"Dashboard active clients failed","fr":"Échec — actifs clients"},"DASHBOARD_COUNT_FAILED":{"http":500,"en":"Dashboard count failed","fr":"Échec du comptage — tableau de bord"},"DASHBOARD_DRIVERS_COUNT_FAILED":{"http":500,"en":"Dashboard drivers count failed","fr":"Échec du comptage — chauffeurs"},"DASHBOARD_DRIVERS_FETCH_FAILED":{"http":500,"en":"Dashboard drivers fetch failed","fr":"Impossible de charger les chauffeurs."},"DASHBOARD_FRANCHISES_COUNT_FAILED":{"http":500,"en":"Dashboard franchises count failed","fr":"Impossible de calculer le total pour le moment."},"DASHBOARD_KYC_COUNT_FAILED":{"http":500,"en":"Dashboard kyc count failed","fr":"Échec du comptage — KYC"},"DASHBOARD_ONLINE_DRIVERS_COUNT_FAILED":{"http":500,"en":"Dashboard online drivers count failed","fr":"Impossible de calculer le total pour le moment."},"DASHBOARD_PARTNERS_COUNT_FAILED":{"http":500,"en":"Dashboard partners count failed","fr":"Impossible de calculer le total pour le moment."},"DASHBOARD_PARTNERS_FETCH_FAILED":{"http":500,"en":"Dashboard partners fetch failed","fr":"Impossible de charger les partenaires."},"DASHBOARD_PARTNER_DRIVERS_FAILED":{"http":500,"en":"Dashboard partner drivers failed","fr":"Échec — chauffeurs"},"DASHBOARD_PROFILES_COUNT_FAILED":{"http":500,"en":"Dashboard profiles count failed","fr":"Échec du comptage — profils"},"DASHBOARD_RECENT_ACTIVITY_COUNT_FAILED":{"http":500,"en":"Dashboard recent activity count failed","fr":"Échec du comptage — récente activité"},"DASHBOARD_RECENT_ACTIVITY_FAILED":{"http":500,"en":"Dashboard recent activity failed","fr":"Échec — récente activité"},"DASHBOARD_REVENUE_FETCH_FAILED":{"http":500,"en":"Dashboard revenue fetch failed","fr":"Impossible de charger le chiffre d’affaires."},"DASHBOARD_REVENUE_SUM_FAILED":{"http":500,"en":"Dashboard revenue sum failed","fr":"Échec du calcul du total — revenus"},"DASHBOARD_RIDES_24H_FAILED":{"http":500,"en":"Dashboard rides 24h failed","fr":"Échec — courses 24 h"},"DASHBOARD_RIDES_COUNT_FAILED":{"http":500,"en":"Dashboard rides count failed","fr":"Échec du comptage — courses"},"DASHBOARD_SCOPE_CITIES_FAILED":{"http":500,"en":"Dashboard scope cities failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DASHBOARD_SCOPE_FRANCHISES_FAILED":{"http":500,"en":"Dashboard scope franchises failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DASHBOARD_SCOPE_FRANCHISE_FAILED":{"http":500,"en":"Dashboard scope franchise failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DASHBOARD_VEHICLES_COUNT_FAILED":{"http":500,"en":"Dashboard vehicles count failed","fr":"Impossible de calculer le total pour le moment."},"DASHBOARD_WALLETS_FETCH_FAILED":{"http":500,"en":"Dashboard wallets fetch failed","fr":"Impossible de charger les portefeuilles."},"DASHBOARD_WITHDRAWALS_FETCH_FAILED":{"http":500,"en":"Dashboard withdrawals fetch failed","fr":"Impossible de charger les retraits."},"DELIVERIES_FETCH_FAILED":{"http":500,"en":"Deliveries fetch failed","fr":"Échec de la récupération — livraisons"},"DELIVERY_ALREADY_CANCELLED":{"http":409,"en":"Delivery already cancelled","fr":"Cette livraison est déjà annulée."},"DELIVERY_ALREADY_DELIVERED":{"http":409,"en":"Delivery already delivered","fr":"Cette livraison a déjà été effectuée."},"DELIVERY_CARGO_CONFIG_FETCH_FAILED":{"http":500,"en":"Delivery cargo config fetch failed","fr":"Impossible de charger la livraison."},"DELIVERY_CARGO_CONFIG_UPSERT_FAILED":{"http":400,"en":"Delivery cargo config upsert failed","fr":"Impossible d'enregistrer la livraison."},"DELIVERY_CITIES_FETCH_FAILED":{"http":500,"en":"Delivery cities fetch failed","fr":"Impossible de charger les villes."},"DELIVERY_CITY_FETCH_FAILED":{"http":500,"en":"Delivery city fetch failed","fr":"Impossible de charger la ville."},"DELIVERY_CORRIDORS_FETCH_FAILED":{"http":500,"en":"Delivery corridors fetch failed","fr":"Impossible de charger la livraison."},"DELIVERY_CORRIDOR_FETCH_FAILED":{"http":500,"en":"Delivery corridor fetch failed","fr":"Impossible de charger le corridor."},"DELIVERY_CORRIDOR_NOT_FOUND":{"http":404,"en":"Delivery corridor not found","fr":"Corridor introuvable."},"DELIVERY_CORRIDOR_REQUIRED":{"http":400,"en":"Delivery corridor required","fr":"Une information obligatoire est manquante."},"DELIVERY_CREATE_FAILED":{"http":400,"en":"Delivery create failed","fr":"Impossible de créer — livraison"},"DELIVERY_EVENTS_FETCH_FAILED":{"http":500,"en":"Delivery events fetch failed","fr":"Échec de la récupération — événements"},"DELIVERY_FETCH_FAILED":{"http":500,"en":"Delivery fetch failed","fr":"Échec de la récupération — livraison"},"DELIVERY_INVALID_TRANSITION":{"http":409,"en":"Delivery invalid transition","fr":"Conflit : l'état actuel ne permet pas cette action."},"DELIVERY_MODES_FETCH_FAILED":{"http":500,"en":"Delivery modes fetch failed","fr":"Impossible de charger la livraison."},"DELIVERY_NOT_FOUND":{"http":404,"en":"Delivery not found","fr":"Livraison introuvable"},"DELIVERY_PROOF_UPDATE_FAILED":{"http":500,"en":"Delivery proof update failed","fr":"Impossible de mettre à jour — preuve"},"DELIVERY_PROOF_URL_REQUIRED":{"http":400,"en":"url or urls are required","fr":"Une ou plusieurs URL de preuve sont requises"},"DELIVERY_SHARE_ENDED":{"http":410,"en":"Delivery share ended","fr":"Ce lien de suivi n'est plus actif."},"DELIVERY_SHARE_EXPIRED":{"http":410,"en":"Delivery share expired","fr":"Ce lien de suivi a expiré."},"DELIVERY_SHARE_FETCH_FAILED":{"http":500,"en":"Delivery share fetch failed","fr":"Impossible de charger la livraison."},"DELIVERY_SHARE_NOT_FOUND":{"http":404,"en":"Delivery share not found","fr":"Livraison introuvable."},"DELIVERY_STATUS_CONFLICT":{"http":409,"en":"Delivery status conflict","fr":"L'état de la livraison ne permet pas cette action."},"DELIVERY_STATUS_UPDATE_FAILED":{"http":400,"en":"Delivery status update failed","fr":"Impossible de mettre à jour — statut"},"DELIVERY_VEHICLE_TYPES_FETCH_FAILED":{"http":500,"en":"Delivery vehicle types fetch failed","fr":"Impossible de charger le véhicule."},"DESTINATION_FILTER_MISSING_COORDS":{"http":400,"en":"Destination filter missing coords","fr":"Coordonnées de destination requises."},"DEVICES_FETCH_FAILED":{"http":500,"en":"Devices fetch failed","fr":"Échec de la récupération — appareils"},"DEVICE_REGISTER_FAILED":{"http":400,"en":"Device register failed","fr":"Impossible d'enregistrer — appareil"},"DEV_DISPATCH_ADVANCE_INVALID":{"http":400,"en":"advanceStatusTo must be one of: ${Object.keys(DELIVERY_ADVANCE_ACTIONS).join(', ')}","fr":"Avancement dispatch invalide"},"DEV_DISPATCH_CATEGORY_ALIGN_FAILED":{"http":400,"en":"Dev dispatch category align failed","fr":"Échec de l'alignement — dev dispatch catégorie"},"DEV_DISPATCH_DRIVER_FETCH_FAILED":{"http":500,"en":"Dev dispatch driver fetch failed","fr":"Échec de la récupération — dev dispatch chauffeur"},"DEV_DISPATCH_DRIVER_NOT_FOUND":{"http":404,"en":"Dev driver row missing","fr":"Chauffeur dev introuvable"},"DEV_DISPATCH_NO_DRIVER":{"http":409,"en":"Dispatch ended with no_driver — put dev driver online near pickup (ECO category) and retry","fr":"Dispatch terminé sans chauffeur — mettez le chauffeur dev en ligne près du point de prise en charge (catégorie ECO) et réessayez"},"DEV_DISPATCH_ORDER_FETCH_FAILED":{"http":500,"en":"Dev dispatch order fetch failed","fr":"Échec de la récupération — dev dispatch commande"},"DEV_DISPATCH_ORDER_ID_REQUIRED":{"http":400,"en":"orderId is required","fr":"L'identifiant de commande est requis"},"DEV_DISPATCH_ORDER_NOT_FOUND":{"http":404,"en":"Order not found","fr":"Commande introuvable"},"DEV_DISPATCH_PROFILE_FAILED":{"http":500,"en":"Dev dispatch profile failed","fr":"Échec — dev dispatch profil"},"DEV_DISPATCH_SERVICE_INVALID":{"http":400,"en":"serviceType must be ride or delivery","fr":"Le type de service doit être ride ou delivery"},"DEV_DISPATCH_TIMEOUT":{"http":408,"en":"Order still \"${final.status}\" after ${maxTicks} ticks — is the dispatch worker running? Use this simulator (sync ticks) or POST /v1/dispatch/${dispatchType}/${orderId}/start","fr":"Commande toujours « ${final.status} » après ${maxTicks} cycles — le worker dispatch est-il actif ? Utilisez ce simulateur ou POST /v1/dispatch/${dispatchType}/${orderId}/start"},"DEV_DRIVER_FETCH_FAILED":{"http":500,"en":"Dev driver fetch failed","fr":"Échec de la récupération — dev chauffeur"},"DEV_DRIVER_KYC_APPROVE_FAILED":{"http":500,"en":"Dev driver kyc approve failed","fr":"Impossible d'approuver pour le moment."},"DEV_DRIVER_LOOKUP_FAILED":{"http":500,"en":"Dev driver lookup failed","fr":"Impossible de retrouver le chauffeur."},"DEV_DRIVER_NOT_FOUND":{"http":404,"en":"Dev driver profile exists but drivers row is missing","fr":"Profil chauffeur dev présent mais entrée chauffeur manquante"},"DEV_DRIVER_PROFILE_FAILED":{"http":500,"en":"Dev driver profile failed","fr":"Échec — dev profil"},"DEV_DRIVER_SANDBOX_READY_FAILED":{"http":500,"en":"Dev driver sandbox ready failed","fr":"Échec de la préparation — dev bac à sable"},"DEV_DRIVER_VEHICLE_ASSIGN_FAILED":{"http":500,"en":"Dev driver vehicle assign failed","fr":"Impossible d'effectuer l'affectation."},"DEV_DRIVER_VEHICLE_CREATE_FAILED":{"http":500,"en":"Dev driver vehicle create failed","fr":"Impossible de créer le véhicule."},"DEV_DRIVER_WALLET_LEDGER_FAILED":{"http":500,"en":"Dev driver wallet ledger failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DEV_DRIVER_WALLET_UPDATE_FAILED":{"http":500,"en":"Dev driver wallet update failed","fr":"Impossible de mettre à jour le portefeuille."},"DEV_FIXTURE_CHAT_COUNT_FAILED":{"http":500,"en":"Dev fixture chat count failed","fr":"Impossible de calculer le total pour le moment."},"DEV_FIXTURE_CHAT_MESSAGES_FAILED":{"http":500,"en":"Dev fixture chat messages failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DEV_FIXTURE_GOALS_FAILED":{"http":500,"en":"Dev fixture goals failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DEV_FIXTURE_PHOTO_CONTROLS_FAILED":{"http":500,"en":"Dev fixture photo controls failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DEV_FIXTURE_RIDE_LOOKUP_FAILED":{"http":500,"en":"Dev fixture ride lookup failed","fr":"Impossible de retrouver la course."},"DEV_FRANCHISE_MEMBERSHIP_MISSING":{"http":500,"en":"Dev franchise membership missing","fr":"Une information obligatoire est manquante."},"DEV_FRANCHISE_PROFILE_MISSING":{"http":500,"en":"Dev franchise profile missing","fr":"Une information obligatoire est manquante."},"DEV_LOGIN_FAILED":{"http":[],"en":"Dev login failed","fr":"Échec de la connexion dev"},"DEV_MARKET_AUTH_USER":{"http":500,"en":"Dev market auth user","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_BF_FRANCHISE":{"http":500,"en":"Dev market bf franchise","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_CLIENT":{"http":500,"en":"Dev market client","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_DRIVER":{"http":500,"en":"Dev market driver","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_PARTNER_ENTITY":{"http":500,"en":"Dev market partner entity","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_PARTNER_PROFILE":{"http":500,"en":"Dev market partner profile","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_PURGE_LOOKUP":{"http":500,"en":"Dev market purge lookup","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_STATS_BREAKDOWN":{"http":500,"en":"Dev market stats breakdown","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_STATS_DRIVERS":{"http":500,"en":"Dev market stats drivers","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_STATS_PARTNERS":{"http":500,"en":"Dev market stats partners","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_VEHICLE_REFS":{"http":500,"en":"Dev market vehicle refs","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_MARKET_ZONE_SEED":{"http":500,"en":"Dev market zone seed","fr":"Une erreur interne est survenue. Réessayez plus tard."},"DEV_ORDER_FETCH_FAILED":{"http":500,"en":"Dev order fetch failed","fr":"Échec de la récupération — dev commande"},"DEV_ORDER_NOT_FOUND":{"http":404,"en":"Order not found","fr":"Commande introuvable"},"DEV_ORDER_SERVICE_INVALID":{"http":400,"en":"serviceType must be ride, delivery, freight, or rental","fr":"Le type de service doit être ride, delivery, freight ou rental"},"DEV_ORDER_STATUS_FINAL":{"http":400,"en":"Order is already at the final status","fr":"La commande est déjà au statut final"},"DEV_ORDER_STATUS_INVALID":{"http":400,"en":"Empty status chain","fr":"Chaîne de statuts invalide"},"DEV_ORDER_UPDATE_FAILED":{"http":400,"en":"Dev order update failed","fr":"Impossible de mettre à jour — dev commande"},"DEV_OTP_PHONE_REQUIRED":{"http":400,"en":"Dev otp phone required","fr":"Le numéro de téléphone est requis."},"DEV_PARTNER_ACTIVE_FAILED":{"http":500,"en":"Dev partner active failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DEV_PARTNER_ENTITY_MISSING":{"http":500,"en":"Dev partner entity missing","fr":"Une information obligatoire est manquante."},"DEV_PARTNER_LOOKUP_FAILED":{"http":500,"en":"Dev partner lookup failed","fr":"Impossible de retrouver le partenaire."},"DEV_PARTNER_PROFILE_MISSING":{"http":500,"en":"Dev partner profile missing","fr":"Une information obligatoire est manquante."},"DEV_PARTNER_PROFILE_UPDATE_FAILED":{"http":500,"en":"Dev partner profile update failed","fr":"Impossible de mettre à jour le profil."},"DEV_PARTNER_VEHICLE_CREATE_FAILED":{"http":500,"en":"Dev partner vehicle create failed","fr":"Impossible de créer le véhicule."},"DEV_PARTNER_WALLET_LEDGER_FAILED":{"http":500,"en":"Dev partner wallet ledger failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DEV_PARTNER_WALLET_UPDATE_FAILED":{"http":500,"en":"Dev partner wallet update failed","fr":"Impossible de mettre à jour le portefeuille."},"DEV_PROFILE_LOOKUP_FAILED":{"http":500,"en":"Dev profile lookup failed","fr":"Impossible de retrouver le profil."},"DEV_ROLE_INVALID":{"http":[],"en":"role must be one of: admin, client, driver","fr":"Rôle dev invalide (admin, client ou chauffeur)"},"DEV_SANDBOX_DISABLED":{"http":403,"en":"Dev sandbox disabled","fr":"Le bac à sable de développement est désactivé."},"DEV_SANDBOX_PROFILE_UPDATE_FAILED":{"http":500,"en":"Dev sandbox profile update failed","fr":"Impossible de mettre à jour le profil (sandbox)."},"DEV_SIM_DRIVERS_FETCH_FAILED":{"http":500,"en":"Dev sim drivers fetch failed","fr":"Échec de la récupération — dev simulation chauffeurs"},"DEV_SIM_FORBIDDEN":{"http":403,"en":"Invalid or missing X-Dev-Sim-Key header","fr":"En-tête X-Dev-Sim-Key invalide ou manquant"},"DEV_SIM_NO_DRIVERS":{"http":404,"en":"Dev sim no drivers","fr":"Aucun chauffeur disponible pour la simulation dev"},"DEV_SIM_ONLINE_UPDATE_FAILED":{"http":500,"en":"Dev sim online update failed","fr":"Impossible de mettre à jour — dev simulation mise en ligne"},"DEV_SIM_STATUS_FAILED":{"http":500,"en":"Dev sim status failed","fr":"Échec du statut — dev simulation"},"DEV_VEHICLE_REFS_MISSING":{"http":500,"en":"Dev vehicle refs missing","fr":"Une information obligatoire est manquante."},"DIAL_CODES_FETCH_FAILED":{"http":500,"en":"Dial codes fetch failed","fr":"Impossible de charger les données."},"DISPATCHERS_FETCH_FAILED":{"http":500,"en":"Dispatchers fetch failed","fr":"Impossible de charger les répartiteurs."},"DISPATCHER_CREATE_FAILED":{"http":500,"en":"Dispatcher create failed","fr":"Impossible de créer le répartiteur."},"DISPATCHER_NOT_FOUND":{"http":404,"en":"Dispatcher not found","fr":"Répartiteur introuvable."},"DISPATCHER_PATCH_FAILED":{"http":500,"en":"Dispatcher patch failed","fr":"Impossible de mettre à jour le répartiteur."},"DISPATCH_ASSIGN_FAILED":{"http":400,"en":"Dispatch assign failed","fr":"Impossible d'attribuer — dispatch"},"DISPATCH_CONFIG_FETCH_FAILED":{"http":500,"en":"Dispatch config fetch failed","fr":"Échec de la récupération — dispatch configuration"},"DISPATCH_CONFIG_PATCH_FAILED":{"http":500,"en":"Dispatch config patch failed","fr":"Impossible de mettre à jour la répartition."},"DISPATCH_CONFIG_UPDATE_FAILED":{"http":500,"en":"Dispatch config update failed","fr":"Impossible de mettre à jour la répartition."},"DISPATCH_CONFIG_UPSERT_FAILED":{"http":400,"en":"Dispatch config upsert failed","fr":"Impossible d'enregistrer — dispatch configuration"},"DISPATCH_COUNTRY_INVALID":{"http":400,"en":"countryCode is required","fr":"Le code pays est requis"},"DISPATCH_COUNTRY_RESOLVE_FAILED":{"http":500,"en":"Dispatch country resolve failed","fr":"Échec de la résolution — dispatch pays"},"DISPATCH_DRIVER_CATEGORY_MISMATCH":{"http":409,"en":"Dispatch driver category mismatch","fr":"Conflit : l'état actuel ne permet pas cette action."},"DISPATCH_DRIVER_FETCH_FAILED":{"http":500,"en":"Dispatch driver fetch failed","fr":"Échec de la récupération — dispatch chauffeur"},"DISPATCH_DRIVER_KYC_NOT_APPROVED":{"http":409,"en":"Dispatch driver kyc not approved","fr":"Le compte n'est pas encore validé."},"DISPATCH_DRIVER_MISSING_LOCATION":{"http":409,"en":"Dispatch driver missing location","fr":"Position manquante."},"DISPATCH_DRIVER_MISSING_VEHICLE":{"http":409,"en":"Dispatch driver missing vehicle","fr":"Conflit : l'état actuel ne permet pas cette action."},"DISPATCH_DRIVER_NOT_APPROVED":{"http":409,"en":"Dispatch driver not approved","fr":"Le compte n'est pas encore validé."},"DISPATCH_DRIVER_NOT_AVAILABLE":{"http":409,"en":"Dispatch driver not available","fr":"Cet élément n'est pas disponible."},"DISPATCH_DRIVER_NOT_FOUND":{"http":404,"en":"Driver not found","fr":"Chauffeur introuvable"},"DISPATCH_DRIVER_PROFILE_MISMATCH":{"http":409,"en":"Dispatch driver profile mismatch","fr":"Conflit : l'état actuel ne permet pas cette action."},"DISPATCH_DRIVER_VEHICLE_NOT_ELIGIBLE":{"http":409,"en":"Dispatch driver vehicle not eligible","fr":"Cette opération n'est pas éligible."},"DISPATCH_EVENT_FAILED":{"http":500,"en":"Dispatch event failed","fr":"Impossible d'enregistrer l'événement — dispatch"},"DISPATCH_LOCKED":{"http":409,"en":"Dispatch is already running for this order","fr":"Dispatch déjà en cours pour cette commande"},"DISPATCH_LOGS_FETCH_FAILED":{"http":500,"en":"Dispatch logs fetch failed","fr":"Échec de la récupération — dispatch journaux"},"DISPATCH_LOG_FAILED":{"http":500,"en":"Dispatch log failed","fr":"Impossible d'enregistrer le journal — dispatch"},"DISPATCH_NO_DRIVER_FINALIZE_FAILED":{"http":400,"en":"Dispatch no driver finalize failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DISPATCH_OFFER_ENCODE_FAILED":{"http":500,"en":"Invalid dispatch offer payload","fr":"Échec de l'encodage — dispatch offre"},"DISPATCH_OFFER_FORBIDDEN":{"http":403,"en":"Only the offered driver can accept this dispatch offer","fr":"Seul le chauffeur concerné peut répondre à cette offre"},"DISPATCH_OFFER_INVALID":{"http":400,"en":"Invalid dispatch offer id","fr":"Identifiant d'offre dispatch invalide"},"DISPATCH_OFFER_NOT_FOUND":{"http":404,"en":"Dispatch offer not found","fr":"Offre dispatch introuvable"},"DISPATCH_OFFER_NOT_PENDING":{"http":409,"en":"Dispatch offer is not pending","fr":"L'offre dispatch n'est plus en attente"},"DISPATCH_ORDER_FETCH_FAILED":{"http":500,"en":"Dispatch order fetch failed","fr":"Échec de la récupération — dispatch commande"},"DISPATCH_ORDER_NOT_DISPATCHABLE":{"http":409,"en":"Dispatch order not dispatchable","fr":"Conflit : l'état actuel ne permet pas cette action."},"DISPATCH_ORDER_NOT_FOUND":{"http":404,"en":"Order not found","fr":"Commande introuvable"},"DISPATCH_ORDER_NO_LONGER_ASSIGNABLE":{"http":409,"en":"Dispatch order no longer assignable","fr":"Conflit : l'état actuel ne permet pas cette action."},"DISPATCH_SERVICE_UNSUPPORTED":{"http":400,"en":"Supported services: RIDE, DELIVERY_CARGO","fr":"Services pris en charge : RIDE, DELIVERY_CARGO"},"DISPATCH_STATE_UPDATE_FAILED":{"http":400,"en":"Dispatch state update failed","fr":"Impossible de mettre à jour — dispatch état"},"DISPUTES_FETCH_FAILED":{"http":500,"en":"Disputes fetch failed","fr":"Échec de la récupération — litiges"},"DISPUTE_ALREADY_CLOSED":{"http":409,"en":"Dispute already closed","fr":"Cet élément est déjà clôturé."},"DISPUTE_CATEGORIES_FETCH_FAILED":{"http":500,"en":"Dispute categories fetch failed","fr":"Impossible de charger le litige."},"DISPUTE_CREATE_FAILED":{"http":500,"en":"Dispute create failed","fr":"Impossible de créer — litige"},"DISPUTE_FETCH_FAILED":{"http":500,"en":"Dispute fetch failed","fr":"Échec de la récupération — litige"},"DISPUTE_NOT_FOUND":{"http":404,"en":"Dispute not found","fr":"Litige introuvable"},"DISPUTE_OUTCOME_INVALID":{"http":400,"en":"Dispute outcome invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"DISPUTE_REFUND_AMOUNT_REQUIRED":{"http":400,"en":"Dispute refund amount required","fr":"Une information obligatoire est manquante."},"DISPUTE_REFUND_BENEFICIARY_REQUIRED":{"http":400,"en":"Dispute refund beneficiary required","fr":"Une information obligatoire est manquante."},"DISPUTE_REJECT_FAILED":{"http":500,"en":"Dispute reject failed","fr":"Impossible de rejeter pour le moment."},"DISPUTE_REJECT_REASON_REQUIRED":{"http":400,"en":"Dispute reject reason required","fr":"Une information obligatoire est manquante."},"DISPUTE_RESOLVE_FAILED":{"http":500,"en":"Dispute resolve failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DISPUTE_STATUS_INVALID":{"http":400,"en":"Dispute status invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"DISPUTE_UPDATE_FAILED":{"http":500,"en":"Dispute update failed","fr":"Impossible de mettre à jour le litige."},"DISTANCE_MATRIX_EMPTY":{"http":400,"en":"Distance matrix empty","fr":"Origines et destinations requises."},"DISTANCE_MATRIX_TOO_LARGE":{"http":400,"en":"Distance matrix too large","fr":"Le fichier est trop volumineux."},"DOCUMENT_REQUIRED":{"http":400,"en":"Document required","fr":"Un document est requis."},"DOWNLOAD_SIGNED_URL_FAILED":{"http":500,"en":"Download signed url failed","fr":"Impossible de créer l'URL signée — téléchargement"},"DRIVERS_FETCH_FAILED":{"http":500,"en":"Drivers fetch failed","fr":"Échec de la récupération — chauffeurs"},"DRIVER_ACTIVATE_FAILED":{"http":500,"en":"Driver activate failed","fr":"Impossible d'activer pour le moment."},"DRIVER_ALREADY_EXISTS":{"http":409,"en":"Driver already exists","fr":"Un chauffeur existe déjà avec ces informations."},"DRIVER_APP_CONFIG_FETCH_FAILED":{"http":500,"en":"Driver app config fetch failed","fr":"Impossible de charger le chauffeur."},"DRIVER_APP_CONFIG_UPSERT_FAILED":{"http":400,"en":"Driver app config upsert failed","fr":"Impossible d'enregistrer le chauffeur."},"DRIVER_AVAILABILITY_INVALID":{"http":400,"en":"Driver availability invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"DRIVER_BANNED":{"http":403,"en":"Driver banned","fr":"Vous n'êtes pas autorisé à effectuer cette action."},"DRIVER_BREAK_UPDATE_FAILED":{"http":500,"en":"Driver break update failed","fr":"Impossible de mettre à jour — pause"},"DRIVER_CASH_RECONCILIATIONS_FETCH_FAILED":{"http":500,"en":"Driver cash reconciliations fetch failed","fr":"Échec de la récupération — espèces rapprochements"},"DRIVER_CASH_RECONCILIATION_CREATE_FAILED":{"http":500,"en":"Driver cash reconciliation create failed","fr":"Impossible de créer — espèces rapprochement"},"DRIVER_CREATE_FAILED":{"http":500,"en":"Driver create failed","fr":"Impossible de créer le chauffeur."},"DRIVER_CURRENTLY_ACTIVE":{"http":409,"en":"Driver currently active","fr":"Ce chauffeur est actuellement actif."},"DRIVER_DATA_REQUIRED":{"http":400,"en":"Driver data required","fr":"Les informations du chauffeur sont requises."},"DRIVER_DELETE_FAILED":{"http":500,"en":"Driver delete failed","fr":"Impossible de supprimer le chauffeur."},"DRIVER_DELIVERIES_FETCH_FAILED":{"http":500,"en":"Driver deliveries fetch failed","fr":"Échec de la récupération — livraisons"},"DRIVER_EARNINGS_DELIVERIES_FAILED":{"http":500,"en":"Driver earnings deliveries failed","fr":"Échec — gains livraisons"},"DRIVER_EARNINGS_FETCH_FAILED":{"http":500,"en":"Driver earnings fetch failed","fr":"Échec de la récupération — gains"},"DRIVER_EARNINGS_RIDES_FAILED":{"http":500,"en":"Driver earnings rides failed","fr":"Échec — gains courses"},"DRIVER_FETCH_FAILED":{"http":500,"en":"Driver fetch failed","fr":"Échec de la récupération — chauffeur"},"DRIVER_GOALS_FETCH_FAILED":{"http":500,"en":"Driver goals fetch failed","fr":"Échec de la récupération — objectifs"},"DRIVER_HAS_ACTIVE_RIDE":{"http":409,"en":"Driver has active ride","fr":"Ce chauffeur a une course en cours."},"DRIVER_HAS_NO_PARTNER":{"http":409,"en":"Driver has no partner","fr":"Conflit : l'état actuel ne permet pas cette action."},"DRIVER_HEATMAP_FETCH_FAILED":{"http":500,"en":"Driver heatmap fetch failed","fr":"Échec de la récupération — carte de chaleur"},"DRIVER_ID_REQUIRED":{"http":400,"en":"driverId is required","fr":"L'identifiant chauffeur est requis"},"DRIVER_KYC_FETCH_FAILED":{"http":500,"en":"Driver kyc fetch failed","fr":"Impossible de charger le dossier KYC."},"DRIVER_LICENSE_SAVE_FAILED":{"http":400,"en":"Driver license save failed","fr":"Impossible d'enregistrer le permis."},"DRIVER_LOCATIONS_FETCH_FAILED":{"http":500,"en":"Driver locations fetch failed","fr":"Échec de la récupération — positions"},"DRIVER_LOOKUP_FAILED":{"http":500,"en":"Driver lookup failed","fr":"Impossible de retrouver le chauffeur."},"DRIVER_NOT_APPROVED":{"http":403,"en":"Driver not approved","fr":"Le compte n'est pas encore validé."},"DRIVER_NOT_FOUND":{"http":404,"en":"Driver not found","fr":"Chauffeur introuvable"},"DRIVER_NOT_IN_FRANCHISE":{"http":403,"en":"Driver does not belong to this franchise","fr":"Ce chauffeur n'appartient pas à cette franchise."},"DRIVER_NO_VEHICLE":{"http":400,"en":"Driver no vehicle","fr":"Aucun véhicule n'est associé à ce chauffeur."},"DRIVER_ONBOARDING_FAILED":{"http":400,"en":"Driver onboarding failed","fr":"Impossible de démarrer l'inscription chauffeur — chauffeur"},"DRIVER_ONLINE_REQUIRES_VEHICLE":{"http":409,"en":"Driver online requires vehicle","fr":"Conflit : l'état actuel ne permet pas cette action."},"DRIVER_ON_ACTIVE_TRIP":{"http":409,"en":"Driver on active trip","fr":"Ce chauffeur est actuellement en course."},"DRIVER_ON_TRIP_FILTER_FAILED":{"http":500,"en":"Driver on trip filter failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DRIVER_PANIC_CREATE_FAILED":{"http":500,"en":"Driver panic create failed","fr":"Impossible de créer — alerte"},"DRIVER_PREFERENCES_FETCH_FAILED":{"http":500,"en":"Driver preferences fetch failed","fr":"Échec de la récupération — préférences"},"DRIVER_PREFERENCES_INIT_FAILED":{"http":400,"en":"Driver preferences init failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DRIVER_PREFERENCES_UPDATE_FAILED":{"http":400,"en":"Driver preferences update failed","fr":"Impossible de mettre à jour — préférences"},"DRIVER_PROFILE_ALREADY_EXISTS":{"http":409,"en":"Driver profile already exists","fr":"Un profil chauffeur existe déjà."},"DRIVER_PROFILE_LOOKUP_FAILED":{"http":500,"en":"Driver profile lookup failed","fr":"Impossible de retrouver le profil."},"DRIVER_PROFILE_UPDATE_FAILED":{"http":500,"en":"Driver profile update failed","fr":"Impossible de mettre à jour le profil."},"DRIVER_RAFFLE_CAMPAIGNS_FETCH_FAILED":{"http":500,"en":"Driver raffle campaigns fetch failed","fr":"Impossible de charger les campagnes."},"DRIVER_RAFFLE_CAMPAIGN_FETCH_FAILED":{"http":500,"en":"Driver raffle campaign fetch failed","fr":"Impossible de charger la campagne."},"DRIVER_RAFFLE_CAMPAIGN_INACTIVE":{"http":400,"en":"Driver raffle campaign inactive","fr":"Requête invalide. Vérifiez les informations saisies."},"DRIVER_RAFFLE_CAMPAIGN_NOT_FOUND":{"http":404,"en":"Driver raffle campaign not found","fr":"Campagne introuvable."},"DRIVER_RAFFLE_CAMPAIGN_UPSERT_FAILED":{"http":400,"en":"Driver raffle campaign upsert failed","fr":"Impossible d'enregistrer la campagne."},"DRIVER_RAFFLE_CODE_REQUIRED":{"http":400,"en":"Driver raffle code required","fr":"Une information obligatoire est manquante."},"DRIVER_RAFFLE_ENTRIES_FETCH_FAILED":{"http":500,"en":"Driver raffle entries fetch failed","fr":"Impossible de charger la tombola."},"DRIVER_RAFFLE_ENTRY_FAILED":{"http":400,"en":"Driver raffle entry failed","fr":"Une erreur est survenue. Réessayez plus tard."},"DRIVER_RAFFLE_GEO_MISMATCH":{"http":403,"en":"Driver raffle geo mismatch","fr":"La position ne correspond pas."},"DRIVER_RAFFLE_TITLE_REQUIRED":{"http":400,"en":"Driver raffle title required","fr":"Une information obligatoire est manquante."},"DRIVER_REGISTER_CATEGORY_REQUIRED":{"http":400,"en":"Driver register category required","fr":"La catégorie de service est requise."},"DRIVER_REGISTER_LICENSE_REQUIRED":{"http":400,"en":"Driver register license required","fr":"Le permis de conduire est requis."},"DRIVER_REGISTER_LICENSE_REQUIRED_FOR_CARGO":{"http":400,"en":"Driving license required for cargo truck/van","fr":"Le permis de conduire est obligatoire pour un camion ou utilitaire (livraison Cargo)."},"DRIVER_REGISTER_SELFIE_REQUIRED":{"http":400,"en":"Driver selfie photo required","fr":"La photo du chauffeur (selfie) est obligatoire pour finaliser l'inscription."},"DRIVER_REGISTER_VEHICLE_REQUIRED":{"http":400,"en":"Driver register vehicle required","fr":"Une information obligatoire est manquante."},"DRIVER_RIDES_FETCH_FAILED":{"http":500,"en":"Driver rides fetch failed","fr":"Échec de la récupération — courses"},"DRIVER_SAVED_PLACES_FETCH_FAILED":{"http":500,"en":"Driver saved places fetch failed","fr":"Échec de la récupération — favori lieux"},"DRIVER_SAVED_PLACE_CREATE_FAILED":{"http":400,"en":"Driver saved place create failed","fr":"Impossible de créer — favori lieu"},"DRIVER_SERVICE_CLASSES_FETCH_FAILED":{"http":500,"en":"Driver service classes fetch failed","fr":"Impossible de charger le chauffeur."},"DRIVER_SERVICE_CLASS_DELETE_FAILED":{"http":400,"en":"Driver service class delete failed","fr":"Impossible de supprimer — catégorie"},"DRIVER_CATEGORY_UPGRADE_FORBIDDEN":{"http":403,"en":"Cannot upgrade above your vehicle category","fr":"Vous ne pouvez pas passer à une gamme supérieure à celle de votre véhicule. Contactez le support."},"DRIVER_SERVICE_CLASS_FAILED":{"http":400,"en":"Driver service class failed","fr":"Impossible d'activer la catégorie de service — chauffeur"},"DRIVER_SERVICE_CLASS_REQUIRED":{"http":400,"en":"serviceClassCode is required","fr":"Le code de classe de service est requis."},"DRIVER_SERVICE_CLASS_UNKNOWN":{"http":400,"en":"Unknown service class","fr":"Classe de service inconnue."},"DRIVER_SERVICE_CLASS_INCOMPATIBLE":{"http":403,"en":"Service class above your vehicle category","fr":"Cette classe de service est au-dessus de la catégorie de votre véhicule. Contactez le support pour une montée en gamme."},"DRIVER_STATUS_REQUIRED":{"http":400,"en":"status is required","fr":"Le statut est requis"},"DRIVER_STATUS_UPDATE_FAILED":{"http":400,"en":"Driver status update failed","fr":"Impossible de mettre à jour — statut"},"DRIVER_SUSPENDED":{"http":403,"en":"Driver suspended","fr":"Vous n'êtes pas autorisé à effectuer cette action."},"DRIVER_SUSPEND_FAILED":{"http":500,"en":"Driver suspend failed","fr":"Impossible de suspendre pour le moment."},"DRIVER_UPDATE_EMPTY":{"http":400,"en":"Driver update empty","fr":"Aucune modification fournie."},"DRIVER_UPDATE_FAILED":{"http":400,"en":"Driver update failed","fr":"Impossible de mettre à jour — chauffeur"},"DRIVER_VIEW_FORBIDDEN":{"http":403,"en":"Not allowed to view this driver profile","fr":"Consultation de ce profil chauffeur non autorisée"},"DRIVER_WALLETS_FETCH_FAILED":{"http":500,"en":"Driver wallets fetch failed","fr":"Échec de la récupération — portefeuilles"},"DRIVER_WALLET_CONFIG_FETCH_FAILED":{"http":500,"en":"Driver wallet config fetch failed","fr":"Impossible de charger le portefeuille."},"DRIVER_WALLET_CONFIG_UPDATE_FAILED":{"http":500,"en":"Driver wallet config update failed","fr":"Impossible de mettre à jour le portefeuille."},"DUPLICATE_RECORD":{"http":409,"en":"Duplicate record","fr":"Cet enregistrement existe déjà."},"EMAIL_OR_NAME_REQUIRED":{"http":400,"en":"Email or name required","fr":"Un e-mail ou un nom est requis."},"EMAIL_VERIFY_FAILED":{"http":400,"en":"Email verify failed","fr":"Lien de vérification e-mail invalide ou expiré."},"ESTIMATE_FETCH_FAILED":{"http":500,"en":"Estimate fetch failed","fr":"Échec de la récupération — estimation"},"ESTIMATE_LOG_FAILED":{"http":500,"en":"Estimate log failed","fr":"Impossible d'enregistrer le journal — estimation"},"ESTIMATE_NOT_FOUND":{"http":404,"en":"Quote not found","fr":"Devis introuvable"},"EXPORT_EXPIRED":{"http":410,"en":"Export expired","fr":"Le fichier d'export a expiré et n'est plus disponible."},"EXPORT_FORMAT_NOT_SUPPORTED":{"http":422,"en":"Export format not supported","fr":"Format d'export indisponible pour ce rapport."},"EXPORT_GENERATION_FAILED":{"http":500,"en":"Export generation failed","fr":"La génération de l'export a échoué."},"EXPORT_NOT_FOUND":{"http":404,"en":"Export not found","fr":"Export introuvable ou non accessible."},"EXPORT_NOT_READY":{"http":409,"en":"Export not ready","fr":"Le fichier d'export n'est pas encore disponible."},"FILE_NOT_FOUND":{"http":404,"en":"File not found","fr":"Fichier introuvable."},"FLEET_HYGIENE_SCAN_FAILED":{"http":500,"en":"Fleet hygiene scan failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FLEET_VEHICLES_FETCH_FAILED":{"http":500,"en":"Fleet vehicles fetch failed","fr":"Impossible de charger les véhicules."},"FLEET_VEHICLE_FETCH_FAILED":{"http":500,"en":"Fleet vehicle fetch failed","fr":"Impossible de charger le véhicule."},"FORBIDDEN":{"http":403,"en":"Forbidden","fr":"Vous n'êtes pas autorisé à effectuer cette action."},"FRANCHISE_ACCESS_DENIED":{"http":403,"en":"Franchise access denied","fr":"Accès franchise refusé"},"FRANCHISE_ACCESS_REQUIRED":{"http":403,"en":"Franchise account required","fr":"Compte franchise requis"},"FRANCHISE_BY_COUNTRY_FETCH_FAILED":{"http":500,"en":"Franchise by country fetch failed","fr":"Impossible de charger le pays."},"FRANCHISE_CLIENTS_FETCH_FAILED":{"http":500,"en":"Franchise clients fetch failed","fr":"Impossible de charger les clients."},"FRANCHISE_COMMISSION_FETCH_FAILED":{"http":500,"en":"Franchise commission fetch failed","fr":"Impossible de charger la commission."},"FRANCHISE_COMMISSION_NOT_FOUND":{"http":404,"en":"Franchise commission not found","fr":"Commission introuvable."},"FRANCHISE_DRIVER_FETCH_FAILED":{"http":500,"en":"Franchise driver fetch failed","fr":"Impossible de charger le chauffeur."},"FRANCHISE_DRIVER_IDS_FETCH_FAILED":{"http":500,"en":"Franchise driver ids fetch failed","fr":"Impossible de charger le chauffeur."},"FRANCHISE_DRIVER_TRIPS_FAILED":{"http":500,"en":"Franchise driver trips failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_FETCH_FAILED":{"http":500,"en":"Franchise fetch failed","fr":"Échec de la récupération — franchise"},"FRANCHISE_LEDGER_FETCH_FAILED":{"http":500,"en":"Franchise ledger fetch failed","fr":"Impossible de charger le journal comptable."},"FRANCHISE_LIVEMAP_ORDERS_FAILED":{"http":500,"en":"Franchise livemap orders failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_LOOKUP_FAILED":{"http":500,"en":"Franchise lookup failed","fr":"Échec de la recherche — franchise"},"FRANCHISE_MEMBER_CREATE_FAILED":{"http":[400,500],"en":"Franchise member create failed","fr":"Impossible de créer — membre"},"FRANCHISE_MEMBER_FETCH_FAILED":{"http":500,"en":"Franchise member fetch failed","fr":"Échec de la récupération — membre"},"FRANCHISE_MEMBER_NOT_FOUND":{"http":404,"en":"Franchise member not found","fr":"Membre introuvable."},"FRANCHISE_MEMBER_UPDATE_FAILED":{"http":500,"en":"Franchise member update failed","fr":"Impossible de mettre à jour — membre"},"FRANCHISE_NOT_FOUND":{"http":404,"en":"Franchise membership not found","fr":"Adhésion franchise introuvable"},"FRANCHISE_OPS_DRIVERS_FAILED":{"http":500,"en":"Franchise ops drivers failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_OPS_RIDES_FAILED":{"http":500,"en":"Franchise ops rides failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_ORDERS_FETCH_FAILED":{"http":500,"en":"Franchise orders fetch failed","fr":"Échec de la récupération — commandes"},"FRANCHISE_ORDER_SCOPE_FAILED":{"http":500,"en":"Franchise order scope failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_PARTNERS_FETCH_FAILED":{"http":500,"en":"Franchise partners fetch failed","fr":"Impossible de charger les partenaires."},"FRANCHISE_PARTNER_DRIVERS_FAILED":{"http":500,"en":"Franchise partner drivers failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_PARTNER_FETCH_FAILED":{"http":500,"en":"Franchise partner fetch failed","fr":"Impossible de charger le partenaire."},"FRANCHISE_PARTNER_REVENUE_FAILED":{"http":500,"en":"Franchise partner revenue failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_PARTNER_TRIPS_FAILED":{"http":500,"en":"Franchise partner trips failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_PARTNER_VEHICLES_FAILED":{"http":500,"en":"Franchise partner vehicles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_PROMO_FETCH_FAILED":{"http":500,"en":"Franchise promo fetch failed","fr":"Impossible de charger le code promo."},"FRANCHISE_PROMO_NOT_FOUND":{"http":404,"en":"Franchise promo not found","fr":"Code promo introuvable."},"FRANCHISE_RECONCILIATION_ENTRY_FETCH_FAILED":{"http":500,"en":"Franchise reconciliation entry fetch failed","fr":"Impossible de charger l'entrée."},"FRANCHISE_RECONCILIATION_ENTRY_NOT_FOUND":{"http":404,"en":"Franchise reconciliation entry not found","fr":"Entrée introuvable."},"FRANCHISE_RECONCILIATION_FETCH_FAILED":{"http":500,"en":"Franchise reconciliation fetch failed","fr":"Impossible de charger la franchise."},"FRANCHISE_RESOLVE_FAILED":{"http":500,"en":"Franchise resolve failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_REVENUE_DELIVERIES_FAILED":{"http":500,"en":"Franchise revenue deliveries failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_REVENUE_RIDES_FAILED":{"http":500,"en":"Franchise revenue rides failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_SCOPE_CITIES_FAILED":{"http":500,"en":"Franchise scope cities failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_SCOPE_FETCH_FAILED":{"http":500,"en":"Franchise scope fetch failed","fr":"Impossible de charger la franchise."},"FRANCHISE_SCOPE_REQUIRED":{"http":403,"en":"Franchise scope required","fr":"Utilisateur non rattaché à une franchise."},"FRANCHISE_SUPPORT_MESSAGE_CREATE_FAILED":{"http":500,"en":"Franchise support message create failed","fr":"Impossible de créer le message."},"FRANCHISE_SUPPORT_RIDES_FETCH_FAILED":{"http":500,"en":"Franchise support rides fetch failed","fr":"Impossible de charger les courses."},"FRANCHISE_SUPPORT_TICKETS_FETCH_FAILED":{"http":500,"en":"Franchise support tickets fetch failed","fr":"Impossible de charger la franchise."},"FRANCHISE_SUPPORT_TICKET_FETCH_FAILED":{"http":500,"en":"Franchise support ticket fetch failed","fr":"Impossible de charger le ticket."},"FRANCHISE_SUPPORT_TICKET_NOT_FOUND":{"http":404,"en":"Franchise support ticket not found","fr":"Ticket introuvable."},"FRANCHISE_TERRITORY_CITIES_FAILED":{"http":500,"en":"Franchise territory cities failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_TERRITORY_ZONES_FAILED":{"http":500,"en":"Franchise territory zones failed","fr":"Une erreur est survenue. Réessayez plus tard."},"FRANCHISE_TRANSFERS_FETCH_FAILED":{"http":500,"en":"Franchise transfers fetch failed","fr":"Impossible de charger la franchise."},"FRANCHISE_UPDATE_FAILED":{"http":500,"en":"Franchise update failed","fr":"Impossible de mettre à jour — franchise"},"FRANCHISE_WALLETS_FETCH_FAILED":{"http":500,"en":"Franchise wallets fetch failed","fr":"Impossible de charger les portefeuilles."},"FRANCHISE_WALLET_OWNER_FETCH_FAILED":{"http":500,"en":"Franchise wallet owner fetch failed","fr":"Impossible de charger le portefeuille."},"FRANCHISE_WITHDRAWALS_FETCH_FAILED":{"http":500,"en":"Franchise withdrawals fetch failed","fr":"Impossible de charger les retraits."},"FREIGHTS_FETCH_FAILED":{"http":500,"en":"Freights fetch failed","fr":"Échec de la récupération — frets"},"FREIGHT_CREATE_FAILED":{"http":500,"en":"Freight create failed","fr":"Impossible de créer — fret"},"FREIGHT_DROPOFF_REQUIRED":{"http":400,"en":"dropoff latitude/longitude or dropoff_address is required","fr":"Coordonnées ou adresse de destination requises"},"FREIGHT_FETCH_FAILED":{"http":500,"en":"Freight fetch failed","fr":"Échec de la récupération — fret"},"FREIGHT_NOT_FOUND":{"http":404,"en":"Freight request not found","fr":"Demande de fret introuvable"},"FREIGHT_OFFER_CREATE_FAILED":{"http":500,"en":"Freight offer create failed","fr":"Impossible de créer — offre"},"FREIGHT_OFFER_FETCH_FAILED":{"http":500,"en":"Freight offer fetch failed","fr":"Impossible de charger le fret."},"FREIGHT_OFFER_NOT_FOUND":{"http":404,"en":"Freight offer not found","fr":"Fret introuvable."},"FREIGHT_OFFER_UPDATE_FAILED":{"http":500,"en":"Freight offer update failed","fr":"Impossible de mettre à jour — offre"},"FREIGHT_PICKUP_REQUIRED":{"http":400,"en":"pickup latitude/longitude or pickup_address is required","fr":"Coordonnées ou adresse de prise en charge requises"},"FREIGHT_PROOF_FAILED":{"http":500,"en":"Freight proof failed","fr":"Échec de la preuve — fret"},"FREIGHT_QUOTES_FETCH_FAILED":{"http":500,"en":"Freight quotes fetch failed","fr":"Échec de la récupération — devis"},"FREIGHT_QUOTE_ACCEPT_FAILED":{"http":500,"en":"Freight quote accept failed","fr":"Impossible d'accepter — devis"},"FREIGHT_QUOTE_CREATE_FAILED":{"http":500,"en":"Freight quote create failed","fr":"Impossible de créer — devis"},"FREIGHT_STATUS_UPDATE_FAILED":{"http":500,"en":"Freight status update failed","fr":"Impossible de mettre à jour — statut"},"GENERAL_SETTINGS_FETCH_FAILED":{"http":500,"en":"General settings fetch failed","fr":"Impossible de charger les paramètres."},"GENERAL_SETTINGS_UPDATE_FAILED":{"http":500,"en":"General settings update failed","fr":"Impossible de mettre à jour les paramètres."},"GEO_COORDINATES_REQUIRED":{"http":400,"en":"lat and lng are required","fr":"Latitude et longitude requises"},"GEO_HOT_ZONES_FAILED":{"http":500,"en":"Geo hot zones failed","fr":"Échec — géolocalisation zones chaudes zones"},"GOAL_ALREADY_CLAIMED":{"http":409,"en":"Goal already claimed","fr":"Cette récompense a déjà été réclamée."},"GOAL_CLAIM_FAILED":{"http":500,"en":"Goal claim failed","fr":"Une erreur est survenue. Réessayez plus tard."},"GOAL_FETCH_FAILED":{"http":500,"en":"Goal fetch failed","fr":"Impossible de charger l'objectif."},"GOAL_NOT_ACHIEVED":{"http":409,"en":"Goal not achieved","fr":"Objectif non atteint."},"GOAL_NOT_FOUND":{"http":404,"en":"Goal not found","fr":"Objectif introuvable."},"GPS_DEVICES_FETCH_FAILED":{"http":500,"en":"Gps devices fetch failed","fr":"Échec de la récupération — appareils"},"GPS_DEVICE_CREATE_FAILED":{"http":500,"en":"Gps device create failed","fr":"Impossible de créer — appareil"},"GPS_DEVICE_FETCH_FAILED":{"http":500,"en":"Gps device fetch failed","fr":"Impossible de charger l'appareil GPS."},"GPS_DEVICE_NOT_FOUND":{"http":404,"en":"Gps device not found","fr":"Appareil GPS introuvable."},"GPS_DEVICE_SCOPE_REQUIRED":{"http":403,"en":"Gps device scope required","fr":"Utilisateur non rattaché à un périmètre GPS."},"GPS_DEVICE_UPDATE_FAILED":{"http":500,"en":"Gps device update failed","fr":"Impossible de mettre à jour — appareil"},"HOLIDAYS_FETCH_FAILED":{"http":500,"en":"Holidays fetch failed","fr":"Impossible de charger les données."},"HOLIDAY_COEFFICIENT_INVALID":{"http":400,"en":"Holiday coefficient invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"HOLIDAY_COUNTRY_REQUIRED":{"http":400,"en":"Holiday country required","fr":"Une information obligatoire est manquante."},"HOLIDAY_COUNTRY_UNKNOWN":{"http":400,"en":"Holiday country unknown","fr":"Requête invalide. Vérifiez les informations saisies."},"HOLIDAY_CREATE_FAILED":{"http":400,"en":"Holiday create failed","fr":"Impossible de créer cet élément."},"HOLIDAY_DATE_INVALID":{"http":400,"en":"Holiday date invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"HOLIDAY_DELETE_FAILED":{"http":400,"en":"Holiday delete failed","fr":"Impossible de supprimer cet élément."},"HOLIDAY_LABEL_REQUIRED":{"http":400,"en":"Holiday label required","fr":"Une information obligatoire est manquante."},"HOLIDAY_PATCH_EMPTY":{"http":400,"en":"Holiday patch empty","fr":"Aucune modification fournie."},"HOLIDAY_UPDATE_FAILED":{"http":400,"en":"Holiday update failed","fr":"Impossible d'enregistrer les modifications."},"HOME_NOT_CONFIGURED":{"http":400,"en":"Home not configured","fr":"Aucune adresse « domicile » n'est configurée."},"HOME_REQUIRES_ZONE_OR_LOCATION":{"http":400,"en":"Home requires zone or location","fr":"Indiquez une zone ou une position pour le domicile."},"HYGIENE_FETCH_FAILED":{"http":500,"en":"Hygiene fetch failed","fr":"Impossible de charger les données."},"INTERNAL_SERVER_ERROR":{"http":500,"en":"Internal server error","fr":"Erreur interne du serveur"},"INVALID_CACHE_TTL":{"http":400,"en":"Invalid cache ttl","fr":"Requête invalide. Vérifiez les informations saisies."},"INVALID_GEO_POINT":{"http":400,"en":"${label} latitude/longitude are required","fr":"Coordonnées GPS requises pour ${label}"},"INVALID_HEAT_THRESHOLD":{"http":400,"en":"Invalid heat threshold","fr":"Requête invalide. Vérifiez les informations saisies."},"INVALID_SCHEMA_VERSION":{"http":400,"en":"Invalid schema version","fr":"Requête invalide. Vérifiez les informations saisies."},"INVALID_STOPS":{"http":400,"en":"Invalid stops","fr":"Liste des arrêts invalide."},"INVOICES_FETCH_FAILED":{"http":500,"en":"Invoices fetch failed","fr":"Échec de la récupération — factures"},"INVOICE_FETCH_FAILED":{"http":500,"en":"Invoice fetch failed","fr":"Échec de la récupération — facture"},"INVOICE_NOT_FOUND":{"http":404,"en":"Invoice not found","fr":"Facture introuvable"},"KYC_DOCUMENTS_FETCH_FAILED":{"http":500,"en":"Kyc documents fetch failed","fr":"Échec de la récupération — documents"},"KYC_DOCUMENT_CREATE_FAILED":{"http":400,"en":"Kyc document create failed","fr":"Impossible de créer — document"},"KYC_DOCUMENT_NOT_FOUND":{"http":404,"en":"KYC document not found","fr":"Document KYC introuvable"},"KYC_DOCUMENT_TYPE_REQUIRED":{"http":400,"en":"documentTypeCode is required","fr":"Le type de document est requis"},"KYC_DOCUMENT_UPDATE_FAILED":{"http":400,"en":"Kyc document update failed","fr":"Impossible de mettre à jour — document"},"KYC_FILE_REQUIRED":{"http":400,"en":"uploadId, fileUrl or fileUrls is required (flow: signed-url → upload → documents)","fr":"Fichier requis"},"KYC_PHOTO_CONTROLS_FETCH_FAILED":{"http":500,"en":"Kyc photo controls fetch failed","fr":"Échec de la récupération — photo controls"},"KYC_PHOTO_CONTROL_NOT_FOUND":{"http":404,"en":"Photo control not found","fr":"Contrôle photo introuvable"},"KYC_PHOTO_FILE_CREATE_FAILED":{"http":400,"en":"Kyc photo file create failed","fr":"Impossible de créer — photo fichier"},"KYC_PHOTO_FILE_REQUIRED":{"http":400,"en":"fileUrl is required","fr":"L'URL du fichier est requise"},"LEDGER_ALREADY_REVERSED":{"http":409,"en":"Ledger already reversed","fr":"Cette écriture a déjà été contre-passée."},"LEDGER_ENTRIES_FETCH_FAILED":{"http":500,"en":"Ledger entries fetch failed","fr":"Impossible de charger le journal comptable."},"LEDGER_ENTRY_FETCH_FAILED":{"http":500,"en":"Ledger entry fetch failed","fr":"Impossible de charger l'entrée."},"LEDGER_ENTRY_NOT_FOUND":{"http":404,"en":"Ledger entry not found","fr":"Entrée introuvable."},"LEDGER_EXPORT_FAILED":{"http":500,"en":"Ledger export failed","fr":"Une erreur est survenue. Réessayez plus tard."},"LEDGER_FETCH_FAILED":{"http":500,"en":"Ledger fetch failed","fr":"Échec de la récupération — grand livre"},"LEDGER_IS_REVERSAL":{"http":400,"en":"Ledger is reversal","fr":"Requête invalide. Vérifiez les informations saisies."},"LEDGER_LIST_FAILED":{"http":500,"en":"Ledger list failed","fr":"Impossible de charger le journal comptable."},"LEDGER_POST_FAILED":{"http":400,"en":"Ledger post failed","fr":"Impossible de poster l'écriture — grand livre"},"LOCATION_FETCH_FAILED":{"http":500,"en":"Location fetch failed","fr":"Échec de la récupération — position"},"LOCATION_INVALID":{"http":400,"en":"latitude and longitude are required","fr":"Latitude et longitude requises"},"LOCATION_NOT_FOUND":{"http":404,"en":"No location found for driver","fr":"Aucune position trouvée pour ce chauffeur"},"LOCATION_UPDATE_FAILED":{"http":400,"en":"Location update failed","fr":"Impossible de mettre à jour — position"},"CLIENT_LOCATION_NOT_ALLOWED":{"http":409,"en":"Client live location sharing is only allowed during driver approach","fr":"Le partage GPS client n'est autorisé qu'en approche (accepted/arrived)"},"MAP_CITIES_FETCH_FAILED":{"http":500,"en":"Map cities fetch failed","fr":"Échec de la récupération — carte villes"},"MAP_CITY_FETCH_FAILED":{"http":500,"en":"Map city fetch failed","fr":"Impossible de charger la ville."},"MAP_COORDINATES_INVALID":{"http":400,"en":"latitude and longitude are required","fr":"Latitude et longitude requises"},"MAP_FEEDBACK_CREATE_FAILED":{"http":400,"en":"Map feedback create failed","fr":"Impossible de créer — carte retour"},"MAP_POINT_INVALID":{"http":400,"en":"${label} latitude/longitude are required","fr":"Coordonnées GPS invalides pour ${label}"},"MAP_ZONES_FETCH_FAILED":{"http":500,"en":"Map zones fetch failed","fr":"Échec de la récupération — carte zones"},"MARKETING_CAMPAIGN_CREATE_FAILED":{"http":400,"en":"Marketing campaign create failed","fr":"Impossible de créer la campagne."},"MARKETING_CAMPAIGN_UPDATE_FAILED":{"http":400,"en":"Marketing campaign update failed","fr":"Impossible de mettre à jour la campagne."},"MESSAGE_CHANNELS_FETCH_FAILED":{"http":500,"en":"Message channels fetch failed","fr":"Échec de la récupération — canaux"},"MESSAGE_CHANNEL_FIELDS_REQUIRED":{"http":400,"en":"Message channel fields required","fr":"Une information obligatoire est manquante."},"MESSAGE_CHANNEL_UPSERT_FAILED":{"http":400,"en":"Message channel upsert failed","fr":"Impossible d'enregistrer le message."},"METHOD_NOT_ALLOWED":{"http":405,"en":"Method not allowed","fr":"Cette action n'est pas autorisée ici."},"NEAREST_DRIVERS_COLORS_FAILED":{"http":500,"en":"Nearest drivers colors failed","fr":"Une erreur est survenue. Réessayez plus tard."},"NEAREST_DRIVERS_VEHICLES_FAILED":{"http":500,"en":"Nearest drivers vehicles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"NOTIFICATIONS_COUNT_FAILED":{"http":500,"en":"Notifications count failed","fr":"Échec du comptage — notifications"},"NOTIFICATIONS_FETCH_FAILED":{"http":500,"en":"Notifications fetch failed","fr":"Échec de la récupération — notifications"},"NOTIFICATIONS_READ_ALL_FAILED":{"http":400,"en":"Notifications read all failed","fr":"Échec du marquage de toutes les notifications comme lues"},"NOTIFICATION_CREATE_FAILED":{"http":400,"en":"Notification create failed","fr":"Impossible de créer — notification"},"NOTIFICATION_NOT_FOUND":{"http":404,"en":"Notification not found","fr":"Notification introuvable"},"NOTIFICATION_READ_FAILED":{"http":400,"en":"Notification read failed","fr":"Impossible de marquer comme lu — notification"},"NOTIFICATION_TEMPLATES_FETCH_FAILED":{"http":500,"en":"Notification templates fetch failed","fr":"Échec de la récupération — modèles"},"NOTIFICATION_TEMPLATE_CREATE_FAILED":{"http":400,"en":"Notification template create failed","fr":"Impossible de créer — modèle"},"NOTIFICATION_TEMPLATE_INVALID":{"http":400,"en":"code, channel and body are required","fr":"Les champs code, canal et corps du message sont requis"},"NOT_FOUND":{"http":404,"en":"Dev sandbox disabled on this environment","fr":"Ressource introuvable"},"NOT_IMPLEMENTED":{"http":501,"en":"Not implemented","fr":"Cette fonctionnalité sera disponible prochainement."},"NO_ELIGIBLE_PARTNER":{"http":400,"en":"No eligible partner","fr":"Requête invalide. Vérifiez les informations saisies."},"OCR_DISABLED":{"http":503,"en":"Ocr disabled","fr":"La lecture automatique de documents est désactivée."},"OCR_EMPTY_RESPONSE":{"http":502,"en":"Ocr empty response","fr":"La lecture du document n’a rien renvoyé. Réessayez."},"OCR_IMAGE_FETCH_FAILED":{"http":502,"en":"Ocr image fetch failed","fr":"Impossible de récupérer l'image. Réessayez."},"OCR_IMAGE_INVALID":{"http":400,"en":"Ocr image invalid","fr":"Image illisible. Envoyez une photo plus nette."},"OCR_IMAGE_NOT_FOUND":{"http":404,"en":"Ocr image not found","fr":"Image introuvable."},"OCR_IMAGE_REQUIRED":{"http":400,"en":"Ocr image required","fr":"Une image du document est requise."},"OCR_IMAGE_TOO_LARGE":{"http":413,"en":"Ocr image too large","fr":"L'image envoyée est trop volumineuse."},"OCR_MULTIPART_REQUIRED":{"http":415,"en":"Ocr multipart required","fr":"Une information obligatoire est manquante."},"OCR_NOT_CONFIGURED":{"http":503,"en":"Ocr not configured","fr":"La lecture automatique de documents n'est pas configurée."},"OCR_PARSE_FAILED":{"http":422,"en":"Ocr parse failed","fr":"Impossible de lire le document. Réessayez avec une photo plus nette."},"OCR_PDF_UNSUPPORTED":{"http":415,"en":"Ocr pdf unsupported","fr":"Opération non prise en charge."},"OCR_PROVIDER_ERROR":{"http":502,"en":"Ocr provider error","fr":"Service momentanément indisponible. Réessayez plus tard."},"OCR_PROVIDER_UNREACHABLE":{"http":502,"en":"Ocr provider unreachable","fr":"Service de lecture de documents injoignable. Réessayez plus tard."},"OCR_TOO_MANY_FILES":{"http":400,"en":"Ocr too many files","fr":"Trop de documents envoyés en une fois."},"ONBOARDING_VEHICLE_INCOMPLETE":{"http":400,"en":"Onboarding vehicle incomplete","fr":"Requête invalide. Vérifiez les informations saisies."},"ORDERS_FETCH_FAILED":{"http":500,"en":"Orders fetch failed","fr":"Échec de la récupération — commandes"},"ORDER_ACCESS_CHECK_FAILED":{"http":500,"en":"Order access check failed","fr":"Échec — access vérification"},"ORDER_EVENTS_FETCH_FAILED":{"http":500,"en":"Order events fetch failed","fr":"Échec de la récupération — événements"},"ORDER_EVENT_FAILED":{"http":500,"en":"Order event failed","fr":"Impossible d'enregistrer l'événement — commande"},"ORDER_FETCH_FAILED":{"http":500,"en":"Order fetch failed","fr":"Échec de la récupération — commande"},"ORDER_FORBIDDEN":{"http":403,"en":"Order forbidden","fr":"Vous n'êtes pas autorisé pour cette commande."},"ORDER_ISSUE_CREATE_FAILED":{"http":500,"en":"Order issue create failed","fr":"Impossible de créer — signalement"},"ORDER_NOT_FOUND":{"http":404,"en":"Order not found","fr":"Commande introuvable"},"ORDER_NOT_RATEABLE":{"http":409,"en":"Order not rateable","fr":"Cette commande ne peut pas être notée."},"ORDER_NOT_TIPPABLE":{"http":409,"en":"Order not tippable","fr":"Cette commande n'accepte pas de pourboire."},"ORDER_PAYMENT_UPDATE_FAILED":{"http":500,"en":"Order payment update failed","fr":"Impossible de mettre à jour le paiement."},"ORDER_PICKUP_MISSING":{"http":400,"en":"Order pickup latitude/longitude are required","fr":"Coordonnées GPS du point de prise en charge requises"},"ORDER_RATING_CREATE_FAILED":{"http":500,"en":"Order rating create failed","fr":"Impossible de créer — notation"},"ORDER_RECEIPT_FETCH_FAILED":{"http":500,"en":"Order receipt fetch failed","fr":"Échec de la récupération — reçu"},"ORDER_RECEIPT_NOT_FOUND":{"http":404,"en":"Receipt not found","fr":"Reçu de commande introuvable"},"ORDER_REPEAT_GEO_INVALID":{"http":400,"en":"Order repeat geo invalid","fr":"Coordonnées invalides."},"ORDER_REPEAT_GEO_REQUIRED":{"http":400,"en":"Order repeat geo required","fr":"Une information obligatoire est manquante."},"ORDER_REPEAT_RENTAL_DATES_INVALID":{"http":400,"en":"Order repeat rental dates invalid","fr":"Dates invalides."},"ORDER_REPEAT_UNSUPPORTED":{"http":400,"en":"Order repeat unsupported","fr":"Opération non prise en charge."},"ORDER_RETRY_FAILED":{"http":500,"en":"Order retry failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ORDER_SERVICE_TYPE_INVALID":{"http":400,"en":"Unsupported service type","fr":"Type de service non pris en charge"},"ORDER_TRACKING_ENDED":{"http":410,"en":"Order tracking ended","fr":"Le suivi de cette commande n'est plus actif."},"ORDER_TRACKING_FETCH_FAILED":{"http":500,"en":"Order tracking fetch failed","fr":"Échec de la récupération — suivi"},"ORDER_TRACKING_FORBIDDEN":{"http":403,"en":"Order tracking forbidden","fr":"Vous n'êtes pas autorisé à suivre cette commande."},"OTP_EXPIRED":{"http":400,"en":"Code expired or already used. Request a new code.","fr":"Code expiré ou déjà utilisé. Demandez un nouveau code."},"OTP_MISMATCH":{"http":400,"en":"Incorrect code. Check the latest SMS code and try again.","fr":"Code incorrect. Vérifiez le dernier code reçu par SMS et réessayez."},"OTP_PASSWORD_SET_FAILED":{"http":400,"en":"Otp password set failed","fr":"Une erreur est survenue. Réessayez plus tard."},"OTP_PHONE_INVALID":{"http":400,"en":"phone is required","fr":"Numéro de téléphone requis"},"OTP_REQUIRED":{"http":400,"en":"Otp required","fr":"Un code de vérification est requis."},"OTP_SEND_FAILED":{"http":400,"en":"Otp send failed","fr":"Impossible d'envoyer le code. Réessayez."},"OTP_SESSION_FAILED":{"http":400,"en":"Unable to generate session","fr":"Impossible de générer la session"},"OTP_SMS_COOLDOWN":{"http":429,"en":"Otp sms cooldown","fr":"Trop de tentatives. Réessayez dans un instant."},"OTP_SMS_NOT_CONFIGURED":{"http":503,"en":"Orange SMS OTP is not configured","fr":"Service SMS OTP non configuré"},"OTP_SMS_RATE_LIMITED":{"http":429,"en":"Otp sms rate limited","fr":"Trop de demandes de code. Patientez avant de réessayer."},"OTP_TARGET_REQUIRED":{"http":400,"en":"Otp target required","fr":"Un e-mail ou un numéro de téléphone est requis."},"OTP_TOO_MANY_ATTEMPTS":{"http":429,"en":"Otp too many attempts","fr":"Trop de tentatives. Réessayez dans un instant."},"OTP_USER_CREATE_FAILED":{"http":400,"en":"Otp user create failed","fr":"Impossible de créer — code OTP utilisateur"},"OTP_USER_LOOKUP_FAILED":{"http":500,"en":"Otp user lookup failed","fr":"Échec de la recherche — code OTP utilisateur"},"OTP_VERIFY_FAILED":{"http":400,"en":"Otp verify failed","fr":"Code de vérification invalide ou expiré."},"PARTNERS_FETCH_FAILED":{"http":500,"en":"Partners fetch failed","fr":"Impossible de charger les partenaires."},"PARTNER_ACCESS_DENIED":{"http":403,"en":"Partner access denied","fr":"Accès partenaire refusé"},"PARTNER_ACCESS_REQUIRED":{"http":403,"en":"Partner account required","fr":"Compte partenaire requis"},"PARTNER_ARCHIVED":{"http":409,"en":"Partner archived","fr":"Ce partenaire est archivé."},"PARTNER_ARCHIVE_DRIVERS_FAILED":{"http":500,"en":"Partner archive drivers failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_ARCHIVE_FAILED":{"http":400,"en":"Partner archive failed","fr":"Impossible d'archiver le partenaire."},"PARTNER_ARCHIVE_MEMBERS_FAILED":{"http":500,"en":"Partner archive members failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_BOOKINGS_FETCH_FAILED":{"http":500,"en":"Partner bookings fetch failed","fr":"Impossible de charger les réservations."},"PARTNER_BOOKING_CANCEL_FAILED":{"http":400,"en":"Partner booking cancel failed","fr":"Impossible d'annuler pour le moment."},"PARTNER_BOOKING_CREATE_FAILED":{"http":400,"en":"Partner booking create failed","fr":"Impossible de créer la réservation."},"PARTNER_BOOKING_FETCH_FAILED":{"http":500,"en":"Partner booking fetch failed","fr":"Impossible de charger la réservation."},"PARTNER_BOOKING_REFERENCE_FAILED":{"http":500,"en":"Partner booking reference failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_CHANGE_REQUEST_FAILED":{"http":400,"en":"Partner change request failed","fr":"Impossible de demander le changement — partenaire"},"PARTNER_COMMISSIONS_FETCH_FAILED":{"http":500,"en":"Partner commissions fetch failed","fr":"Impossible de charger les commissions."},"PARTNER_CONTACT_EMAIL_REQUIRED":{"http":400,"en":"Partner contact email required","fr":"Une information obligatoire est manquante."},"PARTNER_COUNTRY_RESOLVE_FAILED":{"http":500,"en":"Partner country resolve failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_CREATE_FAILED":{"http":[400,500],"en":"Partner create failed","fr":"Impossible de créer — partenaire"},"PARTNER_DASHBOARD_FETCH_FAILED":{"http":500,"en":"Partner dashboard fetch failed","fr":"Échec de la récupération — tableau de bord"},"PARTNER_DOCUMENTS_FETCH_FAILED":{"http":500,"en":"Partner documents fetch failed","fr":"Impossible de charger les documents."},"PARTNER_DOCUMENT_CREATE_FAILED":{"http":400,"en":"Partner document create failed","fr":"Impossible de créer le document."},"PARTNER_DRIVERS_FETCH_FAILED":{"http":500,"en":"Partner drivers fetch failed","fr":"Impossible de charger les chauffeurs."},"PARTNER_DRIVERS_PROFILES_FAILED":{"http":500,"en":"Partner drivers profiles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_DRIVERS_VEHICLES_FAILED":{"http":500,"en":"Partner drivers vehicles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_DRIVER_ADOPT_FAILED":{"http":400,"en":"Partner driver adopt failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_DRIVER_AUTH_CREATE_FAILED":{"http":400,"en":"Partner driver auth create failed","fr":"Impossible de créer le chauffeur."},"PARTNER_DRIVER_CREATE_FAILED":{"http":400,"en":"Partner driver create failed","fr":"Impossible de créer le chauffeur."},"PARTNER_DRIVER_FETCH_FAILED":{"http":500,"en":"Partner driver fetch failed","fr":"Impossible de charger le chauffeur."},"PARTNER_DRIVER_LIVE_FAILED":{"http":500,"en":"Partner driver live failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_DRIVER_PERF_PROFILES_FAILED":{"http":500,"en":"Partner driver perf profiles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_DRIVER_PROFILE_FAILED":{"http":500,"en":"Partner driver profile failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_DRIVER_TRANSFERS_FETCH_FAILED":{"http":500,"en":"Partner driver transfers fetch failed","fr":"Impossible de charger le chauffeur."},"PARTNER_DRIVER_TRANSFER_STATS_FAILED":{"http":500,"en":"Partner driver transfer stats failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_DRIVER_TRIPS_FAILED":{"http":500,"en":"Partner driver trips failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_DRIVER_VEHICLE_FAILED":{"http":500,"en":"Partner driver vehicle failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_DRIVER_WALLETS_FETCH_FAILED":{"http":500,"en":"Partner driver wallets fetch failed","fr":"Impossible de charger les portefeuilles."},"PARTNER_EMAIL_ALREADY_EXISTS":{"http":409,"en":"Partner email already exists","fr":"Cet e-mail est déjà rattaché à un compte existant. Si le partenaire correspondant a été archivé, réactivez-le plutôt que d'en créer un nouveau."},"PARTNER_FETCH_FAILED":{"http":500,"en":"Partner fetch failed","fr":"Échec de la récupération — partenaire"},"PARTNER_ID_REQUIRED":{"http":400,"en":"Partner id required","fr":"Le partenaire est requis."},"PARTNER_LEGAL_NAME_REQUIRED":{"http":400,"en":"Partner legal name required","fr":"Une information obligatoire est manquante."},"PARTNER_LOOKUP_FAILED":{"http":500,"en":"Partner lookup failed","fr":"Échec de la recherche — partenaire"},"PARTNER_MEMBER_CREATE_FAILED":{"http":500,"en":"Partner member create failed","fr":"Impossible de créer — membre"},"PARTNER_MEMBER_FETCH_FAILED":{"http":500,"en":"Partner member fetch failed","fr":"Échec de la récupération — membre"},"PARTNER_MEMBER_NOT_FOUND":{"http":404,"en":"Partner member not found","fr":"Membre introuvable."},"PARTNER_MEMBER_REMOVE_FAILED":{"http":500,"en":"Partner member remove failed","fr":"Impossible de retirer — membre"},"PARTNER_MEMBER_UPDATE_FAILED":{"http":500,"en":"Partner member update failed","fr":"Impossible de mettre à jour — membre"},"PARTNER_MESSAGE_CONVERSATION_CREATE_FAILED":{"http":500,"en":"Partner message conversation create failed","fr":"Impossible de créer la conversation avec le loueur"},"PARTNER_MESSAGE_CONVERSATION_FETCH_FAILED":{"http":500,"en":"Partner message conversation fetch failed","fr":"Échec de la récupération — conversation loueur"},"PARTNER_MESSAGE_CONVERSATION_NOT_FOUND":{"http":404,"en":"Partner message conversation not found","fr":"Conversation introuvable"},"PARTNER_MESSAGE_CONVERSATIONS_LIST_FAILED":{"http":500,"en":"Partner message conversations list failed","fr":"Échec de la récupération — inbox messages loueur"},"PARTNER_MESSAGE_INSERT_FAILED":{"http":500,"en":"Partner message insert failed","fr":"Impossible d'envoyer le message"},"PARTNER_MESSAGE_LIST_FAILED":{"http":500,"en":"Partner message list failed","fr":"Échec de la récupération — messages loueur"},"PARTNER_MESSAGE_PARTNER_FETCH_FAILED":{"http":500,"en":"Partner fetch failed for messaging","fr":"Échec de la récupération — loueur"},"PARTNER_MESSAGE_PARTNER_NOT_FOUND":{"http":404,"en":"Partner not found or unavailable for messaging","fr":"Loueur introuvable ou indisponible"},"PARTNER_MESSAGE_READ_FAILED":{"http":500,"en":"Partner message read mark failed","fr":"Impossible de marquer la conversation comme lue"},"PARTNER_MESSAGE_TEXT_REQUIRED":{"http":422,"en":"Message text is required","fr":"Le texte du message est requis"},"PARTNER_NOT_FOUND":{"http":404,"en":"Partner not found","fr":"Partenaire introuvable"},"PARTNER_OPS_DRIVERS_FAILED":{"http":500,"en":"Partner ops drivers failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_OPS_ORDERS_FAILED":{"http":500,"en":"Partner ops orders failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_ORDERS_FETCH_FAILED":{"http":500,"en":"Partner orders fetch failed","fr":"Impossible de charger les commandes."},"PARTNER_PASSWORD_REQUIRED":{"http":400,"en":"Partner password required","fr":"Le mot de passe est requis."},"PARTNER_PASSWORD_TOO_SHORT":{"http":400,"en":"Partner password too short","fr":"Le mot de passe est trop court."},"PARTNER_RECENT_TRIPS_FETCH_FAILED":{"http":500,"en":"Partner recent trips fetch failed","fr":"Impossible de charger les trajets."},"PARTNER_RECURRING_BOOKINGS_FETCH_FAILED":{"http":500,"en":"Partner recurring bookings fetch failed","fr":"Impossible de charger les réservations."},"PARTNER_REPORTS_FAILED":{"http":500,"en":"Partner reports failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_REVENUE_FETCH_FAILED":{"http":500,"en":"Partner revenue fetch failed","fr":"Impossible de charger le chiffre d’affaires."},"PARTNER_RIDES_COUNT_FAILED":{"http":500,"en":"Partner rides count failed","fr":"Impossible de calculer le total pour le moment."},"PARTNER_ROLE_ASSIGN_FAILED":{"http":500,"en":"Partner role assign failed","fr":"Impossible d'effectuer l'affectation."},"PARTNER_ROLE_LOOKUP_FAILED":{"http":500,"en":"Partner role lookup failed","fr":"Impossible de retrouver le rôle."},"PARTNER_ROTATION_LOOKUP_FAILED":{"http":500,"en":"Partner rotation lookup failed","fr":"Impossible de retrouver la rotation."},"PARTNER_SHIFTS_PROFILES_FAILED":{"http":500,"en":"Partner shifts profiles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_SHIFTS_VEHICLES_FAILED":{"http":500,"en":"Partner shifts vehicles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_SHIFT_CREATE_FAILED":{"http":400,"en":"Partner shift create failed","fr":"Impossible de créer le créneau."},"PARTNER_STATS_FAILED":{"http":500,"en":"Partner stats failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_STATUS_ARCHIVE_FORBIDDEN":{"http":400,"en":"Partner status archive forbidden","fr":"Vous n'êtes pas autorisé à effectuer cette action."},"PARTNER_STATUS_INVALID":{"http":400,"en":"Partner status invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"PARTNER_SUPPORT_CHAT_FETCH_FAILED":{"http":500,"en":"Partner support chat fetch failed","fr":"Impossible de charger la conversation."},"PARTNER_SUPPORT_MESSAGE_FAILED":{"http":400,"en":"Partner support message failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_SUPPORT_RIDES_FAILED":{"http":500,"en":"Partner support rides failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_TRANSFER_CROSS_FRANCHISE_FORBIDDEN":{"http":403,"en":"Partner transfer cross franchise forbidden","fr":"Vous n'êtes pas autorisé à effectuer cette action."},"PARTNER_TRANSFER_DRIVER_FAILED":{"http":400,"en":"Partner transfer driver failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_TRANSFER_RIDE_CHECK_FAILED":{"http":500,"en":"Partner transfer ride check failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_TRANSFER_SAME":{"http":400,"en":"Partner transfer same","fr":"Le partenaire source et destination sont identiques."},"PARTNER_TRANSFER_TARGET_NOT_FLEET":{"http":400,"en":"A driver can only be transferred to a fleet (FLEET) partner.","fr":"Un chauffeur ne peut être transféré que vers une flotte. Les partenaires fret/location ne gèrent pas de chauffeurs."},"PARTNER_TRANSFER_VEHICLES_FETCH_FAILED":{"http":500,"en":"Partner transfer vehicles fetch failed","fr":"Impossible de charger les véhicules."},"PARTNER_TRANSFER_VEHICLE_FAILED":{"http":400,"en":"Partner transfer vehicle failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_TRIPS_FETCH_FAILED":{"http":500,"en":"Partner trips fetch failed","fr":"Impossible de charger les trajets."},"PARTNER_TRIP_FETCH_FAILED":{"http":500,"en":"Partner trip fetch failed","fr":"Impossible de charger le trajet."},"PARTNER_TRIP_NOT_FOUND":{"http":404,"en":"Partner trip not found","fr":"Trajet introuvable."},"PARTNER_TYPE_INVALID":{"http":400,"en":"Partner type invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"PARTNER_TYPE_REQUIRED":{"http":400,"en":"Partner type required","fr":"Une information obligatoire est manquante."},"PARTNER_UPDATE_EMPTY":{"http":400,"en":"Partner update empty","fr":"Aucune modification fournie."},"PARTNER_UPDATE_FAILED":{"http":500,"en":"Partner update failed","fr":"Impossible de mettre à jour — partenaire"},"PARTNER_USER_PROVISION_FAILED":{"http":422,"en":"Partner user provision failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_VEHICLES_DRIVERS_FAILED":{"http":500,"en":"Partner vehicles drivers failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_VEHICLES_FETCH_FAILED":{"http":500,"en":"Partner vehicles fetch failed","fr":"Échec de la récupération — véhicules"},"PARTNER_VEHICLES_PROFILES_FAILED":{"http":500,"en":"Partner vehicles profiles failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_VEHICLE_ASSIGN_FAILED":{"http":400,"en":"Partner vehicle assign failed","fr":"Impossible d'effectuer l'affectation."},"PARTNER_VEHICLE_CREATE_FAILED":{"http":400,"en":"Partner vehicle create failed","fr":"Impossible de créer le véhicule."},"PARTNER_VEHICLE_DOCUMENTS_FAILED":{"http":500,"en":"Partner vehicle documents failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_VEHICLE_DRIVER_FAILED":{"http":500,"en":"Partner vehicle driver failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PARTNER_VEHICLE_DRIVER_REQUIRED":{"http":400,"en":"Partner vehicle driver required","fr":"Une information obligatoire est manquante."},"PARTNER_VEHICLE_FETCH_FAILED":{"http":500,"en":"Partner vehicle fetch failed","fr":"Impossible de charger le véhicule."},"PARTNER_WALLET_FETCH_FAILED":{"http":500,"en":"Partner wallet fetch failed","fr":"Échec de la récupération — portefeuille"},"PARTNER_WALLET_INSUFFICIENT_FUNDS":{"http":400,"en":"Partner wallet insufficient funds","fr":"Solde du portefeuille partenaire insuffisant."},"PARTNER_WALLET_NOT_FOUND":{"http":404,"en":"Partner wallet not found","fr":"Portefeuille partenaire introuvable"},"PARTNER_WITHDRAWALS_FETCH_FAILED":{"http":500,"en":"Partner withdrawals fetch failed","fr":"Impossible de charger les retraits."},"PARTNER_WITHDRAWAL_CREATE_FAILED":{"http":400,"en":"Partner withdrawal create failed","fr":"Impossible de créer le retrait."},"PASSKEY_CREATE_FAILED":{"http":400,"en":"Passkey create failed","fr":"Impossible d'enregistrer la clé d'accès."},"PASSKEY_DELETE_FAILED":{"http":400,"en":"Passkey delete failed","fr":"Impossible de supprimer la clé d'accès."},"PASSWORD_CHANGE_FAILED":{"http":400,"en":"Password change failed","fr":"Impossible de changer le mot de passe."},"PASSWORD_CHANGE_INVALID":{"http":400,"en":"Password change invalid","fr":"Le nouveau mot de passe est requis."},"PASSWORD_RESET_FAILED":{"http":400,"en":"Password reset failed","fr":"Impossible de réinitialiser le mot de passe."},"PASSWORD_RESET_INVALID":{"http":400,"en":"Password reset invalid","fr":"Identifiant et mot de passe requis."},"PASSWORD_RESET_REQUEST_FAILED":{"http":400,"en":"Password reset request failed","fr":"Impossible d'envoyer l'e-mail de réinitialisation."},"PAYDUNYA_AMOUNT_EXCEEDS_LIMIT":{"http":400,"en":"Paydunya amount exceeds limit","fr":"Requête invalide. Vérifiez les informations saisies."},"PAYDUNYA_BAD_RESPONSE":{"http":502,"en":"Invalid PayDunya API response","fr":"Réponse PayDunya invalide"},"PAYDUNYA_CHANNEL_COUNTRY_MISMATCH":{"http":400,"en":"PayDunya channel does not match country","fr":"Canal PayDunya incompatible avec le pays"},"PAYDUNYA_CHANNEL_DISABLED":{"http":403,"en":"PayDunya channel disabled for country","fr":"Canal PayDunya désactivé pour ce pays"},"PAYDUNYA_CHANNEL_REQUIRED":{"http":400,"en":"PayDunya channelId is required","fr":"channelId PayDunya requis"},"PAYDUNYA_CHANNEL_UNKNOWN":{"http":400,"en":"Unknown PayDunya channel","fr":"Canal PayDunya inconnu"},"PAYDUNYA_CONFIG_FETCH_FAILED":{"http":500,"en":"PayDunya config fetch failed","fr":"Échec lecture config PayDunya"},"PAYDUNYA_CONFIG_UPSERT_FAILED":{"http":400,"en":"PayDunya config save failed","fr":"Échec enregistrement config PayDunya"},"PAYDUNYA_FIELD_REQUIRED":{"http":400,"en":"Required PayDunya SoftPay field missing","fr":"Champ SoftPay PayDunya manquant"},"PAYDUNYA_HTTP_ERROR":{"http":502,"en":"PayDunya HTTP error","fr":"Erreur HTTP PayDunya"},"PAYDUNYA_INVOICE_FAILED":{"http":502,"en":"PayDunya invoice creation failed","fr":"Échec création facture PayDunya"},"PAYDUNYA_INVOICE_TOKEN_MISSING":{"http":400,"en":"PayDunya invoice token missing on transaction","fr":"Token facture PayDunya manquant"},"PAYDUNYA_NOT_CONFIGURED":{"http":503,"en":"PayDunya API keys not configured","fr":"PayDunya non configuré"},"PAYDUNYA_REQUEST_FAILED":{"http":502,"en":"PayDunya request failed","fr":"Requête PayDunya échouée"},"PAYDUNYA_SOFTPAY_DECLINED":{"http":402,"en":"PayDunya SoftPay payment declined","fr":"Paiement SoftPay refusé"},"PAYDUNYA_TIMEOUT":{"http":504,"en":"PayDunya request timed out","fr":"Timeout PayDunya"},"PAYDUNYA_WEBHOOK_UNAUTHORIZED":{"http":401,"en":"Invalid PayDunya IPN signature","fr":"Signature IPN PayDunya invalide"},"PAYDUNYA_WIZALL_CONFIRM_FAILED":{"http":402,"en":"Wizall confirm step failed","fr":"Échec confirmation Wizall"},"PAYDUNYA_WIZALL_CONFIRM_INCOMPLETE":{"http":400,"en":"Wizall confirm fields incomplete","fr":"Champs confirmation Wizall incomplets"},"PAYLOAD_TOO_LARGE":{"http":413,"en":"Payload too large","fr":"Le contenu envoyé est trop volumineux."},"PAYMENT_CONFIRM_FAILED":{"http":400,"en":"Unable to confirm payment","fr":"Impossible de confirmer — paiement"},"PAYMENT_FETCH_FAILED":{"http":500,"en":"Payment fetch failed","fr":"Échec de la récupération — paiement"},"PAYMENT_FULFILLMENT_FAILED":{"http":500,"en":"Payment fulfillment failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PAYMENT_FULFILLMENT_PERSIST_FAILED":{"http":500,"en":"Payment fulfillment persist failed","fr":"Impossible d'enregistrer les données."},"PAYMENT_ID_MISSING":{"http":400,"en":"Payment id missing","fr":"Une information obligatoire est manquante."},"PAYMENT_INIT_FAILED":{"http":400,"en":"Payment init failed","fr":"Impossible d'initier — paiement"},"PAYMENT_LINK_RECHARGE_FAILED":{"http":500,"en":"Payment link recharge failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PAYMENT_METHODS_FETCH_FAILED":{"http":500,"en":"Payment methods fetch failed","fr":"Échec de la récupération — moyens de paiement"},"PAYMENT_METHOD_CREATE_FAILED":{"http":400,"en":"Payment method create failed","fr":"Impossible de créer — moyen de paiement"},"PAYMENT_METHOD_FETCH_FAILED":{"http":500,"en":"Payment method fetch failed","fr":"Impossible de charger le paiement."},"PAYMENT_METHOD_NOT_FOUND":{"http":404,"en":"Payment method not found","fr":"Paiement introuvable."},"PAYMENT_METHOD_UPDATE_FAILED":{"http":500,"en":"Payment method update failed","fr":"Impossible de mettre à jour le paiement."},"PAYMENT_NOT_FOUND":{"http":404,"en":"Payment transaction not found","fr":"Paiement introuvable"},"PAYMENT_USER_MISSING":{"http":400,"en":"Payment user missing","fr":"Une information obligatoire est manquante."},"PAYMENT_WEBHOOK_FAILED":{"http":400,"en":"Payment webhook failed","fr":"Échec du webhook — paiement"},"PAYOUTS_FETCH_FAILED":{"http":500,"en":"Payouts fetch failed","fr":"Échec de la récupération — versements"},"PAYOUT_NOT_FOUND":{"http":404,"en":"Payout not found","fr":"Versement introuvable"},"PERIODS_LIST_FAILED":{"http":500,"en":"Periods list failed","fr":"Impossible de charger les périodes."},"PERIOD_ALREADY_CLOSED":{"http":409,"en":"Period already closed","fr":"Cet élément est déjà clôturé."},"PERIOD_ALREADY_LOCKED":{"http":409,"en":"Period already locked","fr":"Cet élément est déjà verrouillé."},"PERIOD_CLOSE_FAILED":{"http":400,"en":"Period close failed","fr":"Impossible de clôturer pour le moment."},"PERIOD_FETCH_FAILED":{"http":500,"en":"Period fetch failed","fr":"Impossible de charger la période."},"PERIOD_LOCKED":{"http":409,"en":"Period locked","fr":"Cette période est verrouillée."},"PERIOD_LOCK_FAILED":{"http":400,"en":"Period lock failed","fr":"Impossible de verrouiller pour le moment."},"PERIOD_NOT_FOUND":{"http":404,"en":"Period not found","fr":"Période introuvable."},"PERIOD_REQUIRED":{"http":400,"en":"Period required","fr":"La période est requise."},"PHONE_ALREADY_REGISTERED":{"http":409,"en":"Phone already registered","fr":"Ce numéro est déjà associé à un compte Upjunoo."},"PHONE_NOT_REGISTERED":{"http":404,"en":"Phone not registered","fr":"Ce numéro n'est pas enregistré."},"PHONE_VERIFY_FAILED":{"http":400,"en":"Phone verify failed","fr":"Code de vérification du numéro invalide ou expiré."},"PHOTO_CONTROLS_CONFIG_FETCH_FAILED":{"http":500,"en":"Photo controls config fetch failed","fr":"Impossible de charger les données."},"PHOTO_CONTROLS_CONFIG_UPSERT_FAILED":{"http":400,"en":"Photo controls config upsert failed","fr":"Impossible d'enregistrer les modifications."},"PICKUP_WINDOW_INVALID":{"http":400,"en":"Pickup window invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"PREFERENCES_FETCH_FAILED":{"http":500,"en":"Preferences fetch failed","fr":"Échec de la récupération — préférences"},"PREFERENCES_UPDATE_FAILED":{"http":400,"en":"Preferences update failed","fr":"Impossible de mettre à jour — préférences"},"PRICING_CONFIG_FETCH_FAILED":{"http":500,"en":"Pricing config fetch failed","fr":"Impossible de charger les données."},"PRICING_CONFIG_UPSERT_FAILED":{"http":400,"en":"Pricing config upsert failed","fr":"Impossible d'enregistrer les modifications."},"PRICING_COUNTRY_INVALID":{"http":400,"en":"Pricing country invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"PRICING_COUNTRY_RESOLVE_FAILED":{"http":500,"en":"Pricing country resolve failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PRICING_RULE_FETCH_FAILED":{"http":500,"en":"Pricing rule fetch failed","fr":"Échec de la récupération — tarification règle"},"PROFILE_CREATE_FAILED":{"http":500,"en":"Profile create failed","fr":"Impossible de créer le profil."},"PROFILE_FETCH_FAILED":{"http":500,"en":"Profile fetch failed","fr":"Échec de la récupération — profil"},"PROFILE_NOT_FOUND":{"http":404,"en":"Profile not found","fr":"Profil introuvable"},"PROFILE_UPDATE_FAILED":{"http":400,"en":"Profile update failed","fr":"Impossible de mettre à jour — profil"},"PROMOTION_CODE_REQUIRED":{"http":400,"en":"code is required","fr":"Le code promotion est requis"},"PROMOTION_FETCH_FAILED":{"http":500,"en":"Promotion fetch failed","fr":"Échec de la récupération — promotion"},"PROMOTION_INACTIVE":{"http":400,"en":"Promotion is not currently active","fr":"Promotion inactive"},"PROMOTION_NOT_APPLICABLE":{"http":400,"en":"Promotion is not applicable","fr":"Promotion non applicable"},"PROMOTION_NOT_FOUND":{"http":404,"en":"Promotion not found","fr":"Promotion introuvable"},"PROMOTION_REDEEM_FAILED":{"http":500,"en":"Promotion redeem failed","fr":"Impossible d'utiliser — promotion"},"PROMO_ACTIVATION_FAILED":{"http":500,"en":"Promo activation failed","fr":"Une erreur est survenue. Réessayez plus tard."},"PROMO_ALREADY_ACTIVATED":{"http":409,"en":"Promo already activated","fr":"Ce code promo a déjà été activé."},"PROMO_CODES_FETCH_FAILED":{"http":500,"en":"Promo codes fetch failed","fr":"Impossible de charger le code promo."},"PROMO_EXPIRED":{"http":409,"en":"Promo expired","fr":"Ce code promo a expiré."},"PROMO_FETCH_FAILED":{"http":500,"en":"Promo fetch failed","fr":"Impossible de charger le code promo."},"PROMO_NOT_FOUND":{"http":404,"en":"Promo not found","fr":"Code promo introuvable."},"PROMO_NOT_YET_ACTIVE":{"http":409,"en":"Promo not yet active","fr":"Ce code promo n'est pas encore actif."},"PUSH_TOKEN_INVALID":{"http":400,"en":"token is required","fr":"Le jeton push est requis"},"PUSH_TOKEN_REGISTER_FAILED":{"http":400,"en":"Push token register failed","fr":"Impossible d'enregistrer — notification push jeton"},"QUOTE_EXPIRED":{"http":400,"en":"Price quote expired — call POST /rides/estimate again","fr":"Devis expiré — refaites une estimation"},"QUOTE_INVALID":{"http":400,"en":"Unable to resolve pricing snapshot from quote or estimate","fr":"Impossible de résoudre le tarif depuis le devis ou l'estimation"},"RATE_LIMITED":{"http":429,"en":"Rate limited","fr":"Trop de tentatives. Réessayez dans quelques minutes."},"RATINGS_GIVEN_FETCH_FAILED":{"http":500,"en":"Ratings given fetch failed","fr":"Échec de la récupération — ratings given"},"RATINGS_RECEIVED_FETCH_FAILED":{"http":500,"en":"Ratings received fetch failed","fr":"Échec de la récupération — ratings received"},"RATING_ALREADY_EXISTS":{"http":409,"en":"Rating already exists","fr":"Cette commande a déjà été notée."},"RATING_CREATE_FAILED":{"http":500,"en":"Rating create failed","fr":"Impossible de créer — notation"},"RATING_FORBIDDEN":{"http":403,"en":"Rating forbidden","fr":"Vous n'êtes pas autorisé à noter cette commande."},"RATING_SCORE_INVALID":{"http":400,"en":"score must be between 1 and 5","fr":"La note doit être comprise entre 1 et 5"},"RECEIPT_CREATE_FAILED":{"http":500,"en":"Receipt create failed","fr":"Impossible de créer — reçu"},"RECEIPT_FETCH_FAILED":{"http":500,"en":"Receipt fetch failed","fr":"Échec de la récupération — reçu"},"RECEIPT_LOOKUP_FAILED":{"http":500,"en":"Receipt lookup failed","fr":"Échec de la recherche — reçu"},"RECEIPT_NOT_FOUND":{"http":404,"en":"Receipt not found","fr":"Reçu introuvable"},"RECENT_PLACES_FETCH_FAILED":{"http":500,"en":"Recent places fetch failed","fr":"Échec de la récupération — récente lieux"},"RECENT_PLACE_CREATE_FAILED":{"http":400,"en":"Recent place create failed","fr":"Impossible de créer — récente lieu"},"RECHARGES_FETCH_FAILED":{"http":500,"en":"Recharges fetch failed","fr":"Échec de la récupération — recharges"},"RECHARGE_BATCHES_FETCH_FAILED":{"http":500,"en":"Recharge batches fetch failed","fr":"Échec de la récupération — lots"},"RECHARGE_BATCH_CREATE_FAILED":{"http":400,"en":"Recharge batch create failed","fr":"Impossible de créer — lot"},"RECHARGE_BATCH_FETCH_FAILED":{"http":500,"en":"Recharge batch fetch failed","fr":"Échec de la récupération — lot"},"RECHARGE_BATCH_NOT_FOUND":{"http":404,"en":"Recharge batch not found","fr":"Lot de recharges introuvable"},"RECHARGE_CHANNEL_INVALID":{"http":400,"en":"Recharge channel invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"RECHARGE_CONFIRM_FAILED":{"http":400,"en":"Unable to confirm recharge","fr":"Impossible de confirmer — recharge"},"RECHARGE_FETCH_FAILED":{"http":500,"en":"Recharge fetch failed","fr":"Échec de la récupération — recharge"},"RECHARGE_NOT_FOUND":{"http":404,"en":"Wallet recharge not found","fr":"Recharge portefeuille introuvable"},"RECHARGE_NOT_PENDING":{"http":400,"en":"Cannot confirm recharge with status ${status}","fr":"Impossible de confirmer une recharge avec le statut ${status}"},"REFERENCE_INVALID":{"http":400,"en":"Reference invalid","fr":"Référence invalide dans la requête."},"REFERRALS_FETCH_FAILED":{"http":500,"en":"Referrals fetch failed","fr":"Échec de la récupération — parrainages"},"REFERRAL_ALREADY_APPLIED":{"http":409,"en":"Referral already applied","fr":"Un parrainage a déjà été appliqué."},"REFERRAL_APPLY_FAILED":{"http":400,"en":"Referral apply failed","fr":"Une erreur est survenue. Réessayez plus tard."},"REFERRAL_CODE_CREATE_FAILED":{"http":400,"en":"Referral code create failed","fr":"Impossible de créer le parrainage."},"REFERRAL_CODE_GENERATION_FAILED":{"http":500,"en":"Referral code generation failed","fr":"Échec de la génération. Réessayez."},"REFERRAL_CODE_LOOKUP_FAILED":{"http":500,"en":"Referral code lookup failed","fr":"Impossible de retrouver le parrainage."},"REFERRAL_CODE_NOT_FOUND":{"http":404,"en":"Referral code not found","fr":"Parrainage introuvable."},"REFERRAL_CODE_REQUIRED":{"http":400,"en":"Referral code required","fr":"Une information obligatoire est manquante."},"REFERRAL_CONFIG_FETCH_FAILED":{"http":500,"en":"Referral config fetch failed","fr":"Impossible de charger le parrainage."},"REFERRAL_CONFIG_UPSERT_FAILED":{"http":400,"en":"Referral config upsert failed","fr":"Impossible d'enregistrer le parrainage."},"REFERRAL_CREATE_FAILED":{"http":500,"en":"Referral create failed","fr":"Impossible de créer — parrainage"},"REFERRAL_DISABLED":{"http":403,"en":"Referral disabled","fr":"Le parrainage est désactivé."},"REFERRAL_FETCH_FAILED":{"http":500,"en":"Referral fetch failed","fr":"Impossible de charger le parrainage."},"REFERRAL_LEDGER_FAILED":{"http":400,"en":"Referral ledger failed","fr":"Une erreur est survenue. Réessayez plus tard."},"REFERRAL_ORDER_CHECK_FAILED":{"http":500,"en":"Referral order check failed","fr":"Une erreur est survenue. Réessayez plus tard."},"REFERRAL_SELF_NOT_ALLOWED":{"http":400,"en":"Referral self not allowed","fr":"Vous ne pouvez pas vous parrainer vous-même."},"REFERRAL_WALLET_CREDIT_FAILED":{"http":400,"en":"Referral wallet credit failed","fr":"Échec de l'opération sur le portefeuille."},"RENTALS_FETCH_FAILED":{"http":500,"en":"Rentals fetch failed","fr":"Échec de la récupération — locations"},"RENTAL_CREATE_FAILED":{"http":500,"en":"Rental create failed","fr":"Impossible de créer — location"},"RENTAL_ACTION_NOT_ALLOWED":{"http":403,"en":"This action is reserved for the rental partner","fr":"Cette action est réservée au partenaire loueur."},"RENTAL_NOT_CONFIRMED":{"http":409,"en":"The rental must be confirmed by the partner first","fr":"La location doit d'abord être confirmée par le partenaire."},"RENTAL_NOT_STARTED":{"http":409,"en":"The rental must be in progress before it can be closed","fr":"La location doit être en cours avant de pouvoir être clôturée."},"RENTAL_TRANSITION_INVALID":{"http":422,"en":"This action is not possible in the current rental state","fr":"Cette action n'est pas possible dans l'état actuel de la location."},"RENTAL_FETCH_FAILED":{"http":500,"en":"Rental fetch failed","fr":"Échec de la récupération — location"},"RENTAL_NOT_FOUND":{"http":404,"en":"Rental booking not found","fr":"Réservation de location introuvable"},"RENTAL_OFFERS_FETCH_FAILED":{"http":500,"en":"Rental offers fetch failed","fr":"Échec de la récupération — offres"},"RENTAL_OFFER_CREATE_FAILED":{"http":500,"en":"Rental offer create failed","fr":"Impossible de créer — offre"},"RENTAL_OFFER_FETCH_FAILED":{"http":500,"en":"Rental offer fetch failed","fr":"Échec de la récupération — offre"},"RENTAL_OFFER_UPDATE_EMPTY":{"http":400,"en":"Rental offer update empty","fr":"Aucune modification fournie."},"RENTAL_OFFER_UPDATE_FAILED":{"http":500,"en":"Rental offer update failed","fr":"Impossible de mettre à jour — offre"},"RENTAL_OFFER_VEHICLE_REQUIRED":{"http":400,"en":"Rental offer vehicle required","fr":"Une information obligatoire est manquante."},"RENTAL_STATUS_UPDATE_FAILED":{"http":500,"en":"Rental status update failed","fr":"Impossible de mettre à jour — statut"},"READ_ACCESS_DENIED":{"http":403,"en":"Read access denied","fr":"Lecture réservée aux profils autorisés (admin, support, reporting ou comptabilité)."},"REPORTING_COUNTRY_UNSET":{"http":403,"en":"Reporting country unset","fr":"Compte reporting sans pays rattaché. Contactez un administrateur."},"REPORTING_INVALID_FILTERS":{"http":422,"en":"Invalid reporting filters","fr":"Filtres de reporting invalides ou incompatibles."},"REPORTING_PERIOD_TOO_LARGE":{"http":422,"en":"Reporting period too large","fr":"La période demandée dépasse la limite autorisée (366 jours). Réduisez la période ou utilisez un export."},"REPORTING_QUERY_FAILED":{"http":500,"en":"Reporting query failed","fr":"Le calcul du rapport a échoué. Réessayez plus tard."},"REPORTING_REQUIRED":{"http":403,"en":"Reporting access required","fr":"Accès réservé au reporting."},"REPORTING_SCOPE_DENIED":{"http":403,"en":"Reporting scope denied","fr":"Périmètre non autorisé."},"REPORT_NOT_FOUND":{"http":404,"en":"Report not found","fr":"Rapport introuvable."},"REQUIRED_FIELD_MISSING":{"http":400,"en":"Required field missing","fr":"Un champ obligatoire est manquant."},"REVERSAL_REASON_REQUIRED":{"http":400,"en":"Reversal reason required","fr":"Une information obligatoire est manquante."},"RIDES_FETCH_FAILED":{"http":500,"en":"Rides fetch failed","fr":"Échec de la récupération — courses"},"RIDE_ACCESS_DENIED":{"http":403,"en":"Ride access denied","fr":"Accès à cette course refusé."},"RIDE_ALREADY_COMPLETED":{"http":409,"en":"Ride already completed","fr":"Cette course est déjà terminée."},"RIDE_CREATE_FAILED":{"http":400,"en":"Ride create failed","fr":"Impossible de créer la course"},"RIDE_EVENTS_FETCH_FAILED":{"http":500,"en":"Ride events fetch failed","fr":"Échec de la récupération — événements"},"RIDE_FETCH_FAILED":{"http":500,"en":"Ride fetch failed","fr":"Échec de la récupération — course"},"RIDE_INVALID_TRANSITION":{"http":409,"en":"Ride invalid transition","fr":"Conflit : l'état actuel ne permet pas cette action."},"RIDE_NOT_FOUND":{"http":404,"en":"Ride not found","fr":"Course introuvable"},"RIDE_REFERENCE_FAILED":{"http":500,"en":"Ride reference failed","fr":"Impossible de générer la référence — course"},"RIDE_SHARE_ENDED":{"http":410,"en":"Ride share ended","fr":"Ce lien de suivi n'est plus actif."},"RIDE_SHARE_EXPIRED":{"http":410,"en":"Ride share expired","fr":"Ce lien de suivi a expiré."},"RIDE_SHARE_FAILED":{"http":500,"en":"Ride share failed","fr":"Impossible de partager — course"},"RIDE_SHARE_FETCH_FAILED":{"http":500,"en":"Ride share fetch failed","fr":"Impossible de charger la course."},"RIDE_SHARE_NOT_FOUND":{"http":404,"en":"Ride share not found","fr":"Course introuvable."},"RIDE_STATUS_CONFLICT":{"http":409,"en":"Ride status conflict","fr":"L'état de la course ne permet pas cette action."},"RIDE_STATUS_UPDATE_FAILED":{"http":400,"en":"Ride status update failed","fr":"Impossible de mettre à jour — statut"},"ROLE_FETCH_FAILED":{"http":500,"en":"Role fetch failed","fr":"Impossible de charger le rôle."},"ROLE_ID_REQUIRED":{"http":400,"en":"roleId is required","fr":"L'identifiant rôle est requis"},"ROLE_NOT_FOUND":{"http":404,"en":"Role not found","fr":"Rôle introuvable."},"ROLE_PERMISSIONS_FETCH_FAILED":{"http":500,"en":"Role permissions fetch failed","fr":"Échec de la récupération — rôle permissions"},"ROLE_PERMISSIONS_SET_FAILED":{"http":400,"en":"Role permissions set failed","fr":"Impossible de configurer — rôle permissions"},"ROTATION_STATS_FAILED":{"http":500,"en":"Rotation stats failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ROTATION_STATUS_FAILED":{"http":500,"en":"Rotation status failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ROUTE_NOT_FOUND":{"http":404,"en":"Route not found","fr":"Ressource introuvable."},"SAFETY_CONTACTS_FETCH_FAILED":{"http":500,"en":"Safety contacts fetch failed","fr":"Impossible de charger les contacts."},"SAFETY_CONTACT_CREATE_FAILED":{"http":400,"en":"Safety contact create failed","fr":"Impossible de créer le contact."},"SAFETY_CONTACT_INVALID":{"http":400,"en":"Safety contact invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"SAFETY_CONTACT_NOT_FOUND":{"http":404,"en":"Safety contact not found","fr":"Contact introuvable."},"SAFETY_CONTACT_UPDATE_FAILED":{"http":400,"en":"Safety contact update failed","fr":"Impossible de mettre à jour le contact."},"SAFETY_SHARE_EXPIRED":{"http":410,"en":"Safety share expired","fr":"Ce partage de trajet a expiré."},"SAFETY_SHARE_NOT_FOUND":{"http":404,"en":"Safety share not found","fr":"Ressource introuvable."},"SECURITY_CODE_CREATE_FAILED":{"http":500,"en":"Security code create failed","fr":"Impossible de créer cet élément."},"SERVICE_UNAVAILABLE":{"http":503,"en":"Service unavailable","fr":"Service momentanément indisponible. Réessayez plus tard."},"SETTING_FETCH_FAILED":{"http":500,"en":"Setting fetch failed","fr":"Impossible de charger le paramètre."},"SETTING_UPSERT_FAILED":{"http":400,"en":"Setting upsert failed","fr":"Impossible d'enregistrer le paramètre."},"SMS_LETEXTO_NOT_CONFIGURED":{"http":503,"en":"Sms letexto not configured","fr":"Le service SMS n'est pas configuré."},"SMS_LETEXTO_SEND_FAILED":{"http":502,"en":"Sms letexto send failed","fr":"Échec de l'envoi du SMS. Réessayez."},"SMS_ORANGE_INSUFFICIENT_CREDIT":{"http":402,"en":"Insufficient Orange SMS credit","fr":"Crédit SMS Orange insuffisant"},"SMS_ORANGE_LOGIN_FAILED":{"http":502,"en":"Orange portal login HTTP ${res.status}","fr":"Échec de la connexion au portail Orange SMS"},"SMS_ORANGE_NOT_CONFIGURED":{"http":500,"en":"Orange SMS API URL/credentials missing","fr":"URL ou identifiants API SMS Orange manquants"},"SMS_ORANGE_SEND_FAILED":{"http":502,"en":"Orange HTTP API did not accept the message","fr":"Le service Orange n'a pas accepté l'envoi du SMS"},"SMS_PHONE_INVALID":{"http":400,"en":"phone is required","fr":"Numéro de téléphone requis"},"SMS_SMSING_NOT_CONFIGURED":{"http":503,"en":"Sms smsing not configured","fr":"Le service SMS n'est pas configuré."},"SMS_SMSING_SEND_FAILED":{"http":502,"en":"Sms smsing send failed","fr":"Échec de l'envoi. Réessayez."},"SMS_TWILIO_NOT_CONFIGURED":{"http":503,"en":"Sms twilio not configured","fr":"Le service SMS n'est pas configuré."},"SMS_TWILIO_SEND_FAILED":{"http":502,"en":"Sms twilio send failed","fr":"Échec de l'envoi du SMS. Réessayez."},"SOS_TRIP_REQUIRED":{"http":422,"en":"An active trip is required to trigger an SOS","fr":"Le SOS n'est disponible que pendant une course active."},"SOS_TRIP_NOT_FOUND":{"http":404,"en":"Trip not found","fr":"Course introuvable."},"SOS_NOT_TRIP_PARTICIPANT":{"http":403,"en":"You are not a participant of this trip","fr":"Vous n'êtes pas un participant de cette course."},"SOS_ALREADY_ACKNOWLEDGED":{"http":409,"en":"SOS already taken in charge","fr":"Ce SOS a déjà été pris en charge."},"SOS_ALREADY_RESOLVED":{"http":409,"en":"SOS already resolved","fr":"Ce SOS est déjà clôturé."},"SOS_ACCESS_DENIED":{"http":403,"en":"SOS outside your scope","fr":"Ce SOS est en dehors de votre périmètre."},"SOS_CANCEL_FORBIDDEN":{"http":403,"en":"Only the reporter can cancel this SOS","fr":"Seul l'auteur du SOS peut l'annuler."},"SOS_LOCATION_FORBIDDEN":{"http":403,"en":"Only the reporter can push their location","fr":"Seul l'auteur du SOS peut envoyer sa position."},"SOS_LOCATION_INVALID":{"http":400,"en":"Sos location invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"SOS_LOCATION_FAILED":{"http":500,"en":"Unable to update SOS location","fr":"Impossible de mettre à jour la position du SOS."},"SOS_ACK_FAILED":{"http":400,"en":"Sos ack failed","fr":"Une erreur est survenue. Réessayez plus tard."},"SOS_ANALYSIS_UPDATE_FAILED":{"http":500,"en":"Sos analysis update failed","fr":"Impossible de mettre à jour l'alerte SOS."},"SOS_CANCEL_FAILED":{"http":400,"en":"Sos cancel failed","fr":"Impossible d'annuler pour le moment."},"SOS_CONTACTS_FETCH_FAILED":{"http":500,"en":"Sos contacts fetch failed","fr":"Impossible de charger les contacts."},"SOS_CREATE_FAILED":{"http":500,"en":"Sos create failed","fr":"Impossible de créer — urgence SOS"},"SOS_DASHBOARD_FAILED":{"http":500,"en":"Sos dashboard failed","fr":"Une erreur est survenue. Réessayez plus tard."},"SOS_DELIVERY_FETCH_FAILED":{"http":500,"en":"Sos delivery fetch failed","fr":"Impossible de charger la livraison."},"SOS_DRIVER_FETCH_FAILED":{"http":500,"en":"Sos driver fetch failed","fr":"Impossible de charger le chauffeur."},"SOS_EVENT_CREATE_FAILED":{"http":500,"en":"Sos event create failed","fr":"Impossible de créer l'alerte SOS."},"SOS_FETCH_FAILED":{"http":500,"en":"Sos fetch failed","fr":"Échec de la récupération — urgence SOS"},"SOS_FORBIDDEN":{"http":403,"en":"Sos forbidden","fr":"Vous n'êtes pas autorisé pour cette alerte SOS."},"SOS_LIST_FAILED":{"http":500,"en":"Sos list failed","fr":"Impossible de charger l'alerte SOS."},"SOS_LOCATIONS_FETCH_FAILED":{"http":500,"en":"Sos locations fetch failed","fr":"Impossible de charger l'alerte SOS."},"SOS_LOCATION_CREATE_FAILED":{"http":500,"en":"Sos location create failed","fr":"Impossible de créer l'alerte SOS."},"SOS_LOCATION_REQUIRED":{"http":400,"en":"Sos location required","fr":"Une information obligatoire est manquante."},"SOS_LOCATION_UPDATE_FAILED":{"http":500,"en":"Sos location update failed","fr":"Impossible de mettre à jour l'alerte SOS."},"SOS_NOT_ACTIVE":{"http":409,"en":"Sos not active","fr":"Cet élément n'est pas actif."},"SOS_NOT_FOUND":{"http":404,"en":"SOS incident not found","fr":"Incident SOS introuvable"},"SOS_ORDER_FORBIDDEN":{"http":403,"en":"Sos order forbidden","fr":"Vous n'êtes pas autorisé pour cette commande."},"SOS_ORDER_NOT_FOUND":{"http":404,"en":"Sos order not found","fr":"Commande introuvable."},"SOS_PARTNER_FETCH_FAILED":{"http":500,"en":"Sos partner fetch failed","fr":"Impossible de charger le partenaire."},"SOS_RESOLVE_FAILED":{"http":400,"en":"Sos resolve failed","fr":"Une erreur est survenue. Réessayez plus tard."},"SOS_RIDE_FETCH_FAILED":{"http":500,"en":"Sos ride fetch failed","fr":"Impossible de charger la course."},"SOS_TICK_FETCH_FAILED":{"http":500,"en":"Sos tick fetch failed","fr":"Impossible de charger l'alerte SOS."},"SUPPORT_CHAT_NOT_FOUND":{"http":404,"en":"Support chat not found","fr":"Conversation introuvable."},"SUPPORT_MESSAGE_CREATE_FAILED":{"http":500,"en":"Support message create failed","fr":"Impossible de créer — message"},"SUPPORT_MESSAGE_REQUIRED":{"http":400,"en":"Support message required","fr":"Une information obligatoire est manquante."},"SUPPORT_PRIORITY_INVALID":{"http":400,"en":"Support priority invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"SUPPORT_STATUS_INVALID":{"http":400,"en":"Support status invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"SUPPORT_TICKETS_FETCH_FAILED":{"http":500,"en":"Support tickets fetch failed","fr":"Échec de la récupération — tickets"},"SUPPORT_TICKET_CREATE_FAILED":{"http":500,"en":"Support ticket create failed","fr":"Impossible de créer — ticket"},"SUPPORT_TICKET_FETCH_FAILED":{"http":500,"en":"Support ticket fetch failed","fr":"Échec de la récupération — ticket"},"SUPPORT_TICKET_NOT_FOUND":{"http":404,"en":"Support ticket not found","fr":"Ticket support introuvable"},"SUPPORT_TICKET_UPDATE_FAILED":{"http":500,"en":"Support ticket update failed","fr":"Impossible de mettre à jour le ticket."},"SYSTEM_SETTING_UPDATE_FAILED":{"http":400,"en":"System setting update failed","fr":"Impossible de mettre à jour — système paramètre"},"TARGET_PARTNER_ID_REQUIRED":{"http":400,"en":"Target partner id required","fr":"Le partenaire de destination est requis."},"TERRITORY_EXTENSION_REQUEST_FAILED":{"http":500,"en":"Territory extension request failed","fr":"Une erreur est survenue. Réessayez plus tard."},"TIP_ALREADY_EXISTS":{"http":409,"en":"Tip already exists","fr":"Un pourboire a déjà été enregistré."},"TIP_AMOUNT_INVALID":{"http":400,"en":"Tip amount invalid","fr":"Montant du pourboire invalide."},"TIP_CREATE_FAILED":{"http":500,"en":"Tip create failed","fr":"Impossible de créer le pourboire."},"TIP_NOT_AVAILABLE":{"http":503,"en":"Tip not available","fr":"Cet élément n'est pas disponible."},"TIP_NO_DRIVER":{"http":400,"en":"Tip no driver","fr":"Aucun chauffeur à qui laisser un pourboire."},"TOLL_GATES_FETCH_FAILED":{"http":500,"en":"Toll gates fetch failed","fr":"Impossible de charger le péage."},"TOLL_GATE_CREATE_FAILED":{"http":400,"en":"Toll gate create failed","fr":"Impossible de créer le poste de péage."},"TOLL_GATE_GEOMETRY_FAILED":{"http":500,"en":"Toll gate geometry failed","fr":"Une erreur est survenue. Réessayez plus tard."},"TOLL_GATE_INVALID":{"http":400,"en":"Toll gate invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"TOLL_GATE_UPDATE_FAILED":{"http":400,"en":"Toll gate update failed","fr":"Impossible de mettre à jour le poste de péage."},"TOLL_TARIFFS_CLOSE_FAILED":{"http":400,"en":"Toll tariffs close failed","fr":"Impossible de clôturer pour le moment."},"TOLL_TARIFFS_INSERT_FAILED":{"http":400,"en":"Toll tariffs insert failed","fr":"Impossible de créer les tarifs."},"TOLL_TARIFFS_INVALID":{"http":400,"en":"Toll tariffs invalid","fr":"Donnée invalide. Vérifiez votre saisie."},"TOO_MANY_STOPS":{"http":400,"en":"Too many stops","fr":"Trop d'arrêts pour cet itinéraire."},"TRAINING_MODULES_FETCH_FAILED":{"http":500,"en":"Training modules fetch failed","fr":"Échec de la récupération — formation modules"},"TRAINING_MODULE_FIELDS_REQUIRED":{"http":400,"en":"Training module fields required","fr":"Une information obligatoire est manquante."},"TRAINING_MODULE_UPSERT_FAILED":{"http":400,"en":"Training module upsert failed","fr":"Impossible d'enregistrer les modifications."},"TRAINING_PROGRESS_COMPLETE_FAILED":{"http":500,"en":"Training progress complete failed","fr":"Impossible de terminer la progression — formation"},"TRAINING_PROGRESS_CREATE_FAILED":{"http":500,"en":"Training progress create failed","fr":"Impossible de créer — formation progression"},"TRAINING_PROGRESS_FETCH_FAILED":{"http":500,"en":"Training progress fetch failed","fr":"Échec de la récupération — formation progression"},"TRAINING_PROGRESS_UPDATE_FAILED":{"http":500,"en":"Training progress update failed","fr":"Impossible de mettre à jour — formation progression"},"TRANSACTION_NOT_FOUND":{"http":404,"en":"Transaction not found","fr":"Transaction introuvable."},"TRUSTED_CONTACTS_FETCH_FAILED":{"http":500,"en":"Trusted contacts fetch failed","fr":"Impossible de charger les contacts."},"TRUSTED_CONTACT_CREATE_FAILED":{"http":400,"en":"Trusted contact create failed","fr":"Impossible de créer le contact."},"TRUSTED_CONTACT_DELETE_FAILED":{"http":400,"en":"Trusted contact delete failed","fr":"Impossible de supprimer le contact."},"TRUSTED_CONTACT_NAME_REQUIRED":{"http":400,"en":"Trusted contact name required","fr":"Une information obligatoire est manquante."},"TRUSTED_CONTACT_PHONE_REQUIRED":{"http":400,"en":"Trusted contact phone required","fr":"Une information obligatoire est manquante."},"UPLOAD_BUCKET_CREATE_FAILED":{"http":500,"en":"Upload bucket create failed","fr":"Impossible de créer — téléversement espace de stockage"},"UPLOAD_BUCKET_UNKNOWN":{"http":400,"en":"Upload bucket unknown","fr":"Espace de stockage inconnu."},"UPLOAD_DELETE_FAILED":{"http":500,"en":"Upload delete failed","fr":"Impossible de supprimer — téléversement"},"UPLOAD_FORBIDDEN":{"http":403,"en":"Upload forbidden","fr":"Vous n'êtes pas autorisé à envoyer ce fichier."},"UPLOAD_ID_INVALID":{"http":400,"en":"Invalid upload id","fr":"Identifiant de téléversement invalide"},"UPLOAD_METADATA_FAILED":{"http":500,"en":"Upload metadata failed","fr":"Échec des métadonnées — téléversement"},"UPLOAD_PATH_REQUIRED":{"http":400,"en":"id or path is required","fr":"L'identifiant ou le chemin est requis"},"UPLOAD_REFERENCE_INVALID":{"http":400,"en":"Upload reference invalid","fr":"Référence de fichier invalide."},"UPLOAD_SIGNED_URL_FAILED":{"http":500,"en":"Upload signed url failed","fr":"Impossible de créer l'URL signée — téléversement"},"UPLOAD_VERIFY_FAILED":{"http":500,"en":"Upload verify failed","fr":"Échec de la vérification — téléversement"},"USER_NOT_FOUND":{"http":404,"en":"User not found","fr":"Utilisateur introuvable."},"USER_ROLES_FETCH_FAILED":{"http":500,"en":"User roles fetch failed","fr":"Échec de la récupération — utilisateur rôles"},"USER_ROLE_ASSIGN_FAILED":{"http":400,"en":"User role assign failed","fr":"Impossible d'attribuer — utilisateur rôle"},"USER_ROLE_REVOKE_FAILED":{"http":400,"en":"User role revoke failed","fr":"Impossible de révoquer — utilisateur rôle"},"VALIDATION_ERROR":{"http":400,"en":"Validation error","fr":"Certaines informations sont invalides ou manquantes."},"VEHICLES_FETCH_FAILED":{"http":500,"en":"Vehicles fetch failed","fr":"Échec de la récupération — véhicules"},"VEHICLE_APPROVE_FAILED":{"http":500,"en":"Vehicle approve failed","fr":"Impossible d'approuver pour le moment."},"VEHICLE_ASSIGNMENT_FAILED":{"http":400,"en":"Unable to assign vehicle","fr":"Échec — attribution"},"VEHICLE_AVAILABILITY_FAILED":{"http":400,"en":"Vehicle availability failed","fr":"Échec — disponibilité"},"VEHICLE_BRAND_REQUIRED":{"http":400,"en":"Vehicle brand required","fr":"Une information obligatoire est manquante."},"VEHICLE_CATALOG_FETCH_FAILED":{"http":500,"en":"Vehicle catalog fetch failed","fr":"Impossible de charger le véhicule."},"VEHICLE_CATEGORY_INELIGIBLE":{"http":403,"en":"Vehicle category not eligible for the ride activity (a car is required)","fr":"Un véhicule de type voiture est requis pour l'activité Taxi/Course."},"VEHICLE_CATEGORY_UPGRADE_FORBIDDEN":{"http":403,"en":"Cannot upgrade your vehicle to a higher category","fr":"Vous ne pouvez pas faire monter votre véhicule en gamme supérieure. Contactez le support."},"VEHICLE_CREATE_FAILED":{"http":400,"en":"Vehicle create failed","fr":"Impossible de créer — véhicule"},"VEHICLE_FETCH_FAILED":{"http":500,"en":"Vehicle fetch failed","fr":"Échec de la récupération — véhicule"},"VEHICLE_MODEL_BRAND_MISMATCH":{"http":400,"en":"Model does not belong to brand ${brand.code}","fr":"Le modèle n'appartient pas à la marque ${brand.code}"},"VEHICLE_MODEL_INVALID":{"http":400,"en":"Vehicle model not found or inactive","fr":"Modèle de véhicule introuvable ou inactif"},"VEHICLE_MODEL_REQUIRED":{"http":400,"en":"Vehicle model required","fr":"Une information obligatoire est manquante."},"VEHICLE_NOT_FOUND":{"http":404,"en":"Vehicle not found","fr":"Véhicule introuvable"},"VEHICLE_PLATE_REQUIRED":{"http":400,"en":"Vehicle plate required","fr":"Une information obligatoire est manquante."},"VEHICLE_PLATE_TAKEN":{"http":409,"en":"Vehicle plate taken","fr":"Conflit : l'état actuel ne permet pas cette action."},"VEHICLE_REJECT_FAILED":{"http":500,"en":"Vehicle reject failed","fr":"Impossible de rejeter pour le moment."},"VEHICLE_UPDATE_FAILED":{"http":400,"en":"Unable to update vehicle","fr":"Impossible de mettre à jour — véhicule"},"WALLET_BALANCE_UPDATE_FAILED":{"http":400,"en":"Wallet balance update failed","fr":"Impossible de mettre à jour — solde"},"WALLET_BUCKET_UPDATE_FAILED":{"http":400,"en":"Wallet bucket update failed","fr":"Impossible de mettre à jour le portefeuille."},"WALLET_CASCADE_DEBIT_FAILED":{"http":400,"en":"Wallet cascade debit failed","fr":"Échec de l'opération sur le portefeuille."},"WALLET_INSUFFICIENT_FOR_CANCELLATION_FEE":{"http":402,"en":"Wallet insufficient for cancellation fee","fr":"Une erreur interne est survenue. Réessayez plus tard."},"WALLET_LEDGER_FETCH_FAILED":{"http":500,"en":"Wallet ledger fetch failed","fr":"Impossible de charger le journal comptable."},"WALLET_NOT_FOUND":{"http":404,"en":"Wallet not found","fr":"Portefeuille introuvable."},"wallet_overdrawn":{"http":402,"en":"Wallet overdrawn","fr":"Solde de votre compte négatif. Rechargez votre wallet pour confirmer la réservation."},"WALLET_RECHARGE_COMPLETE_FAILED":{"http":500,"en":"Wallet recharge complete failed","fr":"Une erreur est survenue. Réessayez plus tard."},"WALLET_RECHARGE_FAILED":{"http":400,"en":"Unable to create recharge","fr":"Échec — recharge"},"WALLET_RECHARGE_NOT_FOUND":{"http":500,"en":"Wallet recharge not found","fr":"Portefeuille introuvable."},"WALLET_UPSERT_FAILED":{"http":400,"en":"Wallet upsert failed","fr":"Impossible de créer le portefeuille"},"WEATHER_CITIES_FETCH_FAILED":{"http":500,"en":"Weather cities fetch failed","fr":"Échec de la récupération des villes météo"},"WEATHER_CITY_AVAILABILITY_FAILED":{"http":500,"en":"Weather city availability fetch failed","fr":"Échec de la récupération de la disponibilité ville météo"},"WEATHER_CONFIG_FETCH_FAILED":{"http":500,"en":"Weather config fetch failed","fr":"Échec de la récupération de la configuration météo"},"WEATHER_CONFIG_UPDATE_FAILED":{"http":500,"en":"Weather config update failed","fr":"Impossible d'enregistrer les modifications."},"WEATHER_CONFIG_UPSERT_FAILED":{"http":400,"en":"Weather config upsert failed","fr":"Impossible d'enregistrer la configuration météo"},"WEATHER_SERVICE_TYPES_FAILED":{"http":500,"en":"Weather service types fetch failed","fr":"Échec de la récupération des types de service météo"},"WEATHER_ZONES_FETCH_FAILED":{"http":500,"en":"Weather zones fetch failed","fr":"Échec de la récupération des zones météo"},"WEBHOOK_UNAUTHORIZED":{"http":401,"en":"Webhook unauthorized","fr":"Signature de webhook invalide ou absente."},"WITHDRAWALS_FETCH_FAILED":{"http":500,"en":"Withdrawals fetch failed","fr":"Échec de la récupération — retraits"},"WITHDRAWAL_APPROVE_FAILED":{"http":500,"en":"Withdrawal approve failed","fr":"Impossible d'approuver pour le moment."},"WITHDRAWAL_CAPS_UPDATE_FAILED":{"http":500,"en":"Withdrawal caps update failed","fr":"Impossible de mettre à jour le retrait."},"WITHDRAWAL_CAP_CHECK_FAILED":{"http":500,"en":"Withdrawal cap check failed","fr":"Une erreur est survenue. Réessayez plus tard."},"WITHDRAWAL_CREATE_FAILED":{"http":400,"en":"Withdrawal create failed","fr":"Impossible de créer le retrait"},"WITHDRAWAL_DAILY_CAP_EXCEEDED":{"http":400,"en":"Withdrawal daily cap exceeded","fr":"Requête invalide. Vérifiez les informations saisies."},"WITHDRAWAL_INSUFFICIENT_BALANCE":{"http":400,"en":"Withdrawal insufficient balance","fr":"Requête invalide. Vérifiez les informations saisies."},"WITHDRAWAL_NOT_ELIGIBLE":{"http":409,"en":"Withdrawal not eligible","fr":"Ce retrait n'est pas éligible."},"WITHDRAWAL_NOT_FOUND":{"http":404,"en":"Withdrawal not found","fr":"Retrait introuvable."},"WITHDRAWAL_NOT_PENDING":{"http":409,"en":"Withdrawal not pending","fr":"Ce retrait n'est plus en attente."},"WITHDRAWAL_PENDING_CHECK_FAILED":{"http":500,"en":"Withdrawal pending check failed","fr":"Une erreur est survenue. Réessayez plus tard."},"ZONES_FETCH_FAILED":{"http":500,"en":"Zones fetch failed","fr":"Échec de la récupération — zones"},"ZONE_CREATE_FAILED":{"http":400,"en":"Zone create failed","fr":"Impossible de créer la zone."},"ZONE_DELETE_FAILED":{"http":400,"en":"Zone delete failed","fr":"Impossible de supprimer la zone."},"ZONE_DELIVERY_DEMAND_FAILED":{"http":500,"en":"Zone delivery demand failed","fr":"Échec — zone demande"},"ZONE_FETCH_FAILED":{"http":500,"en":"Zone fetch failed","fr":"Échec de la récupération — zone"},"ZONE_FILTER_CONFLICT":{"http":400,"en":"Zone filter conflict","fr":"Filtre de zone en conflit."},"ZONE_FILTER_MODE_UNSUPPORTED":{"http":400,"en":"Zone filter mode unsupported","fr":"Mode de filtre de zone non pris en charge."},"ZONE_FILTER_ZONE_REQUIRED":{"http":400,"en":"Zone filter zone required","fr":"Une zone est requise pour ce filtre."},"ZONE_IDS_REQUIRED":{"http":400,"en":"Zone ids required","fr":"Au moins une zone est requise."},"ZONE_LABEL_REQUIRED":{"http":400,"en":"Zone label required","fr":"Le libellé de la zone est requis."},"ZONE_NOT_FOUND":{"http":404,"en":"Zone not found","fr":"Zone introuvable"},"ZONE_NOT_IN_CITY":{"http":400,"en":"Zone not in city","fr":"Cette zone n'appartient pas à la ville sélectionnée."},"ZONE_PATCH_EMPTY":{"http":400,"en":"Zone patch empty","fr":"Aucune modification fournie."},"ZONE_RIDE_DEMAND_FAILED":{"http":500,"en":"Zone ride demand failed","fr":"Échec — zone demande"},"ZONE_UPDATE_FAILED":{"http":400,"en":"Zone update failed","fr":"Impossible de mettre à jour la zone."},"CATEGORY_REQUIRED":{"http":422,"en":"Category is required","fr":"La catégorie est requise."},"CATEGORY_INVALID":{"http":422,"en":"Invalid category","fr":"Catégorie invalide."},"SUBJECT_REQUIRED":{"http":422,"en":"Subject is required","fr":"Le sujet est requis."},"CONTENT_REQUIRED":{"http":422,"en":"Message content is required","fr":"Le message est requis."},"PUSH_TOKEN_REQUIRED":{"http":422,"en":"Push token is required","fr":"Le jeton de notification (push_token) est requis."},"PLATFORM_INVALID":{"http":422,"en":"Invalid platform","fr":"Plateforme invalide (ios ou android attendu)."},"COMPENSATION_NOT_FOUND":{"http":404,"en":"Compensation not found","fr":"Geste commercial introuvable."},"COMPENSATION_ALREADY_CANCELLED":{"http":409,"en":"Compensation already cancelled","fr":"Ce geste commercial a déjà été annulé."},"COMPENSATION_EXPIRES_INVALID":{"http":422,"en":"Invalid expiry date","fr":"La date d'expiration est invalide (ISO 8601, dans le futur)."},"DISPUTE_TERMINAL":{"http":409,"en":"Dispute already closed","fr":"Ce litige est déjà clôturé."},"DISPUTE_NOT_ASSIGNED":{"http":409,"en":"Dispute not assigned","fr":"Litige non assigné — assignez-le d'abord."},"DISPUTE_ALREADY_ASSIGNED":{"http":409,"en":"Dispute already assigned","fr":"Litige déjà pris par un autre agent."},"KB_SLUG_REQUIRED":{"http":422,"en":"slug is required","fr":"Le slug du document est requis."},"KB_TITLE_REQUIRED":{"http":422,"en":"title is required","fr":"Le titre du document est requis."},"KB_CONTENT_REQUIRED":{"http":422,"en":"content is required","fr":"Le contenu du document est requis."},"AI_NOT_CONFIGURED":{"http":503,"en":"AI assistant not configured","fr":"Assistant IA indisponible pour le moment."},"AI_PROVIDER_UNREACHABLE":{"http":502,"en":"AI provider unreachable","fr":"Service IA momentanément injoignable. Réessayez plus tard."},"AI_PROVIDER_ERROR":{"http":502,"en":"AI provider error","fr":"Service IA momentanément indisponible. Réessayez plus tard."},"AI_EMPTY_RESPONSE":{"http":502,"en":"Empty AI response","fr":"L'assistant IA n'a pas pu répondre. Réessayez plus tard."},"AI_PARSE_FAILED":{"http":502,"en":"Invalid AI response","fr":"Réponse de l'assistant IA invalide. Réessayez plus tard."},"SUPPORT_REQUIRED":{"http":403,"en":"Support access required","fr":"Action réservée au support, à la franchise ou à l'administration."},"SANCTION_TARGET_NOT_FOUND":{"http":422,"en":"Sanction target not found","fr":"Aucune cible identifiable pour la sanction : précisez target_user_id."},"SANCTION_NOT_ALLOWED":{"http":403,"en":"Sanction type not allowed","fr":"Type de sanction non autorisé (warning ou surveillance)."},"SANCTION_REASON_INVALID":{"http":422,"en":"Sanction reason invalid","fr":"Motif de sanction : 10 caractères minimum."},"INVALID_UUID":{"http":400,"en":"A provided identifier is not a valid UUID.","fr":"Identifiant invalide : le format attendu est un UUID."},"RENTAL_MESSAGE_BLOCKED":{"http":422,"en":"Message blocked: repeated attempts to share contact details in this conversation","fr":"Message bloqué : plusieurs tentatives de partage de coordonnées ont été détectées. Les échanges se font sur UPJUNOO jusqu'au paiement de l'acompte."},"RENTAL_CONVERSATION_CLOSED":{"http":409,"en":"This conversation is closed: the booking is no longer active","fr":"Cette conversation est fermée : la réservation n'est plus active."},"RENTAL_MESSAGE_TEXT_REQUIRED":{"http":422,"en":"Message text is required","fr":"Le texte du message est requis."},"FRANCHISE_TERRITORY_UNKNOWN":{"http":422,"en":"This franchise has no country attached: its users cannot be targeted","fr":"Cette franchise n'a pas de pays rattaché : impossible de cibler ses usagers."},"FRANCHISE_REQUIRED":{"http":422,"en":"A franchise is required to attach this partner","fr":"Une franchise est requise pour rattacher ce partenaire."},"FRANCHISE_OUT_OF_COUNTRY":{"http":422,"en":"The requested franchise is unknown or outside your country","fr":"La franchise demandée est inconnue ou n'appartient pas à votre pays."},"KYC_REVIEW_SCOPE_DENIED":{"http":403,"en":"This document belongs to a driver outside your fleet","fr":"Ce document concerne un chauffeur qui n'est pas rattaché à votre parc."},"CALL_CALLEE_ROLE_INVALID":{"http":400,"en":"calleeRole must be one of client, driver, recipient","fr":"Interlocuteur demandé invalide (client, driver ou recipient)."},"CALL_RECIPIENT_NOT_APPLICABLE":{"http":400,"en":"This order has no recipient","fr":"Cette commande n'a pas de destinataire à appeler."},"CALL_RECIPIENT_PHONE_MISSING":{"http":400,"en":"No recipient phone number on this order","fr":"Aucun numéro n'a été renseigné pour le destinataire."},"MULTIPART_REQUIRED":{"http":415,"en":"Send multipart/form-data with a `file` field","fr":"Envoyez le fichier en multipart/form-data (champ « file »)."},"UPLOAD_FILE_REQUIRED":{"http":422,"en":"A `file` field is required","fr":"Aucun fichier reçu (champ « file » requis)."},"HOME_SHORTCUT_IMAGE_TYPE_NOT_ALLOWED":{"http":415,"en":"Allowed image types: PNG, JPG, WebP, SVG","fr":"Format d'image non autorisé (PNG, JPG, WebP ou SVG)."},"HOME_SHORTCUT_IMAGE_FILE_REQUIRED":{"http":422,"en":"The uploaded image is empty","fr":"L'image envoyée est vide."},"HOME_SHORTCUT_IMAGE_TOO_LARGE":{"http":413,"en":"Image too large (max 2 MB)","fr":"Image trop volumineuse (2 Mo maximum)."},"HOME_SHORTCUT_IMAGE_UNSAFE_SVG":{"http":400,"en":"This SVG contains active content and was rejected","fr":"Ce SVG contient du contenu actif (script) : exportez-le en PNG."},"HOME_SHORTCUT_IMAGE_UPLOAD_FAILED":{"http":500,"en":"Unable to store the image","fr":"L'image n'a pas pu être enregistrée. Merci de réessayer."},"INVALID_DATE_FILTER":{"http":400,"en":"Invalid date filter","fr":"Le filtre de date n'est pas une date valide (format attendu : AAAA-MM-JJ)."},"INVALID_DATE_RANGE":{"http":400,"en":"Invalid date range","fr":"La période demandée est invalide : la date de début doit précéder la date de fin."},"DRIVER_ACCOUNT_INCOMPLETE":{"http":409,"en":"Driver registration was never completed","fr":"Votre inscription chauffeur n'a pas été finalisée. Contactez le support."},"DRIVER_PROVISIONING_FAILED":{"http":500,"en":"Driver profile could not be created","fr":"Le profil chauffeur n'a pas pu être créé. Merci de réessayer."},"PERMISSION_DENIED":{"http":403,"en":"Missing permission for this endpoint","fr":"Vous n'avez pas la permission requise pour cette page."}}}