Soalan Lazim API Lanjutan

Terakhir dikemas kini: 25 November 2025

Menggunakan titik akhir pembiayaan REST API, pelanggan dapat mendeposit/mengeluarkan dana ke/dari akaun Kraken mereka, dan untuk meminta status masa nyata transaksi deposit/pengeluaran.

Deposit/pengeluaran melalui beberapa peringkat antara permintaan awal dan transaksi diselesaikan, oleh itu titik akhir pembiayaan akan mengembalikan nilai status yang berbeza bergantung pada masa ia dipanggil.

Ambil perhatian bahawa nilai status pada asalnya datang dari halaman 16/17 dokumen Internet Financial Exchange Protocol (IFEX), tetapi nilai-nilai tersebut telah diubah suai sedikit agar lebih sesuai untuk transaksi crypto (contohnya, tidak semua nilai status yang mungkin digunakan).

Deposit

Nilai status yang mungkin untuk transaksi deposit adalah seperti berikut:

  • Settled = Deposit telah diterima tetapi masih memerlukan pengesahan tambahan pada blockchain.

  • Success = Deposit telah mencapai bilangan pengesahan yang diperlukan pada blockchain.

  • Failure = Deposit gagal (atas satu atau lebih pelbagai sebab).

Berikut adalah beberapa contoh bagaimana nilai status di atas akan muncul dalam respons daripada titik akhir DepositStatus:

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

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

Pengeluaran

Nilai status yang mungkin untuk transaksi pengeluaran adalah seperti berikut:

  • Initial = Permintaan pengeluaran telah diterima dan sedang disemak untuk kesahihan (sebarang sekatan pembiayaan pada akaun, dsb.).

  • Pending = Pengeluaran sedang menunggu untuk diproses oleh gerbang pembiayaan kami.

  • Settled = Pengeluaran telah dihantar ke blockchain (pada ketika ini ID transaksi blockchain akan tersedia).

  • Success = Transaksi pengeluaran mempunyai sekurang-kurangnya 1 pengesahan pada blockchain.

  • On hold = Pengeluaran telah ditahan dan perlu disemak secara manual oleh pasukan pembiayaan kami.

  • Failure = Pengeluaran gagal (atas satu atau lebih pelbagai sebab).

Berikut adalah beberapa contoh bagaimana nilai status di atas akan muncul dalam respons daripada titik akhir WithdrawStatus:

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

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

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

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

Failure 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":"Failure","status-prop":"canceled"}]}

Maklumat tambahan mengenai deposit/pengeluaran tersedia melalui halaman sokongan pembiayaan tunai dan pembiayaan cryptocurrency kami.

Titik akhir OHLC REST API hanya menyediakan jumlah data sejarah yang terhad, khususnya 720 titik data bagi selang masa yang diminta. Contohnya, meminta data OHLC dalam selang 1 minit akan mengembalikan data 720 minit (12 jam) yang terkini.

Untuk aplikasi yang memerlukan data OHLC atau tick tambahan, adalah mungkin untuk mendapatkan keseluruhan sejarah dagangan pasaran kami (masa dan jualan sejarah) melalui titik akhir REST API Trades. OHLC untuk sebarang jangka masa dan sebarang selang kemudian boleh dicipta daripada data masa dan jualan sejarah.

Titik akhir Trades mengambil parameter pilihan bernama since, yang menentukan tarikh/masa permulaan data. Nilai since adalah cap waktu UNIX pada resolusi nanosaat (cap waktu UNIX standard dalam saat dengan 9 digit tambahan).

Contohnya, panggilan ke titik akhir Trades seperti https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 akan mengembalikan masa dan jualan sejarah untuk XBT/USD dari 1 Jun 2019 pada 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"}}

Panggilan seterusnya ke titik akhir Trades harus menggantikan nilai parameter since dengan nilai parameter last daripada hasil panggilan sebelumnya seperti https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

Menggunakan nilai since khas 0 (sifar) akan mengembalikan masa dan jualan sejarah dari permulaan pasaran (bermula dengan dagangan pertama).

Rujukan pengguna ialah ID pesanan yang disediakan oleh pelanggan yang boleh digunakan sebagai ganti ID pesanan sebenar (disediakan API) untuk beberapa tugas pengurusan pesanan (terutamanya membatalkan pesanan).

