Geavanceerde API FAQ

Laatst bijgewerkt: 25 nov 2025

Met behulp van de REST API funding endpoints kunnen klanten geld storten/opnemen van/naar hun Kraken-account en de realtime status van een stortings-/opnametransactie opvragen.

Stortingen/opnames doorlopen verschillende fasen tussen de initiële aanvraag en de voltooiing van de transactie. Daarom zullen de funding endpoints een andere statuswaarde retourneren, afhankelijk van wanneer ze worden aangeroepen.

Merk op dat de statuswaarden oorspronkelijk afkomstig waren van pagina's 16/17 van het Internet Financial Exchange Protocol (IFEX)-document, maar de waarden zijn enigszins aangepast om beter geschikt te zijn voor cryptotransacties (niet alle mogelijke statuswaarden worden bijvoorbeeld gebruikt).

Stortingen

De mogelijke statuswaarden voor stortingstransacties zijn als volgt:

  • Afgehandeld = Storting is ontvangen, maar heeft nog aanvullende bevestigingen op de blockchain nodig.

  • Succes = Storting heeft het vereiste aantal bevestigingen op de blockchain bereikt.

  • Mislukt = Storting is mislukt (om een of meer van verschillende redenen).

Hieronder volgen enkele voorbeelden van hoe de bovenstaande statuswaarden zouden verschijnen in antwoorden van het DepositStatus-endpoint:

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

Opnames

De mogelijke statuswaarden voor opnametransacties zijn als volgt:

  • Initieel = Opnameverzoek is ontvangen en wordt gecontroleerd op geldigheid (eventuele financieringsbeperkingen op de rekening, enz.).

  • In afwachting = Opname wacht op verwerking door onze funding gateway.

  • Afgehandeld = Opname is naar de blockchain verzonden (op dit punt zou de blockchain transactie-ID beschikbaar komen).

  • Succes = Opnametransactie heeft ten minste 1 bevestiging op de blockchain.

  • In de wacht = Opname is in de wacht gezet en moet handmatig worden gecontroleerd door ons fundingteam.

  • Mislukt = Opname is mislukt (om een of meer van verschillende redenen).

Hieronder volgen enkele voorbeelden van hoe de bovenstaande statuswaarden zouden verschijnen in antwoorden van het WithdrawStatus-endpoint:

Status Initieel:{"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 In afwachting:{"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 Afgehandeld:{"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 Succes:{"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 Mislukt:{"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"}]}

Aanvullende informatie over stortingen/opnames is beschikbaar via onze contante financiering en cryptofinanciering ondersteuningspagina's.

Het REST API OHLC-endpoint biedt slechts een beperkte hoeveelheid historische gegevens, specifiek 720 datapunten van het gevraagde interval. Als je bijvoorbeeld OHLC-gegevens opvraagt in intervallen van 1 minuut, krijg je de meest recente 720 minuten (12 uur) aan gegevens terug.

Voor applicaties die aanvullende OHLC- of tick-gegevens vereisen, is het mogelijk om de volledige handelshistorie van onze markten (de historische tijd en verkopen) op te vragen via het REST API Trades-endpoint. De OHLC voor elk tijdsbestek en elk interval kan vervolgens worden gecreëerd uit de historische tijd- en verkoopgegevens.

Het Trades-endpoint accepteert een optionele parameter genaamd since, die de startdatum/tijd van de gegevens specificeert. De since-waarde is een UNIX-timestamp met nanosecondenresolutie (een standaard UNIX-timestamp in seconden met 9 extra cijfers).

Een aanroep naar het Trades-endpoint, zoals https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000, zou bijvoorbeeld de historische tijd en verkopen voor XBT/USD retourneren vanaf 1 juni 2019 om 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"}}

Latere aanroepen naar het Trades-endpoint moeten de waarde van de since-parameter vervangen door de waarde van de last-parameter uit de resultaten van de vorige aanroep, zoals https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

