Często Zadawane Pytania na temat zaawansowanych API

Last updated: 25 lis 2025

Korzystając z punktów końcowych REST API dotyczących finansowania, klienci mogą wpłacać/wypłacać środki na swoje konto Kraken oraz sprawdzać status transakcji wpłaty/wypłaty w czasie rzeczywistym.

Wpłaty/wypłaty przechodzą przez kilka etapów między początkowym żądaniem a zakończeniem transakcji, dlatego punkty końcowe finansowania będą zwracać różne wartości statusu w zależności od momentu ich wywołania.

Należy zauważyć, że wartości statusu pochodziły pierwotnie ze stron 16/17 dokumentu Internet Financial Exchange Protocol (IFEX), ale wartości zostały nieco zmodyfikowane, aby były bardziej odpowiednie do transakcji krypto (nie wszystkie możliwe wartości statusu są używane, na przykład).

Wpłaty

Możliwe wartości statusu dla transakcji wpłaty są następujące:

  • Rozliczona = Wpłata została odebrana, ale nadal wymaga dodatkowych potwierdzeń w blockchainie.

  • Powodzenie = Wpłata osiągnęła wymaganą liczbę potwierdzeń w blockchainie.

  • Niepowodzenie = Wpłata nie powiodła się (z jednego lub kilku powodów).

Poniżej przedstawiamy kilka przykładów tego, jak powyższe wartości statusu mogą wyglądać w odpowiedziach z punktu końcowego DepositStatus:

Status rozliczony:{"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"}]}

Status powodzenia:{"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"}]}

Wypłaty

Możliwe wartości statusu dla transakcji wypłaty są następujące:

  • Początkowy = Żądanie wypłaty zostało odebrane i jest sprawdzane pod kątem ważności (jakiekolwiek ograniczenia finansowe na koncie itp.).

  • Oczekujące = Wypłata czeka na przetworzenie przez naszą bramkę finansową.

  • Rozliczone = Wypłata została wysłana do blockchaina (w tym momencie ID transakcji blockchaina stanie się dostępne).

  • Powodzenie = Transakcja wypłaty ma co najmniej 1 potwierdzenie w blockchainie.

  • Wstrzymana = Wypłata została wstrzymana i musi zostać ręcznie sprawdzona przez nasz zespół finansowania.

  • Niepowodzenie = Wypłata nie powiodła się (z jednego lub kilku powodów).

Poniżej przedstawiamy kilka przykładów tego, jak powyższe wartości statusu mogą wyglądać w odpowiedziach z punktu końcowego WithdrawStatus:

Status początkowy:{"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"}]}

Status oczekujący:{"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"}]}

Status rozliczony:{"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"}]}

Status powodzenia:{"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"}]}

Status błędu:{"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"}]}}

Dodatkowe informacje dotyczące wpłat/wypłat są dostępne na naszych stronach wsparcia finansowanie gotówkowego i finansowania krypto.

Punkt końcowy REST API OHLC udostępnia jedynie ograniczoną ilość danych historycznych, a konkretnie 720 punktów danych z żądanego przedziału czasowego. Na przykład, żądanie danych OHLC w interwałach 1-minutowych zwróci najnowsze 720 minut (12 godzin) danych.

Dla aplikacji, które wymagają dodatkowych danych OHLC lub danych tick, możliwe jest pobranie całej historii transakcji na naszych rynkach (historycznych danych dotyczących czasu i sprzedaży) za pośrednictwem punktu końcowego REST API Trades. OHLC dla dowolnego przedziału czasowego i dowolnego interwału można następnie utworzyć na podstawie danych historycznych czasów i sprzedaży.

Punkt końcowy Trades przyjmuje opcjonalny parametr o nazwie since, który określa początkową datę/godzinę danych. Wartość since to znacznik czasu UNIX w rozdzielczości nanosekund (standardowy znacznik czasu UNIX w sekundach z 9 dodatkowymi cyframi).

Na przykład wywołanie punktu końcowego Trades, takiego jak https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 zwróciłby historyczny czas i sprzedaż dla XBT/USD od 1 czerwca 2019 r. o godz. 00:00:00 czasu 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"}}

