Códigos de motivo de órdenes de perpetuos
Cuando el formulario de órdenes indica que una orden "sería rechazada", está citando un código de motivo. El mismo código lo devuelve la verificación en vivo antes de firmar (la vista previa) y el envío real, por lo que lo que muestra el formulario es lo que haría el servidor.
Cómo los usa el formulario:
- Los códigos bloqueantes convierten el botón de envío en el motivo (por ejemplo
Not enough margin) hasta que usted modifique la orden. - Los códigos de actualización (
stale_position_snapshot,venue_risk_unavailable) se vuelven a verificar automáticamente y nunca bloquean el botón. - Los códigos de reintento y bloqueo (
price_unavailable,account_health_unavailable) también se vuelven a verificar automáticamente, pero bloquean el botón hasta que la verificación se supere. - Una vista previa fallida nunca lo bloquea. Si no se puede acceder a la vista previa, el formulario no muestra cifras y usted puede enviar igualmente. La verificación real se ejecuta de todos modos al enviar.
invalid_order,engine_rejectedy cualquier código desconocido bloquean y muestran el mensaje del servidor tal cual, ya que indica el campo o la regla que falló.
Los usuarios de la API reciben el mismo valor en reasonCode en POST /v1/tee-perp/preview y en las respuestas de envío de órdenes, lotes y apalancamiento. El texto legible (reason en la vista previa, message en las respuestas de envío) es de diagnóstico; base su lógica en el código.
Margen y posición
| Código | Qué significa | Qué hacer |
|---|---|---|
insufficient_margin | Después de que se ejecute esta orden (y todas las órdenes de perpetuos abiertas), su cuenta no cubriría su requisito. El requisito es el mayor entre el margen de cartera de Hypercall y el margen de Hyperliquid. | Use la tarjeta que muestra el formulario: Usar máximo (el mayor tamaño que pasa), Subir a N× (el menor apalancamiento que pasa) o Depositar el faltante. Cancelar órdenes en reposo también libera margen. |
reduce_only_exceeds_position | Una orden reduce-only aumentaría o invertiría su posición en lugar de reducirla. | Fije el tamaño igual o por debajo de su posición abierta (el formulario ofrece Usar posición), o desactive Reduce only. |
mode_change_with_position | Intentó cambiar entre cross e isolated en un mercado donde mantiene una posición. Hyperliquid tampoco lo permite. | Mantenga el modo actual, o cierre la posición y cambie. |
leverage_requires_flat_account | Se rechazó un cambio de apalancamiento porque la cuenta tiene posiciones de perpetuos abiertas u órdenes de perpetuos pendientes. Esto solo ocurre donde Hypercall no incluye el riesgo de liquidación de Hyperliquid en el margen; producción sí lo incluye, por lo que producción no devuelve este código. | Cierre las posiciones y cancele las órdenes de perpetuos, luego cambie el apalancamiento. |
liquidation_pending | La cuenta está en preliquidación y una liquidación completa está a punto de comenzar. Hypercall rechaza nuevas órdenes de perpetuos en la cuenta. | Espere a que se resuelva la liquidación. Consulte Liquidación. |
Configuración de la cuenta
| Código | Qué significa | Qué hacer |
|---|---|---|
account_not_pm | Las órdenes de perpetuos requieren una cuenta de margen de cartera. | Active el margen de cartera desde la página de su cuenta y vuelva a intentarlo. |
unified_mode_required | Las órdenes que añaden riesgo requieren el modo unified account de Hyperliquid en la cuenta de trading. | Haga clic en Activar modo unificado en el formulario. |
builder_not_approved | Hyperliquid rechazó la orden porque la cuenta no ha aprobado la dirección de builder de Hypercall. Esto lo devuelve Hyperliquid al enviar, no la vista previa, y los usuarios de la API lo ven en el campo errorCode de la respuesta de envío, no en reasonCode. | Haga clic en Activar trading una vez. Consulte Perpetuos en Hypercall. |
account_health_unavailable | Hypercall no puede leer en este momento la salud de margen de la cuenta, por lo que rechaza todo lo que añada riesgo. | El formulario vuelve a verificar automáticamente. Para reducir riesgo mientras tanto, envíe la orden con Reduce only activado. |
Mercado y datos
| Código | Qué significa | Qué hacer |
|---|---|---|
market_not_supported | El mercado no es uno cuyo riesgo Hypercall pueda calcular. Necesita una fuente de precios, una cuadrícula de escenarios de margen y un esquema de Hyperliquid con margen en USDC para su cuenta. | Elija un mercado compatible. |
trading_halted | El trading está pausado, ya sea en todos los mercados o en este. | Espere. El formulario mantiene el botón desactivado hasta que se reanude el trading. |
price_unavailable | El precio que Hypercall usa para valorar el mercado falta o está desactualizado. | El formulario vuelve a verificar automáticamente. Hypercall no estima un precio, así que rechaza la orden hasta que llegue uno actualizado. |
stale_position_snapshot | Su última lectura de posición o equity en Hyperliquid falta o es demasiado antigua. | Nada. El formulario vuelve a verificar una vez por sí solo. Si persiste, actualice la página. |
venue_risk_unavailable | La lectura de riesgo de Hyperliquid (apalancamiento, precios de liquidación, colateral por posición) falta o no coincide con su última lectura de posición. | Nada. El formulario vuelve a verificar una vez por sí solo. |
Términos de la orden
| Código | Qué significa | Qué hacer |
|---|---|---|
invalid_order | Los términos de la orden no son válidos: precisión de precio o tamaño, un bracket TP/SL mal formado o un client order id incorrecto. | Corrija el tick de precio o el paso de tamaño y vuelva a enviar. |
action_not_supported | La política del enclave de firma no permite este tipo de acción. Si ocurre en un tipo de orden que ofrece el formulario, el formulario marca ese tipo como no habilitado. | Use un tipo de orden compatible. |
engine_rejected | Cualquier otro rechazo. El texto de reason indica la causa exacta. | Lea el mensaje. Si no está claro, contacte con soporte e incluya el texto. |