[{"data":1,"prerenderedAt":706},["ShallowReactive",2],{"content:fr:/docs/errors":3},{"id":4,"title":5,"body":6,"description":698,"extension":699,"meta":700,"navigation":701,"path":702,"seo":703,"stem":704,"__hash__":705},"content/fr/docs/errors/index.md","Erreurs & codes de statut",{"type":7,"value":8,"toc":692},"minimark",[9,13,22,128,181,205,210,357,361,496,500,617,621,672,680,688],[10,11,5],"h1",{"id":12},"erreurs-codes-de-statut",[14,15,16,17,21],"p",{},"Chaque erreur renvoie la ",[18,19,20],"strong",{},"même enveloppe JSON",", vous pouvez donc gérer les échecs de façon\ncohérente sur l'ensemble de l'API.",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-json shiki shiki-themes github-dark","{\n  \"error\": {\n    \"code\": \"validation_error\",\n    \"message\": \"The request payload is invalid.\",\n    \"details\": {\n      \"currency\": \"No currency matches \\\"ZZZ\\\".\"\n    }\n  }\n}\n","json","",[30,31,32,41,51,67,80,88,110,116,122],"code",{"__ignoreMap":28},[33,34,37],"span",{"class":35,"line":36},"line",1,[33,38,40],{"class":39},"s95oV","{\n",[33,42,44,48],{"class":35,"line":43},2,[33,45,47],{"class":46},"sDLfK","  \"error\"",[33,49,50],{"class":39},": {\n",[33,52,54,57,60,64],{"class":35,"line":53},3,[33,55,56],{"class":46},"    \"code\"",[33,58,59],{"class":39},": ",[33,61,63],{"class":62},"sU2Wk","\"validation_error\"",[33,65,66],{"class":39},",\n",[33,68,70,73,75,78],{"class":35,"line":69},4,[33,71,72],{"class":46},"    \"message\"",[33,74,59],{"class":39},[33,76,77],{"class":62},"\"The request payload is invalid.\"",[33,79,66],{"class":39},[33,81,83,86],{"class":35,"line":82},5,[33,84,85],{"class":46},"    \"details\"",[33,87,50],{"class":39},[33,89,91,94,96,99,102,105,107],{"class":35,"line":90},6,[33,92,93],{"class":46},"      \"currency\"",[33,95,59],{"class":39},[33,97,98],{"class":62},"\"No currency matches ",[33,100,101],{"class":46},"\\\"",[33,103,104],{"class":62},"ZZZ",[33,106,101],{"class":46},[33,108,109],{"class":62},".\"\n",[33,111,113],{"class":35,"line":112},7,[33,114,115],{"class":39},"    }\n",[33,117,119],{"class":35,"line":118},8,[33,120,121],{"class":39},"  }\n",[33,123,125],{"class":35,"line":124},9,[33,126,127],{"class":39},"}\n",[129,130,131,144],"table",{},[132,133,134],"thead",{},[135,136,137,141],"tr",{},[138,139,140],"th",{},"Champ",[138,142,143],{},"Description",[145,146,147,161,171],"tbody",{},[135,148,149,154],{},[150,151,152],"td",{},[30,153,30],{},[150,155,156,157,160],{},"Un code d'erreur stable et lisible par machine (faites votre ",[30,158,159],{},"switch"," dessus).",[135,162,163,168],{},[150,164,165],{},[30,166,167],{},"message",[150,169,170],{},"Un résumé lisible par un humain, sûr à journaliser.",[135,172,173,178],{},[150,174,175],{},[30,176,177],{},"details",[150,179,180],{},"Détail optionnel par champ ou contextuel. Pour les erreurs de validation, les clés sont des noms de champs.",[182,183,186],"callout",{"title":184,"type":185},"Lisez details, repliez sur message","tip",[14,187,188,189,192,193,196,197,200,201,204],{},"Pour les ",[30,190,191],{},"400",", affichez les erreurs de champ depuis ",[30,194,195],{},"error.details.\u003Cfield>"," ; sinon affichez\n",[30,198,199],{},"error.message",". Lire un champ de premier niveau sur le corps (au lieu de sous\n",[30,202,203],{},"error.details",") masque silencieusement de vraies erreurs de validation.",[206,207,209],"h2",{"id":208},"codes-de-statut-http","Codes de statut HTTP",[129,211,212,225],{},[132,213,214],{},[135,215,216,219,222],{},[138,217,218],{},"Statut",[138,220,221],{},"Signification",[138,223,224],{},"Cause typique",[145,226,227,240,253,266,279,292,305,318,331,344],{},[135,228,229,234,237],{},[150,230,231],{},[30,232,233],{},"200 OK",[150,235,236],{},"Succès",[150,238,239],{},"Une lecture ou une action a réussi.",[135,241,242,247,250],{},[150,243,244],{},[30,245,246],{},"201 Created",[150,248,249],{},"Créé",[150,251,252],{},"Une transaction (ou une autre ressource) a été créée.",[135,254,255,260,263],{},[150,256,257],{},[30,258,259],{},"204 No Content",[150,261,262],{},"Succès, corps vide",[150,264,265],{},"Une suppression a réussi.",[135,267,268,273,276],{},[150,269,270],{},[30,271,272],{},"400 Bad Request",[150,274,275],{},"Erreur de validation / de domaine",[150,277,278],{},"Champ manquant/invalide, devise/service inconnu, référence en doublon.",[135,280,281,286,289],{},[150,282,283],{},[30,284,285],{},"401 Unauthorized",[150,287,288],{},"Authentification échouée",[150,290,291],{},"Jeton manquant, mal formé, expiré ou révoqué ; mauvaise signature de webhook.",[135,293,294,299,302],{},[150,295,296],{},[30,297,298],{},"403 Forbidden",[150,300,301],{},"Permission refusée",[150,303,304],{},"Le jeton est valide mais le rôle ne peut pas effectuer cette action (p. ex. un non-marchand créant un paiement).",[135,306,307,312,315],{},[150,308,309],{},[30,310,311],{},"404 Not Found",[150,313,314],{},"Ressource introuvable",[150,316,317],{},"Référence inconnue, ou enregistrement hors de votre périmètre.",[135,319,320,325,328],{},[150,321,322],{},[30,323,324],{},"409 Conflict",[150,326,327],{},"Transition d'état invalide",[150,329,330],{},"Un changement de statut illégal a été tenté.",[135,332,333,338,341],{},[150,334,335],{},[30,336,337],{},"500 Internal Server Error",[150,339,340],{},"Erreur serveur",[150,342,343],{},"Échec inattendu — réessayez plus tard ; contactez le support si cela persiste.",[135,345,346,351,354],{},[150,347,348],{},[30,349,350],{},"502 Bad Gateway",[150,352,353],{},"Erreur fournisseur",[150,355,356],{},"Le fournisseur de paiement en amont a renvoyé une erreur.",[206,358,360],{"id":359},"codes-derreur","Codes d'erreur",[129,362,363,377],{},[132,364,365],{},[135,366,367,371,374],{},[138,368,369],{},[30,370,30],{},[138,372,373],{},"HTTP",[138,375,376],{},"Signification & que faire",[145,378,379,394,411,424,437,452,465,483],{},[135,380,381,386,388],{},[150,382,383],{},[30,384,385],{},"validation_error",[150,387,191],{},[150,389,390,391,393],{},"La charge utile a échoué à la validation. Inspectez ",[30,392,177],{}," pour le(s) champ(s) en cause et corrigez la requête.",[135,395,396,401,404],{},[150,397,398],{},[30,399,400],{},"not_found",[150,402,403],{},"404",[150,405,406,407,410],{},"La ressource n'existe pas ou ne vous appartient pas. Vérifiez la ",[30,408,409],{},"reference",".",[135,412,413,418,421],{},[150,414,415],{},[30,416,417],{},"invalid_state_transition",[150,419,420],{},"409",[150,422,423],{},"Un changement de statut illégal a été tenté (les états terminaux sont immuables). Ré-interrogez le statut courant.",[135,425,426,431,434],{},[150,427,428],{},[30,429,430],{},"provider_error",[150,432,433],{},"502",[150,435,436],{},"Le fournisseur de paiement a échoué. Sûr à réessayer après un court délai ; rapprochez par statut.",[135,438,439,444,446],{},[150,440,441],{},[30,442,443],{},"unknown_provider",[150,445,191],{},[150,447,448,451],{},[30,449,450],{},"provider_code_name"," ne correspond à aucun fournisseur enregistré. Omettez-le pour un routage automatique, ou utilisez un code valide.",[135,453,454,459,462],{},[150,455,456],{},[30,457,458],{},"webhook_verification_failed",[150,460,461],{},"401",[150,463,464],{},"Un webhook fournisseur entrant a échoué à la vérification de signature (rejeté par PayRouter, pas par vous).",[135,466,467,472,475],{},[150,468,469],{},[30,470,471],{},"request_error",[150,473,474],{},"4xx",[150,476,477,478,480,481,410],{},"Une erreur de requête générique au niveau du framework (p. ex. auth/permission). Lisez ",[30,479,167],{},"/",[30,482,177],{},[135,484,485,490,493],{},[150,486,487],{},[30,488,489],{},"internal_error",[150,491,492],{},"500",[150,494,495],{},"Erreur serveur inattendue. Réessayez ; si cela persiste, contactez le support avec l'horodatage.",[206,497,499],{"id":498},"erreurs-de-validation-courantes-à-la-création-de-paiement","Erreurs de validation courantes à la création de paiement",[129,501,502,517],{},[132,503,504],{},[135,505,506,511,514],{},[138,507,508,509],{},"Clé de ",[30,510,177],{},[138,512,513],{},"Cause",[138,515,516],{},"Correctif",[145,518,519,543,569,588,601],{},[135,520,521,526,529],{},[150,522,523],{},[30,524,525],{},"currency",[150,527,528],{},"Code de devise inconnu",[150,530,531,532,535,536,539,540,410],{},"Utilisez un code valide (",[30,533,534],{},"CDF",", ",[30,537,538],{},"USD",") ; listez via ",[30,541,542],{},"GET /api/organization/currency/",[135,544,545,550,553],{},[150,546,547],{},[30,548,549],{},"service",[150,551,552],{},"Service inconnu",[150,554,555,556,535,559,535,562,535,565,568],{},"Utilisez un nom/symbole valide (",[30,557,558],{},"Vodacom",[30,560,561],{},"Airtel",[30,563,564],{},"Orange",[30,566,567],{},"Africell",").",[135,570,571,576,579],{},[150,572,573],{},[30,574,575],{},"merchant",[150,577,578],{},"Aucun profil marchand intégré",[150,580,581,582,410],{},"Complétez l'intégration sur ",[583,584,586],"a",{"href":585},"/complete-profile",[30,587,585],{},[135,589,590,595,598],{},[150,591,592],{},[30,593,594],{},"merchant_reference",[150,596,597],{},"Référence en doublon",[150,599,600],{},"Utilisez une nouvelle référence unique, ou traitez-la comme déjà soumise.",[135,602,603,608,611],{},[150,604,605],{},[30,606,607],{},"amount",[150,609,610],{},"Manquant ou inférieur au minimum",[150,612,613,614,410],{},"Envoyez une chaîne décimale ≥ ",[30,615,616],{},"\"0.01\"",[206,618,620],{"id":619},"bien-gérer-les-erreurs","Bien gérer les erreurs",[622,623,624,639,656],"ul",{},[625,626,627,635,636,638],"li",{},[18,628,629,630,632,633],{},"Faites un ",[30,631,159],{}," sur ",[30,634,30],{},", pas sur ",[30,637,167],{}," (les messages peuvent être localisés ou reformulés).",[625,640,641,644,645,480,647,649,650,480,652,655],{},[18,642,643],{},"Réessayez"," les ",[30,646,433],{},[30,648,492],{}," avec un backoff exponentiel ; ne réessayez jamais un ",[30,651,191],{},[30,653,654],{},"403","\ninchangé.",[625,657,658,661,662,535,664,666,667,480,669,671],{},[18,659,660],{},"Journalisez"," ",[30,663,30],{},[30,665,167],{}," et les ",[30,668,409],{},[30,670,594],{}," de la requête pour le\nsupport.",[14,673,674,675,679],{},"Voir aussi ",[583,676,678],{"href":677},"/docs/troubleshooting","Dépannage"," pour des correctifs basés sur les symptômes.",[681,682],"doc-nav",{":first-page":683,":last-page":683,"next-title":684,"next-url":685,"previous-title":686,"previous-url":687},"false","Rapports","/docs/reports","Passage en production","/docs/go-live",[689,690,691],"style",{},"html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":28,"searchDepth":43,"depth":43,"links":693},[694,695,696,697],{"id":208,"depth":43,"text":209},{"id":359,"depth":43,"text":360},{"id":498,"depth":43,"text":499},{"id":619,"depth":43,"text":620},"L'enveloppe d'erreur PayRouter, les codes de statut HTTP, les codes d'erreur lisibles par machine, et comment lire les détails de validation par champ.","md",{},true,"/fr/docs/errors",{"title":5,"description":698},"fr/docs/errors/index","qbYwVgIVOglw62k1D1nNYqJLdEYkdHEhiYQMpY7Gj-A",1784295145951]