Documentation / Référence

Codes d'erreur

Le corps d'une erreur a toujours la même forme. Fiez-vous au code, pas au texte : le message est rédigé pour un humain et peut évoluer.

JSON
{ "error": { "code": "duplicate_order", "message": "Une facture existe déjà pour cet order_id" } }
Quand relancer sans risqueEn cas de 429, 500, 503, idempotency_in_progress ou d'erreur réseau, avec le même Idempotency-Key : aucun doublon ne sera créé.

Requête et accès

HTTPcodeCause et marche à suivre
400bad_json, bad_bodyCorps non JSON, champs superflus ou montant passé en nombre au lieu d'une chaîne : corrigez la requête
400bad_idempotency_keyClé absente ou mal formée : 8 à 128 caractères ASCII imprimables, ne commençant pas par d:
400bad_queryParamètres de liste invalides
401unauthorizedSignature, horodatage, nonce ou clé : voir CP-HMAC
403merchant_suspendedCompte marchand suspendu : contactez le support
403merchant_not_approvedInscription inachevée ou demande en cours d'examen : terminez l'assistant dans le tableau de bord
403billing_suspendedFacture de commission impayée : réglez-la dans le tableau de bord, rubrique « Facturation » ; la suspension est levée immédiatement
404not_foundLa facture n'existe pas ou appartient à un autre marchand
413body_too_largeCorps au-delà de la limite : réduisez metadata
429rate_limitedTrop de requêtes : relancez avec un délai exponentiel
500internalErreur interne : relancez avec le même Idempotency-Key

Factures et idempotence

HTTPcodeCause et marche à suivre
409duplicate_orderorder_id déjà utilisé : prenez-en un nouveau, par exemple ORDER-1001-2
409idempotency_conflictMême clé avec un corps différent
409idempotency_in_progressLa première requête est encore en cours : relancez dans 1 à 2 s
409invoice_not_payableFacture expirée ou clôturée : créez-en une nouvelle
422invalid_order_id, invalid_price_amount, invalid_price_currency, invalid_return_url, invalid_expires_in_seconds, invalid_metadataLe champ n'a pas passé la validation : le message indique la règle
422invalid_allowed_assetsAucun actif de la liste n'est disponible : le message donne la raison pour chacun
422no_assetsAucun actif disponible : vérifiez les portefeuilles et les actifs dans le tableau de bord
422amount_too_smallMontant inférieur au minimum de tous les actifs disponibles

Choix de la devise sur la page de paiement

Ces erreurs sont gérées par la page de paiement ; votre serveur ne les rencontre que si vous appelez select vous-même.

HTTPcodeCause
409asset_lockedChangement de devise après un paiement
409wallet_not_configuredAucun portefeuille de réception actif sur ce réseau
409wallet_changed, address_conflictRefaire le choix
422asset_not_allowedActif absent de la facture ou plus autorisé
503rate_unavailableAucun cours confirmé : proposez un stablecoin
503network_unavailableRéception temporairement indisponible sur ce réseau : choisissez-en un autre

Remboursements

HTTPcodeCause
403merchant_inactiveBoutique suspendue ou clé révoquée
409invoice_not_paidAucun actif choisi sur la facture : rien à rembourser
409nothing_to_refundTout a déjà été remboursé ou demandé
409too_many_refunds20 demandes ouvertes sur la facture
409refund_executorLe remboursement est exécuté par la plateforme, pas par vous
409invoice_status_changedLe statut de la facture a changé depuis la demande : relancez avec "ack_status_change": true
422amount_exceeds_refundableMontant supérieur au disponible : réduisez-le ou utilisez "full"
422invalid_amount, invalid_address, invalid_tx_hashLe champ n'a pas passé la validation