Повідомлення про помилки API

Останнє оновлення: 8 серпня 2025 р.

Вступ

Більшість запитів API успішно завершуються, але іноді щось йде не так, і замість очікуваної відповіді повертається повідомлення про помилку.

Наш API надає різноманітні описові повідомлення про помилки, призначені для пояснення причини помилки та надання пропозицій щодо відповідного рішення.

Повідомлення про помилки API можна розділити на кілька різних груп (залежно від типу помилки, основної причини та оптимального рішення), але формат повідомлень про помилки API є послідовним і виглядає наступним чином:

"Рівень серйозності""Категорія помилки":"Повідомлення про помилку"

"Рівень серйозності" може бути E для помилки або W для попередження. "Категорія помилки" може бути однією з: Загальна, API, Запит, Ордер, Торгівля, Поповнення або Сервіс. "Повідомлення про помилку" може бути будь-яким текстовим рядком, що описує причину помилки (наприклад, Недійсні аргументи).

Наприклад, помилка, що вказує на використання недійсної валютної пари в запиті тікера, буде виглядати так:

EQuery:Unknown asset pair

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

  • Загальні помилки використання

  • Помилки перевищення ліміту запитів

  • Помилки торгівлі (розміщення/скасування ордерів)

  • Помилки поповнення (депозит/виведення)

  • Помилки статусу сервісу

  • Внутрішні помилки

  • Помилки Cloudflare (мережеві)

Загальні помилки використання

Помилки "Доступ заборонено" повертаються, коли клієнт API намагається виконати завдання, на яке ключ 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 слід оновити відповідним чином. Вихідне значення можна використовувати безпосередньо як значення для заголовка 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 обчислюється за допомогою самого значення nonce та даних POST для методу API, а дані POST складаються з пар ім'я/значення для nonce (знову) та параметрів методу API. Приклад даних, які слід передати до SHA256 для методу TradeBalance, буде таким:SHA256 = SHA256 of "1541933977000nonce=1541933977000&asset=xxbt"Рядкове значення, яке передається до SHA256, не повинно містити додаткових нульових (\0) значень, і рядкове значення не повинно бути закодовано як base64 або hex (тобто рядкове значення повинно бути простим текстовим рядком).Шлях URI – це повна URL-адреса методу API, за винятком префікса "https://api.kraken.com", тому шлях URI методу TradeBalance (наприклад) буде рядковим значенням "/0/private/TradeBalance" без будь-яких додаткових нульових значень.HMAC SHA512 обчислюється за допомогою шляху URI та раніше обчисленого дайджесту SHA256, з розкодованим base64 приватним ключем API як ключем HMAC. Приклад даних, які слід передати до HMAC, буде таким:HMAC SHA512 using base64 decoded private key = HMAC of "/0/private/TradeBalanceSHA256"Заголовки HTTP API-Key та API-Sign є єдиними двома необхідними користувацькими заголовками 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, помилок недійсного значення nonce за короткий проміжок часу або недійсних підписів. Навіть якщо ці виклики повертають помилку, вона все одно враховується у ваших лімітах API й може призвести до тимчасового блокування (локаута).

Тимчасовий локаут триває приблизно 15 хвилин. Після виникнення помилки тимчасового локаута зачекайте 15 хвилин, перш ніж надсилати нові запити API. Якщо у вас виникає кілька помилок недійсного значення nonce, збільште вікно nonce: це може допомогти зменшити частоту виникнення таких помилок. Також спробуйте зменшити частоту викликів приватних методів API.

Помилки торгівлі

Відкриття нових спотових позицій з маржею тимчасово призупинено для технічного обслуговування торгового двигуна. Ця функція незабаром повернеться, і ви можете стежити за оновленнями на status.kraken.com.

Іншою причиною може бути те, що спотові позиції з маржею наразі недоступні для клієнтів, які проживають у певних країнах.

На Kraken ви не можете відкрити довгу та коротку позицію для однієї й тієї ж пари.

Якщо ви бажаєте відкрити довгу та коротку позицію для однієї й тієї ж валюти, будь ласка, оберіть різні торгові пари з тією ж валютою як базовою або валютою котирування. Наприклад: коротка XBT/USD, довга XBT/EUR.

