Сообщения об ошибках API

Последнее обновление: 8 августа 2025 г.

Введение

Большинство запросов API выполняются успешно, но иногда что-то идет не так и вместо ожидаемого ответа появляется сообщение об ошибке.

Для нашего API существует множество описательных сообщений об ошибках, в которых указана причина возникновения ошибки и предложения по ее устранению.

Сообщения об ошибках API можно разделить на несколько групп (в зависимости от типа, причины и наилучшего решения). Однако все такие сообщения имеют одинаковый формат:

«Уровень серьезности»«категория ошибки»:«сообщение об ошибке»

Для обозначения уровня серьезности используется буква E (т. е. ошибка) или W (т. е. предупреждение). Существуют следующие категории ошибок: General (общая), API, Query (запрос), Order (ордер), Trade (торговля), Funding (перевод) и Service (сервис). Сообщение об ошибке может представлять собой любую текстовую строку, описывающую причину ошибки, например Invalid arguments (недопустимые аргументы).

Вот как выглядит сообщение об ошибке, вызванной тем, что в запросе тикера была указана недопустимая валютная пара:

EQuery:Unknown asset pair

Обратите внимание, что некоторые сторонние программы (мобильные приложения, торговые боты и т. д.) вместо нашего сообщения об ошибке API показывают свою версию, поэтому можно встретить другой формат ошибки или текст в зависимости от используемого ПО.

  • Общие ошибки при использовании

  • Ошибки, связанные с ограничением на запросы

  • Ошибки, связанные с торговлей (размещение или отмена ордеров)

  • Ошибки, связанные с переводами (пополнение счета или вывод средств)

  • Ошибки, связанные со статусом сервиса

  • Внутренние ошибки

  • Ошибки Cloudflare (сети)

Общие ошибки при использовании

Ошибка «в разрешении отказано» возникает, когда клиент API пытается выполнить задачу, для которой у ключа API нет разрешения. Например, клиент API пытается узнать баланс аккаунта с помощью ключа API, настроенного на разрешение доступа к торговле, а не к управлению аккаунтом. В таком случае будет получена ошибка «в разрешении отказано». Проверить свои ключи API и их настройки (в том числе разрешения) можно на вкладке страницы управления аккаунтом: «Настройки» -> API. Убедитесь, что ключи API, используемые сторонними приложениями, имеют все необходимые настройки и разрешения.

Эта ошибка возникает, когда срок действия ключа API, использованного для вызова, истек или ключ был деактивирован. Проверить его можно на вкладке страницы управления аккаунтом: «Настройки» -> API. Вы также можете создать новый ключ и обновить приложение.

Вы можете извлечь полный список пар активов из общего вызова AssetPairs и найти название нужной пары в качестве заголовка JSON или по параметру «altname»: https://api.kraken.com/0/public/AssetPairs

Эта ошибка возникает, когда метод вызывается без требуемых параметров. Например, если метод QueryOrders вызвать без указания идентификатора транзакции (txid), будет получена ошибка «недопустимые аргументы». При вызове метода с необязательными параметрами ошибка «недопустимые аргументы» не возникнет, так как они просто будут проигнорированы.

