Thông báo lỗi API

Cập nhật lần cuối: 8 thg 8, 2025

Giới thiệu

Hầu hết các yêu cầu API đều được hoàn thành thành công, nhưng đôi khi có lỗi xảy ra và một thông báo lỗi được trả về thay vì phản hồi mong đợi.

API của chúng tôi cung cấp nhiều thông báo lỗi mô tả nhằm cung cấp lý do gây ra lỗi và đưa ra các đề xuất giải pháp phù hợp.

Các thông báo lỗi API có thể được chia thành nhiều nhóm khác nhau (tùy thuộc vào loại lỗi, nguyên nhân cơ bản và giải pháp tối ưu), nhưng định dạng của các thông báo lỗi API là nhất quán và như sau:

"Mức độ nghiêm trọng""Danh mục lỗi":"Thông báo lỗi"

"Mức độ nghiêm trọng" có thể là E cho lỗi hoặc W cho cảnh báo. "Danh mục lỗi" có thể là một trong các loại General, API, Query, Order, Trade, Funding hoặc Service. "Thông báo lỗi" có thể là bất kỳ chuỗi văn bản nào mô tả lý do gây ra lỗi (chẳng hạn như Invalid arguments).

Ví dụ, một lỗi cho biết một cặp tiền tệ không hợp lệ đã được sử dụng trong truy vấn ticker sẽ như sau:

EQuery:Unknown asset pair

Lưu ý rằng một số phần mềm của bên thứ ba (ứng dụng di động, bot giao dịch, v.v.) chọn ẩn lỗi API gốc và hiển thị lỗi tùy chỉnh thay thế, do đó, định dạng hoặc nội dung lỗi thay thế có thể xảy ra tùy thuộc vào phần mềm đang được sử dụng.

  • Lỗi sử dụng chung

  • Lỗi giới hạn tỷ lệ

  • Lỗi giao dịch (đặt/hủy lệnh)

  • Lỗi nạp/rút tiền (Funding)

  • Lỗi trạng thái dịch vụ

  • Lỗi nội bộ

  • Lỗi Cloudflare (mạng)

Lỗi sử dụng chung

Lỗi từ chối quyền được trả về khi ứng dụng khách API đang cố gắng thực hiện một tác vụ mà khóa API không có quyền. Ví dụ, nếu một ứng dụng khách API cố gắng truy xuất số dư tài khoản bằng khóa API được cấu hình để cho phép truy cập giao dịch nhưng không cho phép truy cập quản lý tài khoản, thì lỗi từ chối quyền sẽ được trả về. Bạn có thể xem lại các khóa API và cài đặt của chúng (chẳng hạn như quyền của chúng) thông qua tab Cài đặt -> API trong quản lý tài khoản. Bạn cần đảm bảo rằng các khóa API được ứng dụng của bên thứ ba của bạn sử dụng có tất cả các cài đặt và quyền mà ứng dụng của bạn yêu cầu.

Lỗi này được trả về khi khóa API được sử dụng cho lệnh gọi đã hết hạn hoặc bị vô hiệu hóa, vui lòng xem lại khóa API trong tab Cài đặt -> API của quản lý tài khoản hoặc tạo khóa mới và cập nhật ứng dụng của bạn.

Bạn có thể lấy danh sách đầy đủ các cặp tài sản của chúng tôi từ lệnh gọi công khai AssetPairs và tìm tên cặp dưới dạng mục nhập của tiêu đề Json hoặc bằng tham số "altname": https://api.kraken.com/0/public/AssetPairs

Lỗi này được trả về khi một phương thức được gọi mà không có các tham số bắt buộc. Ví dụ, việc gọi phương thức QueryOrders mà không chỉ định tham số ID giao dịch (txid) hợp lệ sẽ gây ra lỗi đối số không hợp lệ. Việc gọi một phương thức với các tham số không cần thiết sẽ không trả về lỗi đối số không hợp lệ vì các tham số không cần thiết sẽ bị bỏ qua.

