Messaggi di errore API

Ultimo aggiornamento: 8 ago 2025

Introduzione

La maggior parte delle richieste API viene completata con successo, ma a volte qualcosa va storto e viene restituito un messaggio di errore invece della risposta attesa.

La nostra API fornisce una varietà di messaggi di errore descrittivi intesi a fornire la ragione dell'errore e suggerimenti per la soluzione appropriata.

I messaggi di errore API possono essere divisi in diversi gruppi (a seconda del tipo di errore, della causa sottostante e della soluzione ottimale), ma il formato dei messaggi di errore API è coerente e il seguente:

"Livello di gravità""Categoria di errore":"Messaggio di errore"

Il "Livello di gravità" può essere E per un errore o W per un avviso. La "Categoria di errore" può essere una delle seguenti: Generale, API, Query, Ordine, Scambio, Finanziamento o Servizio. Il "Messaggio di errore" può essere qualsiasi stringa di testo che descrive la ragione dell'errore (come Argomenti non validi).

Ad esempio, un errore che indica che una coppia di valute non valida è stata utilizzata in una query ticker sarebbe il seguente:

EQuery:Coppia di asset sconosciuta

Si noti che alcuni software di terze parti (app mobili, bot di trading, ecc.) scelgono di nascondere l'errore API originale e di presentare un errore personalizzato, quindi è possibile un formato o un contenuto di errore alternativo a seconda del software utilizzato.

  • Errori di utilizzo generale

  • Errori di limite di frequenza

  • Errori di trading (inserimento/annullamento ordini)

  • Errori di finanziamento (deposito/prelievo)

  • Errori di stato del servizio

  • Errori interni

  • Errori Cloudflare (rete)

Errori di utilizzo generale

Gli errori di autorizzazione negata vengono restituiti quando il client API tenta un'operazione per la quale la chiave API non dispone dell'autorizzazione. Ad esempio, se un client API tentasse di recuperare il saldo del conto utilizzando una chiave API configurata per consentire l'accesso al trading ma non l'accesso alla gestione del conto, verrebbe restituito l'errore di autorizzazione negata. Puoi rivedere le tue chiavi API e le loro impostazioni (come le loro autorizzazioni) tramite la scheda Impostazioni -> API della gestione dell'account. Dovrai assicurarti che le chiavi API utilizzate dalle tue app di terze parti abbiano tutte le impostazioni e le autorizzazioni richieste dalle tue app.

Questo errore viene restituito quando la chiave API utilizzata per la chiamata è scaduta o disabilitata. Si prega di rivedere la chiave API nella scheda Impostazioni -> API della gestione dell'account o di generarne una nuova e aggiornare l'applicazione.

È possibile ottenere l'elenco completo delle nostre coppie di asset dalla chiamata pubblica AssetPairs e cercare il nome della coppia come voce delle intestazioni Json o tramite il parametro "altname": https://api.kraken.com/0/public/AssetPairs

Questo errore viene restituito quando un metodo viene chiamato senza i parametri richiesti. Ad esempio, la chiamata del metodo QueryOrders senza specificare un ID di transazione (txid) valido causerebbe la restituzione dell'errore di argomenti non validi. La chiamata di un metodo con parametri non necessari non restituirebbe comunque l'errore di argomenti non validi perché i parametri non necessari verrebbero semplicemente ignorati.

Gli errori di firma non valida si verificano se la chiave API o il segreto API sono scritti in modo errato nel programma o perché i dati POST utilizzati nell'autenticazione e i dati POST inviati all'API non corrispondono. Per riferimento aggiuntivo, il seguente è un esempio di codice Python per implementare l'algoritmo di firma API. La chiave pubblica API appropriata deve essere copiata e incollata dalla gestione dell'account, e il metodo API e i dati POST devono essere aggiornati in modo appropriato. Il valore di output può essere utilizzato direttamente come valore per l'intestazione HTTP API-Sign. #!/usr/bin/env python

# Importa le librerie Python richieste
import time
import base64
import hashlib
import hmac

# Decodifica la chiave privata API dal formato base64 visualizzato nella gestione dell'account
api_secret = base64.b64decode("nmlrD83t1J+yVWKUBx9vD6j26C5zhC11tFfXpN+Ww+8oOVuGgse5AeADcvl95jYaD+UAi3D5CrVfFr8GfQ7zhA==")

# Variabili (metodo API, nonce e dati POST)
api_path = "/0/private/TradeBalance"
api_nonce = str(int(time.time()*1000))
api_post = "nonce=" + api_nonce + "&asset=xxbt"

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