Ошибка «недопустимая подпись» возникает, если ключ API или секретный ключ API неправильно записаны в вашей программе или если данные POST, использованные для аутентификации, не совпадают с данными POST, отправленными в API. Ниже приведен пример кода Python для реализации алгоритма подписи API. Скопируйте и вставьте в него соответствующий открытый ключ API со страницы управления аккаунтом и обновите метод API и данные POST. Выходное значение можно использовать в качестве значения заголовка API-Sign HTTP. #!/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 рассчитывается с использованием одноразового случайного числа и данных POST для метода API. Данные POST состоят из пар имени/значения для одноразового случайного числа и параметров метода API. Пример данных, которые необходимо передать в SHA256 для метода TradeBalance: SHA256 = SHA256 имеет значение «1541933977000nonce=1541933977000&asset=xxbt». Переданное в SHA256 значение строки не должно содержать дополнительных нулей (\0) и быть закодировано в формате Base64 или hex (т. е. значение строки должно представлять собой простой текст). URL-путь – это полный URL-адрес метода API за исключением префикса «https://api.kraken.com», т. е. URL-путь метода TradeBalance, например, будет иметь значение строки «/0/private/TradeBalance» без дополнительных нулей. HMAC SHA512 рассчитывается с использованием URL-пути и ранее рассчитанной хеш-суммы SHA256. Расшифрованный закрытый ключ API в формате Base64 используется как ключ HMAC. Пример данных, которые необходимо передать в HMAC: HMAC SHA512 с использованием расшифрованного закрытого ключа в формате Base64 = HMAC имеет значение «/0/private/TradeBalanceSHA256». Заголовки API-Key и API-Sign HTTP – два единственных обязательных пользовательских заголовка HTTP. Заголовок API-Key представляет собой точную копию открытого ключа API, указанного на странице управления аккаунтом. Заголовок API-Sign – это хеш-сумма HMAC SHA512, зашифрованная в формате Base64.

Подробнее об этой ошибке: https://support.kraken.com/hc/en-us/articles/360001148063 Подробнее о nonce (одноразовом случайном числе) и nonce window: https://support.kraken.com/hc/en-us/articles/360000906023https://support.kraken.com/hc/en-us/articles/360001148023

Ошибка «недействительный сеанс» возникает в WebSocket API при попытке подписаться на подтвержденную (частную) ленту с помощью недействительного токена аутентификации (у которого, например, истек срок действия).

Для решения проблемы нужно просто запросить новый токен аутентификации через конечную точку REST API GetWebSocketsToken и использовать его для новых запросов на подтвержденную (частную) подписку.

Ошибка неверного запроса указывает на то, что в базовом HTTP-запросе (а не в последующем запросе API) есть ошибка, например несоответствие URL-адресов между REST/WebSocket или данные HTTP POST включены неправильно:

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

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

Эта ошибка возвращается, когда вызываемая конечная точка не является допустимой конечной точкой.

Ошибки, связанные с ограничением на запросы

Хотя добавление или отмена ордеров не идет в счет стандартного ограничения API, на такие действия распространяются отдельные ограничения на добавление и отмену ордеров. Чем дольше ордеры остаются в книге ордеров, тем больше ордеров можно добавлять или отменять.

Ошибка «временная блокировка» возникает, если в течение короткого периода времени было слишком много неудачных вызовов API или слишком много ошибок из-за недопустимых одноразовых случайных чисел либо недопустимых подписей. Несмотря на ошибку, такие вызовы все равно учитываются в рамках ограничений API и могут привести к временной блокировке.

Временная блокировка длится приблизительно 15 минут. После получения ошибки в связи с временной блокировкой подождите 15 минут, прежде чем отправлять новые запросы API. Если у вас несколько раз возникла ошибка из-за недопустимых одноразовых случайных чисел, увеличьте nonce window – возможно, это поможет снизить частоту появления таких ошибок. Попробуйте также реже совершать частные вызовы API.

Ошибки, связанные с торговлей

Для проведения обслуживания механизма торговли открытие новых спотовых маржинальных позиций приостановлено. Скоро эта функция снова станет доступна. Следите за новостями на сайте status.kraken.com.

Эта ошибка также может возникать, если спотовые маржинальные позиции недоступны для клиентов в определенных странах.

На Kraken вы не можете открыть позиции лонг и шорт для одной и той же пары.

Если вы хотите открыть позиции лонг и шорт для одной и той же валюты, выберите разные торговые пары, в которых она выступает в качестве базовой валюты или валюты котировки. Например: шорт XBT/USD, лонг XBT/EUR.

Эта ошибка означает, что вы превысили ограничения доступной маржи для текущего уровня верификации. Ограничения доступной маржи для каждой валюты зависят от текущего уровня верификации.

