Sommaire · Erreurs

Erreurs

Une erreur répond avec un statut HTTP 4xx ou 5xx et une enveloppe stable. Basez votre code sur error.code ; error.message est un texte lisible qui peut évoluer.

Exemple
HTTP/1.1 400 Bad Request
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Request validation failed",
    "details": { "fields": [{ "field": "amount", "messages": ["amount must be an integer amount in minor units (no decimals) …"] }] }
  },
  "requestId": "…"
}

Que réessayer ?

429 et 503 PROVIDER_UNAVAILABLE : réessayez après un délai. Une coupure réseau ou un 504 sur une opération d’argent : renvoyez la même requête avec la même Idempotency-Key, ou relisez la ressource. Les autres 4xx : corrigez la requête, la renvoyer telle quelle donnera la même erreur.

Requête

StatutCodeSignification
400VALIDATION_ERRORChamp manquant, mal formé ou inconnu. Détail dans error.details.fields (champ et règles enfreintes).
400INVALID_JSONCorps qui n’est pas du JSON valide.
400INVALID_IDEMPOTENCY_KEYEn-tête Idempotency-Key absent ou mal formé.
422INVALID_CURSORCurseur de pagination invalide : repartez de la première page.
404NOT_FOUND, *_NOT_FOUNDRessource inexistante, ou d’un autre marchand (même réponse).
413PAYLOAD_TOO_LARGECorps de plus de 256 Ko.
429RATE_LIMIT_EXCEEDEDTrop de requêtes : attendez Retry-After secondes.

Authentification et droits

StatutCodeSignification
401UNAUTHENTICATEDAucune clé fournie.
401INVALID_API_KEYClé inconnue, révoquée, expirée ou d’un autre environnement.
403FORBIDDENPermission absente sur la clé.
403MFA_REQUIREDTableau de bord : l’action exige une double authentification récente.
403MERCHANT_SUSPENDEDCompte suspendu.
403MERCHANT_NOT_ACTIVEProduction : compte pas encore activé (dossier KYB, fournisseur).
403TRANSACTION_BLOCKEDOpération bloquée par les contrôles de risque.

Règles métier

StatutCodeSignification
409IDEMPOTENCY_KEY_REUSEDMême Idempotency-Key, corps différent.
409IDEMPOTENCY_REQUEST_IN_PROGRESSPremière requête encore en cours : réessayez avec la même clé après Retry-After.
409INVALID_STATE_TRANSITIONAction impossible dans l’état actuel (annuler un paiement réussi…).
409PAYMENT_NOT_REFUNDABLEPaiement non remboursable, ou déjà remboursé en totalité.
409CUSTOMER_ALREADY_EXISTSUn client existe déjà avec ce téléphone.
422LIMIT_EXCEEDEDAu-delà de vos limites (par opération, par jour ou par mois).
422INSUFFICIENT_BALANCESolde insuffisant pour réserver le remboursement ou le versement.
422REFUND_LIMIT_EXCEEDED, PAYOUT_LIMIT_EXCEEDEDAu-delà de vos plafonds de remboursement ou de versement.
422FEE_PLAN_NOT_CONFIGUREDAucune grille tarifaire attribuée à votre compte : contactez Galsen Pay.
422FEE_EXCEEDS_AMOUNTLes frais dépassent le montant.
422PROVIDER_CAPABILITY_REQUIREDOpération non ouverte pour ce fournisseur ou votre compte (versements, remboursement partiel…).

Fournisseurs

StatutCodeSignification
422PROVIDER_REJECTEDLe fournisseur a refusé l’opération.
501PROVIDER_DOCUMENTATION_REQUIREDFournisseur pas encore disponible (Orange Money).
503PROVIDER_UNAVAILABLELe fournisseur ne répond pas : rien n’a été envoyé, vous pouvez réessayer.
504PROVIDER_TIMEOUTLe fournisseur n’a pas répondu à temps : l’issue est inconnue. Relisez la ressource avant toute nouvelle action.
500INTERNAL_ERRORErreur de Galsen Pay. Donnez le requestId au support.