Mesej ralat API

Terakhir dikemas kini: 8 Ogos 2025

Pengenalan

Kebanyakan permintaan API berjaya diselesaikan, tetapi kadang-kadang berlaku masalah dan mesej ralat dikembalikan dan bukannya respons yang dijangka.

API kami menyediakan pelbagai mesej ralat deskriptif yang bertujuan untuk memberikan sebab ralat dan cadangan untuk penyelesaian yang sesuai.

Mesej ralat API boleh dibahagikan kepada beberapa kumpulan yang berbeza (bergantung pada jenis ralat, punca asas, dan penyelesaian optimum), tetapi format mesej ralat API adalah konsisten, dan adalah seperti berikut:

"Tahap Keterukan""Kategori Ralat":"Mesej Ralat"

"Tahap Keterukan" boleh sama ada E untuk ralat atau W untuk amaran. "Kategori Ralat" boleh menjadi salah satu daripada General, API, Query, Order, Trade, Funding atau Service. "Mesej Ralat" boleh menjadi sebarang rentetan teks yang menerangkan sebab ralat (seperti Invalid arguments).

Contohnya, ralat yang menunjukkan bahawa pasangan mata wang tidak sah telah digunakan dalam pertanyaan ticker adalah seperti berikut:

EQuery:Unknown asset pair

Ambil perhatian bahawa sesetengah perisian pihak ketiga (aplikasi mudah alih, bot dagangan, dsb.) memilih untuk menyembunyikan ralat API asal dan membentangkan ralat yang disesuaikan, oleh itu format atau kandungan ralat alternatif adalah mungkin bergantung pada perisian yang digunakan.

  • Ralat penggunaan umum

  • Ralat had kadar

  • Ralat dagangan (meletakkan/membatalkan pesanan)

  • Ralat pendanaan (deposit/pengeluaran)

  • Ralat status perkhidmatan

  • Ralat dalaman

  • Ralat Cloudflare (rangkaian)

Ralat penggunaan umum

Ralat kebenaran ditolak dikembalikan apabila klien API cuba melakukan tugas yang mana kunci API tidak mempunyai kebenaran. Contohnya, jika klien API cuba mendapatkan baki akaun menggunakan kunci API yang dikonfigurasi untuk membenarkan akses dagangan tetapi bukan akses pengurusan akaun, maka ralat kebenaran ditolak akan dikembalikan. Anda boleh menyemak kunci API anda dan tetapan mereka (seperti kebenaran mereka) melalui tab Tetapan -> API pengurusan akaun. Anda perlu memastikan bahawa kunci API yang digunakan oleh aplikasi pihak ketiga anda mempunyai semua tetapan dan kebenaran yang diperlukan oleh aplikasi anda.

Ralat ini dikembalikan apabila kunci API yang digunakan untuk panggilan sama ada telah tamat tempoh atau dilumpuhkan, sila semak kunci API dalam tab Tetapan -> API pengurusan akaun anda atau jana yang baharu dan kemas kini aplikasi anda.

Anda boleh mendapatkan senarai lengkap pasangan aset kami daripada panggilan awam AssetPairs dan mencari nama pasangan sebagai entri pengepala Json atau melalui parameter "altname": https://api.kraken.com/0/public/AssetPairs

Ralat ini dikembalikan apabila kaedah dipanggil tanpa parameter yang diperlukan. Contohnya, memanggil kaedah QueryOrders tanpa menyatakan parameter ID transaksi (txid) yang sah akan menyebabkan ralat hujah tidak sah dikembalikan. Memanggil kaedah dengan parameter yang tidak perlu masih tidak akan mengembalikan ralat hujah tidak sah kerana parameter yang tidak perlu akan diabaikan begitu sahaja.

Ralat tandatangan tidak sah berlaku jika kunci API atau rahsia API anda ditulis dengan tidak betul dalam program anda atau kerana data POST yang digunakan dalam pengesahan dan data POST yang dihantar ke API tidak sepadan.Untuk rujukan tambahan, berikut adalah contoh kod Python untuk melaksanakan algoritma tandatangan API. Kunci awam API yang sesuai harus disalin dan ditampal daripada pengurusan akaun, dan kaedah API serta data POST harus dikemas kini dengan sewajarnya. Nilai output boleh digunakan secara langsung sebagai nilai untuk pengepala HTTP API-Sign. #!/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)SHA256 dikira menggunakan nilai nonce itu sendiri dan data POST untuk kaedah API dan DATA POST terdiri daripada pasangan nama/nilai untuk nonce (sekali lagi) dan parameter kaedah API. Contoh data yang harus dihantar ke SHA256 untuk kaedah TradeBalance adalah seperti berikut:SHA256 = SHA256 bagi "1541933977000nonce=1541933977000&asset=xxbt"Nilai rentetan yang dihantar ke SHA256 tidak boleh mengandungi sebarang nilai null (\0) tambahan dan nilai rentetan tidak boleh dikodkan sebagai base64 atau hex (iaitu, nilai rentetan haruslah rentetan teks biasa).Laluan URI adalah URL keseluruhan kaedah API kecuali awalan "https://api.kraken.com", jadi laluan URI kaedah TradeBalance (contohnya) akan menjadi nilai rentetan "/0/private/TradeBalance" tanpa sebarang nilai null tambahan.HMAC SHA512 dikira menggunakan laluan URI dan digest SHA256 yang dikira sebelumnya, dengan kunci peribadi API yang dinyahkod base64 sebagai kunci HMAC. Contoh data yang harus dihantar ke HMAC adalah seperti berikut:HMAC SHA512 menggunakan kunci peribadi yang dinyahkod base64 = HMAC bagi "/0/private/TradeBalanceSHA256"Pengepala HTTP API-Key dan API-Sign adalah satu-satunya dua pengepala HTTP tersuai yang diperlukan. Pengepala API-Key adalah salinan tepat kunci awam API daripada pengurusan akaun. Pengepala API-Sign adalah digest HMAC SHA512 yang dikodkan menggunakan base64.

