Συχνές ερωτήσεις για το Advanced API

Τελευταία ενημέρωση: 25 Νοεμβρίου 2025

Χρησιμοποιώντας τα REST API funding endpoints, οι πελάτες μπορούν να καταθέτουν/αναλαμβάνουν κεφάλαια από/προς τον λογαριασμό τους στην Kraken και να ζητούν την κατάσταση σε πραγματικό χρόνο μιας συναλλαγής κατάθεσης/ανάληψης.

Οι καταθέσεις/αναλήψεις περνούν από διάφορα στάδια μεταξύ της αρχικής αίτησης και της ολοκλήρωσης της συναλλαγής, επομένως τα funding endpoints θα επιστρέφουν διαφορετική τιμή κατάστασης ανάλογα με το πότε καλούνται.

Σημειώστε ότι οι τιμές κατάστασης προήλθαν αρχικά από τις σελίδες 16/17 του εγγράφου Internet Financial Exchange Protocol (IFEX), αλλά οι τιμές έχουν τροποποιηθεί ελαφρώς ώστε να είναι πιο κατάλληλες για συναλλαγές crypto (για παράδειγμα, δεν χρησιμοποιούνται όλες οι πιθανές τιμές κατάστασης).

Καταθέσεις

Οι πιθανές τιμές κατάστασης για τις συναλλαγές κατάθεσης είναι οι εξής:

  • Settled = Η κατάθεση έχει παραληφθεί αλλά χρειάζεται ακόμα επιπλέον επιβεβαιώσεις στο blockchain.

  • Success = Η κατάθεση έχει επιτύχει τον απαιτούμενο αριθμό επιβεβαιώσεων στο blockchain.

  • Failure = Η κατάθεση απέτυχε (για έναν ή περισσότερους από διάφορους λόγους).

Ακολουθούν ορισμένα παραδείγματα του πώς θα εμφανίζονταν οι παραπάνω τιμές κατάστασης στις απαντήσεις από το DepositStatus endpoint:

Settled status:{"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"}]}

Success status:{"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"}]}

Αναλήψεις

Οι πιθανές τιμές κατάστασης για τις συναλλαγές ανάληψης είναι οι εξής:

  • Initial = Το αίτημα ανάληψης έχει παραληφθεί και ελέγχεται για εγκυρότητα (τυχόν περιορισμοί χρηματοδότησης στον λογαριασμό, κ.λπ.).

  • Pending = Η ανάληψη αναμένει να επεξεργαστεί από την πύλη χρηματοδότησής μας.

  • Settled = Η ανάληψη έχει σταλεί στο blockchain (σε αυτό το σημείο το αναγνωριστικό συναλλαγής blockchain θα γίνει διαθέσιμο).

  • Success = Η συναλλαγή ανάληψης έχει τουλάχιστον 1 επιβεβαίωση στο blockchain.

  • On hold = Η ανάληψη έχει τεθεί σε αναμονή και πρέπει να ελεγχθεί χειροκίνητα από την ομάδα χρηματοδότησής μας.

  • Failure = Η ανάληψη απέτυχε (για έναν ή περισσότερους από διάφορους λόγους).

Ακολουθούν ορισμένα παραδείγματα του πώς θα εμφανίζονταν οι παραπάνω τιμές κατάστασης στις απαντήσεις από το WithdrawStatus endpoint:

Initial status:{"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"}]}

Pending status:{"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"}]}

Settled status:{"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"}]}

Success status:{"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"}]}

Failure status:{"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"}]}

Πρόσθετες πληροφορίες σχετικά με τις καταθέσεις/αναλήψεις είναι διαθέσιμες μέσω των σελίδων υποστήριξης χρηματοδότησης με μετρητά και χρηματοδότησης με crypto.

Το REST API OHLC endpoint παρέχει μόνο περιορισμένο όγκο ιστορικών δεδομένων, συγκεκριμένα 720 σημεία δεδομένων του ζητούμενου διαστήματος. Για παράδειγμα, η ζήτηση δεδομένων OHLC σε διαστήματα 1 λεπτού θα επιστρέψει τα πιο πρόσφατα 720 λεπτά (12 ώρες) δεδομένων.

