OTC Emir Kuralı Oluştur
Bir düğümün tokenlarına gelen OTC tekliflerini otomatik olarak kabul eden ya da reddeden bir kural oluşturur. Düğüm gövdede gönderilir (bir kuralın kendi ID'si vardır ve koleksiyon kökünde yer alır). Düğüm API anahtarınızın düğüm alt ağacında olmalıdır; token_id ile tokenın düğümü de öyle olmalıdır.
Kurallar nasıl uygulanır: yeni bir teklif zincirde onaylandığında, teklifin düğümünün aktif (status 2) ve geçerlilik penceresi şu anı kapsayan kuralları arasından teklif için tek bir kural seçilir. Teklifin tokenıyla sınırlı kural, düğüm geneli kurala göre önceliklidir; ardından en düşük priority; ardından en yeni olan. Yalnızca o kural değerlendirilir. Teklifin fiyatı ve miktarı kurala uyuyorsa teklif için bir kabul (match_action 1) ya da iptal (match_action 2) başlatılır; uymuyorsa teklif Kabul veya İptal ile elle işlenmek üzere bırakılır.
- Tokenın güncel birim fiyatına göre fiyat kontrolü:
rule_type1her fiyatla eşleşir;2, fiyat eksibelow_percent%'den düşük ve fiyat artıabove_percent%'den yüksek olmayan fiyatla eşleşir;3aynısınıbelow_amount/above_amountile yapar. Gönderilmeyen sınır kontrol edilmez. Tokenın fiyatı yokken yüzde kuralı hiçbir zaman eşleşmez. - Miktar kontrolü: tanımlıysa teklifin
quantitydeğerimin_offer_quantityilemax_offer_quantityarasında olmalıdır. - Şu an yalnızca
side1(her iki taraf) kuralları uygulanır;side2veya3olan kurallar saklanır ama hiçbir zaman eşleşmez.
Gerekli izin: otc-order-rule:upsert
İstek
POST /v2/admin/otc-order-rules
Başlıklar
| Ad | Açıklama |
|---|---|
Authorization | Zorunlu. Bearer <access_token> |
Content-Type | Zorunlu. application/json |
Gövde
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
node_id | string | Evet | Kuralın yönettiği düğüm (24 karakter hex) |
name | string | Evet | Kural adı |
side | integer | Evet | 1 her iki taraf, 2 alış, 3 satış |
rule_type | integer | Evet | 1 koşulsuz, 2 yüzde, 3 mutlak |
status | integer | Evet | 1 pasif, 2 aktif |
token_id | string | Hayır | Kuralı düğümün bu tokenıyla sınırlar (24 karakter hex). Düğüm geneli kural için göndermeyin |
match_action | integer | Hayır | 1 kabul, 2 ret. Varsayılan 1 |
above_percent | string | Hayır | Yüzde kuralı: kabul edilen en yüksek fiyat, tokenın fiyatının üzerinde yüzde olarak. "0" ile "100" arası, en fazla bir ondalık |
below_percent | string | Hayır | Yüzde kuralı: kabul edilen en düşük fiyat, tokenın fiyatının altında yüzde olarak. "0" ile "100" arası, en fazla bir ondalık |
above_amount | string | Hayır | Mutlak kural: kabul edilen en yüksek fiyat, tokenın fiyatının üzerinde tutar olarak (ondalık string) |
below_amount | string | Hayır | Mutlak kural: kabul edilen en düşük fiyat, tokenın fiyatının altında tutar olarak (ondalık string) |
min_offer_quantity | integer | Hayır | Eşleşen en küçük teklif miktarı |
max_offer_quantity | integer | Hayır | Eşleşen en büyük teklif miktarı |
priority | integer | Hayır | Düşük değerler önce denenir. Varsayılan 0 |
valid_from | string | Hayır | Geçerlilik penceresinin başlangıcı (RFC 3339) |
valid_until | string | Hayır | Geçerlilik penceresinin sonu (RFC 3339) |
consume_on_match | boolean | Hayır | Kuralla birlikte saklanır; şu an teklifler değerlendirilirken kullanılmaz |
Yüzdeler ve tutarlar ondalık string'dir; bkz. Tutarlar ve Yüzdeler.
Örnek
curl --request POST \
--url '{{baseUrl}}/v2/admin/otc-order-rules' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data '{
"node_id": "6901350deb7ed8c1c38de4e9",
"token_id": "6909ddb65b25a8f90960506a",
"name": "Example Rule",
"side": 1,
"rule_type": 2,
"status": 2,
"priority": 1,
"above_percent": "11",
"below_percent": "23",
"min_offer_quantity": 1,
"max_offer_quantity": 4
}'
Yanıt
201 Created
{
"id": "69110fc4afcb084457294dbc",
"node_id": "6901350deb7ed8c1c38de4e9",
"token_id": "6909ddb65b25a8f90960506a",
"side": 1,
"rule_type": 2,
"match_action": 1,
"above_percent": "11",
"below_percent": "23",
"min_offer_quantity": 1,
"max_offer_quantity": 4,
"consume_on_match": false,
"priority": 1,
"status": 2,
"name": "Example Rule",
"created_by": "000000000000000000000000",
"created_at": "2025-11-10T01:03:48.892Z",
"updated_at": "2025-11-10T01:03:48.892Z",
"is_api": true
}
Yanıt Alanları
Oluşturulan kural, OTC Emir Kurallarını Listele satırlarıyla aynı alanlarla: id, node_id, token_id, side, rule_type, match_action, tanımlı eşik ve miktar alanları, consume_on_match, priority, status, tanımlıysa valid_from / valid_until, name, created_by, created_at, updated_at ve is_api (true).
Hatalar
| Durum | Kod | Açıklama |
|---|---|---|
| 400 | 10015 | Doğrulama başarısız — details alanına bakın. Eksik node_id, name, side, rule_type veya status ve hatalı biçimli yüzde ya da tutar dahil |
| 400 | 10001 (domain 2) | Düğüm bulunamadı |
| 400 | 10001 (domain 5) | Token bulunamadı |
| 403 | 10005 (domain 2) | Düğüm ya da tokenın düğümü, API anahtarınızın düğüm alt ağacının dışında |
| 500 | 10000 | Beklenmeyen sunucu hatası; 24 karakterlik hex olmayan bir token_id dahil |
Hata biçimi ve ortak kodlar için Hatalar sayfasına bakın.