Anda boleh mendapatkan maklumat lanjut tentang ralat ini di sini:https://support.kraken.com/hc/en-us/articles/360001148063Dan lebih lanjut mengenai Nonce dan Nonce Window di sini:https://support.kraken.com/hc/en-us/articles/360000906023https://support.kraken.com/hc/en-us/articles/360001148023

Ralat sesi tidak sah dikembalikan melalui WebSocket API, apabila percubaan dibuat untuk melanggan suapan yang disahkan (peribadi) menggunakan token pengesahan yang tidak lagi sah (telah tamat tempoh, contohnya).

Penyelesaiannya adalah dengan hanya meminta token pengesahan baharu melalui titik akhir REST API GetWebSocketsToken, dan menggunakan token baharu untuk semua permintaan langganan yang disahkan (peribadi) seterusnya.

Ralat permintaan buruk menunjukkan bahawa terdapat sesuatu yang tidak betul mengenai permintaan HTTP asas (bukan permintaan API seterusnya), seperti URL yang tidak sepadan antara REST/WebSocket, atau tidak menyertakan data HTTP POST dengan betul:

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

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

Ralat ini dikembalikan apabila titik akhir yang dipanggil bukan titik akhir yang sah.

Ralat had kadar

Walaupun menambah dan membatalkan pesanan tidak dikira terhadap had kaunter API standard kami, operasi ini mempunyai kaunter tambah dan batal pesanan mereka sendiri. Kaunter ini berfungsi sedemikian rupa di mana semakin lama pesanan dibiarkan dalam buku pesanan, semakin banyak pesanan yang dapat ditambah atau dibatalkan oleh klien.

Mesej ralat penguncian sementara boleh berlaku jika anda mempunyai terlalu banyak panggilan API yang gagal atau terlalu banyak ralat nonce tidak sah dalam tempoh masa yang singkat atau tandatangan tidak sah. Walaupun panggilan ini mengembalikan ralat, ralat itu masih dikira terhadap had API anda dan boleh mengakibatkan penguncian sementara.

Penguncian sementara berlangsung kira-kira 15 minit. Selepas menerima ralat penguncian sementara, sila tunggu 15 minit sebelum menghantar sebarang permintaan API baharu. Jika anda mencetuskan beberapa ralat nonce tidak sah, sila tingkatkan tetingkap nonce kerana ini boleh membantu mengurangkan kekerapan ralat ini berlaku. Sila cuba kurangkan kekerapan panggilan API peribadi anda juga.

Ralat dagangan

Pembukaan posisi spot baharu pada margin telah digantung sementara untuk penyelenggaraan enjin dagangan. Ciri ini akan kembali tidak lama lagi dan anda boleh mengikuti kemas kini di status.kraken.com.

Sebab lain mungkin posisi spot pada margin tidak tersedia pada masa ini untuk klien yang tinggal di negara tertentu.

Di Kraken, anda tidak boleh membuka posisi long dan short untuk pasangan yang sama.

Jika ingin membuka posisi long dan short untuk mata wang yang sama, sila pilih pasangan dagangan yang berbeza dengan mata wang yang sama sebagai mata wang asas atau sebut harga. Cth: short XBT/USD, long XBT/EUR.

Ralat ini berlaku apabila anda telah melebihi had elaun margin untuk tahap pengesahan semasa anda. Had elaun margin untuk setiap mata wang berbeza-beza berdasarkan tahap pengesahan semasa anda.

Kami mempunyai dana terhad yang tersedia untuk lanjutan margin. Mesej "margin tidak mencukupi" menunjukkan bahawa kami kehabisan dana dalam kumpulan margin yang berkenaan buat masa ini. Ini boleh berubah pada bila-bila masa. Anda mungkin dapat meletakkan pesanan anda dengan jayanya hanya beberapa saat atau minit kemudian, tetapi pesanan volum tinggi dan pesanan yang diletakkan semasa waktu volum tinggi mungkin mengambil masa yang lebih lama. Kami memohon maaf atas sebarang kesulitan.