Наши средства для расширения маржи ограничены. Сообщение о недостаточной марже означает, что у нас пока нет средств в этом маржинальном пуле. Ситуация может измениться в любой момент. Возможно, у вас получится разместить ордер уже через несколько секунд или минут. Однако крупные ордера и ордера, размещенные в момент исполнения крупных ордеров, могут потребовать больше времени. Приносим извинения за неудобства.

Эта ошибка возникает, если недостаточно свободной маржи для открытия новой позиции на счете или если текущая попытка открыть позицию приведет к тому, что свободная маржа счета упадет ниже 100%.

У вас недостаточно средств для размещения ордера. Проверьте свои открытые позиции и ордера, чтобы понять, где могут удерживаться ваши средства.

Вы не достигли минимального объема ордера для этого актива.

Вы превысили максимальное количество открытых ордеров, доступных для вашего аккаунта.

Ограничения зависят от вашего уровня верификации. Закройте несколько открытых ордеров или пройдите верификацию аккаунта для перехода на следующий уровень.

Вы превысили максимальное количество открытых позиций, доступных для вашего аккаунта.

Ограничения зависят от вашего уровня верификации. Закройте несколько открытых позиций (или все из них) или пройдите верификацию аккаунта для перехода на следующий уровень, если это возможно.

Совершена попытка внести изменения в существующий (открытый) ордер, но этот процесс не был успешно завершен. Возможные причины: недостаточно средств для нового ордера, некоторые сценарии частичного заполнения и некоторые ордера с кредитным плечом.

Новый объем меньше уже исполненного или заполненного.

Размер ордера превысил лимит размера маржинальной позиции торговой пары.

Отображаемый объем не соответствует минимальному объему ордера.

Отображаемый объем должен быть меньше объема ордера.

Айсберг-ордера несовместимы с любыми другими типами ордеров, кроме лимитных ордеров.

Ошибки, связанные с переводами

Каждая криптовалюта имеет максимум пять новых (неиспользованных) адресов для пополнения. При попытке создать новый (шестой) адрес будет возникать ошибка.

Эта ошибка возникает, когда конечные точки перевода вызываются с недопустимым или отсутствующим параметром «метод». 

Входной параметр «ключ» не соответствует описанию адреса со страницы управления аккаунтом («Переводы» -> «Вывод»).

Минимальная сумма вывода средств различается в зависимости от валюты, и любая попытка вывода средств ниже минимальной суммы приведет к этой ошибке.

Это общая ошибка, указывающая на то, что запрос на перевод не может быть выполнен (например, клиенты из определенных регионов, пытающиеся сделать запрос на ончейн-стейкинг, могут вызвать эту ошибку).

Запрошенный вывод средств не может быть выполнен, поскольку в адресе назначения отсутствует необходимая информация о бенефициаре/получателе (обратите внимание, что в настоящее время это применимо только к некоторым выводам средств с канадских счетов).

Ошибки, связанные со статусом сервиса

Ошибки сервиса носят временный характер. Попробуйте отправить запрос еще раз после сбоя. Мы отслеживаем такие проблемы – следите за новостями на сайте

https://status.kraken.com/

Внутренние ошибки

Из-за сбоев API могут появляться сообщения о недоступности Kraken и проблемы в работе сайта.

Эта ошибка означает, что доступ к вашему аккаунту могли получить посторонние люди. Измените пароль, настройте двухфакторную аутентификацию и обратитесь в наш Центр поддержки.

Эта ошибка возникает, если флажок или входной параметр был временно или окончательно отключен. Проблема, скорее всего, исходит от одного из введенных параметров. Отправьте нашей службе поддержки журнал с полной информацией, использованной для вызова, во время которого произошла ошибка.

Ошибки 5xx и 10xx скорее связаны не с API, а с веб-сервером Cloudflare.

Ошибки API всегда отображаются в формате JSON: «ошибка»: [“ErrorType:ErrorMessage”]. Если формат другой (например, код состояния HTTP 520, 504, 502, 1020 и т. д.), попробуйте повторить вызов API чуть позже, и, возможно, проблема будет устранена.

Нужна дополнительная помощь?