Aller au contenu principal

Codes d’erreur

La source de vérité faisant autorité pour les métadonnées d’erreur de la plateforme est le catalogue backend dans IkawaariErrorCatalog et IkawaariPaaSDomainErrorCodes.

Cette page documente les modules d’erreur implémentés, les codes représentatifs, le comportement des statuts HTTP et les recommandations de retry.

Format d’erreur

Les surfaces API et marchandes renvoient généralement des payloads d’erreur structurés. Une forme typique est :

{
"error": {
"code": "IKW-PAYOUT-003",
"message": "Description de l'erreur",
"type": "domain_error"
}
}

Politique de source de vérité

  • Les valeurs de code proviennent de IkawaariPaaSDomainErrorCodes
  • Le module, le statut HTTP et la possibilité de retry proviennent de IkawaariErrorCatalog
  • Certains alias de moteurs rétrocompatibles sont également mappés dans le catalogue

Référence des statuts HTTP

CodeSignification
200Succès
201Créé
400Requête invalide ou entrée invalide
401Authentification requise ou identifiants/token invalides
402Contrainte de balance ou de fonds
403Interdit, politique bloquante ou mismatch marchand
404Ressource introuvable
409Conflit d’état, opération en doublon ou conflit d’idempotence
410Invitation expirée ou cycle de vie de la ressource terminé
412Précondition échouée
423État verrouillé ou environnement/test mode déjà actif
429Limite de débit ou cooldown de retry déclenché
500Erreur interne de plateforme
502Échec d’un provider amont ou de livraison webhook
503Service temporairement indisponible
504Timeout amont ou système

Résumé des modules

ModuleZone typiqueStatuts typiquesCas retryables
AUTHconnexion, tokens, clés API401non
AUTHZrôles, membership, scopes403non
ORGaccès organisation403, 404non
MERCHANTétat marchand et résolution de compte403, 404, 409, 410non
REQvalidation et idempotence400, 409non
RESétat générique des ressources404, 409non
RATEthrottling429oui
SYSdéfaillances plateforme/système500, 503, 504certains
CHKflux checkout400, 404non
TRANSFERpaiements et remboursements400, 402, 404, 409, 502échecs provider uniquement
PAYOUTopérations de payout400, 402, 403, 404, 409non
BILLINGfactures et plans404, 500erreurs de cycle uniquement
LEDGERbalance et comptabilité400, 402, 404non
COMPLIANCEKYC, limites400, 403non
SECURITYMFA, passkeys, challenges400, 403, 429, 500non
RISKgestion de cas et règles404, 409non
CONFIGfeature flags et politique pays/devise400, 403non
PRODUCTcatalogue produit400, 404non
WEBHOOKendpoints webhook et livraison404, 502échecs de livraison uniquement
TERMINALtransitions reader/session400, 409non
EXTERNALintégrations provider400, 502, 504indisponibilité/timeout uniquement
ESCROWcontrats d’escrow et litiges400, 403, 404, 409non
FUNDINGcampagnes de financement400, 403, 404, 409non
MKTPLACEmoteur marketplace400, 403non
APPcycle de vie des ecosystem apps403, 404non
ENVétat sandbox/live test-mode412, 423non
CONNECTconfiguration de compte connecté400, 404non

Authentification et autorisation

CodeModuleHTTPRetryableSignification
<a id="IKW-AUTH-001"></a>IKW-AUTH-001AUTH401NonIdentifiants invalides
<a id="IKW-AUTH-002"></a>IKW-AUTH-002AUTH401NonAuthentification requise
<a id="IKW-AUTH-003"></a>IKW-AUTH-003AUTH401NonToken révoqué
<a id="IKW-AUTH-004"></a>IKW-AUTH-004AUTH401NonToken expiré
<a id="IKW-AUTH-005"></a>IKW-AUTH-005AUTH401NonToken invalide
<a id="IKW-AUTH-006"></a>IKW-AUTH-006AUTH401NonSession expirée
<a id="IKW-AUTH-007"></a>IKW-AUTH-007AUTH401NonSession révoquée
<a id="IKW-AUTH-008"></a>IKW-AUTH-008AUTH401NonClé API expirée
<a id="IKW-AUTH-009"></a>IKW-AUTH-009AUTH401NonClé API tournée
<a id="IKW-AUTHZ-001"></a>IKW-AUTHZ-001AUTHZ403NonInterdit
<a id="IKW-AUTHZ-002"></a>IKW-AUTHZ-002AUTHZ403NonRôle insuffisant
<a id="IKW-AUTHZ-003"></a>IKW-AUTHZ-003AUTHZ403NonMembership requis