# Codifica la firma nel formato base64 utilizzato nel valore API-Sign
api_signature = base64.b64encode(api_hmac.digest())

# Firma di autenticazione API da utilizzare nell'intestazione HTTP API-Sign
print(api_signature)Lo SHA256 viene calcolato utilizzando il valore nonce stesso e i dati POST per il metodo API e i dati POST sono composti dalle coppie nome/valore per il nonce (di nuovo) e i parametri del metodo API. Un esempio dei dati che dovrebbero essere passati allo SHA256 per il metodo TradeBalance sarebbe il seguente:SHA256 = SHA256 di "1541933977000nonce=1541933977000&asset=xxbt"Il valore stringa che viene passato allo SHA256 non dovrebbe contenere valori nulli aggiuntivi (\0) e il valore stringa non dovrebbe essere codificato come base64 o esadecimale (cioè, il valore stringa dovrebbe essere una stringa di testo semplice).Il percorso URI è l'intero URL del metodo API eccetto il prefisso "https://api.kraken.com", quindi il percorso URI del metodo TradeBalance (ad esempio) sarebbe il valore stringa "/0/private/TradeBalance" senza valori nulli aggiuntivi.L'HMAC SHA512 viene calcolato utilizzando il percorso URI e il digest SHA256 precedentemente calcolato, con la chiave privata API decodificata in base64 come chiave HMAC. Un esempio dei dati che dovrebbero essere passati all'HMAC sarebbe il seguente:HMAC SHA512 utilizzando la chiave privata decodificata in base64 = HMAC di "/0/private/TradeBalanceSHA256"Le intestazioni HTTP API-Key e API-Sign sono le uniche due intestazioni HTTP personalizzate richieste. L'intestazione API-Key è una copia esatta della chiave pubblica API dalla gestione dell'account. L'intestazione API-Sign è il digest HMAC SHA512 codificato in base64.

Gli errori di sessione non valida vengono restituiti tramite l'API WebSocket quando si tenta di sottoscrivere un feed autenticato (privato) utilizzando un token di autenticazione non più valido (ad esempio, già scaduto).

La soluzione consiste semplicemente nel richiedere un nuovo token di autenticazione tramite l'endpoint GetWebSocketsToken dell'API REST e utilizzare il nuovo token per tutte le successive richieste di sottoscrizione autenticate (private).

Un errore di richiesta non valida indica che c'è qualcosa di errato nella richiesta HTTP sottostante (non nella successiva richiesta API), come URL non corrispondenti tra REST/WebSocket o dati POST HTTP non inclusi correttamente:

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

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

Questo errore viene restituito quando l'endpoint chiamato non è un endpoint valido.

Errori di limite di frequenza

Mentre l'aggiunta e l'annullamento degli ordini non rientrano nei nostri limiti standard del contatore API, queste operazioni hanno un proprio contatore di aggiunta e annullamento ordini. Questo contatore funziona in modo tale che più a lungo gli ordini rimangono nel book degli ordini, più ordini i clienti sono in grado di aggiungere o annullare.

I messaggi di errore di blocco temporaneo possono verificarsi se si sono verificati troppi errori di chiamate API o troppi errori di nonce non valido in un breve periodo di tempo o firme non valide. Anche se queste chiamate restituiscono un errore, tale errore conta comunque ai fini dei limiti API e può comportare un blocco temporaneo.

I blocchi temporanei durano circa 15 minuti. Dopo aver ricevuto l'errore di blocco temporaneo, attendere 15 minuti prima di inviare nuove richieste API. Se si stanno attivando diversi errori di nonce non valido, aumentare la finestra di nonce in quanto ciò può aiutare a ridurre la frequenza con cui si verificano questi errori. Si prega di provare a ridurre anche la frequenza delle chiamate API private.

Errori di trading

L'apertura di nuove posizioni spot a margine è stata temporaneamente sospesa per manutenzione del motore di trading. La funzionalità tornerà presto disponibile e potrai seguire gli aggiornamenti su status.kraken.com.

Un'altra ragione potrebbe essere che le posizioni spot a margine non sono attualmente disponibili per i clienti residenti in determinati paesi.

Su Kraken non è possibile aprire una posizione long e short per la stessa coppia.

Se si desidera aprire una posizione long e short per la stessa valuta, scegliere coppie di trading diverse con la stessa valuta come valuta base o di quotazione. Es: short XBT/USD, long XBT/EUR.

Questo errore si verifica quando sono stati superati i limiti di margine consentiti per il livello di verifica attuale. I limiti di margine consentiti per ogni valuta variano in base al livello di verifica attuale.