Het gebruik van de speciale since-waarde 0 (nul) zou de historische tijd en verkopen vanaf het begin van de markt retourneren (beginnend met de allereerste transactie).

Een gebruikersreferentie is een door de klant opgegeven order-ID die kan worden gebruikt in plaats van de werkelijke (door de API geleverde) order-ID voor sommige ordermanagementtaken (met name het annuleren van orders).

Gebruikersreferenties zijn zo flexibel mogelijk geïmplementeerd en kunnen daarom op verschillende manieren worden gebruikt, waaronder:

  • als een unieke ID (waarbij elke order een andere gebruikersreferentie heeft),

  • om gerelateerde orders te groeperen (zoals het groeperen van orders met verschillende hefboomniveaus),

  • of als een back-up-ID voor het geval de werkelijke order-ID niet bekend is.

Een gebruikersreferentie moet een numerieke waarde zijn tussen 1 en 2.147.483.647 (in wezen elk positief 32-bits getal), en kan daarom worden geïmplementeerd als een eenvoudige teller, als een willekeurige ondertekende 32-bits waarde, of zelfs als een timestamp in seconden (hoewel dit na 19 januari 2038 om 3:14:07 UTC zou falen).

Orders plaatsen met een gebruikersreferentie

Orders kunnen worden geplaatst met een gekoppelde gebruikersreferentie door het AddOrder-endpoint aan te roepen en de parameter userref met de gebruikersreferentie als waarde op te nemen:

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

Orders bekijken die een gebruikersreferentie hebben

Orders waaraan al een gebruikersreferentie is gekoppeld, kunnen worden bekeken door de Open/Closed/QueryOrders-endpoints aan te roepen en de parameter userref met de bestaande gebruikersreferentie als waarde op te nemen (in dit geval fungeert de gebruikersreferentie als een filter, waarbij alleen de bijbehorende orders worden weergegeven):

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

Orders annuleren die een gebruikersreferentie hebben

Orders waaraan al een gebruikersreferentie is gekoppeld, kunnen worden geannuleerd met behulp van de gebruikersreferentie door het CancelOrder-endpoint aan te roepen en de gebruikersreferentie te gebruiken als de txid-waarde (in plaats van de order-ID-waarde):

$ ./krakenapi CancelOrder txid=16764529

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

Merk op dat alle openstaande orders met dezelfde gebruikersreferentie worden geannuleerd, vandaar dat het mogelijk is om één CancelOrder-aanroep te doen om meerdere orders tegelijk te annuleren (zoals aangegeven door de count-waarde van 3 in de volgende reactie):

$ ./krakenapi CancelOrder txid=48695624

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

Dit probleem kan gerelateerd zijn aan Cloudflare:

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

OPMERKING: Kraken heeft de "Browser Integrity Check" ingeschakeld.

Dit kan gebeuren als je verzoek verdachte headers bevat. Je verzoek mist bijvoorbeeld een user agent, of gebruikt een niet-standaard user agent; controleer daarom je request headers.

Als je geen standaardverzoeken kunt aanmaken die ons systeem toestaat, stuur ons dan een volledige kopie van de verzoek(en) die je probeert te doen, inclusief je IP-adres en alle headers. Deze informatie stelt ons in staat om verder onderzoek te doen.

Futures API

Voor onze Futures REST en WebSocket API's (futures.kraken.com) bieden we een volledige testomgeving aan met de API URL demo-futures.kraken.com.

REST-, WebSocket- en FIX-testomgevingen

Voor onze spot REST/WebSocket API en FIX API bieden we momenteel een testomgeving aan voor gekwalificeerde klanten. Toegang tot deze omgeving vereist een onboardingproces dat kan worden gestart door rechtstreeks contact op te nemen met het API-team.

Onze API testen met de Validate Testing Parameter