Για εφαρμογές που απαιτούν επιπλέον δεδομένα OHLC ή tick, είναι δυνατή η ανάκτηση ολόκληρου του ιστορικού συναλλαγών των αγορών μας (το ιστορικό χρόνου και πωλήσεων) μέσω του REST API Trades endpoint. Το OHLC για οποιοδήποτε χρονικό πλαίσιο και οποιοδήποτε διάστημα μπορεί στη συνέχεια να δημιουργηθεί από τα ιστορικά δεδομένα χρόνου και πωλήσεων.

Το Trades endpoint δέχεται μια προαιρετική παράμετρο με το όνομα since, η οποία καθορίζει την ημερομηνία/ώρα έναρξης των δεδομένων. Η τιμή since είναι ένα UNIX timestamp σε ανάλυση νανοδευτερολέπτων (ένα τυπικό UNIX timestamp σε δευτερόλεπτα με 9 επιπλέον ψηφία).

Για παράδειγμα, μια κλήση στο Trades endpoint όπως https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 θα επέστρεφε το ιστορικό χρόνου και πωλήσεων για XBT/USD από την 1η Ιουνίου 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"}}

Οι επόμενες κλήσεις στο Trades endpoint θα πρέπει να αντικαταστήσουν την τιμή της παραμέτρου since με την τιμή της παραμέτρου last από τα αποτελέσματα της προηγούμενης κλήσης, όπως https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

Χρησιμοποιώντας την ειδική τιμή since του 0 (μηδέν) θα επιστραφεί το ιστορικό χρόνου και πωλήσεων από την αρχή της αγοράς (ξεκινώντας από την πρώτη συναλλαγή).

Μια αναφορά χρήστη είναι ένα αναγνωριστικό παραγγελίας που παρέχεται από τον πελάτη και μπορεί να χρησιμοποιηθεί αντί του πραγματικού (παρεχόμενου από το API) αναγνωριστικού παραγγελίας για ορισμένες εργασίες διαχείρισης παραγγελιών (ιδίως την ακύρωση παραγγελιών).

Οι αναφορές χρήστη έχουν υλοποιηθεί ώστε να είναι όσο το δυνατόν πιο ευέλικτες και, ως εκ τούτου, μπορούν να χρησιμοποιηθούν με διάφορους τρόπους, συμπεριλαμβανομένων:

  • ως ένα μοναδικό αναγνωριστικό (όπου κάθε παραγγελία έχει διαφορετική αναφορά χρήστη),

  • για ομαδοποίηση σχετικών παραγγελιών (όπως ομαδοποίηση παραγγελιών με διαφορετικά επίπεδα μόχλευσης),

  • ή ως εφεδρικό αναγνωριστικό σε περίπτωση που το πραγματικό αναγνωριστικό παραγγελίας δεν είναι γνωστό.

Μια αναφορά χρήστη πρέπει να είναι μια αριθμητική τιμή μεταξύ 1 και 2.147.483.647 (ουσιαστικά οποιοσδήποτε θετικός αριθμός 32 bit) και, ως εκ τούτου, θα μπορούσε να υλοποιηθεί ως ένας απλός μετρητής, ως μια τυχαία τιμή 32 bit με πρόσημο, ή ακόμα και ως ένα timestamp σε δευτερόλεπτα (αν και αυτό θα αποτύγχανε μετά τις 19 Ιανουαρίου 2038 στις 3:14:07 UTC).

Τοποθέτηση παραγγελιών με αναφορά χρήστη

Οι παραγγελίες μπορούν να τοποθετηθούν με μια συνημμένη αναφορά χρήστη καλώντας το AddOrder endpoint και συμπεριλαμβάνοντας την παράμετρο userref με την αναφορά χρήστη ως τιμή:

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

Προβολή παραγγελιών που έχουν αναφορά χρήστη

Οι παραγγελίες που έχουν ήδη συνημμένη αναφορά χρήστη μπορούν να προβληθούν καλώντας τα Open/Closed/QueryOrders endpoints και συμπεριλαμβάνοντας την παράμετρο userref με την υπάρχουσα αναφορά χρήστη ως τιμή (σε αυτήν την περίπτωση η αναφορά χρήστη λειτουργεί ως φίλτρο, εμφανίζοντας μόνο τις σχετικές παραγγελίες):

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

Ακύρωση παραγγελιών που έχουν αναφορά χρήστη

