API Hataları
İsteğe karşılık gelen yanıt yüzeyini kullanın:
- HTTP hatası:
4xxveya5xxJSON yanıtı, kararlıcodeve tanılama amaçlımessagealanlarını içerir. - Emir sonucu: HTTP
200emir yanıtı yine de reddedilmiş olabilir.statusvereasonalanlarını kontrol edin. - JSON-RPC yanıtı: JSON-RPC uç noktaları, sayısal
error.codedeğerlerini HTTP200yanıtı içinde korur.
HTTP Hata Yanıtları
API tarafından üretilen her HTTP 4xx ve 5xx JSON hata yanıtı şunları içerir:
{
"error": "existing endpoint value, when present",
"code": "invalid_field",
"message": "price must be greater than zero"
}
code programatik sözleşmedir. Mantığınızı bu küçük harfli tanımlayıcıya göre dallandırın ve gelecekte eklenebilecek bilinmeyen değerleri güvenli şekilde ele alın. message tanılama metnidir. Gösterin veya loglayın, ancak ayrıştırmayın.
error korunan eski bir alandır. Bazı uç noktalar bu alanı zaten sunuyor ve sunmaya devam ediyor, ancak opak bir alandır ve yeni sözleşmenin parçası değildir. Hazır olma ayrıntıları ve Retry-After gibi mevcut uç noktaya özgü alanlar yerinde kalır.
HEAD yanıtlarının gövdesi yoktur. HTTP durum kodlarını normal şekilde kullanın; Hypercall ayrı bir hata kodu başlığı eklemez.
Çekim Ön Kontrolü
Core teslimatlı USDC çekimleri, yeni bir çekimi kabul etmeden önce alıcının aktivasyonunu ve transfer uyumluluğunu kontrol eder. withdrawal_destination_inactive ve withdrawal_destination_mode_unsupported hatalarını hedef hataları olarak ele alın. withdrawal_preflight_unavailable, doğrulamanın geçici olarak kullanılamadığı anlamına gelir. withdrawal_source_unavailable, hizmetin uyumlu bir gönderen hesabı veya rotayı geri getirmesini gerektirir.
Bu hatalar yeni bir çekim borçlandırması oluşturmaz. Daha önce kabul edilmiş bir talep mevcut durumunu korur. Başarılı bir ön kontrol teslimatı garanti etmez; çekimin yürütme durumunu izlemeye devam edin. Yalnızca EVM çekimleri HyperCore hesap uygunluğu gerektirmez.
Portföy Teminatı Hesap Modu
Portföy teminatı, Hesabı HyperCore özkaynağı üzerinden değerler; HyperCore bu özkaynağı yalnızca unifiedAccount modundaki Hesaplar için yayınlar.
portfolioilePOST /margin-mode, Hesap başka bir moddayken400pm_account_not_unifieddöndürür.hl_set_abstractiondirektifiniunifiedAccountsoyutlamasıyla imzalayın, HyperCore'un onaylamasını bekleyin, ardından tekrar deneyin.- Güncel HyperCore özkaynağı olmayan bir portföy teminatı Hesabı için
GET /portfolio, HyperCore Hesap için hiç özkaynak yayınlamamışsa ve Hesabı başka bir modda bildiriyorsa409pm_account_not_unifieddöndürür. Aksi halde, güncel bir unified anlık görüntüsü motora ulaşana kadar503pm_account_equity_pendingdöndürür; tutulan özkaynak eskimişse ve HyperCore başka bir mod bildiriyorsa, mesaj o modu belirtir.pm_account_equity_pendingdurumunda kısa süre sonra tekrar deneyin ve mesaj Hesabın unified moddan çıktığını söylüyorsa unified modu yeniden etkinleştirin. account_abstraction_unavailable(503), HyperCore hesap modunun okunamadığı anlamına gelir. Kısa süre sonra tekrar deneyin.
RFQ Bacak Büyüklükleri
Kontrat büyüklükleri 0.000001 birimleriyle yürütülür. POST /rfq/request, altı ondalık basamaktan fazlasına sahip bir bacak büyüklüğünü HTTP 400 ile reddeder; mesaj, aşağı yuvarlanmış en büyük yürütülebilir büyüklüğü belirtir. Hypercall büyüklüğü sizin yerinize yuvarlamaz, çünkü alıcı taraf (taker) bacak büyüklüklerini tam olarak imzalar. İmzalamadan önce aşağı yuvarlayın ve yeniden gönderin.
RFQ Kotasyon Ön Kontrol Nedenleri
Ön kontrol sırasında reddedilen bir piyasa yapıcı kotasyonu kısa bir neden kodu taşır. margin_rejected, piyasa yapıcının hesabının paket için teminat kontrolünü geçemediği anlamına gelir. pricing_unavailable, platformun paketi değerleyemediği anlamına gelir; örneğin bir zımni oynaklık yüzeyi veya referans fiyat eksik olabilir. Bu bir teminat kararı değildir ve fiyatlama düzeldiğinde yeni bir kotasyon başarılı olabilir.
Emir Retleri
Bir emir, reddedilmiş bir yürütme sonucuyla HTTP 200 döndürebilir:
{
"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 açıklayıcı bir metindir, kararlı bir kod değildir. Canlı değerler içerebilir ve doğrulama mantığı geliştikçe değişebilir. Yetersiz portföy teminatı durumunda required, emir sonrası toplam başlangıç teminatıdır; current_consumed_* ve incremental_order_* alanları ise mevcut kullanımı yeni emirden ayırır. Reddedilen bir emri tanımlamak için status alanını kullanın, ardından reason alanını gösterin veya loglayın. Kararlı bir emir reddi kodu sözleşmesi ayrı bir protokol ve SDK çalışması gerektirir.
Portföy teminatlı perp emirleri için open_orders_initial_margin, canlı emirler genelinde bağımsız olarak seçilebilen en kötü dolmamış veya tam limit dolum durumundan kaynaklanan ek başlangıç teminatıdır (IM). Bir emir, hesap IM'nin altındayken yalnızca eklenmesi bu zarfı veya karşılık gelen en kötü dolum sürdürme teminatı kapasite gereksinimini artırmıyorsa kabul edilebilir. Açık emirler yine de yayınlanan pozisyon sürdürme teminatını (MM) değiştirmez. İstemciler, kabul edilmenin mevcut hesabın tamamen fonlandığı anlamına geldiği sonucunu çıkarmamalı ve fonlanmış kabul ile kötüleştirmeyen kabulü ayırt etmek için tanılama amaçlı reason alanını ayrıştırmamalıdır.
JSON-RPC Hataları
GET /orderbook, eksik bir enstrüman için JSON-RPC tarzı yanıtını HTTP 200 ile korur:
{
"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
}
Mantığınızı sayısal error.code değerine göre dallandırın. RSM'ye özgü JSON-RPC kodları varsayılan genel HTTP kataloğunun parçası değildir.
Genel Hata Kodu Kataloğu
Bu aranabilir katalog, genel OpenAPI belgesindeki info.x-hypercall-error-codes uzantısından oluşturulur. Yalnızca kullanıcıya yönelik HTTP kodlarını ve her zaman etkin JSON-RPC kodlarını içerir.
İşleme Kontrol Listesi
- HTTP istemcileri:
codedeğerine göre dallandırın, HTTP durum kodunu koruyun ve mevcut olduğundaRetry-Afterdeğerine uyun. - Emir istemcileri: HTTP isteği başarılı olsa bile
status: "REJECTED"değerini bir yürütme sonucu olarak ele alın. - JSON-RPC istemcileri: uç noktanın yerel protokolü için sayısal
error.codedeğerine göre dallandırın. - Tüm istemciler: gelecekte eklenebilecek bilinmeyen kodlar için güvenli bir yedek davranış bulundurun ve tanılama mesajlarını asla ayrıştırmayın.