Fondations marchand, requête et système

CodeModuleHTTPRetryableSignification
<a id="IKW-MERCHANT-001"></a>IKW-MERCHANT-001MERCHANT404NonMarchand introuvable
<a id="IKW-MERCHANT-002"></a>IKW-MERCHANT-002MERCHANT403NonMarchand désactivé
<a id="IKW-MERCHANT-003"></a>IKW-MERCHANT-003MERCHANT409NonLe marchand existe déjà
<a id="IKW-MERCHANT-004"></a>IKW-MERCHANT-004MERCHANT410NonInvitation marchand expirée
<a id="IKW-MERCHANT-005"></a>IKW-MERCHANT-005MERCHANT404NonCompte marchand introuvable
<a id="IKW-ORG-001"></a>IKW-ORG-001ORG403NonOrganization Access Denied
<a id="IKW-ORG-002"></a>IKW-ORG-002ORG404NonOrganization Not Found
<a id="IKW-RATE-001"></a>IKW-RATE-001RATE429OuiTrop de requêtes
<a id="IKW-REQ-001"></a>IKW-REQ-001REQ400NonEntrée invalide
<a id="IKW-REQ-002"></a>IKW-REQ-002REQ400NonParamètre requis manquant
<a id="IKW-REQ-003"></a>IKW-REQ-003REQ400NonParamètre invalide
<a id="IKW-REQ-004"></a>IKW-REQ-004REQ409NonConflit d’idempotence
<a id="IKW-RES-001"></a>IKW-RES-001RES404NonRessource introuvable
<a id="IKW-RES-002"></a>IKW-RES-002RES409NonLa ressource existe déjà
<a id="IKW-RES-003"></a>IKW-RES-003RES409NonConflit d’état de ressource
<a id="IKW-SYS-001"></a>IKW-SYS-001SYS500NonErreur interne
<a id="IKW-SYS-002"></a>IKW-SYS-002SYS503OuiService indisponible
<a id="IKW-SYS-003"></a>IKW-SYS-003SYS504OuiTimeout système

Checkout, paiements, remboursements et payouts

CodeModuleHTTPRetryableSignification
<a id="IKW-CHK-001"></a>IKW-CHK-001CHK400NonLien de paiement invalide
<a id="IKW-CHK-002"></a>IKW-CHK-002CHK404NonCheckout session introuvable
<a id="IKW-CHK-003"></a>IKW-CHK-003CHK400NonCheckout session expirée
<a id="IKW-CHK-004"></a>IKW-CHK-004CHK400NonCheckout session non ouverte
<a id="IKW-CHK-005"></a>IKW-CHK-005CHK400NonMontant de checkout requis
<a id="IKW-CHK-006"></a>IKW-CHK-006CHK400NonLe checkout n’a pas de payment intent
<a id="IKW-CHK-007"></a>IKW-CHK-007CHK400NonReçu indisponible
<a id="IKW-PAYOUT-001"></a>IKW-PAYOUT-001PAYOUT404NonPayout introuvable
<a id="IKW-PAYOUT-002"></a>IKW-PAYOUT-002PAYOUT400NonDestination invalide
<a id="IKW-PAYOUT-003"></a>IKW-PAYOUT-003PAYOUT402NonBalance de payout insuffisante
<a id="IKW-PAYOUT-004"></a>IKW-PAYOUT-004PAYOUT409NonBatch déjà en cours de traitement
<a id="IKW-PAYOUT-005"></a>IKW-PAYOUT-005PAYOUT409NonBatch déjà terminé
<a id="IKW-PAYOUT-006"></a>IKW-PAYOUT-006PAYOUT400NonDestinataire invalide
<a id="IKW-PAYOUT-007"></a>IKW-PAYOUT-007PAYOUT403NonRejet AML
<a id="IKW-PAYOUT-008"></a>IKW-PAYOUT-008PAYOUT403NonMismatch marchand
<a id="IKW-PAYOUT-009"></a>IKW-PAYOUT-009PAYOUT400NonIncohérence de devise
<a id="IKW-PAYOUT-010"></a>IKW-PAYOUT-010PAYOUT400NonPayout Invalid Amount
<a id="IKW-TRANSFER-001"></a>IKW-TRANSFER-001TRANSFER400NonMontant invalide
<a id="IKW-TRANSFER-002"></a>IKW-TRANSFER-002TRANSFER400NonIncohérence de devise
<a id="IKW-TRANSFER-003"></a>IKW-TRANSFER-003TRANSFER404NonTransfert ou paiement introuvable
<a id="IKW-TRANSFER-004"></a>IKW-TRANSFER-004TRANSFER409NonTransition d’état invalide
<a id="IKW-TRANSFER-005"></a>IKW-TRANSFER-005TRANSFER400NonLe remboursement dépasse le montant
<a id="IKW-TRANSFER-006"></a>IKW-TRANSFER-006TRANSFER409NonDéjà remboursé
<a id="IKW-TRANSFER-007"></a>IKW-TRANSFER-007TRANSFER502OuiÉchec du provider
<a id="IKW-TRANSFER-008"></a>IKW-TRANSFER-008TRANSFER402NonBalance insuffisante
<a id="IKW-TRANSFER-009"></a>IKW-TRANSFER-009TRANSFER400NonTransfer Same Source Destination

