API-foutmeldingen

Laatst bijgewerkt: 8 aug 2025

Introductie

De meeste API-verzoeken worden succesvol voltooid, maar soms gaat er iets mis en wordt er een foutmelding geretourneerd in plaats van de verwachte reactie.

Onze API biedt een verscheidenheid aan beschrijvende foutmeldingen die bedoeld zijn om de reden van de fout te geven en suggesties te doen voor de juiste oplossing.

API-foutmeldingen kunnen worden onderverdeeld in verschillende groepen (afhankelijk van het type fout, de onderliggende oorzaak en de optimale oplossing), maar het formaat van de API-foutmeldingen is consistent en is als volgt:

"Ernstniveau""Foutcategorie":"Foutmelding"

Het "Ernstniveau" kan E zijn voor een fout of W voor een waarschuwing. De "Foutcategorie" kan een van de volgende zijn: Algemeen, API, Query, Order, Handel, Financiering of Service. De "Foutmelding" kan elke tekstreeks zijn die de reden van de fout beschrijft (zoals Ongeldige argumenten).

Een fout die aangeeft dat een ongeldig valutapaar is gebruikt in een tickerquery, zou bijvoorbeeld als volgt zijn:

EQuery:Onbekend activapaar

Merk op dat sommige software van derden (mobiele apps, handelsbots, enz.) ervoor kiezen om de oorspronkelijke API-fout te verbergen en in plaats daarvan een aangepaste fout te presenteren, vandaar dat een alternatief foutformaat of inhoud mogelijk is, afhankelijk van de gebruikte software.

  • Algemene gebruiksfouten

  • Fouten met de frequentielimiet

  • Handelsfouten (plaatsen/annuleren van orders)

  • Financieringsfouten (storten/opnemen)

  • Servicestatusfouten

  • Interne fouten

  • Cloudflare (netwerk) fouten

Algemene gebruiksfouten

Fouten met geweigerde toestemming worden geretourneerd wanneer de API-client een taak probeert uit te voeren waarvoor de API-sleutel geen toestemming heeft. Als een API-client bijvoorbeeld probeerde het rekeningsaldo op te vragen met een API-sleutel die was geconfigureerd om handelstoegang toe te staan, maar geen toegang tot accountbeheer, dan zou de foutmelding "toestemming geweigerd" worden geretourneerd. U kunt uw API-sleutels en hun instellingen (zoals hun machtigingen) bekijken via het tabblad Instellingen -> API van accountbeheer. U moet ervoor zorgen dat de API-sleutels die door uw apps van derden worden gebruikt, alle instellingen en machtigingen hebben die uw apps vereisen.

Deze fout wordt geretourneerd wanneer de API-sleutel die voor de oproep is gebruikt, is verlopen of is uitgeschakeld. Controleer de API-sleutel op het tabblad Instellingen -> API van accountbeheer of genereer een nieuwe en werk uw toepassing bij.

U kunt de volledige lijst van onze activaparen ophalen via de openbare AssetPairs-oproep en zoeken naar de paarnaam als vermelding in de JSON-headers of via de parameter "altname": https://api.kraken.com/0/public/AssetPairs

Deze fout wordt geretourneerd wanneer een methode wordt aangeroepen zonder de vereiste parameters. Als u bijvoorbeeld de QueryOrders-methode aanroept zonder een geldige transactie-ID (txid) parameter op te geven, zou de foutmelding "ongeldige argumenten" worden geretourneerd. Het aanroepen van een methode met onnodige parameters zou nog steeds niet de foutmelding "ongeldige argumenten" retourneren, omdat de onnodige parameters eenvoudigweg zouden worden genegeerd.

Fouten met ongeldige handtekening treden op als uw API-sleutel of API-geheim onjuist is geschreven in uw programma, of omdat de POST-gegevens die bij de authenticatie zijn gebruikt en de POST-gegevens die naar de API zijn verzonden, niet overeenkomen.Ter aanvullende referentie is het volgende een voorbeeld van Python-code om het API-handtekeningalgoritme te implementeren. De juiste openbare API-sleutel moet worden gekopieerd en geplakt vanuit accountbeheer, en de API-methode en POST-gegevens moeten dienovereenkomstig worden bijgewerkt. De uitvoerwaarde kan direct worden gebruikt als de waarde voor de API-Sign HTTP-header. #!/usr/bin/env python

# Import required Python libraries
import time
import base64
import hashlib
import hmac

# Decode API private key from base64 format displayed in account management
api_secret = base64.b64decode("nmlrD83t1J+yVWKUBx9vD6j26C5zhC11tFfXpN+Ww+8oOVuGgse5AeADcvl95jYaD+UAi3D5CrVfFr8GfQ7zhA==")

# Variables (API method, nonce, and POST data)
api_path = "/0/private/TradeBalance"
api_nonce = str(int(time.time()*1000))
api_post = "nonce=" + api_nonce + "&asset=xxbt"

