Valsoria Pay Console →
Documentation

Démarrer

IntroductionDémarrageAuthentification

API

PaiementsPage de paiementDécaissementsRelevé de compteWebhooksRéférenceErreurs

Outils

Numéros de testSDK JavaScriptVersions

Catalogue des erreurs

Toutes les erreurs ont la même forme :

{ "error": { "code": "invalid_amount", "message": "..." } }

Testez le code, jamais le message. Le code est stable ; le message est rédigé pour un humain et peut être reformulé sans préavis.

Toute réponse porte Valsoria-Request-Id. Il apparaît à l'identique dans le Journal API de votre console : commencez toujours par là.

Les 47 codes que l'API peut rendre

Cette liste est dérivée de la spécification, et chacun de ces codes est provoqué contre la sandbox à chaque recette. Aucun n'est théorique.

CodeStatutQue faire
amount_above_limit422
amount_too_large422Au-delà du reste remboursable. Relisez le paiement pour connaître ce reste.
amount_too_small422
authentication_required401Ajoutez l'en-tête Authorization: Bearer.
batch_not_cancellable409
batch_not_executable409
batch_pending_approval409
bornes_illisibles500
checkout_creation_failed500
destination_introuvable404
destination_non_designee422Cette destination sert aux décaissements. La destination de vos règlements se désigne dans votre console, écran « Règlements » — une seule à la fois, par le propriétaire du compte. Rien à changer dans votre code.
destination_trop_recente422Une destination fraîchement désignée attend un délai avant de servir. Le message indique la date. Ce délai vous laisse le temps de réagir si le changement ne venait pas de vous.
duplicate_reference409Ce merchant_reference désigne déjà une autre transaction.
idempotency_in_progress409Une requête identique est en cours. Attendez, ne changez pas de clé.
idempotency_key_required400Ajoutez Idempotency-Key, dérivée de votre commande.
idempotency_key_reused422Même clé, corps différent. Utilisez une clé par commande, pas par tentative.
insufficient_funds409
insufficient_scope403
invalid_amount422Entier strictement positif, en unité mineure. Ni chaîne, ni décimale.
invalid_api_key401Clé inconnue, révoquée ou malformée. Vérifiez le préfixe et l’environnement.
invalid_beneficiary422
invalid_body400Le corps n’est pas du JSON valide.
invalid_currency422Code ISO à trois lettres.
invalid_id422L’identifiant doit être un txn_….
invalid_lines422
invalid_msisdn422
invalid_operator422
invalid_period422
invalid_request400
invalid_return_url422
lien_indisponible409
merchant_inactive403Votre dossier de vérification n’est pas validé. Rien à corriger côté code.
method_not_allowed405
montant_non_eligible422
payment_creation_failed500
payment_failed500
payout_failed500
rate_limit_exceeded429
resource_not_found404Inconnu, ou appartenant à un autre marchand. Les deux rendent 404.
session_closed409
session_expired409
settlement_failed500
sous_le_plancher422
statement_failed500
too_many_attempts429
too_many_lines422
refund_via_support403Le remboursement par API est fermé depuis le 27 août 2026 : la décision revient à LibrePay, qui le traite sur justification. Contactez le support avec l’identifiant du paiement. Retirez cet appel de votre intégration — la route n’est plus documentée.

Ce qui mérite une nouvelle tentative

SituationRejouer ?
Erreur réseau, aucune réponseOui, avec la MÊME clé d'idempotence
5xxOui, avec la même clé
429Oui, après attente
4xxNon — la requête est en cause, le refus serait identique

Rejouer avec la même clé est sans danger : c'est précisément ce pour quoi l'idempotence existe. Rejouer avec une clé neuve crée un second paiement.

Version d'API 2026-08-25 · changements · spécification OpenAPI