Errores de la API
Use la superficie de respuesta que corresponda a la solicitud:
- Fallo HTTP: una respuesta JSON
4xxo5xxtiene campos establescodey de diagnósticomessage. - Resultado de orden: una respuesta de orden HTTP
200aún puede ser rechazada. Revise sus camposstatusyreason. - Respuesta JSON-RPC: los endpoints JSON-RPC conservan valores numéricos de
error.codedentro de una respuesta HTTP200.
Respuestas de error HTTP
Toda respuesta de error JSON HTTP 4xx y 5xx generada por la API incluye:
{
"error": "existing endpoint value, when present",
"code": "invalid_field",
"message": "price must be greater than zero"
}
code es el contrato programático. Ramifique su lógica según este identificador en minúsculas y maneje de forma segura valores futuros desconocidos. message es texto de diagnóstico. Muéstrelo o regístrelo, pero no lo analice.
error es un campo heredado que se conserva. Algunos endpoints ya lo exponen y lo seguirán haciendo, pero es opaco y no forma parte del nuevo contrato. Los campos existentes específicos de cada endpoint, como los detalles de disponibilidad y Retry-After, se mantienen.
Las respuestas HEAD no tienen cuerpo. Use su estado HTTP normalmente; Hypercall no agrega un encabezado separado con el código de error.
Verificación previa de retiros
Los retiros de USDC con entrega en Core verifican la activación del destinatario y la compatibilidad de la transferencia antes de aceptar un nuevo retiro. Trate withdrawal_destination_inactive y withdrawal_destination_mode_unsupported como errores de destino. withdrawal_preflight_unavailable significa que la verificación no está disponible temporalmente. withdrawal_source_unavailable requiere que el servicio restablezca una cuenta o ruta de envío compatible.
Estos errores no generan un nuevo débito de retiro. Una solicitud aceptada previamente conserva su estado actual. Una verificación previa exitosa no garantiza la entrega; siga monitoreando el estado de ejecución del retiro. Los retiros solo en EVM no requieren elegibilidad de cuenta en HyperCore.
Modo de cuenta de margen de cartera
El margen de cartera valora la Account a partir de su equity en HyperCore, que HyperCore publica solo para Accounts en modo unifiedAccount.
POST /margin-modeconportfoliodevuelve400pm_account_not_unifiedcuando la Account está en otro modo. Firme la directivahl_set_abstractioncon la abstracciónunifiedAccount, espere a que HyperCore la confirme y vuelva a intentarlo.GET /portfoliopara una Account con margen de cartera sin equity actual en HyperCore devuelve409pm_account_not_unifiedcuando HyperCore nunca ha publicado equity para la Account y la reporta en otro modo. En caso contrario, devuelve503pm_account_equity_pendinghasta que un snapshot unificado actual llegue al motor; cuando el equity retenido está desactualizado y HyperCore reporta otro modo, el mensaje indica ese modo. Reintentepm_account_equity_pendingen breve y vuelva a habilitar el modo unificado si el mensaje indica que la Account salió de él.account_abstraction_unavailable(503) significa que no se pudo leer el modo de cuenta de HyperCore. Reintente en breve.
Tamaños de patas de RFQ
Los tamaños de contrato se ejecutan en unidades de 0.000001. POST /rfq/request rechaza un tamaño de pata con más de seis decimales con HTTP 400; el mensaje indica el mayor tamaño ejecutable, redondeado hacia abajo. Hypercall no redondea el tamaño por usted, porque el taker firma los tamaños exactos de las patas. Redondee hacia abajo antes de firmar y vuelva a enviar.
Motivos de verificación previa de cotizaciones RFQ
Una cotización de maker rechazada durante la verificación previa incluye un código de motivo breve. margin_rejected significa que la cuenta del maker no superó la verificación de margen para el paquete. pricing_unavailable significa que el venue no pudo valorar el paquete, por ejemplo porque falta una superficie de volatilidad implícita o un precio de referencia; no es una decisión de margen, y una nueva cotización puede tener éxito una vez que se recupere la valoración.
Rechazos de órdenes
Una orden puede devolver HTTP 200 con un resultado de ejecución rechazado:
{
"status": "REJECTED",
"reason": "Insufficient margin: required=1500.00, equity=1200.00, shortfall=300.00, current_consumed_initial_margin=900.00, incremental_order_initial_margin=600.00, current_consumed_maintenance_margin=500.00, incremental_order_maintenance_margin=250.00"
}
reason es texto explicativo, no un código estable. Puede incluir valores en tiempo real y cambiar a medida que evoluciona la validación. Para margen de cartera insuficiente, required es el margen inicial total posterior a la orden, mientras que los campos current_consumed_* e incremental_order_* separan el uso existente de la nueva orden. Use status para identificar una orden rechazada y luego muestre o registre reason. Un contrato de códigos estables de rechazo de órdenes sería un trabajo separado de protocolo y SDK.
Para órdenes de perpetuos con margen de cartera, open_orders_initial_margin es el IM adicional del peor
estado seleccionable de forma independiente, sin ejecutar o con ejecución completa al límite, entre las órdenes vivas. Una orden puede
aceptarse mientras la cuenta está por debajo del IM solo cuando agregarla no aumenta esa envolvente ni el
requisito de capacidad de mantenimiento correspondiente al peor escenario de ejecución. Las órdenes abiertas siguen sin cambiar el
MM de posición publicado. Los clientes no deben inferir que la aceptación significa que la cuenta actual está completamente
financiada, y no deben analizar el reason de diagnóstico para distinguir una admisión financiada de una
admisión que no empeora la posición.
Errores JSON-RPC
GET /orderbook conserva su respuesta de estilo JSON-RPC para un instrumento inexistente, con HTTP 200:
{
"jsonrpc": "2.0",
"error": {
"code": 13020,
"message": "not_found",
"data": {"object": "instrument_name", "value": "BTC-20200101-1-C"}
},
"testnet": false,
"usDiff": 1,
"usIn": 1791273938274109,
"usOut": 1791273938274109
}
Ramifique según el valor numérico de error.code. Los códigos JSON-RPC específicos de RSM no forman parte del catálogo HTTP público predeterminado.
Catálogo público de códigos de error
Este catálogo con búsqueda se genera a partir de la extensión info.x-hypercall-error-codes del documento OpenAPI público. Contiene únicamente códigos HTTP orientados al consumidor y códigos JSON-RPC siempre activos.
Lista de verificación de manejo
- Clientes HTTP: ramifique según
code, conserve el estado HTTP y respeteRetry-Aftercuando esté presente. - Clientes de órdenes: trate
status: "REJECTED"como un resultado de ejecución aunque la solicitud HTTP haya tenido éxito. - Clientes JSON-RPC: ramifique según el valor numérico de
error.codepara el protocolo nativo del endpoint. - Todos los clientes: mantenga una alternativa segura para códigos futuros desconocidos y nunca analice los mensajes de diagnóstico.