Facturation, ledger, produits et configuration

CodeModuleHTTPRetryableSignification
<a id="IKW-BILLING-001"></a>IKW-BILLING-001BILLING404NonFacture introuvable
<a id="IKW-BILLING-002"></a>IKW-BILLING-002BILLING404NonPlan introuvable
<a id="IKW-BILLING-003"></a>IKW-BILLING-003BILLING500OuiErreur de cycle de facturation
<a id="IKW-BILLING-004"></a>IKW-BILLING-004BILLING400NonBilling No Payment Attempt
<a id="IKW-CONFIG-001"></a>IKW-CONFIG-001CONFIG403NonFonctionnalité désactivée
<a id="IKW-CONFIG-002"></a>IKW-CONFIG-002CONFIG400NonPays/devise désactivé
<a id="IKW-LEDGER-001"></a>IKW-LEDGER-001LEDGER404NonCompte ledger introuvable
<a id="IKW-LEDGER-002"></a>IKW-LEDGER-002LEDGER402NonBalance insuffisante
<a id="IKW-LEDGER-003"></a>IKW-LEDGER-003LEDGER400NonIncohérence de devise
<a id="IKW-PRODUCT-001"></a>IKW-PRODUCT-001PRODUCT404NonProduit introuvable
<a id="IKW-PRODUCT-002"></a>IKW-PRODUCT-002PRODUCT400NonNom de produit invalide
<a id="IKW-PRODUCT-003"></a>IKW-PRODUCT-003PRODUCT400NonPrix produit invalide

Sécurité, compliance, risque, webhook et providers externes

CodeModuleHTTPRetryableSignification
<a id="IKW-COMPLIANCE-001"></a>IKW-COMPLIANCE-001COMPLIANCE403NonKYC requis
<a id="IKW-COMPLIANCE-002"></a>IKW-COMPLIANCE-002COMPLIANCE400NonDocument de conformité expiré
<a id="IKW-COMPLIANCE-003"></a>IKW-COMPLIANCE-003COMPLIANCE403NonLimite de conformité dépassée
<a id="IKW-EXTERNAL-001"></a>IKW-EXTERNAL-001EXTERNAL502OuiProvider indisponible
<a id="IKW-EXTERNAL-002"></a>IKW-EXTERNAL-002EXTERNAL504OuiTimeout du provider
<a id="IKW-EXTERNAL-003"></a>IKW-EXTERNAL-003EXTERNAL400NonRequête rejetée par le provider
<a id="IKW-RISK-001"></a>IKW-RISK-001RISK409NonDécision déjà prise sur le dossier de risque
<a id="IKW-RISK-002"></a>IKW-RISK-002RISK404NonRègle de risque introuvable
<a id="IKW-RISK-003"></a>IKW-RISK-003RISK409NonImpossible d’assigner le dossier de risque
<a id="IKW-SECURITY-001"></a>IKW-SECURITY-001SECURITY403NonMFA requis
<a id="IKW-SECURITY-002"></a>IKW-SECURITY-002SECURITY400NonCode MFA invalide
<a id="IKW-SECURITY-003"></a>IKW-SECURITY-003SECURITY429NonTrop de tentatives MFA
<a id="IKW-SECURITY-004"></a>IKW-SECURITY-004SECURITY400NonPasskey invalide
<a id="IKW-SECURITY-005"></a>IKW-SECURITY-005SECURITY400NonÉchec Google OAuth
<a id="IKW-SECURITY-006"></a>IKW-SECURITY-006SECURITY409NonGoogle déjà lié
<a id="IKW-SECURITY-007"></a>IKW-SECURITY-007SECURITY429NonCooldown de sécurité actif
<a id="IKW-SECURITY-008"></a>IKW-SECURITY-008SECURITY500NonGoogle non configuré
<a id="IKW-SECURITY-009"></a>IKW-SECURITY-009SECURITY400NonEmail Google non vérifié
<a id="IKW-SECURITY-010"></a>IKW-SECURITY-010SECURITY400NonChallenge expiré
<a id="IKW-SECURITY-011"></a>IKW-SECURITY-011SECURITY400NonChallenge non vérifié
<a id="IKW-SECURITY-012"></a>IKW-SECURITY-012SECURITY400NonMismatch de challenge
<a id="IKW-TERMINAL-001"></a>IKW-TERMINAL-001TERMINAL400NonTerminal Invalid Session
<a id="IKW-TERMINAL-002"></a>IKW-TERMINAL-002TERMINAL400NonTerminal Invalid Reader
<a id="IKW-TERMINAL-003"></a>IKW-TERMINAL-003TERMINAL409NonTerminal Invalid Transition
<a id="IKW-WEBHOOK-001"></a>IKW-WEBHOOK-001WEBHOOK404NonEndpoint webhook introuvable
<a id="IKW-WEBHOOK-002"></a>IKW-WEBHOOK-002WEBHOOK502OuiÉchec de livraison webhook

