Haladó API GYIK

Utolsó frissítés: 2025. november 25.

A REST API finanszírozási végpontok használatával az ügyfelek befizethetnek/kivehetnek pénzeszközöket Kraken számlájukra/számlájukról, és lekérdezhetik a befizetési/kifizetési tranzakció valós idejű állapotát.

A befizetések/kifizetések több szakaszon mennek keresztül a kezdeti kérelem és a tranzakció befejezése között, ezért a finanszírozási végpontok különböző állapotértéket adnak vissza attól függően, hogy mikor hívják meg őket.

Megjegyzendő, hogy az állapotértékek eredetileg az Internet Financial Exchange Protocol (IFEX) dokumentum 16/17. oldaláról származnak, de az értékeket kissé módosították, hogy jobban megfeleljenek a kriptotranzakcióknak (például nem minden lehetséges állapotérték kerül felhasználásra).

Befizetések

A befizetési tranzakciók lehetséges állapotértékei a következők:

  • Settled = A befizetés beérkezett, de még további megerősítésekre van szüksége a blokkláncon.

  • Success = A befizetés elérte a szükséges számú megerősítést a blokkláncon.

  • Failure = A befizetés sikertelen volt (különböző okok miatt).

Az alábbiakban néhány példa arra, hogyan jelennének meg a fenti állapotértékek a DepositStatus végpont válaszaiban:

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

Kifizetések

A kifizetési tranzakciók lehetséges állapotértékei a következők:

  • Initial = A kifizetési kérelem beérkezett, és érvényességét ellenőrzik (számlán lévő finanszírozási korlátozások stb.).

  • Pending = A kifizetés feldolgozásra vár a finanszírozási átjárónk által.

  • Settled = A kifizetés elküldésre került a blokkláncra (ekkor válik elérhetővé a blokklánc tranzakcióazonosítója).

  • Success = A kifizetési tranzakció legalább 1 megerősítéssel rendelkezik a blokkláncon.

  • On hold = A kifizetés felfüggesztésre került, és finanszírozási csapatunknak manuálisan ellenőriznie kell.

  • Failure = A kifizetés sikertelen volt (különböző okok miatt).

Az alábbiakban néhány példa arra, hogyan jelennének meg a fenti állapotértékek a WithdrawStatus végpont válaszaiban:

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

További információk a befizetésekről/kifizetésekről a készpénzes finanszírozás és a kripto finanszírozás támogatási oldalain találhatók.

A REST API OHLC végpont csak korlátozott mennyiségű történelmi adatot biztosít, konkrétan a kért intervallum 720 adatpontját. Például, ha 1 perces intervallumokban kér OHLC adatokat, az a legutóbbi 720 perc (12 óra) adatát adja vissza.

Azoknak az alkalmazásoknak, amelyek további OHLC vagy tick adatokra van szükségük, lehetőség van a piacaink teljes kereskedési előzményeinek (a történelmi idő és eladások) lekérésére a REST API Trades végponton keresztül. Az OHLC bármely időkeretre és bármely intervallumra ezután létrehozható a történelmi idő és eladási adatokból.

A Trades végpont egy opcionális since nevű paramétert fogad el, amely az adatok kezdő dátumát/idejét adja meg. A since érték egy UNIX időbélyeg nanomásodperc felbontással (egy szabványos UNIX időbélyeg másodpercben, 9 további számjeggyel).

Például egy hívás a Trades végpontra, mint például a https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000, az XBT/USD történelmi idő és eladási adatait adná vissza 2019. június 1-jétől 00:00:00 UTC-től:

{"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"}}

A Trades végpontra irányuló további hívásoknak a since paraméter értékét az előző hívás eredményeiből származó last paraméter értékével kell felülírni, például https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

A 0 (nulla) speciális since érték használata a piac kezdetétől (a legelső kereskedéstől kezdve) adná vissza a történelmi idő és eladási adatokat.

