Veelgestelde vragen over geavanceerde API's

Laatst bijgewerkt: 25 november 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.

Het REST API OHLC-endpoint biedt slechts een beperkte hoeveelheid historische gegevens, specifiek 720 gegevenspunten van het opgevraagde interval. Als je bijvoorbeeld vraagt om OHLC-gegevens in intervallen van 1 minuut, worden de meest recente 720 minuten (12 uur) aan gegevens geretourneerd.

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

Het Trades-endpoint accepteert een optionele parameter genaamd since, die de begindatum/-tijd van de gegevens specificeert. De since-waarde is een UNIX-timestamp met nanoseconde-resolutie (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"}}

Bij volgende aanroepen naar het Trades-endpoint moet de waarde van de parameter since worden vervangen door de waarde van de parameter last 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) retourneert de historische tijd en verkopen vanaf het begin van de markt (beginnend met de allereerste 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?