Οι παραγγελίες που έχουν ήδη συνημμένη αναφορά χρήστη μπορούν να ακυρωθούν χρησιμοποιώντας την αναφορά χρήστη καλώντας το CancelOrder endpoint και χρησιμοποιώντας την αναφορά χρήστη ως τιμή txid (αντί της τιμής του αναγνωριστικού παραγγελίας):

$ ./krakenapi CancelOrder txid=16764529

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

Σημειώστε ότι όλες οι ανοιχτές παραγγελίες με την ίδια αναφορά χρήστη θα ακυρωθούν, επομένως είναι δυνατό να γίνει μία μόνο κλήση CancelOrder για την ταυτόχρονη ακύρωση πολλαπλών παραγγελιών (όπως υποδεικνύεται από την τιμή count του 3 στην ακόλουθη απάντηση):

$ ./krakenapi CancelOrder txid=48695624

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

Αυτό το ζήτημα μπορεί να σχετίζεται με το Cloudflare:

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

ΣΗΜΕΙΩΣΗ: Η Kraken έχει ενεργοποιημένο τον "Έλεγχο Ακεραιότητας Προγράμματος περιήγησης".

Αυτό μπορεί να συμβεί εάν το αίτημά σας περιέχει ύποπτες κεφαλίδες. Για παράδειγμα, το αίτημά σας μπορεί να μην έχει user agent ή να χρησιμοποιεί μη τυπικό user agent. Επομένως, ελέγξτε τις κεφαλίδες του αιτήματός σας.

Εάν δεν μπορείτε να δημιουργήσετε τυπικά αιτήματα που επιτρέπει το σύστημά μας, στείλτε μας ένα πλήρες αντίγραφο του/των αιτήματος/αιτημάτων που επιχειρείτε, συμπεριλαμβανομένης της διεύθυνσης IP σας και όλων των κεφαλίδων. Αυτές οι πληροφορίες θα μας επιτρέψουν να διερευνήσουμε περαιτέρω.

Futures API

Για τα Futures REST και WebSocket APIs (futures.kraken.com) προσφέρουμε ένα πλήρες περιβάλλον δοκιμών χρησιμοποιώντας το API URL demo-futures.kraken.com.

Περιβάλλοντα δοκιμών REST, WebSocket και FIX

Για το spot REST/WebSocket API και το FIX API, προσφέρουμε επί του παρόντος ένα περιβάλλον δοκιμών για ειδικευμένους πελάτες. Η πρόσβαση σε αυτό το περιβάλλον απαιτεί μια διαδικασία ενσωμάτωσης που μπορεί να ξεκινήσει με απευθείας επικοινωνία με την ομάδα API.

Δοκιμή του API μας χρησιμοποιώντας την παράμετρο δοκιμής Validate

Κατά την τοποθέτηση μιας εντολής μέσω των τελικών σημείων REST API AddOrder ή WebSocket API addOrder, η παράμετρος εισόδου validate μπορεί να χρησιμοποιηθεί για την προσομοίωση της εντολής.

Η κλήση AddOrder/addOrder με την παράμετρο validate να έχει οριστεί σε true (validate=1, validate=true, validate=anything, κ.λπ.) θα προκαλέσει τον έλεγχο των λεπτομερειών της εντολής για σφάλματα, αλλά η απόκριση του API δεν θα περιλαμβάνει ποτέ ένα order ID (το οποίο θα επιστρεφόταν πάντα για μια επιτυχημένη εντολή χωρίς την παράμετρο validate).

Παράδειγμα κλήσης AddOrder με την παράμετρο validate (σημειώστε το order ID που λείπει):

bash

Bash

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

Μικρές πραγματικές εντολές ή/και εντολές με ακραίες τιμές

Για μια ολοκληρωμένη δοκιμή API χρησιμοποιώντας την παράμετρο Validate, συνιστούμε την τοποθέτηση πολύ μικρών εντολών αγοράς (εντολές για το ελάχιστο μέγεθος εντολής), ή εντολών ορίου που έχουν τιμολογηθεί πολύ μακριά από την τρέχουσα τιμή αγοράς (για παράδειγμα, τοποθέτηση εντολής ορίου για πώληση ETH/USD στα 800 $ όταν η τιμή αγοράς είναι 200 $).