A felhasználói referencia egy ügyfél által megadott megbízásazonosító, amely a tényleges (API által biztosított) megbízásazonosító helyett használható egyes megbízáskezelési feladatokhoz (különösen a megbízások törléséhez).

A felhasználói referenciákat a lehető legrugalmasabbra tervezték, ezért többféleképpen is felhasználhatók, többek között:

  • egyedi azonosítóként (ahol minden megbízásnak más felhasználói referenciája van),

  • kapcsolódó megbízások csoportosítására (például különböző tőkeáttételi szintekkel rendelkező megbízások csoportosítására),

  • vagy biztonsági azonosítóként abban az esetben, ha a tényleges megbízásazonosító nem ismert.

A felhasználói referenciának 1 és 2 147 483 647 közötti numerikus értéknek kell lennie (lényegében bármilyen pozitív 32 bites szám), és ezért megvalósítható egyszerű számlálóként, véletlenszerű előjeles 32 bites értékként, vagy akár időbélyegként másodpercben (bár ez 2038. január 19-én 03:14:07 UTC után hibát okozna).

Megbízások leadása felhasználói referenciával

A megbízások felhasználói referenciával adhatók le az AddOrder végpont meghívásával és a userref paraméter felhasználói referenciaként való megadásával:

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

Megbízások megtekintése felhasználói referenciával

A már felhasználói referenciával rendelkező megbízások megtekinthetők az Open/Closed/QueryOrders végpontok meghívásával és a userref paraméter meglévő felhasználói referenciaként való megadásával (ebben az esetben a felhasználói referencia szűrőként működik, csak a kapcsolódó megbízásokat jeleníti meg):

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

Megbízások törlése felhasználói referenciával

A már felhasználói referenciával rendelkező megbízások törölhetők a felhasználói referencia használatával az CancelOrder végpont meghívásával és a felhasználói referencia txid értékként való használatával (a megbízásazonosító érték helyett):

$ ./krakenapi CancelOrder txid=16764529

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

Megjegyzendő, hogy az összes nyitott megbízás, amely ugyanazzal a felhasználói referenciával rendelkezik, törlésre kerülne, ezért lehetséges egyetlen CancelOrder hívással több megbízást egyidejűleg törölni (ahogy azt a következő válaszban a count érték 3 jelzi):

$ ./krakenapi CancelOrder txid=48695624

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

Ez a probléma a Cloudflare-rel lehet kapcsolatos:

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

MEGJEGYZÉS: A Kraken engedélyezte a „Browser Integrity Check” funkciót.

Ez akkor fordulhat elő, ha a kérés gyanús fejléceket tartalmaz. Például a kérésből hiányozhat egy felhasználói ügynök, vagy nem szabványos felhasználói ügynököt használ; ezért kérjük, ellenőrizze a kérés fejléceit.

Ha nem tud olyan szabványos kéréseket létrehozni, amelyeket rendszerünk engedélyez, küldje el nekünk a teljes kérés(ek) másolatát, beleértve az IP-címét és az összes fejlécet. Ez az információ lehetővé tenné számunkra a további vizsgálatot.

Futures API

A Futures REST és WebSocket API-jainkhoz (futures.kraken.com) teljes tesztkörnyezetet kínálunk a demo-futures.kraken.com API URL használatával.

REST, WebSocket és FIX tesztkörnyezetek

Spot REST/WebSocket API és FIX API-nkhoz jelenleg tesztkörnyezetet kínálunk minősített ügyfelek számára. Ennek a környezetnek az eléréséhez egy bevezetési folyamat szükséges, amelyet az API csapat közvetlen megkeresésével lehet elindítani.

API-nk tesztelése a Validate tesztelési paraméterrel

Amikor megbízást ad le a REST API AddOrder vagy WebSocket API addOrder végpontokon keresztül, a validate bemeneti paraméter használható a megbízás szimulálására.

