Asla yeniden deneme
invalid_request, invalid_amount, unknown_asset_or_rail, asset_not_offered, unauthorized. İstek hatadadır: değiştirmeden yeniden denemek aynı sonucu verir. Düzeltin veya nedeni görüntüleyin.
Developers
Her hata, kararlı, makine tarafından okunabilir bir kod ve tutarlı bir HTTP durumu taşır. Entegrasyonunuzun dallanması gereken şey koddur: metin gelişebilir, kod gelişmez.
Mevcut şekil kasıtlı olarak minimaldir. Kararlıdır ve önemli olan da budur: bir kod ve iç ayrıntıyı sızdıran hiçbir şey.
{ "error": "rate_stale" }{
"error": "rail_not_open",
"reason": {
"fr": "La retenue TDS de 1 % et l’enregistrement FIU-IND exigent une entite locale…",
"en": "The 1% TDS withholding and FIU-IND registration require a local entity…"
}
}Bazı hatalar, kullanıcıya olduğu gibi gösterilmesi amaçlanan iki dilli bir neden nesnesi taşır. Kapalı bir kanal bunlardan biridir: neden, adlandırılmış bir düzenleyici kısıtlamayı açıklar, bir kesinti değil ve bunu göstermek bir destek talebini kurtarır. Sürümlü API bu zarfa bir istek kimliği ekleyecektir, böylece bizi günlüklerimizde kesin bir satıra yönlendirebilirsiniz.
Bu kodlar bugün teklif uç noktası tarafından döndürülür.
| code | HTTP | Ne anlama gelir | Ne yapmalı |
|---|---|---|---|
invalid_request | 400 | İstek gövdesi şema doğrulamasında başarısız olur: eksik alan, yanlış tür, izin verilen sınırların dışında değer. | Tutarın bir sayı değil bir string olduğunu ve yönün tam olarak "sell" veya "receive" olduğunu kontrol edin. |
invalid_amount | 400 | Tutar ayrıştırılamıyor veya varlığın veya para biriminin kabul ettiğinden daha fazla ondalık basamak içeriyor. | Birim hassasiyetine yuvarlayın: USDT için 6 ondalık, BTC için 8, euro için 2, CFA frangı için 0. |
unknown_asset_or_rail | 404 | Varlık veya kanal tanımlayıcısı katalogda mevcut değil. | Tanımlayıcılar sabittir ve asla yeniden atanmaz. Bunları tahmin etmek yerine kataloğu yeniden yükleyin. |
rail_not_open | 409 | Kanal mevcut ancak açık değil. Yanıt, kesin nedeni her iki dilde de taşır. | Nedeni olduğu gibi gösterin: bir kesintiyi değil, düzenleyici bir kısıtlamayı açıklar. Aynı ülkede açık bir kanal önerin. |
asset_not_offered | 409 | Varlık katalogda ancak sunulmuyor — gelişmiş anonimlik varlıkları durumu. | Bunu seçicinizde sunmayın. Katalog, açıklayabilmeniz için nedeniyle birlikte döndürür. |
rate_stale | 503 | Bilinen son fiyat, izin verilen maksimum yaşı aşıyor. Motor, bayat bir fiyatı sabit bir fiyat olarak sunmak yerine fiyat teklifi vermeyi reddeder. | Birkaç saniye sonra yeniden deneyin. Boşluğu doldurmak için son başarılı fiyat teklifini önbelleğe almayın: bu, bu kodun önlediği hatanın ta kendisi olur. |
rate_unavailable | 503 | Bu varlık / para birimi çifti için fiyat mevcut değil. | Bir tahmin göstermek yerine çifti arayüzünüzde devre dışı bırakın. Görüntülenen bir tahmin, bir beklentiye dönüşür. |
quote_failed | 500 | Hesaplama sırasında beklenmeyen hata. Fiyat teklifi döndürülmez. | Bir kez yeniden deneyin; hata devam ederse, çağrının tam zaman damgasıyla bize yazın. |
Bu kodlar henüz açık olmayan uç noktalara eşlik eder. Hata işlemeniz bir kez yazılsın diye yayınlanırlar.
| code | HTTP | Ne anlama gelir | Ne yapmalı |
|---|---|---|---|
unauthorized | 401 | Anahtar eksik, iptal edilmiş veya yanlış ortamda kullanılmış. | Bir sk_test_ anahtarı üretimde çalışmaz ve tersi de geçerli değildir: bu bilinçli bir tasarımdır. |
idempotency_conflict | 409 | Aynı idempotency anahtarı zaten farklı bir istek gövdesiyle kullanılmış. | Bir anahtar tek bir niyete aittir. İçerik değişirse anahtar değişir; aksi takdirde iki siparişten hangisinin tekrarlanacağı bilinemez. |
quote_expired | 409 | Teklif, kilit penceresini geçti. | Yeniden teklif alın ve yeni tutarın kabul edilmesini sağlayın. Müşteriye karşı asla sessizce yeniden fiyatlandırma yapmayız. |
beneficiary_rejected | 422 | Lehdar bilgileri, havale hattı doğrulamasını geçemiyor: geçersiz sağlama toplamı, uygun olmayan biçim veya doğrulanmış kimlikle eşleşmeyen bir isim. | Yanıt, hataya neden olan alanı belirtir. Lehdar adı, doğrulanmış kimlik olmalıdır: üçüncü taraf ödemesi mümkün değildir. |
country_not_served | 451 | Hedef ülke hizmet verilen ülkeler arasında değil: yaptırımlar, kısıtlayıcı önlemler veya yerel bir çerçevenin bulunmaması. | 451 kodu, 404 yerine bilinçli olarak seçilmiştir: reddettiğimizde, bunun bir ret olduğunu ve nedenini söyleriz. |
rate_limited | 429 | Kayan pencere içinde çok fazla çağrı yapıldı. | Retry-After başlığına uyun. Teklifler kuyruğa alınmak için ucuzdur, ancak tekrar tekrar göndermek pahalıdır. |
not_found | 404 | Kaynak mevcut değil veya anahtarınıza ait değil. | Her iki durum da aynı kodu döndürür: bunları ayırt eden bir yanıt, herkesin başkalarının referanslarını listelemesine olanak tanır. |
Kanal sınırlarının dışındaki bir tutar, limitError nesnesiyle geçerli bir teklif döndürür. Bu bir başarısızlık değildir: arayüzünüzün görüntülemesi gereken bilgidir.
"limitError": { "code": "below_min", "limit": "20.00" }Bu durumu bir HTTP hatası olarak ele almak, hesaplanan tutardan ve dolayısıyla kullanıcıya “bu ödeme yöntemi için minimumun 16,53 EUR altındasınız” deme yeteneğinden sizi mahrum bırakır. Sınır, net tutara, yani alıcının aldığı tutara uygulanır.
Üç aile, üç davranış. Bir doğrulama hatasını döngüde yeniden denemek yalnızca günlüklerinizi doldurur.
invalid_request, invalid_amount, unknown_asset_or_rail, asset_not_offered, unauthorized. İstek hatadadır: değiştirmeden yeniden denemek aynı sonucu verir. Düzeltin veya nedeni görüntüleyin.
rate_stale, rate_unavailable, quote_failed ve herhangi bir hız sınırlaması. Birkaç saniye bekleyin, denemeler arasında artan bir boşluk bırakın. Boşluğu önbelleğe alınmış bir teklifle doldurmayın.
rail_not_open, quote_expired, beneficiary_rejected, country_not_served. Durum insan seçimi gerektirir: başka bir kanal, yeni bir teklif, düzeltilmiş bilgiler sunun.