Kolejne wywołania punktu końcowego Trades powinny zastąpić wartość parametru since wartością parametru last z wyników poprzedniego wywołania, takiego jak https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

Użycie specjalnej wartości since równej 0 (zero) zwróci historyczne czasy i sprzedaż od początku rynku (począwszy od pierwszej transakcji).

Numer referencyjny użytkownika to identyfikator zlecenia podany przez klienta, który może być używany zamiast rzeczywistego identyfikatora zamówienia (podanego przez API) w niektórych zadaniach związanych z zarządzaniem zleceniami (zwłaszcza w przypadku anulowania zleceń).

Odwołania użytkownika są zaimplementowane tak, aby były jak najbardziej elastyczne i dlatego mogą być wykorzystywane na wiele różnych sposobów, w tym:

  • jako unikalny identyfikator (gdzie każde zlecenie ma inne odniesienie do użytkownika),

  • do grupowania powiązanych zleceń (na przykład grupowanie zleceń z różnymi poziomami dźwigni),

  • lub jako identyfikator zapasowy w przypadku, gdy rzeczywisty identyfikator zlecenia nie jest znany.

Odniesienie do użytkownika musi być wartością liczbową z przedziału od 1 do 2 147 483 647 (zasadniczo dowolną dodatnią liczbą 32-bitową) i dlatego może być zaimplementowane jako prosty licznik, jako losowa wartość 32-bitowa ze znakiem lub nawet jako znacznik czasu w sekundach (chociaż to nie będzie działać po 19 stycznia 2038 r. o godz. 3:14:07 czasu UTC).

Składanie zleceń z odniesieniem do użytkownika

Zlecenia można składać z dołączonym odniesieniem do użytkownika, wywołując punkt końcowy AddOrder i dołączając parametr userref z odniesieniem do użytkownika jako wartością:

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

Wyświetlanie zleceń które mają odniesienie do użytkownika

Zlecenia, które już mają dołączone odniesienie do użytkownika, można przeglądać, wywołując punkty końcowe Open/Closed/QueryOrders i dołączając parametr userref z istniejącym odniesieniem do użytkownika jako wartością (w tym przypadku odniesienie do użytkownika działa jako filtr, wyświetlając tylko powiązane zlecenia):

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

Anulowanie zleceń, które mają odniesienie do użytkownika

Zlecenia, które już mają dołączone odniesienie do użytkownika, można anulować, używając odniesienia do użytkownika, wywołując punkt końcowy CancelOrder i używając odniesienia do użytkownika jako wartości txid (zamiast wartości identyfikatora zlecenia):

$ ./krakenapi CancelOrder txid=16764529

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

Zauważ, że wszystkie otwarte zlecenia z tym samym odniesieniem do użytkownika zostaną anulowane, dlatego możliwe jest wykonanie pojedynczego wywołania CancelOrder w celu jednoczesnego anulowania wielu zleceń (jak wskazuje wartość count wynosząca 3 w poniższej odpowiedzi):

$ ./krakenapi CancelOrder txid=48695624

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

This issue may be related to Cloudflare:

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

NOTE: Kraken has the "Browser Integrity Check" enabled.

This may occur if your request contains suspicious headers. For example, your request may be missing a user agent, or use a non-standard user agent; so please check your request headers.

If you're unable to create any standard requests that our system permits, send us a full copy of the request(s) that you're attempting, including your IP address and all headers. This information would allow us to investigate further.

API kontraktów futures

Dla naszych interfejsów API Futures REST i WebSocket (futures.kraken.com) oferujemy pełne środowisko testowe z użyciem adresu URL API demo-futures.kraken.com.

Środowiska testowe REST, WebSocket i FIX

W przypadku naszych interfejsów REST/WebSocket API i FIX API oferujemy obecnie środowisko testowe dla kwalifikujących się klientów. Dostęp do tego środowiska wymaga procesu wdrożenia, który można rozpocząć, bezpośrednio, kontaktując się z zespołem API.

Testowanie naszego API przy użyciu parametru testowego validate

Podczas składania zamówienia za pośrednictwem punktów końcowych REST API AddOrder lub WebSocket API addOrder można użyć parametru wejściowego walidatora do symulacji zamówienia.

