Corriger une erreur de validation
Lisez d’abord error.errors. Chaque entrée identifie le paramètre public, sa localisation et une raison stable. Le message est destiné à l’affichage; ne l’utilisez pas pour piloter votre code.
Méthode
- Conservez
correlation_idettrace_idpour le support. - Regroupez
errorsparparam. - Corrigez les erreurs
requiredavant les erreurs de format ou de dépendance. - N’effectuez pas de retry automatique: les codes
IKW-REQ-*ne sont pas retryables sans modification de la requête.
Exemples
Body absent:
{"param":"currency","location":"body","reason":"required"}
Query mal formée:
{"param":"limit","location":"query","reason":"out_of_range","minimum":1,"maximum":100}
Path invalide:
{"param":"payout_id","location":"path","reason":"invalid_format","expected":"UUID"}
Header absent:
{"param":"Idempotency-Key","location":"header","reason":"required"}
Header ops invalide:
{"param":"X-Ops-Merchant-Id","location":"header","reason":"invalid_format","expected":"UUID"}
JSON malformé ou mauvais type:
{"param":"amount","location":"body","reason":"type_mismatch","expected":"integer"}
Body imbriqué:
{"param":"destination.mobile_money.operator","location":"body","reason":"unsupported_value","allowed_values":["orange_money","wave","mtn_momo"]}
Champ inconnu:
{"param":"destination.mobile_money.operatr","location":"body","reason":"unknown_field","suggestion":"destination.mobile_money.operator"}
Mismatch:
{"param":"merchant_id","location":"header","reason":"mismatch"}
Ops:
{"param":"execution_id","location":"body","reason":"invalid_format","expected":"UUID"}
Routing:
{"param":"provider_code","location":"path","reason":"unsupported_value","allowed_values":["orange_money","wave","mtn_momo"]}
Terminal:
{"param":"serial_number","location":"body","reason":"required"}
JavaScript
try {
await ikawaari.payouts.create(payload)
} catch (error) {
if (error.name === 'ValidationError') {
const operatorError = error.getFirstFieldError(
'destination.mobile_money.operator'
)
}
}
Le SDK conserve la lecture des anciennes enveloppes pendant la transition, mais tout nouveau code doit utiliser errors, param et reason.