Abbiamo fondi limitati disponibili per le estensioni di margine. Il messaggio "margine insufficiente" indica che al momento non abbiamo fondi nel pool di margine applicabile. Questa situazione può cambiare in qualsiasi momento. Potresti essere in grado di piazzare il tuo ordine con successo pochi secondi o minuti dopo, ma gli ordini di volume elevato e gli ordini piazzati durante periodi di alto volume potrebbero richiedere più tempo. Ci scusiamo per qualsiasi inconveniente.

Questo errore si verifica quando il margine libero è insufficiente per aprire una nuova posizione sull'account o se il tentativo attuale di aprire una posizione comporterebbe una diminuzione del margine libero dell'account al di sotto del 100%.

Non hai fondi disponibili per piazzare questo ordine. Ti preghiamo di controllare le tue posizioni aperte e gli ordini per gli elementi che potrebbero bloccare i tuoi fondi.

Non hai raggiunto il volume minimo d'ordine per questo asset.

Hai superato il numero massimo di ordini aperti disponibili per il tuo account.

Questi limiti si basano sul tuo livello di verifica. Chiudi alcuni dei tuoi ordini aperti o verifica il tuo account a un livello superiore.

Hai superato il numero massimo di posizioni aperte disponibili per il tuo account.

Questi limiti si basano sul tuo livello di verifica. Chiudi o salda alcune o tutte le tue posizioni aperte o verifica il tuo account a un livello superiore, se possibile.

È stato tentato di modificare un ordine esistente (aperto) ma le modifiche non sono state completate con successo. Le possibili ragioni includono fondi insufficienti per il nuovo ordine, alcuni scenari di riempimento parziale e alcuni ordini con leva.

Il nuovo volume è inferiore al volume già eseguito/riempito.

La dimensione dell'ordine ha superato il limite di dimensione della posizione a margine della coppia di trading.

Il volume visualizzato non ha raggiunto il volume minimo dell'ordine.

Il volume visualizzato deve essere inferiore al volume dell'ordine.

Gli ordini Iceberg non sono compatibili con nessun altro tipo di ordine oltre a un ordine limite.

Errori di finanziamento

Ogni criptovaluta ha un massimo di 5 nuovi indirizzi di deposito (non utilizzati), dopodiché qualsiasi tentativo di creare un sesto nuovo indirizzo restituirà un errore.

Questo errore viene restituito ogni volta che gli endpoint di finanziamento vengono chiamati con un parametro "method" non valido o mancante. 

Il parametro di input "key" non corrisponde alla descrizione dell'indirizzo impostata nella gestione dell'account (tramite Finanziamento -> Prelievo).

Gli importi minimi di prelievo variano in base alla valuta e qualsiasi tentativo di prelievo inferiore al minimo comporterebbe questo errore.

Questo è un errore generico che indica che una richiesta di finanziamento non è stata completata (ad esempio, i clienti di determinate località che tentano di effettuare richieste di staking on-chain causerebbero questo errore).

Il prelievo richiesto non può essere completato perché all'indirizzo di destinazione mancano le informazioni richieste sul beneficiario/destinatario (si noti che questo si applica attualmente solo a prelievi selezionati da conti canadesi).

Errori di stato del servizio

Gli errori del servizio che stai riscontrando dovrebbero essere solo temporanei. Potresti voler inviare nuovamente le tue richieste se sono fallite. Monitoreremo i problemi e aggiorneremo la nostra pagina:

https://status.kraken.com/

Errori interni

Quando riscontriamo problemi di degrado dell'API, questi possono tradursi in problemi per Kraken sotto forma di messaggi di servizio non disponibile e interruzioni del sito.

Questo problema riguarda la sicurezza del tuo account che potrebbe essere stato compromesso. Ti preghiamo di cambiare la tua password e l'autenticazione a due fattori e di contattare il nostro Centro di supporto.

Questo errore si verifica quando un flag o un parametro di input è disabilitato temporaneamente o permanentemente. L'errore dovrebbe provenire da uno degli input passati; si prega di contattare il nostro supporto inviando un log con le informazioni complete utilizzate per la chiamata che ha generato l'errore.

Questi errori 5xx e 10xx non sono in realtà errori API, ma piuttosto errori del server web di Cloudflare.

Gli errori API vengono sempre restituiti in formato JSON come “error”:[“ErrorType:ErrorMessage”], quindi ogni volta che viene ricevuto un errore in un formato diverso (come un codice di stato HTTP 520, 504, 502, 1020, ecc.), la soluzione provvisoria è riprovare la chiamata API poco dopo e, si spera, la chiamata avrà successo.

Hai ancora bisogno di aiuto?