Messages d'erreur de l'API

Dernière mise à jour : 8 août 2025

Introduction

La plupart des requêtes API sont exécutées avec succès, mais il arrive parfois que des problèmes surviennent et qu'un message d'erreur soit renvoyé au lieu de la réponse attendue.

Notre API fournit une variété de messages d'erreur descriptifs destinés à expliquer la raison de l'erreur et à suggérer des solutions appropriées.

Les messages d'erreur API peuvent être divisés en plusieurs groupes différents (selon le type d'erreur, la cause sous-jacente et la solution optimale), mais le format des messages d'erreur API est cohérent et se présente comme suit :

"Niveau de gravité""Catégorie d'erreur":"Message d'erreur"

Le "Niveau de gravité" peut être E pour une erreur ou W pour un avertissement. La "Catégorie d'erreur" peut être l'une des suivantes : Général, API, Requête, Ordre, Trade, Financement ou Service. Le "Message d'erreur" peut être n'importe quelle chaîne de texte décrivant la raison de l'erreur (par exemple, Arguments invalides).

Par exemple, une erreur indiquant qu'une paire de devises invalide a été utilisée dans une requête de ticker serait la suivante :

EQuery:Unknown asset pair

Veuillez noter que certains logiciels tiers (applications mobiles, robots de trading, etc.) choisissent de masquer l'erreur API originale et de présenter une erreur personnalisée à la place, d'où la possibilité d'un format ou d'un contenu d'erreur alternatif selon le logiciel utilisé.

  • Erreurs d'utilisation générale

  • Erreurs de limite de débit

  • Erreurs de trading (passer/annuler des ordres)

  • Erreurs de financement (dépôt/retrait)

  • Erreurs d'état du service

  • Erreurs internes

  • Erreurs Cloudflare (réseau)

Erreurs d'utilisation générale

Les erreurs d'autorisation refusée sont renvoyées lorsque le client API tente d'effectuer une tâche pour laquelle la clé API n'a pas l'autorisation. Par exemple, si un client API tentait de récupérer le solde du compte en utilisant une clé API configurée pour autoriser l'accès au trading mais pas l'accès à la gestion de compte, l'erreur d'autorisation refusée serait renvoyée. Vous pouvez consulter vos clés API et leurs paramètres (tels que leurs autorisations) via l'onglet Paramètres -> API de la gestion de compte. Vous devrez vous assurer que les clés API utilisées par vos applications tierces disposent de tous les paramètres et autorisations requis par vos applications.

Cette erreur est renvoyée lorsque la clé API utilisée pour l'appel est expirée ou désactivée. Veuillez vérifier la clé API dans l'onglet Paramètres -> API de la gestion de votre compte ou en générer une nouvelle et mettre à jour votre application.

Vous pouvez obtenir la liste complète de nos paires d'actifs à partir de l'appel public AssetPairs et rechercher le nom de la paire comme entrée des en-têtes Json ou par le paramètre "altname" : https://api.kraken.com/0/public/AssetPairs

Cette erreur est renvoyée lorsqu'une méthode est appelée sans les paramètres requis. Par exemple, appeler la méthode QueryOrders sans spécifier un paramètre d'ID de transaction (txid) valide entraînerait le renvoi de l'erreur d'arguments invalides. Appeler une méthode avec des paramètres inutiles ne renverrait pas l'erreur d'arguments invalides car les paramètres inutiles seraient simplement ignorés.

Des erreurs de signature invalide se produisent si votre clé API ou votre secret API sont mal écrits dans votre programme, ou si les données POST utilisées pour l'authentification et les données POST envoyées à l'API ne correspondent pas.Pour référence supplémentaire, voici un exemple de code Python pour implémenter l'algorithme de signature API. La clé publique API appropriée doit être copiée et collée depuis la gestion de compte, et la méthode API ainsi que les données POST doivent être mises à jour en conséquence. La valeur de sortie peut être utilisée directement comme valeur pour l'en-tête HTTP API-Sign. #!/usr/bin/env python

# Import required Python libraries
import time
import base64
import hashlib
import hmac

# Decode API private key from base64 format displayed in account management
api_secret = base64.b64decode("nmlrD83t1J+yVWKUBx9vD6j26C5zhC11tFfXpN+Ww+8oOVuGgse5AeADcvl95jYaD+UAi3D5CrVfFr8GfQ7zhA==")

# Variables (API method, nonce, and POST data)
api_path = "/0/private/TradeBalance"
api_nonce = str(int(time.time()*1000))
api_post = "nonce=" + api_nonce + "&asset=xxbt"

# Cryptographic hash algorithms
api_sha256 = hashlib.sha256(api_nonce + api_post).digest()
api_hmac = hmac.new(api_secret, api_path + api_sha256, hashlib.sha512)

# Encode signature into base64 format used in API-Sign value
api_signature = base64.b64encode(api_hmac.digest())