Rujukan pengguna dilaksanakan untuk menjadi sefleksibel mungkin, dan oleh itu boleh digunakan dalam pelbagai cara yang berbeza, termasuk:

  • sebagai ID unik (di mana setiap pesanan mempunyai rujukan pengguna yang berbeza),

  • untuk mengumpulkan pesanan berkaitan bersama (seperti mengumpulkan pesanan dengan tahap leverage yang berbeza),

  • atau sebagai ID sandaran sekiranya ID pesanan sebenar tidak diketahui.

Rujukan pengguna mestilah nilai berangka antara 1 dan 2,147,483,647 (pada dasarnya sebarang nombor 32 bit positif), dan oleh itu boleh dilaksanakan sebagai pembilang mudah, sebagai nilai 32 bit bertanda rawak, atau bahkan sebagai cap waktu dalam saat (walaupun ini akan gagal selepas 19 Januari 2038 pada 3:14:07 UTC).

Meletakkan pesanan dengan rujukan pengguna

Pesanan boleh diletakkan dengan rujukan pengguna yang dilampirkan dengan memanggil titik akhir AddOrder dan menyertakan parameter userref dengan rujukan pengguna sebagai nilai:

$ ./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"]}}

Melihat pesanan yang mempunyai rujukan pengguna

Pesanan yang sudah mempunyai rujukan pengguna yang dilampirkan boleh dilihat dengan memanggil titik akhir Open/Closed/QueryOrders dan menyertakan parameter userref dengan rujukan pengguna sedia ada sebagai nilai (dalam kes ini rujukan pengguna bertindak sebagai penapis, hanya memaparkan pesanan yang berkaitan):

$ ./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","cost":"0.000000000","fee":"0.000000000","price":"0.000000000","stopprice":"0.000000000","limitprice":"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","cost":"0.00000","fee":"0.00000","price":"0.00000","stopprice":"0.00000","limitprice":"0.00000","misc":"","oflags":"fciq"}},"count":1}}

Membatalkan pesanan yang mempunyai rujukan pengguna

Pesanan yang sudah mempunyai rujukan pengguna yang dilampirkan boleh dibatalkan menggunakan rujukan pengguna dengan memanggil titik akhir CancelOrder dan menggunakan rujukan pengguna sebagai nilai txid (menggantikan nilai ID pesanan):

$ ./krakenapi CancelOrder txid=16764529

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

Ambil perhatian bahawa semua pesanan terbuka dengan rujukan pengguna yang sama akan dibatalkan, oleh itu adalah mungkin untuk membuat satu panggilan CancelOrder untuk membatalkan berbilang pesanan secara serentak (seperti yang ditunjukkan oleh nilai count sebanyak 3 dalam respons berikut):

$ ./krakenapi CancelOrder txid=48695624

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

Isu ini mungkin berkaitan dengan Cloudflare:

https://support.cloudflare.com/hc/en-us/articles/200169226-Why-am-I-getting-a-403-error-

NOTA: Kraken telah mendayakan "Browser Integrity Check".

Ini mungkin berlaku jika permintaan anda mengandungi pengepala yang mencurigakan. Contohnya, permintaan anda mungkin tiada ejen pengguna, atau menggunakan ejen pengguna bukan standard; jadi sila semak pengepala permintaan anda.

Jika anda tidak dapat membuat sebarang permintaan standard yang dibenarkan oleh sistem kami, hantarkan kepada kami salinan penuh permintaan yang anda cuba, termasuk alamat IP anda dan semua pengepala. Maklumat ini akan membolehkan kami menyiasat lebih lanjut.

API Futures

Untuk API Futures REST dan WebSocket kami (futures.kraken.com) kami menawarkan persekitaran ujian penuh menggunakan URL API demo-futures.kraken.com.

Persekitaran Ujian REST, WebSocket dan FIX

Untuk REST/WebSocket API dan FIX API spot kami, kami kini menawarkan persekitaran ujian untuk pelanggan yang layak. Mengakses persekitaran ini memerlukan proses orientasi yang boleh dimulakan dengan menghubungi pasukan API secara langsung.

Menguji API Kami Menggunakan Parameter Ujian Validate