Escrow, funding, marketplace, apps, environnement et connect

CodeModuleHTTPRetryableSignification
<a id="IKW-APP-001"></a>IKW-APP-001APP404NonApp introuvable
<a id="IKW-APP-002"></a>IKW-APP-002APP403NonKill switch d’app activé
<a id="IKW-APP-003"></a>IKW-APP-003APP403NonInstallation inactive
<a id="IKW-CONNECT-001"></a>IKW-CONNECT-001CONNECT404NonCompte connecté introuvable
<a id="IKW-CONNECT-002"></a>IKW-CONNECT-002CONNECT400NonConfiguration de compte connecté invalide
<a id="IKW-ENV-001"></a>IKW-ENV-001ENV412NonTest mode non activé
<a id="IKW-ENV-002"></a>IKW-ENV-002ENV423NonTest mode déjà actif
<a id="IKW-ENV-003"></a>IKW-ENV-003ENV403NonEnv Context Missing
<a id="IKW-ENV-004"></a>IKW-ENV-004ENV403NonEnv Context Mismatch
<a id="IKW-ENV-005"></a>IKW-ENV-005ENV400NonEnv Context Invalid
<a id="IKW-ENV-006"></a>IKW-ENV-006ENV403NonEnv Context Not Allowed
<a id="IKW-ESCROW-001"></a>IKW-ESCROW-001ESCROW404NonContrat d’escrow introuvable
<a id="IKW-ESCROW-002"></a>IKW-ESCROW-002ESCROW409NonTransition d’escrow invalide
<a id="IKW-ESCROW-003"></a>IKW-ESCROW-003ESCROW409NonUn litige actif bloque l’opération
<a id="IKW-ESCROW-004"></a>IKW-ESCROW-004ESCROW400NonIncohérence de devise escrow
<a id="IKW-ESCROW-005"></a>IKW-ESCROW-005ESCROW403NonMismatch marchand escrow
<a id="IKW-ESCROW-006"></a>IKW-ESCROW-006ESCROW403NonFonctionnalité escrow désactivée
<a id="IKW-ESCROW-007"></a>IKW-ESCROW-007ESCROW409NonOpération escrow en doublon
<a id="IKW-FUNDING-001"></a>IKW-FUNDING-001FUNDING404NonCampagne de financement introuvable
<a id="IKW-FUNDING-002"></a>IKW-FUNDING-002FUNDING409NonTransition funding invalide
<a id="IKW-FUNDING-003"></a>IKW-FUNDING-003FUNDING400NonMontant insuffisant
<a id="IKW-FUNDING-004"></a>IKW-FUNDING-004FUNDING400NonIncohérence de devise funding
<a id="IKW-FUNDING-005"></a>IKW-FUNDING-005FUNDING403NonMismatch marchand funding
<a id="IKW-FUNDING-006"></a>IKW-FUNDING-006FUNDING403NonFonctionnalité funding désactivée
<a id="IKW-FUNDING-007"></a>IKW-FUNDING-007FUNDING409NonContribution en doublon
<a id="IKW-FUNDING-008"></a>IKW-FUNDING-008FUNDING400NonFunding Target Amount Invalid
<a id="IKW-FUNDING-009"></a>IKW-FUNDING-009FUNDING400NonFunding Deadline Invalid
<a id="IKW-FUNDING-010"></a>IKW-FUNDING-010FUNDING409NonFunding Deadline Not Reached
<a id="IKW-MKTPLACE-001"></a>IKW-MKTPLACE-001MKTPLACE403NonVendeur suspendu
<a id="IKW-MKTPLACE-002"></a>IKW-MKTPLACE-002MKTPLACE400NonCommande marketplace invalide
<a id="IKW-MKTPLACE-003"></a>IKW-MKTPLACE-003MKTPLACE400NonErreur de commission
<a id="IKW-MKTPLACE-004"></a>IKW-MKTPLACE-004MKTPLACE400NonIncohérence de devise marketplace
<a id="IKW-MKTPLACE-005"></a>IKW-MKTPLACE-005MKTPLACE403NonMismatch marchand marketplace
<a id="IKW-MKTPLACE-006"></a>IKW-MKTPLACE-006MKTPLACE400NonRemboursement marketplace non autorisé
<a id="IKW-MKTPLACE-007"></a>IKW-MKTPLACE-007MKTPLACE409NonMarketplace Invalid Transition
<a id="IKW-MKTPLACE-008"></a>IKW-MKTPLACE-008MKTPLACE400NonMarketplace Seller Invalid
<a id="IKW-MKTPLACE-009"></a>IKW-MKTPLACE-009MKTPLACE400NonMarketplace Refund Amount Invalid

