Коди причин відхилення перп-ордерів
Коли форма ордера повідомляє, що ордер "буде відхилено", вона наводить код причини. Той самий код повертає перевірка в реальному часі перед підписанням (попередній перегляд) і справжнє надсилання, тож те, що показує форма, відповідає тому, що зробить сервер.
Як форма використовує коди:
- Блокувальні коди замінюють текст кнопки надсилання на причину (наприклад,
Not enough margin), доки ви не зміните ордер. - Коди оновлення (
stale_position_snapshot,venue_risk_unavailable) перевіряються повторно автоматично і ніколи не блокують кнопку. - Коди повтору з блокуванням (
price_unavailable,account_health_unavailable) також перевіряються повторно автоматично, але блокують кнопку, доки перевірка не пройде. - Невдалий попередній перегляд ніколи вас не блокує. Якщо попередній перегляд недоступний, форма не показує чисел, і ви все одно можете надіслати ордер. Справжня перевірка все одно виконується під час надсилання.
invalid_order,engine_rejectedі будь-який невідомий код блокують кнопку і показують повідомлення сервера без змін, оскільки воно називає поле або правило, яке не пройшло перевірку.
Користувачі API отримують те саме значення в reasonCode у відповіді POST /v1/tee-perp/preview, а також у відповідях на надсилання ордера, пакета ордерів і зміни кредитного плеча. Зрозумілий людині текст (reason у попередньому перегляді, message у відповідях на надсилання) є діагностичним; розгалужуйте логіку за кодом.
Маржа і позиція
| Код | Що він означає | Що робити |
|---|---|---|
insufficient_margin | Після виконання цього ордера (і всіх відкритих перп-ордерів) вашого рахунку не вистачить для покриття вимог. Вимога визначається як гірша з двох: портфельна маржа Hypercall або маржа Hyperliquid. | Скористайтеся карткою, яку показує форма: Use max (найбільший розмір, що проходить перевірку), Raise to N× (найменше кредитне плече, що проходить перевірку) або Deposit на суму нестачі. Скасування активних ордерів також вивільняє маржу. |
reduce_only_exceeds_position | Ордер reduce-only збільшив би або перевернув вашу позицію замість того, щоб її зменшити. | Встановіть розмір, що не перевищує вашу відкриту позицію (форма пропонує Use position), або вимкніть Reduce only. |
mode_change_with_position | Ви спробували перемкнути режим між крос і ізольованим на ринку, де маєте позицію. Hyperliquid також цього не дозволяє. | Залиште поточний режим або закрийте позицію і перемкніть режим. |
leverage_requires_flat_account | Зміну кредитного плеча відхилено, оскільки на рахунку є відкриті перп-позиції або очікувані перп-ордери. Це трапляється лише там, де Hypercall не враховує ризик ліквідації Hyperliquid у маржі; в основному середовищі він враховується, тому там цей код не повертається. | Закрийте позиції і скасуйте перп-ордери, потім змініть кредитне плече. |
liquidation_pending | Рахунок перебуває в стані попередньої ліквідації, і от-от почнеться повна ліквідація. Hypercall відхиляє нові перп-ордери на цьому рахунку. | Дочекайтеся завершення ліквідації. Див. Ліквідація. |
Налаштування рахунку
| Код | Що він означає | Що робити |
|---|---|---|
account_not_pm | Для перп-ордерів потрібен рахунок з портфельною маржею. | Увімкніть портфельну маржу на сторінці рахунку, потім повторіть спробу. |
unified_mode_required | Ордери, що додають ризик, потребують режиму unified account Hyperliquid на торговому рахунку. | Натисніть Enable unified mode у формі. |
builder_not_approved | Hyperliquid відхилив ордер, оскільки рахунок не схвалив адресу білдера Hypercall. Цей код повертає Hyperliquid під час надсилання, а не попередній перегляд, і користувачі API бачать його в полі errorCode відповіді на надсилання, а не в reasonCode. | Один раз натисніть Enable trading. Див. Перпи на Hypercall. |
account_health_unavailable | Hypercall зараз не може прочитати стан маржі рахунку, тому відхиляє все, що додає ризик. | Форма автоматично перевіряє повторно. Щоб тим часом зменшити ризик, надішліть ордер з увімкненим Reduce only. |
Ринок і дані
| Код | Що він означає | Що робити |
|---|---|---|
market_not_supported | Hypercall не може оцінювати ризик на цьому ринку. Для цього потрібні джерело ціни, сітка маржинальних сценаріїв і графік Hyperliquid з маржею в USDC для вашого рахунку. | Оберіть підтримуваний ринок. |
trading_halted | Торгівлю призупинено, або повністю, або для цього ринку. | Зачекайте. Форма тримає кнопку вимкненою, доки торгівля не відновиться. |
price_unavailable | Ціна, яку Hypercall використовує для оцінки ринку, відсутня або застаріла. | Форма автоматично перевіряє повторно. Hypercall не вгадує ціну, тому відхиляє ордери, доки не надійде свіжа. |
stale_position_snapshot | Останні дані про вашу позицію або капітал у Hyperliquid відсутні або надто старі. | Нічого не потрібно. Форма один раз перевіряє повторно сама. Якщо помилка не зникає, оновіть сторінку. |
venue_risk_unavailable | Дані про ризик Hyperliquid (кредитне плече, ціни ліквідації, забезпечення за позицією) відсутні або не збігаються з останніми даними про вашу позицію. | Нічого не потрібно. Форма один раз перевіряє повторно сама. |
Умови ордера
| Код | Що він означає | Що робити |
|---|---|---|
invalid_order | Умови ордера недійсні: точність ціни або розміру, некоректна дужка TP/SL або хибний клієнтський ідентифікатор ордера. | Виправте крок ціни або крок розміру і надішліть повторно. |
action_not_supported | Політика підписувального анклаву не дозволяє такий тип дії. Якщо це стається з типом ордера, який пропонує форма, форма позначає цей тип як невімкнений. | Використайте підтримуваний тип ордера. |
engine_rejected | Будь-яке інше відхилення. Текст reason містить точну причину. | Прочитайте повідомлення. Якщо воно незрозуміле, зверніться до підтримки з цим текстом. |