FAQ API avancée

Dernière mise à jour : 25 nov. 2025

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

Les dépôts/retraits passent par plusieurs étapes entre la demande initiale et la finalisation de la transaction. Par conséquent, les points de terminaison de financement renverront une valeur de statut différente selon le moment où ils sont appelés.

Notez que les valeurs de statut proviennent initialement des pages 16/17 du document Internet Financial Exchange Protocol (IFEX), mais elles ont été légèrement modifiées pour être plus adaptées aux transactions crypto (toutes les 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 :

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

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

  • Failure = 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 apparaîtraient dans les réponses du point de terminaison DepositStatus :

Statut Settled :{"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 Success :{"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 sa validité est en cours de vérification (restrictions de financement sur le compte, etc.).

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

  • Settled = Le retrait a été envoyé à la blockchain (à ce stade, l'ID de transaction de la blockchain deviendrait disponible).

  • Success = La transaction de retrait a au moins 1 confirmation sur la blockchain.

  • On hold = Le retrait a été mis en attente et doit être vérifié manuellement par notre équipe de financement.

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

Voici quelques exemples de la façon dont les valeurs de statut ci-dessus apparaîtraient dans les réponses du 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 Pending :{"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 Settled :{"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 Success :{"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 Failure :{"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"}]}

Des informations supplémentaires concernant les dépôts/retraits sont disponibles sur nos pages d'assistance financement en espèces et financement en cryptomonnaies.

Le point de terminaison OHLC de l'API REST ne fournit qu'une quantité limitée de données historiques, spécifiquement 720 points de données de l'intervalle demandé. Par exemple, demander des données OHLC par intervalles d'une minute renverra les 720 minutes (12 heures) de données les plus récentes.

Pour les applications qui nécessitent des données OHLC ou de tick supplémentaires, il est possible de récupérer l'historique complet des transactions de nos marchés (l'historique des temps et des ventes) via le point de terminaison Trades de l'API REST. L'OHLC pour n'importe quelle période et n'importe quel intervalle peut ensuite être créé à partir des données historiques des temps et des ventes.

Le point de terminaison Trades prend un paramètre optionnel nommé since, qui spécifie la date/heure de début des données. La valeur since est un horodatage UNIX à résolution nanoseconde (un horodatage UNIX standard en secondes avec 9 chiffres supplémentaires).

Par exemple, un appel au point de terminaison Trades tel que https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 renverrait l'historique des temps et des ventes pour XBT/USD à partir du 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 ultérieurs au point de terminaison Trades devraient remplacer la valeur du paramètre since par la valeur du paramètre last des résultats de l'appel précédent, comme https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

L'utilisation de la valeur spéciale since de 0 (zéro) renverrait l'historique des temps et des ventes depuis le début du marché (en commençant par la toute première transaction).

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

Les références utilisateur sont implémentées pour être aussi flexibles que possible et peuvent donc être utilisées de diverses manières, notamment :

  • comme un ID unique (où chaque commande a une référence utilisateur différente),

  • pour regrouper des commandes connexes (comme le regroupement de commandes avec différents niveaux de levier),

  • ou comme ID de secours dans le cas où l'ID de commande réel n'est pas connu.

Une référence utilisateur doit être une valeur numérique comprise entre 1 et 2 147 483 647 (essentiellement n'importe quel nombre positif de 32 bits), et pourrait donc être implémentée comme un simple compteur, comme une valeur aléatoire signée de 32 bits, ou même comme un horodatage en secondes (bien que cela échouerait après le 19 janvier 2038 à 3:14:07 UTC).

Passer des ordres avec une référence utilisateur

Les ordres peuvent être passés avec une référence utilisateur attachée en appelant le point de terminaison AddOrder et en incluant 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"]}}

Afficher les ordres qui ont une référence utilisateur

Les ordres qui ont déjà une référence utilisateur attachée 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, n'affichant que les ordres associés) :

$ ./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}}

Annuler les ordres qui ont une référence utilisateur

Les ordres qui ont déjà une référence utilisateur attachée peuvent être annulés en utilisant la référence utilisateur en appelant le point de terminaison CancelOrder et en utilisant la référence utilisateur comme valeur txid (à la place de la valeur de l'ID de commande) :

$ ./krakenapi CancelOrder txid=16764529

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

Notez que tous les ordres ouverts avec la même référence utilisateur seraient annulés, il est donc possible d'effectuer un seul appel CancelOrder pour annuler plusieurs ordres simultanément (comme indiqué par la valeur count de 3 dans la réponse suivante) :

$ ./krakenapi CancelOrder txid=48695624

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

Ce problème peut être lié à Cloudflare :

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

NOTE : Kraken a activé le « Browser Integrity Check ».

Cela peut se produire si votre requête contient des en-têtes suspects. Par exemple, votre requête peut ne pas avoir d'agent utilisateur, ou utiliser un agent utilisateur non standard ; veuillez donc vérifier vos en-têtes de requête.

Si vous ne parvenez pas à créer des requêtes standard que notre système autorise, envoyez-nous une copie complète de la ou des requêtes que vous tentez d'effectuer, y compris votre adresse IP et tous les en-têtes. Ces informations nous permettraient d'enquêter plus en détail.

API Futures

Pour nos API REST et WebSocket Futures (futures.kraken.com), nous proposons un environnement de test complet utilisant l'URL d'API demo-futures.kraken.com.

Environnements de test REST, WebSocket et FIX

Pour nos API REST/WebSocket et FIX spot, nous offrons actuellement un environnement de test pour les clients qualifiés. L'accès à cet environnement nécessite un processus d'intégration qui peut être initié en contactant directement l'équipe API.

Tester notre API à l'aide du paramètre de test Validate

Lorsque vous passez 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.

Appeler AddOrder/addOrder avec le paramètre validate défini sur true (validate=1, validate=true, validate=anything, etc.) entraînera la vérification des détails de l'ordre pour les erreurs, mais la réponse de l'API n'inclura jamais d'ID d'ordre (qui serait toujours renvoyé pour un ordre réussi sans le paramètre validate).

Exemple d'appel AddOrder avec le paramètre validate (notez l'ID d'ordre manquant) :

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 à prix extrêmes

Pour un test API complet utilisant le paramètre Validate, nous vous recommandons de placer de très petits ordres au marché (ordres pour la taille d'ordre minimale), ou des ordres à cours limité dont le prix est très éloigné du prix actuel du marché (par exemple, placer un ordre à cours limité pour vendre de l'ETH/USD à 800 $ lorsque le prix du marché est de 200 $).

Les tests utilisant des ordres réels permettent à votre code API d'interagir avec notre API dans des conditions réelles, ainsi chaque aspect du test sera précis (comment vos ordres affectent le carnet d'ordres, etc.).

Pour des raisons de sécurité, nous avons récemment abandonné la prise en charge 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 de l'une de ces normes obsolètes. Vous devrez modifier votre client API pour forcer l'utilisation de TLS 1.2/1.3 ou mettre à niveau votre version de .NET vers la version 4.6 ou supérieure, qui utilise TLS 1.2/1.3 en standard.

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

  • Clé privée (secrète) de l'API

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

  • Valeur Nonce (consultez notre page d'assistance qu'est-ce qu'un nonce pour plus de détails)

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

Le calculateur peut être utilisé 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.

Instructions d'utilisation

  1. 1

    Ouvrez le calculateur d'authentification de l'API REST dans Chrome (ou tout autre navigateur web récent)

  2. 2

    Faites une copie du calculateur sur votre propre Google Drive via le menu Fichier -> Faire une copie (vous devrez vous connecter à votre compte Google pour cette étape)

  3. 3

    Modifiez les champs clé API, point de terminaison API, valeur nonce et données d'entrée avec votre propre clé API et les détails de votre requête

  4. 4

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

Pour des raisons de sécurité, nous vous recommandons d'utiliser le calculateur 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 s'est avérée correcte.

Exemple

Screenshot_2021-06-21_at_14.42.35.png

Le principal avantage de l'utilisation de nos wrappers de bibliothèque client est que vous n'avez pas besoin de consacrer du temps/des efforts à réinventer la roue pour créer des signatures API, c'est déjà fait pour vous.

Si vous n'avez l'intention de faire des appels qu'à des méthodes publiques, vous pouvez choisir de ne pas utiliser les bibliothèques client car aucune authentification n'est nécessaire.

La liste des wrappers disponibles se trouve ici.

Besoin d’aide supplémentaire ?