Apabila membuat pesanan melalui titik akhir REST API AddOrder atau WebSocket API addOrder, parameter input validate boleh digunakan untuk mensimulasikan pesanan.

Memanggil AddOrder/addOrder dengan parameter validate ditetapkan kepada true (validate=1, validate=true, validate=anything, dll.) akan menyebabkan butiran pesanan diperiksa untuk ralat, tetapi respons API tidak akan pernah menyertakan order ID (yang akan sentiasa dikembalikan untuk pesanan yang berjaya tanpa parameter validate).

Contoh panggilan AddOrder dengan parameter validate (perhatikan order ID yang tiada):

bash

Bash

$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=market volume=5000 validate=true{"error":[],"result":{"descr":{"order":"buy 5000.00000000 XDGUSD @ market"}}}

Pesanan sebenar kecil dan/atau pesanan dengan harga ekstrem

Untuk ujian API yang komprehensif menggunakan Parameter Validate, kami mengesyorkan membuat market orders yang sangat kecil (pesanan untuk saiz pesanan minimum), atau limit orders yang berharga jauh dari harga pasaran semasa (contohnya, membuat limit order untuk menjual ETH/USD pada $800 apabila harga pasaran ialah $200).

Pengujian menggunakan live orders membolehkan kod API anda berinteraksi dengan API kami dalam keadaan dunia sebenar, oleh itu setiap aspek ujian akan tepat (bagaimana pesanan anda mempengaruhi order book, dll.).

Atas sebab keselamatan, kami baru-baru ini menghentikan sokongan untuk TLS 1.0 dan 1.1. Jika anda menghadapi mesej ralat sambungan SSL/TLS semasa cuba menyambung ke API kami, kemungkinan besar ia disebabkan oleh penggunaan salah satu piawaian yang tidak lagi digunakan ini. Anda perlu mengubah suai klien API anda untuk memaksa penggunaan TLS 1.2/1.3 atau menaik taraf versi .NET anda kepada 4.6 atau lebih tinggi, yang menggunakan TLS 1.2/1.3 sebagai standard.

Google Sheet berikut boleh digunakan untuk mengira tandatangan pengesahan REST API untuk sebarang gabungan data input:

  • Kunci API private (rahsia)

  • Titik akhir API (Balance, TradeBalance, QueryOrders, dll.)

  • Nilai Nonce (lihat halaman sokongan kami apa itu nonce untuk butiran lanjut)

  • Parameter input titik akhir (contohnya, asset=doge)

Kalkulator boleh digunakan untuk mengesahkan bahawa algoritma pengesahan telah dilaksanakan dengan betul, dengan itu mengelakkan isu-isu yang berpotensi (terutamanya ralat kunci tidak sah yang tidak dijangka) kemudian dalam kitaran pembangunan.

Arahan penggunaan

  1. 1

    Buka kalkulator pengesahan REST API dalam Chrome (atau mana-mana web browser terkini yang lain)

  2. 2

    Buat salinan kalkulator ke Google Drive anda sendiri melalui menu Fail -> Buat salinan (anda perlu log masuk ke akaun Google anda untuk langkah ini)

  3. 3

    Edit medan API key, API endpoint, nonce value, dan input data dengan API key dan butiran permintaan anda sendiri

  4. 4

    Bandingkan tandatangan pengesahan API yang dikira dengan nilai yang dikira oleh kod API anda sendiri (kedua-dua nilai mesti sepadan dengan tepat)

Atas sebab keselamatan, kami mengesyorkan menggunakan kalkulator pengesahan dengan API key sementara, dan kemudian memadamkan API key daripada akaun anda setelah pelaksanaan tandatangan pengesahan anda terbukti betul.

Contoh

Screenshot_2021-06-21_at_14.42.35.png

Manfaat utama menggunakan pembalut perpustakaan klien kami ialah anda tidak perlu meluangkan masa/usaha untuk mencipta semula API signatures, ia sudah dilakukan untuk anda.

Jika anda hanya berhasrat untuk membuat panggilan kepada public methods, maka anda boleh memilih untuk tidak menggunakan perpustakaan klien kerana tiada pengesahan diperlukan.

Senarai pembalut yang tersedia boleh anda dapatkan di sini.

Perlu bantuan lebih lanjut?