FAQ sur l’API avancée

Last updated: 25 nov. 2025

En utilisant les points de terminaison de financement de l’API REST, les clients peuvent déposer/retirer des fonds sur/de leur compte Kraken, et demander le statut en temps réel d’une transaction de dépôt/retrait.

Les dépôts et retraits suivent plusieurs étapes, de la demande initiale à la finalisation de la transaction. Ainsi, les points de terminaison de financement peuvent renvoyer des statuts différents en fonction du moment où ils sont consultés.

Veuillez noter que les statuts utilisés sont initialement issus des pages 16 et 17 du document intitulé Internet Financial Exchange Protocol (IFEX). Toutefois, ces valeurs ont été légèrement modifiées pour mieux correspondre aux transactions en crypto-monnaies (certaines valeurs de statut possibles ne sont pas utilisées, par exemple).

Dépôts

Les valeurs de statut possibles pour les transactions de dépôt sont les suivantes :

  • Réglé = Le dépôt a été reçu mais nécessite encore des confirmations supplémentaires sur la blockchain.

  • Succès = Le dépôt a atteint le nombre requis de confirmations sur la blockchain.

  • Échec = Le dépôt a échoué (pour une ou plusieurs raisons diverses).

Voici quelques exemples de la façon dont les valeurs de statut ci-dessus peuvent se présenter dans les réponses renvoyées par le point de terminaison DepositStatus :