Bij het plaatsen van een order via de REST API AddOrder of WebSocket API addOrder endpoints, kan de validate invoerparameter worden gebruikt om de order te simuleren.

Het aanroepen van AddOrder/addOrder met de validate parameter ingesteld op true (validate=1, validate=true, validate=anything, enz.) zorgt ervoor dat de orderdetails worden gecontroleerd op fouten, maar de API-respons zal nooit een order ID bevatten (wat altijd zou worden geretourneerd voor een succesvolle order zonder de validate parameter).

Voorbeeld AddOrder aanroep met de validate parameter (let op het ontbrekende 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"}}}

Kleine echte orders en/of orders met extreme prijzen

Voor een uitgebreide API-test met de Validate Parameter raden we aan zeer kleine marktorders te plaatsen (orders voor de minimale ordergrootte), of limietorders die ver verwijderd zijn van de huidige marktprijs (bijvoorbeeld een limietorder plaatsen om ETH/USD te verkopen voor $800 wanneer de marktprijs $200 is).

Testen met live orders stelt je API-code in staat om te interageren met onze API onder reële omstandigheden, waardoor elk aspect van de test nauwkeurig zal zijn (hoe je orders het orderboek beïnvloeden, enz.).

Om veiligheidsredenen hebben we onlangs de ondersteuning voor TLS 1.0 en 1.1 stopgezet. Als je SSL/TLS-verbindingsfoutmeldingen tegenkomt bij het proberen te verbinden met onze API, is dit waarschijnlijk te wijten aan het gebruik van een van deze verouderde standaarden. Je moet je API-client aanpassen om het gebruik van TLS 1.2/1.3 af te dwingen of je versie van .NET upgraden naar 4.6 of hoger, die TLS 1.2/1.3 als standaard gebruikt.

Het volgende Google Sheet kan worden gebruikt om de REST API-authenticatiesignatuur te berekenen voor elke combinatie van invoergegevens:

  • API private (geheime) sleutel

  • API-endpoint (Balance, TradeBalance, QueryOrders, enz.)

  • Nonce-waarde (zie onze wat is een nonce ondersteuningspagina voor meer details)

  • Endpoint-invoerparameters (bijvoorbeeld asset=doge)

De calculator kan worden gebruikt om te verifiëren dat het authenticatiealgoritme correct is geïmplementeerd, waardoor potentiële problemen (met name onverwachte ongeldige sleutel fouten) later in de ontwikkelingscyclus worden vermeden.

Gebruiksaanwijzing

  1. 1

    Open de REST API-authenticatiecalculator in Chrome (of een andere recente webbrowser)

  2. 2

    Maak een kopie van de calculator naar je eigen Google Drive via het menu Bestand -> Een kopie maken (je moet hiervoor inloggen op je Google-account)

  3. 3

    Bewerk de velden API-sleutel, API-endpoint, nonce-waarde en invoergegevens met je eigen API-sleutel en aanvraagdetails

  4. 4

    Vergelijk de berekende API-authenticatiesignatuur met de waarde die is berekend door je eigen API-code (de twee waarden moeten exact overeenkomen)

Om veiligheidsredenen raden we aan de authenticatiecalculator te gebruiken met een tijdelijke API-sleutel, en vervolgens de API-sleutel uit je account te verwijderen zodra je authenticatiesignatuurimplementatie correct blijkt te zijn.

Voorbeeld

Screenshot_2021-06-21_at_14.42.35.png

Het belangrijkste voordeel van het gebruik van onze clientbibliotheek-wrappers is dat je geen tijd/moeite hoeft te besteden aan het opnieuw uitvinden van het wiel voor het maken van API-signaturen; het is al voor je gedaan.

Als je alleen van plan bent om aanroepen naar openbare methoden te doen, dan kun je ervoor kiezen om geen clientbibliotheken te gebruiken, aangezien er geen authenticatie nodig is.

De lijst met beschikbare wrappers kun je hier vinden.

Meer hulp nodig?