Lỗi chữ ký không hợp lệ xảy ra nếu khóa API hoặc khóa bí mật API của bạn được viết không chính xác trong chương trình của bạn hoặc vì dữ liệu POST được sử dụng trong xác thực và dữ liệu POST được gửi đến API không khớp.Để tham khảo thêm, sau đây là ví dụ mã Python để triển khai thuật toán chữ ký API. Khóa công khai API thích hợp nên được sao chép và dán từ quản lý tài khoản, và phương thức API cùng dữ liệu POST nên được cập nhật phù hợp. Giá trị đầu ra có thể được sử dụng trực tiếp làm giá trị cho tiêu đề 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 được tính toán bằng cách sử dụng chính giá trị nonce và dữ liệu POST cho phương thức API, và DỮ LIỆU POST bao gồm các cặp tên/giá trị cho nonce (một lần nữa) và các tham số phương thức API. Một ví dụ về dữ liệu nên được truyền cho SHA256 cho phương thức TradeBalance sẽ như sau:SHA256 = SHA256 của "1541933977000nonce=1541933977000&asset=xxbt"Giá trị chuỗi được truyền cho SHA256 không được chứa bất kỳ giá trị null (\0) bổ sung nào và giá trị chuỗi không được mã hóa dưới dạng base64 hoặc hex (tức là giá trị chuỗi phải là một chuỗi văn bản thuần túy).Đường dẫn URI là toàn bộ URL của phương thức API ngoại trừ tiền tố "https://api.kraken.com", vì vậy đường dẫn URI của phương thức TradeBalance (ví dụ) sẽ là giá trị chuỗi "/0/private/TradeBalance" mà không có bất kỳ giá trị null bổ sung nào.HMAC SHA512 được tính toán bằng cách sử dụng đường dẫn URI và giá trị băm SHA256 đã tính toán trước đó, với khóa riêng API được giải mã base64 làm khóa HMAC. Một ví dụ về dữ liệu nên được truyền cho HMAC sẽ như sau:HMAC SHA512 sử dụng khóa riêng API được giải mã base64 = HMAC của "/0/private/TradeBalanceSHA256"Các tiêu đề HTTP API-Key và API-Sign là hai tiêu đề HTTP tùy chỉnh bắt buộc duy nhất. Tiêu đề API-Key là bản sao chính xác của khóa công khai API từ quản lý tài khoản. Tiêu đề API-Sign là giá trị băm HMAC SHA512 được mã hóa bằng base64.

Bạn có thể tìm thêm thông tin về lỗi này tại đây:https://support.kraken.com/hc/en-us/articles/360001148063Và thêm về Nonce và Nonce Window tại đây:https://support.kraken.com/hc/en-us/articles/360000906023https://support.kraken.com/hc/en-us/articles/360001148023

Lỗi phiên không hợp lệ được trả về qua WebSocket API, khi có nỗ lực đăng ký một nguồn cấp dữ liệu được xác thực (riêng tư) bằng cách sử dụng mã thông báo xác thực không còn hợp lệ (ví dụ: đã hết hạn).

Giải pháp đơn giản là yêu cầu một mã thông báo xác thực mới thông qua điểm cuối REST API GetWebSocketsToken và sử dụng mã thông báo mới cho tất cả các yêu cầu đăng ký được xác thực (riêng tư) tiếp theo.

Lỗi yêu cầu không hợp lệ cho biết có điều gì đó không chính xác về yêu cầu HTTP cơ bản (không phải yêu cầu API tiếp theo), chẳng hạn như URL không khớp giữa REST/WebSocket hoặc không bao gồm dữ liệu HTTP POST một cách chính xác:

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

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

Lỗi này được trả về khi điểm cuối được gọi không phải là điểm cuối hợp lệ.

Lỗi giới hạn tỷ lệ