Η δοκιμή χρησιμοποιώντας ζωντανές εντολές επιτρέπει στον κώδικα API σας να αλληλεπιδρά με το API μας σε πραγματικές συνθήκες, επομένως κάθε πτυχή της δοκιμής θα είναι ακριβής (πώς οι εντολές σας επηρεάζουν το βιβλίο εντολών, κ.λπ.).

Για λόγους ασφαλείας, πρόσφατα καταργήσαμε την υποστήριξη για TLS 1.0 και 1.1. Εάν αντιμετωπίζετε μηνύματα σφάλματος σύνδεσης SSL/TLS κατά την προσπάθεια σύνδεσης στο API μας, είναι πιθανό να οφείλεται στη χρήση ενός από αυτά τα απαρχαιωμένα πρότυπα. Θα χρειαστεί να τροποποιήσετε τον API client σας για να επιβάλετε τη χρήση TLS 1.2/1.3 ή να αναβαθμίσετε την έκδοση του .NET σε 4.6 ή νεότερη, η οποία χρησιμοποιεί TLS 1.2/1.3 ως στάνταρ.

Το ακόλουθο Google Sheet μπορεί να χρησιμοποιηθεί για τον υπολογισμό της υπογραφής ελέγχου ταυτότητας REST API για οποιονδήποτε συνδυασμό δεδομένων εισόδου:

  • Ιδιωτικό (μυστικό) κλειδί API

  • Τελικό σημείο API (Balance, TradeBalance, QueryOrders, κ.λπ.)

  • Τιμή Nonce (δείτε τη σελίδα υποστήριξής μας τι είναι ένα nonce για περισσότερες λεπτομέρειες)

  • Παράμετροι εισόδου τελικού σημείου (π.χ. asset=doge)

Ο υπολογιστής μπορεί να χρησιμοποιηθεί για να επαληθεύσει ότι ο αλγόριθμος ελέγχου ταυτότητας έχει εφαρμοστεί σωστά, αποφεύγοντας έτσι πιθανά προβλήματα (ιδίως απροσδόκητα σφάλματα invalid key) αργότερα στον κύκλο ανάπτυξης.

Οδηγίες χρήσης

  1. 1

    Ανοίξτε τον υπολογιστή ελέγχου ταυτότητας REST API στο Chrome (ή σε οποιοδήποτε άλλο πρόσφατο web browser)

  2. 2

    Δημιουργήστε ένα αντίγραφο του υπολογιστή στο δικό σας Google Drive μέσω του μενού Αρχείο -> Δημιουργία αντιγράφου (θα χρειαστεί να συνδεθείτε στον λογαριασμό σας Google για αυτό το βήμα)

  3. 3

    Επεξεργαστείτε τα πεδία API key, API endpoint, nonce value και input data με το δικό σας API key και τις λεπτομέρειες αιτήματος

  4. 4

    Συγκρίνετε την υπολογισμένη υπογραφή ελέγχου ταυτότητας API με την τιμή που υπολογίζεται από τον δικό σας κώδικα API (οι δύο τιμές πρέπει να ταιριάζουν ακριβώς)

Για λόγους ασφαλείας, συνιστούμε να χρησιμοποιείτε τον υπολογιστή ελέγχου ταυτότητας με ένα προσωρινό API key και στη συνέχεια να διαγράφετε το API key από τον λογαριασμό σας μόλις αποδειχθεί ότι η υλοποίηση της υπογραφής ελέγχου ταυτότητας είναι σωστή.

Παράδειγμα

Screenshot_2021-06-21_at_14.42.35.png

Το κύριο όφελος από τη χρήση των client library wrappers μας είναι ότι δεν χρειάζεται να αφιερώσετε χρόνο/προσπάθεια για να επανεφεύρετε τον τροχό για τη δημιουργία υπογραφών API, καθώς αυτό έχει ήδη γίνει για εσάς.

Εάν σκοπεύετε να κάνετε κλήσεις μόνο σε public methods, τότε μπορείτε να επιλέξετε να μην χρησιμοποιήσετε client libraries, καθώς δεν απαιτείται έλεγχος ταυτότητας.

Τη λίστα των διαθέσιμων wrappers μπορείτε να τη βρείτε εδώ.

Χρειάζεστε περισσότερη βοήθεια;