Ця помилка виникає, коли ви перевищили ліміти дозволеної маржі для вашого поточного рівня верифікації. Ліміти дозволеної маржі для кожної валюти залежать від вашого поточного рівня верифікації.

У нас обмежені кошти для маржинальних розширень. Повідомлення "недостатньо маржі" вказує на те, що наразі у нас закінчилися кошти у відповідному маржинальному пулі. Це може змінитися в будь-який час. Ви можете успішно розмістити своє замовлення через кілька секунд або хвилин, але замовлення з великим обсягом та замовлення, розміщені в періоди високого обсягу, можуть зайняти більше часу. Прийміть наші вибачення за будь-які незручності.

Ця помилка виникає, коли недостатньо вільної маржі для відкриття нової позиції на рахунку або якщо поточна спроба відкрити позицію призведе до падіння вільної маржі рахунку нижче 100%.

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

Ви не досягли мінімального обсягу замовлення для цього активу.

Ви перевищили максимальну кількість відкритих замовлень, доступних для вашого облікового запису.

Ці ліміти базуються на вашому рівні верифікації. Будь ласка, закрийте деякі зі своїх відкритих замовлень або верифікуйте свій обліковий запис до вищого рівня.

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

Ці ліміти базуються на вашому рівні верифікації. Будь ласка, закрийте або врегулюйте деякі або всі свої відкриті позиції або, якщо можливо, верифікуйте свій обліковий запис до вищого рівня.

Була зроблена спроба відредагувати наявний (відкритий) ордер, але зміни не були успішно внесені. Можливі сценарії: недостатньо коштів для відкриття нового ордера, деякі випадки з частковим виконанням і деякі ордери з кредитним плечем.

Новий об’єм менший за вже виконаний/заповнений.

Розмір ордера перевищив ліміт розміру маржинальної позиції для торгової пари.

Відображуваний обсяг не відповідає мінімальному обсягу ордера.

Відображуваний обсяг має бути меншим за обсяг ордера.

Айсберг-ордери несумісні з будь-якими іншими типами ордерів, окрім лімітних ордерів.

Помилки переказів

Кожна криптовалюта має максимум 5 нових (невикористаних) адрес для поповнення, після чого будь-яка спроба створити 6-ту нову адресу поверне помилку.

Ця помилка повертається щоразу, коли на кінцеві точки переказів надходить виклик із недійсним або відсутнім параметром методу. 

Вхідний параметр "key" не відповідає опису адреси, встановленому в управлінні обліковим записом (через Фінансування -> Виведення).

Мінімальні суми виведення коштів залежать від валюти, і будь-яка спроба виведення нижче мінімальної призведе до цієї помилки.

Це загальна помилка, яка вказує на те, що запит на фінансування не вдалося виконати (наприклад, клієнти з певних регіонів, які намагаються зробити запити на стейкінг в мережі, отримають цю помилку).

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

Помилки статусу сервісу

Помилки в роботі сервісу, з якими ви стикаєтеся, мають бути тимчасовими. Вам слід повторно надіслати запити, що не були виконані. Ми відстежуватимемо проблеми та оновлюватимемо нашу сторінку:

https://status.kraken.com/

Внутрішні помилки

Коли ми стикаємося з проблемами деградації API, це може призвести до проблем для Kraken у вигляді повідомлень про недоступність сервісу та збоїв сайту.

Ця проблема пов’язана з безпекою вашого облікового запису, що міг бути зламаний. Змініть пароль і параметри двофакторної автентифікації та зверніться до нашого центру підтримки.

Ця помилка виникає, коли прапорець або вхідний параметр тимчасово або постійно вимкнені. Помилка має бути пов’язана з одним із вхідних параметрів. Зверніться в нашу службу підтримку, надіславши журнал із повною інформацією щодо виклику, який згенерував помилку.

Ці помилки 5xx та 10xx насправді не є помилками API, а є помилками веб-сервера від Cloudflare.

Помилки API завжди повертаються у форматі JSON, наприклад, “error”:[“ErrorType:ErrorMessage”], тому щоразу, коли отримується помилка в іншому форматі (наприклад, код стану HTTP 520, 504, 502, 1020 тощо), тимчасовим рішенням є повторна спроба виклику API незабаром після цього, і, сподіваємося, виклик буде успішним.

Потрібна додаткова допомога?