Mặc dù việc thêm và hủy lệnh không được tính vào giới hạn bộ đếm API tiêu chuẩn của chúng tôi, nhưng các hoạt động này có bộ đếm thêm và hủy lệnh riêng. Bộ đếm này hoạt động theo cách mà các lệnh càng được giữ trên sổ lệnh lâu thì khách hàng càng có thể thêm hoặc hủy nhiều lệnh hơn.

Thông báo lỗi khóa tạm thời có thể xảy ra nếu bạn có quá nhiều lệnh gọi API không thành công hoặc quá nhiều lỗi nonce không hợp lệ trong một khoảng thời gian ngắn hoặc chữ ký không hợp lệ. Mặc dù các lệnh gọi này trả về lỗi, nhưng lỗi đó vẫn được tính vào giới hạn API của bạn và có thể dẫn đến khóa tạm thời.

Khóa tạm thời kéo dài khoảng 15 phút. Sau khi nhận được lỗi khóa tạm thời, vui lòng đợi 15 phút trước khi gửi bất kỳ yêu cầu API mới nào. Nếu bạn đang gây ra một số lỗi nonce không hợp lệ, vui lòng tăng cửa sổ nonce vì điều này có thể giúp giảm tần suất xảy ra các lỗi này. Vui lòng cố gắng giảm tần suất các lệnh gọi API riêng tư của bạn.

Lỗi giao dịch

Mở vị thế spot mới trên margin đã tạm thời bị đình chỉ để bảo trì công cụ giao dịch. Tính năng này sẽ sớm trở lại và bạn có thể theo dõi các cập nhật tại status.kraken.com.

Một lý do khác có thể là vị thế spot trên margin hiện không khả dụng cho khách hàng cư trú tại một số quốc gia nhất định.

Trên Kraken, bạn không thể mở vị thế long và short cho cùng một cặp.

Nếu muốn mở vị thế long và short cho cùng một loại tiền tệ, vui lòng chọn các cặp giao dịch khác có cùng loại tiền tệ làm tiền tệ cơ sở hoặc tiền tệ định giá. Ví dụ: short XBT/USD, long XBT/EUR.

Lỗi này xảy ra khi bạn đã vượt quá giới hạn cấp phép margin cho cấp độ xác minh hiện tại của mình. Giới hạn cấp phép margin cho mỗi loại tiền tệ khác nhau tùy thuộc vào cấp độ xác minh hiện tại của bạn.

Chúng tôi có quỹ hạn chế cho các khoản gia hạn margin. Thông báo "insufficient margin" cho biết chúng tôi tạm thời hết quỹ trong nhóm margin áp dụng. Điều này có thể thay đổi bất cứ lúc nào. Bạn có thể đặt lệnh thành công chỉ vài giây hoặc vài phút sau đó, nhưng các lệnh có khối lượng lớn và các lệnh được đặt trong thời gian có khối lượng giao dịch cao có thể mất nhiều thời gian hơn. Xin lỗi vì bất kỳ sự bất tiện nào.

Lỗi này xảy ra khi không có đủ Free Margin để mở một vị thế mới trên tài khoản hoặc nếu nỗ lực hiện tại để mở một vị thế sẽ khiến Free Margin của tài khoản giảm xuống dưới 100%.

Bạn không có đủ tiền để đặt lệnh này. Vui lòng xem lại các vị thế và lệnh đang mở của bạn để tìm các mục có thể đang giữ tiền của bạn.

Bạn chưa đạt khối lượng lệnh tối thiểu cho tài sản này.

Bạn đã vượt quá số lượng lệnh mở tối đa có sẵn cho tài khoản của mình.

Các giới hạn này dựa trên cấp độ xác minh của bạn. Vui lòng đóng một số lệnh mở của bạn hoặc xác minh tài khoản của bạn lên cấp độ cao hơn.

Bạn đã vượt quá số lượng vị thế mở tối đa có sẵn cho tài khoản của mình.

Các giới hạn này dựa trên cấp độ xác minh của bạn. Vui lòng đóng hoặc thanh lý một số hoặc tất cả các vị thế mở của bạn hoặc xác minh tài khoản của bạn lên cấp độ cao hơn nếu có thể.

