Developers
API dokümantasyonu
Site ile aynı ücret dökümünü satır satır, gizli marj olmadan döndüren bir API. Bu sayfa, her uç noktanın paylaştığı kuralları açıklar ve bugün açık olanı tam olarak belirtir.
Bugün açık olan
1 uç noktası gerçekten açıkta ve çağrılabilir: fiyat teklifi. Diğer 5 sözleşme olarak yayınlanır, böylece açılmadan önce geliştirme yapabilirsiniz ve her biri açık bir rozet taşır.
Önceden belgeliyoruz çünkü entegrasyona yardımcı olur. Bağlı olduğuna inanmanıza izin vermek adil olmaz: her uç nokta durumunu belirtir ve açık uç noktalar için örnek yanıtlar, gerçekten alınan yanıtlardır, sahte değil.
Temel URL ve sürümleme
İki temel bir arada var: bugün yanıt veren ve verilen anahtarlarla gelecek sürümlü API.
- Bugün
- /api Live
- Sürümlü API
- /api/v1 Published contract, not open
Sürüm yolda yaşar, başlıkta değil: bir URL, bir bilete yapıştırılmaya dayanmalıdır. Kırıcı bir değişiklik — kaldırılan bir alan, değişen bir tür, farklı anlamlar — yeni bir sürüm açar; önceki en az altı ay boyunca sunulmaya devam eder ve bitiş tarihi değişiklik günlüğünde duyurulur. Alan eklemek kırıcı değildir: istemciniz bilmediği alanları yok saymalıdır.
Kurallar
Açık veya yaklaşan her uç noktada geçerlidir. Çoğu tek bir nedenle vardır: aktarım sırasında asla bir kuruş kaybetmeyin.
Tutarlar dizedir veya alt birimlerin tamsayılarıdır
Asla ondalık sayı değil. JSON'da 0.1 + 0.2, 0.3 değildir ve büyük bir tutar serileştirmede alt birimleri kaybeder. Bu nedenle ana birim tutarları dize olarak, dahili tutarlar ise ondalık sayılarıyla birlikte alt birimlerin tamsayıları olarak gönderilir.
{
"net": "912.28",
"currency": "EUR",
"currencyDecimals": 2
}Ondalık sayılar para birimine bağlıdır
Euronun iki ondalığı vardır, CFA frangı ve Vietnam dongunun hiç yoktur. "× 100" kodlamayın: currencyDecimals veya referans verisindeki decimals alanını okuyun.
{ "amount": "125000", "currency": "XOF", "currencyDecimals": 0 }Kripto tutarları temel birimlerdedir
Para yatırma, ondalık sayısıyla döndürülür: bitcoin için 8, USDT için 6, ether için 18. Aynı kısaltma, ağa bağlı olarak farklı ondalık sayılarla var olabilir: hafızanıza değil, alana güvenin.
{ "deposit": { "amount": "1000.000000", "ticker": "USDT", "decimals": 6 } }Zaman damgaları
Tarihler ISO 8601 UTC'dir. Kasıtlı bir istisna: rateAsOf, bir Unix zaman damgasıdır milisaniye cinsinden, çünkü bir görüntü değil, bir yaş hesaplamasını besler. Piyasa VERİSİNİN tarihini taşır, isteğinizin değil: bu ayrım, bayat bir fiyatın tespit edilebilir olmasını sağlar.
{ "rateAsOf": 1788356981608, "rateSource": "coingecko" }Tanımlayıcılar sabittir
Bir varlık, kanal veya ülke tanımlayıcısı asla değişmez ve asla yeniden atanmaz. Kapalı bir kanal, kendi tanımlayıcısını, aşaması ve nedeniyle korur: entegrasyonunuz, seçeneklerinizden neden ayrıldığını görebilir, bir boşluk bulmak yerine.
İnsan odaklı mesajlar iki dillidir
Bir ret nedeni, aynı nesnede Fransızca ve İngilizce olarak döndürülür. Kullanıcınıza uygun olanı gösterirsiniz, kendi tarafınızda tutulacak bir çeviri tablosu olmadan.
{ "reason": { "fr": "…", "en": "…" } }İlk çağrı
Fiyat teklifi için anahtar gerekmez. Bu çağrı olduğu gibi çalışır.
curl -sS -X POST https://fiatside.com/api/quote \
-H 'Content-Type: application/json' \
-d '{
"assetId": "usdt",
"railId": "sepa_instant",
"networkId": "tron",
"direction": "sell",
"amount": "1000"
}'{
"deposit": { "amount": "1000.000000", "ticker": "USDT", "decimals": 6 },
"gross": "921.68",
"net": "912.28",
"currency": "EUR",
"currencyDecimals": 2,
"midRate": "0.92168430",
"effectiveRate": "0.91228000",
"totalCostBps": 102,
"lines": [
{ "code": "network", "amount": "1.11", "basis": "Cout reseau tron, preleve en USDT" },
{ "code": "spread", "amount": "8.29", "basis": "0.90 % du montant converti" }
],
"settlement": { "p50Minutes": 1, "p95Minutes": 12 },
"lockSeconds": 1800,
"rateAsOf": 1788356981608,
"rateSource": "mock",
"limitError": null
}rateSource alanı, fiyatın nereden geldiğini belirtir. "mock" değeri, üretimde başlatılamayan deterministik geliştirme kaynağıdır: süreç, donmuş fiyatları teklif etmek yerine başlamayı reddeder.
Bölümler
- Kimlik DoğrulamaTeklif uç noktasının bugün nasıl korunduğu, anahtarların nasıl verileceği ve üretim anahtarı kullanımına ilişkin kurallar.
- TekliflerTeklif uç noktası, satır satır ücret dökümü, yanıtta geri dönen ödeme kanalı limitleri ve bir emir oluşturulduktan sonra oranın ne kadar süre kilitli kaldığı.
- EmirlerEmir oluşturma, idempotans anahtarı, yatırma adresi, bazı ağlarda zorunlu açıklama (memo) ve durum geçişlerini okuma.
- Referans VerileriÖdeme kanalı, varlık ve ülke katalogları, ödeme formunuzu oluşturmanızı sağlayan lehtar alan şeması ve imleç sayfalama.
- Webhook'larYayınlanan olaylar, ham gövde üzerinde HMAC-SHA256 imzası, yeniden oynatma penceresi, yeniden deneme takvimi ve doğrulamanın neden sabit zamanda çalışması gerektiği.
- HatalarHer hata kodu, HTTP durumu, tam olarak ne anlama geldiği, entegrasyon tarafında ne yapılması gerektiği ve hangilerinin yeniden denenmeye değer olduğu.
API'nin yapmayacakları
Bir API'nin sınırlarını bilmek, yeteneklerini bilmek kadar faydalıdır.
- Üçüncü taraf ödemeleri yok. Alıcı adı, sipariş sahibinin doğrulanmış kimliğiyle eşleşmelidir ve ödeme kanalları artık adı hesaba karşı kontrol eder.
- API üzerinden hesap oluşturma veya kimlik doğrulama yok. Bu adımlar, kullanıcının kabul ettiğini gördüğü bir akışta gerçekleşir.
- URL parametresinde anahtar yok. URL'ler günlüklerde, yönlendiren başlıklarında ve geçmişlerde sona erer: bu şekilde iletilen bir anahtar, iptal edilecek bir anahtardır.
- Bizim tarafımızda fiyat teklifi önbelleğe alma yok. Yanıt, Cache-Control: no-store taşır ve entegrasyonunuz bunu atlamamalıdır: önbelleğe alınmış bir fiyat teklifi, sabit olarak sunulan bayat bir fiyattır.
- Kripto satın alma uç noktası yok. Hizmet tek yönde çalışır: dijital varlıktan yasal ödemeye.