# Cryptographic hash algorithms
api_sha256 = hashlib.sha256(api_nonce + api_post).digest()
api_hmac = hmac.new(api_secret, api_path + api_sha256, hashlib.sha512)

# Encode signature into base64 format used in API-Sign value
api_signature = base64.b64encode(api_hmac.digest())

# API authentication signature for use in API-Sign HTTP header
print(api_signature)De SHA256 wordt berekend met behulp van de nonce-waarde zelf en de POST-gegevens voor de API-methode, en de POST-GEGEVENS bestaan uit de naam/waarde-paren voor de nonce (opnieuw) en de API-methode-parameters. Een voorbeeld van de gegevens die aan de SHA256 moeten worden doorgegeven voor de TradeBalance-methode zou als volgt zijn:SHA256 = SHA256 van "1541933977000nonce=1541933977000&asset=xxbt"De tekenreekswaarde die aan de SHA256 wordt doorgegeven, mag geen extra null (\0) waarden bevatten en de tekenreekswaarde mag niet worden gecodeerd als base64 of hex (d.w.z. de tekenreekswaarde moet een platte tekstreeks zijn).Het URI-pad is de volledige URL van de API-methode, behalve het voorvoegsel "https://api.kraken.com", dus het URI-pad van de TradeBalance-methode (bijvoorbeeld) zou de tekenreekswaarde "/0/private/TradeBalance" zijn zonder extra null-waarden.De HMAC SHA512 wordt berekend met behulp van het URI-pad en de eerder berekende SHA256-digest, met de base64-gedecodeerde privé-API-sleutel als de HMAC-sleutel. Een voorbeeld van de gegevens die aan de HMAC moeten worden doorgegeven, zou als volgt zijn:HMAC SHA512 met behulp van base64 gedecodeerde privésleutel = HMAC van "/0/private/TradeBalanceSHA256"De API-Key en API-Sign HTTP-headers zijn de enige twee vereiste aangepaste HTTP-headers. De API-Key-header is een exacte kopie van de openbare API-sleutel uit accountbeheer. De API-Sign-header is de HMAC SHA512-digest gecodeerd met base64.

Ongeldige sessiefouten worden geretourneerd via de WebSocket API wanneer een poging wordt gedaan om zich te abonneren op een geauthenticeerde (privé) feed met behulp van een authenticatietoken dat niet langer geldig is (bijvoorbeeld al is verlopen).

De oplossing is simpelweg om een nieuw authenticatietoken aan te vragen via het REST API GetWebSocketsToken-eindpunt, en het nieuwe token te gebruiken voor alle volgende geauthenticeerde (privé) abonnementsaanvragen.

Een foutmelding voor een ongeldig verzoek geeft aan dat er iets niet klopt aan het onderliggende HTTP-verzoek (niet het daaropvolgende API-verzoek), zoals niet-overeenkomende URL's tussen REST/WebSocket, of het niet correct opnemen van de HTTP POST-gegevens:

% curl --data "" https://api.kraken.com/0/private/GetWebSocketsToken

{"error":["EAPI:Bad request"]}

Deze fout wordt geretourneerd wanneer het aangeroepen eindpunt geen geldig eindpunt is.

Fouten met snelheidslimiet

Hoewel het toevoegen en annuleren van orders niet meetelt voor onze standaard API-tellerlimieten, hebben deze bewerkingen wel hun eigen teller voor het toevoegen en annuleren van orders. Deze teller werkt zo dat hoe langer orders in het orderboek blijven staan, hoe meer orders klanten kunnen toevoegen of annuleren.

Tijdelijke vergrendelingsfoutmeldingen kunnen optreden als u te veel mislukte API-aanroepen of te veel ongeldige nonce-fouten had in een korte periode, of ongeldige handtekeningen. Zelfs als deze aanroepen een fout retourneren, telt die fout nog steeds mee voor uw API-limieten en kan dit leiden tot een tijdelijke vergrendeling.

Tijdelijke vergrendelingen duren ongeveer 15 minuten. Nadat u de tijdelijke vergrendelingsfout heeft ontvangen, wacht u 15 minuten voordat u nieuwe API-aanvragen verzendt. Als u meerdere ongeldige nonce-fouten veroorzaakt, vergroot dan het nonce-venster, aangezien dit kan helpen de frequentie van deze fouten te verminderen. Probeer ook de frequentie van uw privé API-aanroepen te verminderen.

Handelsfouten

Het openen van nieuwe spotposities met marge is tijdelijk opgeschort vanwege onderhoud aan de handelsengine. De functie zal binnenkort terugkeren en u kunt updates volgen op status.kraken.com.

Een andere reden kan zijn dat spotposities met marge momenteel niet beschikbaar zijn voor klanten die in bepaalde landen wonen.

Op Kraken kunt u geen long- en shortpositie openen voor hetzelfde paar.

Als u een long- en shortpositie wilt openen voor dezelfde valuta, kies dan verschillende handelsparen met dezelfde valuta als basis- of noteringvaluta. Bijv.: short XBT/USD, long XBT/EUR.

