Veelgestelde vragen over geavanceerde API's

Last updated: 25 nov 2025

Met de REST API financierings-eindpunten kunnen klanten geld storten/opnemen naar/van hun Kraken-account en de realtime status van een stortings/opname-transactie opvragen.

Stortingen en opnames doorlopen verschillende fasen tussen het eerste verzoek en de voltooiing van de transactie. Daarom retourneren de financierings-eindpunten een andere statuswaarde, afhankelijk van het moment waarop ze worden aangeroepen.

Let op: de statuswaarden kwamen oorspronkelijk van pagina 16/17 van het Internet Financial Exchange Protocol (IFEX)-document, maar de waarden zijn een beetje aangepast zodat ze beter passen bij cryptotransacties (bijvoorbeeld, niet alle mogelijke statuswaarden worden gebruikt).

Stortingen

De mogelijke statuswaarden voor stortingstransacties zijn als volgt:

  • Afgewikkeld = Storting is ontvangen maar er zijn nog extra bevestigingen op de blockchain nodig.

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

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

Hier volgen enkele voorbeelden van hoe de bovenstaande statuswaarden zouden verschijnen in reacties van het DepositStatus-eindpunt:

Afgewikkelde 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"}]}

Successtatus:{"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 (zoals of er financieringsbeperkingen zijn op je account etc.).

  • In afwachting = Opname wacht op verwerking door onze financieringsgateway.

  • Afgehandeld = Opname is naar de blockchain gestuurd (op dit punt zou de transactie-ID van de blockchain beschikbaar moeten zijn).

  • Succes = Opnametransactie heeft minstens één bevestiging op de blockchain.

  • Vastgehouden = Opname is vastgehouden en moet handmatig worden gecontroleerd door ons financieringsteam.

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

Hier volgen enkele voorbeelden van hoe de bovenstaande statuswaarden zouden verschijnen in reacties van het WithdrawStatus-eindpunt:

Initiële 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"}]}

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

Afgewikkelde 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"}]}

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

Meer informatie over stortingen/opnames is beschikbaar via onze support-pagina's financiering met contant geld en financiering met crypto.

The REST API OHLC endpoint only provides a limited amount of historical data, specifically 720 data points of the requested interval. For example, asking for OHLC data in 1 minute intervals will return the most recent 720 minutes (12 hours) of data.

For applications that require additional OHLC or tick data, it is possible to retrieve the entire trading history of our markets (the historical time and sales) via the REST API Trades endpoint. The OHLC for any time frame and any interval can then be created from the historical time and sales data.

The Trades endpoint takes an optional parameter named since, which specifies the starting date/time of the data. The since value is a UNIX timestamp at nanosecond resolution (a standard UNIX timestamp in seconds with 9 additional digits).

For example, a call to the Trades endpoint such as https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 would return the historical time and sales for XBT/USD from the 1st of June 2019 at 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"}}

Subsequent calls to the Trades endpoint should replace the since parameter's value with the last parameter's value from the results of the previous call such as https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

Using the special since value of 0 (zero) would return the historical time and sales from the beginning of the market (starting with the very first trade).

Een gebruikersreferentie is een door de klant verstrekte order-ID die kan worden gebruikt in plaats van de werkelijke (door de API verstrekte) order-ID voor sommige taken op het gebied van orderbeheer (met name het annuleren van orders).

Gebruikersreferenties zijn zo flexibel mogelijk gemaakt en kunnen daarom op verschillende manieren worden gebruikt, bijvoorbeeld:

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

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

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

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

Orders plaatsen met een gebruikersreferentie

Orders kunnen worden geplaatst met een bijgevoegde gebruikersreferentie door het AddOrder-eindpunt aan te roepen en de userref-parameter 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 weergeven die een gebruikersreferentie hebben

Orders die al een gebruikersreferentie hebben, kunnen worden bekeken door de Open/Gesloten/QueryOrders-eindpunten aan te roepen en de userref-parameter met de bestaande gebruikersreferentie als waarde op te nemen (in dit geval fungeert de gebruikersreferentie als een filter, waardoor alleen de bijbehorende orders worden getoond):

$ ./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","kosten":"0.000000000","vergoeding":"0.000000000","prijs":"0.000000000","stopprijs":"0.000000000","limietprijs":"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","kosten":"0.00000","vergoeding":"0.00000","prijs":"0.00000","stopprijs":"0.00000","limietprijs":"0.000.00","overig":"","oflags":"fciq"}},"aantal":1}}

Orders met een gebruikersreferentie annuleren

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

$ ./krakenapi CancelOrder txid=16764529

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

Let op: alle open orders met dezelfde gebruikersreferentie worden geannuleerd, dus je kunt één CancelOrder-aanroep doen om meerdere orders tegelijk te annuleren (zoals aangegeven door de aantal-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 'Controle op browserintegriteit' ingeschakeld.

Dit kan optreden als je verzoek verdachte headers bevat. Je verzoek mist bijvoorbeeld een gebruikersagent of gebruikt een niet-standaard gebruikersagent; controleer daarom je verzoekheaders.

Als je geen standaardverzoeken kunt maken die ons systeem toestaat, stuur ons dan een volledige kopie van het verzoek of de verzoeken die je probeert te doen, inclusief je IP-adres en alle headers. Met deze informatie kunnen we het verder onderzoeken.

Futures-API

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

REST-, WebSocket- en FIX-testomgevingen

Voor onze spot REST/WebSocket API en FIX API hebben we nu een testomgeving voor klanten die daarvoor in aanmerking komen. Om toegang te krijgen tot deze omgeving moet je een onboardingproces doorlopen dat je kunt starten door direct contact op te nemen met het API-team.

Onze API testen met de testparameter Validate

Bij het plaatsen van een order via de REST API AddOrder- of WebSocket API addOrder-eindpunten kun je de invoerparameter validate gebruiken om de order te simuleren.

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

Voorbeeld AddOrder aanroep met de parameter validate (let op de 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 parameter Validate raden we aan om zeer kleine marktorders te plaatsen (orders voor de minimale ordergrootte), of limietorders die ver van de huidige marktprijs liggen (bijvoorbeeld een limietorder plaatsen om ETH/USD te verkopen voor € 800 terwijl de marktprijs € 200 is).

Door te testen met live orders kan je API-code communiceren met onze API in echte omstandigheden, waardoor elk aspect van de test nauwkeurig is (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 foutmeldingen over SSL/TLS-verbindingen krijgt wanneer je verbinding probeert te maken met onze API, komt dat waarschijnlijk door het gebruik van een van deze verouderde standaarden. Je moet je API-client aanpassen om het gebruik van TLS 1.2/1.3 te forceren of je versie van .NET upgraden naar 4.6 of hoger, die TLS 1.2/1.3 als standaard gebruikt.

De volgende Google-spreadsheet kan worden gebruikt om de REST API-authenticatiehandtekening te berekenen voor elke combinatie van invoergegevens:

  • API-privésleutel (geheime sleutel)

  • API-eindpunt (tegoed, Tradetegoed, QueryOrders enz.)

  • Nonce-waarde (zie onze support-pagina wat is een nonce voor meer informatie)

  • Invoerparameters eindpunt (asset=doge, bijvoorbeeld)

Je calculator gebruiken om te verifiëren of het authenticatie-algoritme correct is geïmplementeerd, zodat je later in de ontwikkelingscyclus mogelijke problemen (met name onverwachteongeldige sleutel-fouten) later in de ontwikkelingscyclus kunt voorkomen.

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 -> Maak een kopie (hiervoor moet je je aanmelden op je Google-account)

  3. 3

    Pas de velden API-sleutel, API-eindpunt, nonce-waarde en invoergegevens aan met je eigen API-sleutel en verzoekgegevens

  4. 4

    Vergelijk de berekende API-authenticatiehandtekening met de waarde die door je eigen API-code is berekend (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 implementatie van de authenticatiehandtekening correct blijkt te zijn.

Bijvoorbeeld

Screenshot_2021-06-21_at_14.42.35.png

Het belangrijkste voordeel van onze clientbibliotheekwrappers is dat je geen tijd en moeite hoeft te steken in het opnieuw uitvinden van het wiel voor het maken van API-handtekeningen, want dat is al voor je gedaan.

Als je alleen openbare methoden wilt gebruiken, kun je ervoor kiezen om geen clientbibliotheken te gebruiken, omdat er geen authenticatie nodig is.

De lijst met beschikbare wrappers vind je hier.

Meer hulp nodig?