Wywołanie funkcji AddOrder/addOrder z parametrem validate ustawionym na true (validate=1, validate=true, validate=anything itp.) spowoduje sprawdzenie szczegółów zlecenia pod kątem błędów, ale odpowiedź API nigdy nie będzie zawierała identyfikatora zlecenia (który byłby zawsze zwracany w przypadku pomyślnego zlecenia bez parametru validate).

Przykład wywołania AddOrder z parametrem validate (zauważ brak identyfikatora zlecenia):

bash

Bash

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

Małe rzeczywiste zlecenie i/lub zlecenie z ekstremalnymi cenami

W celu przeprowadzenia kompleksowego testu API przy użyciu parametru validate zalecamy składanie bardzo małych zleceń rynkowych (zlecenia o minimalnej wielkości) lub zleceń limit z ceną znacznie odbiegającą od aktualnej ceny rynkowej (na przykład złożenie zlecenia limit w celu sprzedaży ETH/USD po 800 USD, gdy cena rynkowa wynosi 200 USD).

Testowanie przy użyciu zleceń na żywo pozwala kodowi API na interakcję z naszym API w rzeczywistych warunkach, dlatego każdy aspekt testu będzie dokładny (jak Twoje zlecenia wpływają na księgę zleceń itp.).

Ze względów bezpieczeństwa niedawno zrezygnowaliśmy z obsługi protokołów TLS 1.0 i 1.1. Jeśli podczas próby połączenia się z naszym API pojawiają się komunikaty o błędach połączenia SSL/TLS, prawdopodobnie wynika to z użycia jednego z tych przestarzałych standardów. W takim wypadku należy zmodyfikować swojego klienta API, aby wymusić użycie TLS 1.2/1.3 lub zaktualizować swoją wersję .NET do 4.6 lub wyższej, która używa TLS 1.2/1.3 jako standardu.

Można skorzystać z poniższego arkusza Google do obliczenia podpisu uwierzytelniającego REST API dla dowolnej kombinacji danych wejściowych:

  • Prywatny (sekretny) klucz API

  • Punkt końcowy API (Saldo, TradeBalance, QueryOrders, itp.)

  • Wartość nonce (zobacz naszą stronę wsparcia co to jest nonce, aby uzyskać więcej szczegółów)

  • Parametry wejściowe punktu końcowego (np.asset=doge)

Kalkulator może służyć do weryfikacji poprawności implementacji algorytmu uwierzytelniania, co pozwala uniknąć potencjalnych problemów (zwłaszcza nieoczekiwanych błędów związanych z nieprawidłowym kluczem) w dalszej części cyklu rozwoju.

Instrukcje użytkowania

  1. 1

    Otwórz kalkulator uwierzytelniania REST API w przeglądarce Chrome (lub w innej nowoczesnej przeglądarce internetowej)

  2. 2

    Zrób kopię kalkulatora na swoim Dysku Google za pomocą menu Plik -> Zrób kopię (w tym kroku konieczne będzie zalogowanie się na swoje konto Google)

  3. 3

    Edytuj pola klucz API, punkt końcowy API, wartość nonce i dane wejściowe swoimi własnymi danymi API i szczegółami żądania

  4. 4

    Porównaj obliczony podpis uwierzytelniający API z wartością obliczoną przez własny kod API (obie wartości muszą być identyczne).

Z powodów bezpieczeństwa zalecamy korzystanie z kalkulatora uwierzytelniania z tymczasowym kluczem API, a następnie usunięcie klucza API ze swojego konta, gdy implementacja podpisu uwierzytelniającego zostanie potwierdzona jako poprawna.

Przykład

Screenshot_2021-06-21_at_14.42.35.png

Główną zaletą korzystania z naszych bibliotek klienckich jest to, że nie musisz poświęcać czasu i wysiłku na tworzenie podpisów API od podstaw — zostało to już za Ciebie zrobione.

Jeśli zamierzasz korzystać wyłącznie z metod publicznych, możesz zrezygnować z bibliotek klienckich, ponieważ nie wymagają one uwierzytelniania.

Listę dostępnych wrapperów można znaleźć tutaj.

Potrzebujesz więcej pomocy?