Ralat ini berlaku apabila Free Margin tidak mencukupi untuk membuka posisi baharu pada akaun atau jika percubaan semasa untuk membuka posisi akan menyebabkan Free Margin akaun jatuh di bawah 100%.

Anda tidak mempunyai dana yang tersedia untuk meletakkan pesanan ini. Sila semak posisi dan pesanan terbuka anda untuk item yang mungkin menahan dana anda.

Anda belum memenuhi volum pesanan minimum untuk aset ini.

Anda telah melebihi jumlah maksimum pesanan terbuka yang tersedia untuk akaun anda.

Had ini adalah berdasarkan tahap pengesahan anda. Sila tutup beberapa pesanan terbuka anda atau sahkan akaun anda ke tahap yang lebih tinggi.

Anda telah melebihi jumlah maksimum posisi terbuka yang tersedia untuk akaun anda.

Had ini adalah berdasarkan tahap pengesahan anda. Sila tutup atau selesaikan sebahagian atau semua posisi terbuka anda atau sahkan akaun anda ke tahap yang lebih tinggi jika boleh.

Percubaan telah dibuat untuk mengedit pesanan sedia ada (terbuka) tetapi pengubahsuaian tidak dapat diselesaikan dengan jayanya. Sebab yang mungkin termasuk dana tidak mencukupi untuk pesanan baharu, beberapa senario pengisian separa, dan beberapa pesanan berleveraj.

Volum baharu adalah kurang daripada volum yang telah dilaksanakan/dipenuhi.

Saiz pesanan melebihi had saiz posisi margin pasangan dagangan.

Volum paparan belum memenuhi volum pesanan minimum.

Volum paparan mestilah kurang daripada volum pesanan.

Pesanan Iceberg tidak serasi dengan jenis pesanan lain selain pesanan had.

Ralat pendanaan

Setiap mata wang kripto mempunyai maksimum 5 alamat deposit baharu (tidak digunakan), selepas itu sebarang percubaan untuk mencipta alamat baharu ke-6 akan mengembalikan ralat.

Ralat ini dikembalikan apabila titik akhir pendanaan dipanggil dengan parameter "method" yang tidak sah atau tiada. 

Parameter input "key" tidak sepadan dengan perihalan alamat yang ditetapkan dalam pengurusan akaun (melalui Pendanaan -> Pengeluaran).

Jumlah pengeluaran minimum mengikut mata wang berbeza-beza dan sebarang percubaan pengeluaran di bawah minimum akan mengakibatkan ralat ini.

Ini adalah ralat generik yang menunjukkan bahawa permintaan pendanaan tidak dapat diselesaikan (contohnya, pelanggan dari lokasi tertentu yang cuba membuat permintaan staking on chain akan menyebabkan ralat ini).

Pengeluaran yang diminta tidak dapat diselesaikan, kerana alamat destinasi tiada maklumat benefisiari/penerima yang diperlukan (ambil perhatian bahawa ini pada masa ini hanya terpakai untuk pengeluaran terpilih daripada akaun Kanada).

Ralat status perkhidmatan

Ralat perkhidmatan yang anda alami sepatutnya hanya sementara. Anda mungkin ingin menghantar semula permintaan anda jika ia gagal. Kami akan memantau isu-isu tersebut dan akan mengemas kini halaman kami:

https://status.kraken.com/

Ralat dalaman

Apabila kami menghadapi isu kemerosotan API, ini boleh menyebabkan masalah untuk Kraken dalam bentuk mesej perkhidmatan tidak tersedia dan gangguan tapak.

Isu ini berkaitan dengan keselamatan akaun anda yang mungkin telah dikompromi. Sila tukar kata laluan dan Pengesahan Dua Faktor anda serta hubungi Pusat Sokongan kami.

Ralat ini berlaku apabila bendera atau parameter input dilumpuhkan sementara atau secara kekal. Ralat sepatutnya datang daripada salah satu input yang dihantar, sila hubungi sokongan kami dengan menghantar log yang mengandungi maklumat lengkap yang digunakan untuk panggilan yang menjana ralat tersebut.

Ralat 5xx dan 10xx ini sebenarnya bukan ralat API, tetapi sebaliknya adalah ralat pelayan web daripada Cloudflare.

Ralat API sentiasa dikembalikan dalam format JSON seperti “error”:[“ErrorType:ErrorMessage”], jadi pada bila-bila masa ralat dalam format yang berbeza diterima (seperti kod status HTTP 520, 504, 502, 1020, dsb.), penyelesaian sementara adalah untuk mencuba panggilan API sekali lagi tidak lama kemudian dan diharapkan panggilan itu akan berjaya.

Perlu bantuan lebih lanjut?