# API authentication signature for use in API-Sign HTTP header
print(api_signature)Le SHA256 est calculé en utilisant la valeur nonce elle-même et les données POST pour la méthode API, et les données POST sont composées des paires nom/valeur pour le nonce (encore une fois) et les paramètres de la méthode API. Un exemple des données qui devraient être passées au SHA256 pour la méthode TradeBalance serait le suivant :SHA256 = SHA256 de "1541933977000nonce=1541933977000&asset=xxbt"La valeur de chaîne passée au SHA256 ne doit pas contenir de valeurs nulles supplémentaires (\0) et la valeur de chaîne ne doit pas être encodée en base64 ou en hexadécimal (c'est-à-dire que la valeur de chaîne doit être une chaîne de texte brut).Le chemin URI est l'URL complète de la méthode API, à l'exception du préfixe "https://api.kraken.com", donc le chemin URI de la méthode TradeBalance (par exemple) serait la valeur de chaîne "/0/private/TradeBalance" sans aucune valeur nulle supplémentaire.Le HMAC SHA512 est calculé en utilisant le chemin URI et le digest SHA256 précédemment calculé, avec la clé privée API décodée en base64 comme clé HMAC. Un exemple des données qui devraient être passées au HMAC serait le suivant :HMAC SHA512 utilisant la clé privée décodée en base64 = HMAC de "/0/private/TradeBalanceSHA256"Les en-têtes HTTP API-Key et API-Sign sont les deux seuls en-têtes HTTP personnalisés requis. L'en-tête API-Key est un duplicata exact de la clé publique API de la gestion de compte. L'en-tête API-Sign est le digest HMAC SHA512 encodé en base64.

Vous pouvez trouver plus d'informations sur cette erreur ici :https://support.kraken.com/hc/en-us/articles/360001148063Et plus d'informations sur Nonce et Nonce Window ici :https://support.kraken.com/hc/en-us/articles/360000906023https://support.kraken.com/hc/en-us/articles/360001148023

Les erreurs de session invalide sont renvoyées via l'API WebSocket lorsqu'une tentative est faite de s'abonner à un flux authentifié (privé) en utilisant un jeton d'authentification qui n'est plus valide (par exemple, il a déjà expiré).

La solution consiste simplement à demander un nouveau jeton d'authentification via le point de terminaison GetWebSocketsToken de l'API REST, et à utiliser ce nouveau jeton pour toutes les requêtes d'abonnement authentifiées (privées) ultérieures.

Une erreur de mauvaise requête indique qu'il y a quelque chose d'incorrect dans la requête HTTP sous-jacente (et non la requête API subséquente), comme des URL non concordantes entre REST/WebSocket, ou l'absence d'inclusion correcte des données POST HTTP :

% curl --data "" https://api.kraken.com/0/private/GetWebSocketsToken

{"error":["EAPI:Bad request"]}

Cette erreur est renvoyée lorsque le point de terminaison appelé n'est pas un point de terminaison valide.

Erreurs de limite de débit

Bien que l'ajout et l'annulation d'ordres ne soient pas pris en compte dans nos limites de compteur API standard, ces opérations ont leur propre compteur d'ajout et d'annulation d'ordres. Ce compteur fonctionne de manière à ce que plus les ordres restent longtemps dans le carnet d'ordres, plus les clients peuvent ajouter ou annuler d'ordres.

Des messages d'erreur de verrouillage temporaire peuvent survenir si vous avez eu trop d'appels API échoués ou trop d'erreurs de nonce invalide sur une courte période, ou des signatures invalides. Même si ces appels renvoient une erreur, cette erreur est toujours comptabilisée dans vos limites API et peut entraîner un verrouillage temporaire.

Les verrouillages temporaires durent environ 15 minutes. Après avoir reçu l'erreur de verrouillage temporaire, veuillez attendre 15 minutes avant d'envoyer de nouvelles requêtes API. Si vous déclenchez plusieurs erreurs de nonce invalide, veuillez augmenter la fenêtre de nonce, car cela peut aider à réduire la fréquence de ces erreurs. Veuillez également essayer de réduire la fréquence de vos appels API privés.

Erreurs de trading

L'ouverture de nouvelles positions au comptant sur marge a été temporairement suspendue pour la maintenance du moteur de trading. Cette fonctionnalité sera bientôt de retour et vous pourrez suivre les mises à jour sur status.kraken.com.

Une autre raison peut être que les positions au comptant sur marge ne sont pas actuellement disponibles pour les clients résidant dans certains pays.

Sur Kraken, vous ne pouvez pas ouvrir une position longue et une position courte pour la même paire.

Si vous souhaitez ouvrir une position longue et une position courte pour la même devise, veuillez choisir des paires de trading différentes avec la même devise comme devise de base ou de cotation. Ex : vente à découvert XBT/USD, achat à découvert XBT/EUR.

Cette erreur se produit lorsque vous avez dépassé les limites d'allocation de marge pour votre niveau de vérification actuel. Les limites d'allocation de marge pour chaque devise varient en fonction de votre niveau de vérification actuel.

Nous disposons de fonds limités pour les extensions de marge. Le message « marge insuffisante » indique que nous n'avons plus de fonds dans le pool de marge applicable pour le moment. Cela peut changer à tout moment. Vous pourrez peut-être passer votre ordre avec succès quelques secondes ou minutes plus tard, mais les ordres à volume élevé et les ordres passés pendant les périodes de volume élevé peuvent prendre plus de temps. Veuillez accepter nos excuses pour tout inconvénient.

Cette erreur se produit lorsqu'il n'y a pas suffisamment de marge libre pour ouvrir une nouvelle position sur le compte ou si la tentative actuelle d'ouvrir une position entraînerait une chute de la marge libre du compte en dessous de 100 %.

Vous ne disposez pas des fonds nécessaires pour passer cet ordre. Veuillez vérifier vos positions et ordres ouverts pour les éléments qui pourraient retenir vos fonds.

Vous n'avez pas atteint le volume d'ordre minimum pour cet actif.

Vous avez dépassé le nombre maximum d'ordres ouverts disponibles sur votre compte.

Ces limites sont basées sur votre niveau de vérification. Veuillez fermer certains de vos ordres ouverts ou vérifier votre compte à un niveau supérieur.

Vous avez dépassé le nombre maximum de positions ouvertes disponibles sur votre compte.

Ces limites sont basées sur votre niveau de vérification. Veuillez fermer ou régler tout ou partie de vos positions ouvertes ou vérifier votre compte à un niveau supérieur si possible.

Une tentative de modification d'un ordre existant (ouvert) a été effectuée, mais les modifications n'ont pas pu être réalisées avec succès. Les raisons possibles incluent des fonds insuffisants pour le nouvel ordre, certains scénarios de remplissage partiel et certains ordres à effet de levier.

Le nouveau volume est inférieur au volume déjà exécuté/rempli.

La taille de l'ordre a dépassé la limite de taille de position sur marge de la paire de trading.

Le volume affiché n'a pas atteint le volume minimum de l'ordre.

Le volume affiché doit être inférieur au volume de l'ordre.

Les ordres iceberg ne sont pas compatibles avec d'autres types d'ordres que l'ordre à cours limité.

Erreurs de financement

Chaque cryptomonnaie dispose d'un maximum de 5 nouvelles adresses de dépôt (non utilisées), après quoi toute tentative de création d'une 6ème nouvelle adresse entraînera une erreur.

Cette erreur est renvoyée chaque fois que les points de terminaison de financement sont appelés avec un paramètre "method" invalide ou manquant. 

Le paramètre d'entrée "key" ne correspond pas à la description de l'adresse définie dans la gestion du compte (via Financement -> Retrait).

Les montants minimaux de retrait varient selon la devise et toute tentative de retrait inférieure au minimum entraînerait cette erreur.

Il s'agit d'une erreur générique indiquant qu'une demande de financement n'a pas pu être complétée (par exemple, les clients de certains endroits tentant de faire des demandes de staking on-chain provoqueraient cette erreur).

Le retrait demandé n'a pas pu être effectué, car l'adresse de destination ne contient pas les informations requises sur le bénéficiaire/destinataire (notez que cela ne s'applique actuellement qu'à certains retraits de comptes canadiens).

Erreurs d'état du service

Les erreurs de service que vous rencontrez ne devraient être que temporaires. Vous pouvez soumettre à nouveau vos requêtes si elles ont échoué. Nous surveillerons les problèmes et mettrons à jour notre page :

https://status.kraken.com/

Erreurs internes

Lorsque nous rencontrons des problèmes de dégradation de l'API, ceux-ci peuvent se traduire par des problèmes pour Kraken sous forme de messages de service indisponible et de pannes de site.

Ce problème concerne la sécurité de votre compte qui pourrait avoir été compromise. Veuillez modifier votre mot de passe et votre authentification à deux facteurs et contacter notre centre d'assistance.

Cette erreur se produit lorsqu'un indicateur ou un paramètre d'entrée est désactivé temporairement ou définitivement. L'erreur devrait provenir de l'une des entrées transmises. Veuillez contacter notre support en envoyant un journal avec les informations complètes utilisées pour l'appel qui a généré l'erreur.

Ces erreurs 5xx et 10xx ne sont pas réellement des erreurs d'API, mais plutôt des erreurs de serveur web de Cloudflare.

Les erreurs d'API sont toujours renvoyées au format JSON tel que « error »:[« ErrorType:ErrorMessage »]. Ainsi, chaque fois qu'une erreur dans un format différent est reçue (comme un code d'état HTTP 520, 504, 502, 1020, etc.), la solution provisoire consiste à essayer de relancer l'appel API peu de temps après et, espérons-le, l'appel sera alors réussi.

Besoin d’aide supplémentaire ?