Deze fout treedt op wanneer u de margelimieten voor uw huidige verificatieniveau hebt overschreden. De margelimieten voor elke valuta variëren op basis van uw huidige verificatieniveau.

We hebben beperkte middelen beschikbaar voor marge-uitbreidingen. Het bericht "onvoldoende marge" geeft aan dat we momenteel geen middelen meer hebben in de toepasselijke margepool. Dit kan op elk moment veranderen. U kunt uw order mogelijk enkele seconden of minuten later succesvol plaatsen, maar orders met een hoog volume en orders die tijdens drukke periodes worden geplaatst, kunnen langer duren. Onze excuses voor het ongemak.

Deze fout treedt op wanneer er onvoldoende vrije marge is om een nieuwe positie op de rekening te openen, of als de huidige poging om een positie te openen ertoe zou leiden dat de vrije marge van de rekening onder de 100% daalt.

U hebt niet voldoende middelen beschikbaar om deze order te plaatsen. Controleer uw openstaande posities en orders op items die uw middelen mogelijk vasthouden.

U hebt niet voldaan aan het minimale ordervolume voor dit activum.

U hebt het maximale aantal openstaande orders voor uw account overschreden.

Deze limieten zijn gebaseerd op uw verificatieniveau. Sluit enkele van uw openstaande orders of verifieer uw account naar een hoger niveau.

U hebt het maximale aantal openstaande posities voor uw account overschreden.

Deze limieten zijn gebaseerd op uw verificatieniveau. Sluit of vereffen enkele of al uw openstaande posities of verifieer uw account naar een hoger niveau indien mogelijk.

Er is geprobeerd een bestaande (openstaande) order te bewerken, maar de wijzigingen konden niet succesvol worden voltooid. Mogelijke redenen zijn onvoldoende middelen voor de nieuwe order, scenario's met gedeeltelijke uitvoering en sommige leveraged orders.

Het nieuwe volume is kleiner dan het reeds uitgevoerde/gevulde volume.

De ordergrootte heeft de limiet voor de margepositiegrootte van het handelspaar overschreden.

Het weergegeven volume heeft niet voldaan aan het minimale ordervolume.

Het weergegeven volume moet kleiner zijn dan het volume van de order.

Iceberg-orders zijn niet compatibel met andere ordertypes dan een limietorder.

Foutmeldingen bij financiering

Elke cryptovaluta heeft een maximum van 5 nieuwe (ongebruikte) stortingsadressen. Elke poging om een 6e nieuw adres aan te maken, zal een foutmelding opleveren.

Deze fout wordt geretourneerd wanneer de financierings-endpoints worden aangeroepen met een ongeldige of ontbrekende parameter "method". 

De invoerparameter "key" komt niet overeen met de adresbeschrijving die is ingesteld in accountbeheer (via Financiering -> Opnemen).

De minimale opnamebedragen variëren per valuta en elke poging tot opname onder het minimum zou resulteren in deze fout.

Dit is een algemene fout die aangeeft dat een financieringsverzoek niet kon worden voltooid (bijvoorbeeld, klanten uit bepaalde locaties die proberen on-chain staking-verzoeken te doen, zouden deze fout veroorzaken).

De aangevraagde opname kon niet worden voltooid, omdat het bestemmingsadres de vereiste begunstigde-/ontvangerinformatie mist (merk op dat dit momenteel alleen van toepassing is op bepaalde opnames van Canadese accounts).

Servicestatusfouten

De servicefouten die u ondervindt, zouden slechts tijdelijk moeten zijn. U kunt uw verzoeken opnieuw indienen als ze zijn mislukt. We zullen de problemen monitoren en onze pagina bijwerken:

https://status.kraken.com/

Interne fouten

Wanneer we te maken hebben met API-degradatieproblemen, kan dit leiden tot problemen voor Kraken in de vorm van berichten over onbeschikbare services en site-uitval.

Dit probleem heeft te maken met de beveiliging van uw account, die mogelijk is gecompromitteerd. Wijzig uw wachtwoord en tweefactorauthenticatie en neem contact op met ons Support Center.

Deze fout treedt op wanneer een vlag of invoerparameter tijdelijk of permanent is uitgeschakeld. De fout zou afkomstig moeten zijn van een van de doorgegeven invoerwaarden. Neem contact op met onze ondersteuning en stuur een logboek met de volledige informatie die is gebruikt voor de aanroep die de fout heeft gegenereerd.

Deze 5xx- en 10xx-fouten zijn eigenlijk geen API-fouten, maar eerder webserverfouten van Cloudflare.

API-fouten worden altijd geretourneerd in JSON-formaat, zoals “error”:[“ErrorType:ErrorMessage”]. Dus elke keer dat een fout in een ander formaat wordt ontvangen (zoals een HTTP-statuscode van 520, 504, 502, 1020, enz.), is de tussentijdse oplossing om de API-aanroep kort daarna opnieuw te proberen en hopelijk zal de aanroep dan succesvol zijn.

Meer hulp nodig?