Paiements groupés (Disbursement) et instructions

CodeModuleHTTPRetryableSignification
<a id="IKW-DISB-001"></a>IKW-DISB-001DISB404NonDisbursement Batch Not Found
<a id="IKW-DISB-002"></a>IKW-DISB-002DISB409NonDisbursement Batch Already Processing
<a id="IKW-DISB-003"></a>IKW-DISB-003DISB409NonDisbursement Batch Already Completed
<a id="IKW-DISB-004"></a>IKW-DISB-004DISB409NonDisbursement Batch Already Canceled
<a id="IKW-DISB-005"></a>IKW-DISB-005DISB409NonDisbursement Batch Not Cancelable
<a id="IKW-DISB-006"></a>IKW-DISB-006DISB400NonDisbursement Batch Validation Failed
<a id="IKW-DISB-007"></a>IKW-DISB-007DISB404NonDisbursement Instruction Not Found
<a id="IKW-DISB-008"></a>IKW-DISB-008DISB400NonDisbursement Instruction Invalid Amount
<a id="IKW-DISB-009"></a>IKW-DISB-009DISB400NonDisbursement Instruction Missing Dest
<a id="IKW-DISB-010"></a>IKW-DISB-010DISB404NonDisbursement Recipient Not Found
<a id="IKW-DISB-011"></a>IKW-DISB-011DISB409NonDisbursement Recipient Archived
<a id="IKW-DISB-012"></a>IKW-DISB-012DISB402NonDisbursement Insufficient Balance
<a id="IKW-DISB-013"></a>IKW-DISB-013DISB400NonDisbursement Currency Invalid
<a id="IKW-DISB-014"></a>IKW-DISB-014DISB403NonDisbursement Approval Required
<a id="IKW-DISB-015"></a>IKW-DISB-015DISB403NonDisbursement Approval Self Approval
<a id="IKW-DISB-016"></a>IKW-DISB-016DISB409NonDisbursement Approval Already Decided
<a id="IKW-DISB-017"></a>IKW-DISB-017DISB403NonDisbursement Merchant Mismatch
<a id="IKW-DISB-018"></a>IKW-DISB-018DISB403NonDisbursement Environment Mismatch
<a id="IKW-DISB-019"></a>IKW-DISB-019DISB400NonDisbursement Schedule Invalid
<a id="IKW-DISB-020"></a>IKW-DISB-020DISB409NonDisbursement Export No Failed Items
<a id="IKW-DISB-021"></a>IKW-DISB-021DISB409NonDisbursement Batch Not Resumable

Alias moteurs rétrocompatibles

Le catalogue mappe également les chaînes d’erreur des anciens moteurs vers les codes plateforme canoniques.

Exemples :

  • PayoutEngine:BatchNotFoundIKW-PAYOUT-001
  • EscrowEngine:ContractNotFoundIKW-ESCROW-001
  • FundingEngine:CampaignNotFoundIKW-FUNDING-001
  • MarketplaceEngine:SellerSuspendedIKW-MKTPLACE-001

Comment gérer les erreurs

  • Utilisez code comme clé programmatique pour la logique conditionnelle.
  • Utilisez le HTTP status pour le comportement au niveau transport.
  • Ne faites un retry que lorsque le catalogue marque effectivement la condition comme retryable, par exemple pour les limites de débit, l’indisponibilité provider ou les timeouts.
  • Pour les flux à portée marchande, privilégiez des indications d’action utilisateur plutôt que des termes internes bruts d’implémentation.

Sections liées