Statut Réglé :{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906dde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Settled"}]}}

Statut Succès :{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906tdde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Success"}]}}

Retraits

Les valeurs de statut possibles pour les transactions de retrait sont les suivantes :

  • Initial = La demande de retrait a été reçue et fait l’objet d’une vérification de validité (toutes restrictions de financement sur le compte, etc.).

  • En attente = Le retrait est en attente de traitement par notre passerelle de financement.

  • Réglé = Le retrait a été envoyé à la blockchain (à ce stade, l’ID de transaction de la blockchain devient disponible).

  • Succès = La transaction de retrait a obtenu au moins 1 confirmation sur la blockchain.

  • En attente = Le retrait a été retenu et doit être vérifié manuellement par notre équipe de financement.

  • Échec = Le retrait a échoué (pour une ou plusieurs raisons diverses).

Voici quelques exemples de la façon dont les valeurs de statut ci-dessus se présentent dans les réponses renvoyées par le point de terminaison WithdrawStatus :

Statut Initial :{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Initial"}]}}

Statut En attente :{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Pending"}]}

Statut Réglé :{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Settled"}]}}

Statut Succès :{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Success"}]}}

Statut Échec :{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Failure","status-prop":"canceled"}] }

Vous trouverez des informations supplémentaires concernant les dépôts et retraits sur nos pages de support dédiées au financement en monnaie fiduciaire et au financement en crypto.

Le point de terminaison OHLC de l’API REST ne fournit qu’une quantité restreinte de données historiques, limitée à 720 points de données de l’intervalle demandé. Par exemple, une requête de données OHLC par intervalles de 1 minute renverra les 720 dernières minutes , soit l’équivalent de 12 heures de données.

Pour les applications nécessitant des données OHLC ou de tick supplémentaires, il est possible de récupérer l’historique complet des transactions sur nos marchés (incluant l’historique des heures et des ventes) via le point de terminaison Trades de l’API REST. Des données OHLC peuvent ainsi être créées pour n’importe quelle période et n’importe quel intervalle à partir des données historiques des heures et des ventes.

Le point de terminaison Trades accepte un paramètre optionnel nommé since, qui permet de définir la date et l’heure à partir desquelles les données doivent être récupérées. La valeur since est un horodatage UNIX à résolution en nanosecondes (c’est-à-dire un horodatage UNIX classique exprimé en secondes, suivi de 9 chiffres supplémentaires).

Par exemple, une requête adressée au point de terminaison Trades sous la forme https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 renverrait l’historique des heures et des ventes pour la paire XBT/USD depuis le 1er juin 2019 à 00:00:00 UTC :

{"error":[],"result":{"XXBTZUSD":[["8552.90000","0.03190270",1559347203.7998,"s","m",""],["8552.90000","0.03155529",1559347203.8086,"s","m",""],["8552.90000","0.00510797",1559347203.9664,"s","m",""],["8552.90000","0.09047336",1559347203.9789,"s","m",""],["8552.90000","0.00328738",1559347203.9847,"s","m",""],["8552.90000","0.00492152",1559347203.9897,"s","m",""],["8552.90000","0.00201848",1559347203.9937,"s","m",""],["8552.90000","0.11422068",1559347203.9993,"s","m",""],["8552.90000","0.00425858",1559347204.071,"s","m",""],["8552.90000","0.00427679",1559347204.0762,"s","m",""],["8552.90000","0.06381401",1559347204.1662,"s","m",""]
...
["8579.50000","0.05379597",1559350785.248,"s","l",""],["8579.50000","0.94620403",1559350785.2936,"s","l",""],["8578.10000","0.45529068",1559350785.297,"s","l",""]],"last":"1559350785297011117"}}

Les appels suivants au point de terminaison Trades doivent remplacer la valeur du paramètre since par celle du paramètre last obtenue dans la réponse de l’appel précédent, par exemple https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

L’utilisation de la valeur spéciale since égale à 0 (zéro) permettrait d’obtenir l’historique de l’heure et des ventes depuis le lancement du marché (en commençant par la toute première transaction enregistrée).

Une référence utilisateur est un ID de l’ordre fourni par le client qui peut être utilisé à la place de l’ID exact de l’ordre (fourni par l’API) pour certaines tâches de gestion des ordres (notamment l’annulation des ordres).

Les références utilisateur sont mises en œuvre pour être aussi flexibles que possible et peuvent donc être utilisées de différentes manières, y compris :

  • comme un ID unique (où chaque ordre possède une référence utilisateur différente) ;

  • pour regrouper des ordres liés entre eux (par exemple, regrouper des ordres présentant différents niveaux d’effet de levier) ;

  • ou comme ID alternatif lorsque l’ID exact de l’ordre n’est pas connu.

Une référence utilisateur doit être une valeur numérique comprise entre 1 et 2 147 483 647 (autrement dit, tout nombre entier positif sur 32 bits). Elle peut donc être mise en œuvre comme un simple compteur, comme une valeur aléatoire signée sur 32 bits ou encore comme un horodatage en secondes (bien que cette dernière méthode échouerait après le 19 janvier 2038 à 3:14:07 UTC).

Passation d’ordres avec une référence utilisateur

Les ordres peuvent être passés en y associant une référence utilisateur, en appelant le point de terminaison AddOrder et en renseignant le paramètre userref avec la référence utilisateur comme valeur :

$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=limit price=0.1 volume=50 userref=27649653

{"error":[],"result":{"descr":{"order":"buy 50.00000000 XDGUSD @ limit 0.1000000"},"txid":["OQJSXE-F5FOM-IXHVL4"]}}

Consultation des ordres comportant une référence utilisateur

Les ordres comportant déjà une référence utilisateur peuvent être consultés en appelant les points de terminaison Open/Closed/QueryOrders et en incluant le paramètre userref avec la référence utilisateur existante comme valeur (dans ce cas, la référence utilisateur agit comme un filtre, affichant uniquement les ordres associés à celle-ci) :

$ ./krakenapi OpenOrders userref=27649653

{"error":[],"result":{"open":{"OQJSXE-F5FOM-IXHVL4":{"refid":null,"userref":27649653,"status":"open","opentm":1629618802.9812,"starttm":0,"expiretm":0,"descr":{"pair":"XDGUSD","type":"buy","ordertype":"limit","price":"0.1000000","price2":"0","leverage":"none","order":"buy 50.00000000 XDGUSD @ limit 0.1000000","close":""},"vol":"50.00000000","vol_exec":"0.00000000","cost":"0.000000000","fee":"0.000000000","price":"0.000000000","stopprice":"0.000000000","limitprice":"0.000000000","misc":"","oflags":"fciq"}}}}

$ ./krakenapi ClosedOrders userref=38695724

{"error":[],"result":{"closed":{"O7YEFN-3V4RK-FBNSNM":{"refid":null,"userref":38695724,"status":"canceled","reason":"User requested","opentm":1629619539.3593,"closetm":1629619542.2246,"starttm":0,"expiretm":0,"descr":{"pair":"XBTUSD","type":"buy","ordertype":"limit","price":"25000.0","price2":"0","leverage":"none","order":"buy 0.00010000 XBTUSD @ limit 25000.0","close":""},"vol":"0.00010000","vol_exec":"0.00000000","cost":"0.00000","fee":"0.00000","price":"0.00000","stopprice":"0.00000","limitprice":"0.00000","misc":"","oflags":"fciq"}},"count":1}}

Annulation d’ordres comportant une référence utilisateur

Les ordres déjà associés à une référence utilisateur peuvent être annulés à l’aide de cette référence utilisateur, en appelant le point de terminaison CancelOrder et en renseignant cette référence utilisateur comme valeur txid (à la place de la valeur de l’ID de l’ordre) :

$ ./krakenapi CancelOrder txid=16764529

{"error":[],"result":{"count":1}}

Veuillez noter que tous les ordres ouverts partageant la même référence utilisateur seront alors annulés. Il est donc possible d’effectuer une seule requêteCancelOrder pour annuler plusieurs ordres simultanément (comme l’illustre la valeur count égale à 3 dans la réponse suivante) :

$ ./krakenapi CancelOrder txid=48695624

{"error":[],"result":{"count":3}}

Ce problème peut venir de Cloudflare :

https://support.cloudflare.com/hc/en-us/articles/200169226-Why-am-I-getting-a-403-error-

REMARQUE : Kraken a le "Browser Integrity Check" activé.

Cette erreur peut se produire lorsque votre requête comporte des en-têtes suspectes. Par exemple, il se peut qu’il manque un agent utilisateur à votre requête, ou alors que celle-ci utilise un agent utilisateur non standard ; vérifiez donc bien les en-têtes de vos requêtes.

Si vous ne parvenez pas à créer des requêtes standard autorisées par notre système, envoyez-nous une copie complète de la ou des requêtes que vous effectuez, y compris votre adresse IP et tous les en-têtes. Ces informations nous permettront d’enquêter de manière plus approfondie.

API pour les marchés de contrats à terme (futures)

Pour nos API REST et WebSocket dédiées aux contrats à terme (futures.kraken.com), nous offrons un environnement de test complet utilisant l’URL de l’API demo-futures.kraken.com.

Environnements de test REST, WebSocket et FIX

Pour notre API REST/WebSocket de spot ainsi que pour notre API FIX, nous proposons actuellement un environnement de test destiné aux clients qualifiés. L’accès à cet environnement nécessite un processus d’intégration, lequel peut être initié en contactant l’équipe API directement.

Test de notre API à l’aide du paramètre de test Validate

Lors de la passation d’un ordre via les points de terminaison AddOrder de l’API REST ou addOrder de l’API WebSocket, le paramètre d’entrée validate peut être utilisé pour simuler l’ordre.

Lorsque le point de terminaison AddOrder/addOrder est appelé avec le paramètre validate défini sur true (validate=1, validate=true, validate=anything, etc.), les détails de l’ordre sont vérifiés pour détecter d’éventuelles erreurs, mais la réponse de l’API ne contiendra jamais d’ID d’ordre (contrairement à une commande réussie sans le paramètre validate, qui en contiendra toujours un).

Exemple d’un appel à AddOrder avec le paramètre validate (notez l’absence de l’ID d’ordre) :

bash

Bash

$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=market volume=5000 validate=true{"error":[],"result":{"descr":{"order":"buy 5000.00000000 XDGUSD @ market"}}}

Petits ordres réels et/ou ordres à des prix extrêmes

Pour effectuer un test API complet avec le paramètre Validate, nous vous recommandons de passer de très petits ordres au marché (ordres correspondant à la taille minimale d’ordre) ou des ordres à cours limité qui sont fixés loin du prix du marché actuel (par exemple, passer un ordre à cours limité de vente ETH/USD à 800 $ alors que le prix du marché se situe à 200 $).

Effectuer des tests avec des ordres en direct permet à votre code API d’interagir avec notre API dans des conditions réelles. Par conséquent, chaque aspect du test sera fiable (notamment l’impact de vos ordres sur le carnet d’ordres).

Pour des raisons de sécurité, nous avons récemment abandonné le support de TLS 1.0 et 1.1. Si vous rencontrez des messages d’erreur de connexion SSL/TLS en essayant de vous connecter à notre API, cela est probablement dû à l’utilisation d’une de ces normes dépréciées. Vous devrez modifier votre client API pour forcer l’utilisation de TLS 1.2/1.3 ou mettre à niveau votre version de .NET à 4.6 ou plus, qui utilise TLS 1.2/1.3 comme norme.

La feuille de calcul Google suivante peut être utilisée pour calculer la signature d’authentification de REST API pour toute combinaison de données d’entrée :

  • Clé API privée (secrète)

  • Point de terminaison de l’API (Balance, TradeBalance, QueryOrders, etc.)

  • Valeur de nonce (voir notre page d’assistance Qu’est-ce qu’un nonce pour obtenir plus de détails)

  • Paramètres d’entrée du point de terminaison (asset=doge, par exemple)

La calculatrice peut être utilisée pour vérifier que l’algorithme d’authentification a été correctement implémenté, évitant ainsi des problèmes potentiels (notamment des erreurs de clé invalide inattendues) plus tard dans le cycle de développement.

Mode d’emploi

  1. 1

    Ouvrez la calculatrice d’authentification de REST API dans Chrome (ou tout autre navigateur Internet récent)

  2. 2

    Faites une copie de la calculatrice sur votre propre Google Drive via le menu Fichier -> Créez une copie (vous devrez vous connecter à votre compte Google pour cette étape)

  3. 3

    Modifiez les champs clé API, point de terminaison API, valeur de nonce et données d’entrée avec votre propre clé API et les détails de la demande

  4. 4

    Comparez la signature d’authentification API calculée avec la valeur calculée par votre propre code API (les deux valeurs doivent correspondre exactement)

Pour des raisons de sécurité, nous recommandons d’utiliser la calculatrice d’authentification avec une clé API temporaire, puis de supprimer la clé API de votre compte une fois que l’implémentation de votre signature d’authentification est prouvée correcte.

Exemple

Screenshot_2021-06-21_at_14.42.35.png

Le principal avantage de nos wrappers de bibliothèque client est qu’ils vous évitent de consacrer du temps et des efforts à recréer des signatures API, cette étape est déjà prise en charge pour vous.

Si vous avez seulement l’intention d’appeler des méthodes publiques, vous pouvez choisir de ne pas utiliser de bibliothèques client, car aucune authentification n’est requise

Vous pouvez consulter la liste des wrappers disponibles ici.

Besoin d’aide supplémentaire ?