Az AddOrder/addOrder meghívása a validate paraméter igazra állításával (validate=1, validate=true, validate=anything stb.) hibákra ellenőrzi a megbízás részleteit, de az API válasz soha nem tartalmaz megbízásazonosítót (amelyet sikeres megbízás esetén a validate paraméter nélkül mindig visszaadna).

Példa AddOrder hívás a validate paraméterrel (figyelje meg a hiányzó megbízásazonosítót):

bash

Bash

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

Kis valós megbízások és/vagy extrém áras megbízások

Átfogó API teszthez a Validate paraméter használatával javasoljuk nagyon kis piaci megbízások (a minimális megbízásméretnek megfelelő megbízások) vagy limit megbízások elhelyezését, amelyek messze vannak a jelenlegi piaci ártól (például egy limit megbízás elhelyezése ETH/USD eladására 800 dolláron, amikor a piaci ár 200 dollár).

Az élő megbízásokkal történő tesztelés lehetővé teszi, hogy az API kódja valós körülmények között kommunikáljon API-nkkel, így a teszt minden aspektusa pontos lesz (például, hogyan befolyásolják megbízásai a megbízáskönyvet).

Biztonsági okokból nemrégiben megszüntettük a TLS 1.0 és 1.1 támogatását. Ha SSL/TLS kapcsolati hibaüzenetekkel találkozik, amikor API-nkhez próbál csatlakozni, az valószínűleg ezen elavult szabványok egyikének használatából adódik. Módosítania kell az API kliensét, hogy kikényszerítse a TLS 1.2/1.3 használatát, vagy frissítenie kell a .NET verzióját 4.6-ra vagy újabbra, amely alapértelmezetten a TLS 1.2/1.3-at használja.

Az alábbi Google Sheet használható a REST API hitelesítési aláírás kiszámítására bármilyen bemeneti adatkombinációhoz:

  • API privát (titkos) kulcs

  • API végpont (Balance, TradeBalance, QueryOrders stb.)

  • Nonce érték (további részletekért lásd a mi az a nonce támogatási oldalunkat)

  • Végpont bemeneti paraméterek (például asset=doge)

A kalkulátor segítségével ellenőrizhető, hogy a hitelesítési algoritmus helyesen lett-e implementálva, elkerülve ezzel a lehetséges problémákat (különösen a váratlan érvénytelen kulcs hibákat) a fejlesztési ciklus későbbi szakaszában.

Használati útmutató

  1. 1

    Nyissa meg a REST API hitelesítési kalkulátort Chrome-ban (vagy bármely más friss webböngészőben)

  2. 2

    Készítsen másolatot a kalkulátorról a saját Google Drive-jára a Fájl -> Másolat készítése menüpont segítségével (ehhez be kell jelentkeznie Google fiókjába)

  3. 3

    Szerkessze az API kulcs, API végpont, nonce érték és bemeneti adatok mezőket saját API kulcsával és kérés részleteivel

  4. 4

    Hasonlítsa össze a kiszámított API hitelesítési aláírást a saját API kódja által kiszámított értékkel (a két értéknek pontosan meg kell egyeznie)

Biztonsági okokból javasoljuk, hogy az hitelesítési kalkulátort ideiglenes API kulccsal használja, majd törölje az API kulcsot fiókjából, miután a hitelesítési aláírás implementációja helyesnek bizonyult.

Példa

Screenshot_2021-06-21_at_14.42.35.png

Az ügyfélkönyvtár-burkolóink használatának elsődleges előnye, hogy nem kell időt/erőfeszítést fordítania az API aláírások létrehozásának újra feltalálására, ez már megtörtént Ön helyett.

Ha csak nyilvános metódusokat kíván hívni, akkor dönthet úgy, hogy lemond az ügyfélkönyvtárakról, mivel nincs szükség hitelesítésre.

Az elérhető burkolók listáját itt találja.

További segítségre van szükséged?