Đã có một nỗ lực chỉnh sửa lệnh hiện có (đang mở) nhưng các sửa đổi không thể hoàn tất thành công. Các lý do có thể bao gồm không đủ tiền cho lệnh mới, một số trường hợp khớp lệnh một phần và một số lệnh đòn bẩy.

Khối lượng mới nhỏ hơn khối lượng đã được thực hiện/khớp.

Kích thước lệnh đã vượt quá giới hạn kích thước vị thế margin của cặp giao dịch.

Khối lượng hiển thị chưa đạt khối lượng lệnh tối thiểu.

Khối lượng hiển thị phải nhỏ hơn khối lượng của lệnh.

Lệnh Iceberg không tương thích với bất kỳ loại lệnh nào khác ngoài lệnh giới hạn.

Lỗi nạp/rút tiền

Mỗi loại tiền mã hóa có tối đa 5 địa chỉ nạp tiền mới (chưa sử dụng), sau đó mọi nỗ lực tạo địa chỉ mới thứ 6 sẽ trả về lỗi.

Lỗi này được trả về bất cứ khi nào các điểm cuối nạp/rút tiền được gọi với tham số "method" không hợp lệ hoặc bị thiếu. 

Tham số đầu vào "key" không tương ứng với mô tả địa chỉ được thiết lập trong quản lý tài khoản (qua Nạp/Rút tiền -> Rút tiền).

Số tiền rút tối thiểu theo loại tiền tệ khác nhau và mọi nỗ lực rút tiền dưới mức tối thiểu sẽ dẫn đến lỗi này.

Đây là lỗi chung cho biết yêu cầu nạp tiền không thể hoàn tất (ví dụ: khách hàng từ một số địa điểm nhất định cố gắng thực hiện yêu cầu staking trên chuỗi sẽ gây ra lỗi này).

Yêu cầu rút tiền không thể hoàn tất vì địa chỉ đích thiếu thông tin người thụ hưởng/người nhận bắt buộc (lưu ý rằng điều này hiện chỉ áp dụng cho một số giao dịch rút tiền từ tài khoản Canada).

Lỗi trạng thái dịch vụ

Các lỗi dịch vụ bạn đang gặp phải chỉ mang tính tạm thời. Bạn có thể muốn gửi lại yêu cầu của mình nếu chúng đã thất bại. Chúng tôi sẽ theo dõi các vấn đề và sẽ cập nhật trang của chúng tôi:

https://status.kraken.com/

Lỗi nội bộ

Khi chúng tôi gặp phải các vấn đề suy giảm API, những vấn đề này có thể dẫn đến sự cố cho Kraken dưới dạng thông báo dịch vụ không khả dụng và ngừng hoạt động trang web.

Vấn đề này liên quan đến bảo mật tài khoản của bạn có thể đã bị xâm phạm. Vui lòng thay đổi mật khẩu và Xác thực hai yếu tố, sau đó liên hệ với Trung tâm hỗ trợ của chúng tôi.

Lỗi này xảy ra khi một cờ hoặc tham số đầu vào bị vô hiệu hóa tạm thời hoặc vĩnh viễn. Lỗi có thể xuất phát từ một trong các đầu vào được truyền, vui lòng liên hệ bộ phận hỗ trợ của chúng tôi và gửi nhật ký với thông tin đầy đủ được sử dụng cho lệnh gọi đã tạo ra lỗi.

Các lỗi 5xx và 10xx này thực chất không phải là lỗi API, mà là lỗi máy chủ web từ Cloudflare.

Lỗi API luôn được trả về ở định dạng JSON như “error”:[“ErrorType:ErrorMessage”], vì vậy bất cứ khi nào nhận được lỗi ở định dạng khác (chẳng hạn như mã trạng thái HTTP 520, 504, 502, 1020, v.v.), giải pháp tạm thời là thử gọi API lại sau đó một thời gian ngắn và hy vọng lệnh gọi sẽ thành công.

Bạn cần thêm trợ giúp?