/v1 altında sürümlenir.
Erişim alma
Erişim proje bazında verilir. Dördüne birden ihtiyacınız var:Aktif bir üyelik, Silver veya üzeri
Onaylanmış bir geliştirici başvurusu
Kabul edilmiş API Geliştirici Şartları
Projenizin ihtiyaç duyduğu scope'lar
Scope’lar
Kimlik doğrulama
Gizli anahtarınızı Bearer token olarak gönderin:- IP izin listesi — çağrıları belirli sunucu IP’leriyle sınırlar
- Hız limitleri — sahibin üyelik seviyesiyle birlikte yükselen proje bazlı tavanlar
Anahtarlar, döndürme ve saklama
- Yalnızca sunucu tarafında tutun — anahtarı elinde tutan herkes kullanıcılarınızdan tahsilat yapabilir
- API anahtarları sekmesinden döndürün. Önceki anahtar 24 saatlik bir tolerans süresi boyunca çalışmaya devam eder, böylece kesintisiz dağıtım yapabilirsiniz
- Webhook imza gizli anahtarı ayrı döndürülür ve kendi 24 saatlik örtüşmesi vardır
- Sızarsa hemen döndürün
Resmî Node.js SDK’sı
Resmî@vetox-bot/vito paketi dokuz uç noktanın tamamını ve webhook doğrulamasını sarmalar. Idempotency-Key başlığını, artan beklemeli yeniden denemeleri, zaman aşımlarını ve hata sınıflandırmasını sizin yerinize üstlenir.
Kurulum
fetch ve node:crypto kullanır — ve tam TypeScript tanımlarıyla birlikte hem ESM hem CommonJS olarak dağıtılır.
Başlatma
apiKey vermezseniz SDK ortamdan VITO_API_KEY değerini okur. Anahtar biçimi nesne oluşturulurken doğrulanır; böylece hatalı bir anahtar, size bir ağ turu ile 401 yanıtına mal olmak yerine hemen başarısız olur.
İstemci seçenekleri
Kullanılabilir metotlar
data alanını döner — success veya data alanlarını hiçbir zaman kendiniz açmazsınız. Ayrıca her metot çağrı başına seçenek kabul eder: { timeoutMs, maxRetries, signal, headers }; yazma metotları buna ek olarak { idempotencyKey } alır.Kullanım örnekleri
Başlangıçta anahtarı kontrol etmek
Bakiye okumak
Bir kullanıcıdan tahsilat (ürün satmak)
Bir kullanıcıya alacak kaydetmek
İşlemler arasında gezinmek
Yinelemesizlik ve yeniden denemeler
SDK her yazma işleminde (deduct, credit, transfer) bir Idempotency-Key başlığı gönderir. Siz vermezseniz anahtarı çağrı başına bir kez üretir ve her yeniden denemede tam olarak aynı anahtarı yeniden gönderir; böylece bir yeniden deneme işlemi asla iki kez mahsuplaştıramaz.
Aynı mantıksal işlem yeni bir süreçten tekrarlanabiliyorsa kendi anahtarınızı verin — bir iş çalıştırıcı, kuyruktan yeniden teslim veya zamanlanmış bir tarama:
auth.rotateKey() bilinçli olarak dışarıda bırakılmıştır — orada bir yeniden deneme ikinci bir anahtar üretir ve ilk denemenin döndürdüğü anahtarı geçersiz kılar.Webhook’ları SDK ile doğrulamak
constructEvent, 5 dakikalık tekrar penceresini denetler, başlıktaki her h1 imzasıyla sabit sürede karşılaştırır — böylece döndürmedeki 24 saatlik örtüşme boyunca kendiliğinden çalışır — ardından yükü ayrıştırıp türlenmiş olayı döner.
Next.js (App Router) rota işleyicisinde, ham gövdeyi kendisi okuyan çeşidi kullanın:
event.eventId üzerinden yineleme önleyin.Hata yönetimi
SDK’nın fırlattığı her şeyVitoError sınıfından türer ve code, status, type, requestId ile retryable taşır.
Bir çağrıyı iptal etmek
VITO_SDK_ABORTED koduyla VitoConnectionError fırlatır.
Bir kullanıcıdan tahsilat
Uygulamanız POST /v1/deduct çağırır
guildId ve ürün ayrıntılarıyla.Vito bir confirmUrl döner
Kullanıcı PIN'iyle onaylar
vetox.io üzerinde.Vito mahsuplaşır ve bildirir
Uygulamanız doğrular ve tamamlar
İstek parametreleri — /v1/deduct
Bir kullanıcıya alacak kaydetme
POST /v1/add, bir kullanıcıya kendi bakiyenizden Vito ekler — ödüller veya iadeler için. guildId ve product dışında /deduct ile aynı alanlar.
credit:create scope’unu ve yeterli bakiyeyi gerektirir; aksi hâlde çağrı 402 VITO_INSUFFICIENT_OWNER_FUNDS döner.Ücretler
Her tahsilat, platform ücreti düşülerek size aktarılır — uygulama içi Vito transferleriyle aynı tarife üzerinden ve sizin üyelik seviyenize göre:/v1/add üzerinden yapılan alacak kayıtları ise her zaman ücretsizdir.Webhook’lar
Ayarlar sekmesinde bir veya daha fazlahttps geri çağırma adresi ekleyin. Bir onay nihai duruma ulaştığında Vito imzalı bir POST gönderir.
İmzayı doğrulama
Her teslimat birX-Vito-Signature başlığı taşır:
X-Vito-Event-Id’yi yineleme önleme anahtarı olarak kullanın, çünkü yeniden deneme aynı kimliği tekrar gönderir:
<ts>:<rawBody> üzerinden imza gizli anahtarınızla yeniden hesaplayın ve sabit sürede karşılaştırın.
Olaylar
Beş olay türü, hepsi aynı yük yapısını paylaşır. Sonucudata.status taşır.
Hata kodları
Her yanıt bir zarf içindedir. Başarıdata, hata ise error taşır; ikisi birden asla olmaz:
Hız limitleri
Idempotency-Key başlığı gönderin.Uç noktalar
Sınırlar
- Onaylar 10 dakika sonra sona erer — onaylanmamış talepleri terk edilmiş sayın
amountpozitif bir tam sayı olmalıdırmetadata10 anahtarla sınırlıdır- İşlem başına ve günlük tavanları Vetox ekibi belirler; ayarlar sekmesinde salt okunur görünür
Güvenlik kontrol listesi
Gizli anahtarları sunucuda tutun
Gizli anahtarları sunucuda tutun
Her webhook'u doğrulayın
Her webhook'u doğrulayın
Yalnızca completed üzerine mahsuplaşın
Yalnızca completed üzerine mahsuplaşın
/deduct yanıtına dayanarak teslim etmeyin — tahsilat ancak confirmation.completed ile kesinleşir.En az ayrıcalık
En az ayrıcalık
Sorun giderme
Her çağrı yetkisiz dönüyor
Her çağrı yetkisiz dönüyor
Anahtarımı kaybettim
Anahtarımı kaybettim
Döndürmeden sonra webhook imzaları başarısız oluyor
Döndürmeden sonra webhook imzaları başarısız oluyor
Bir tahsilat hiç tamamlanmıyor
Bir tahsilat hiç tamamlanmıyor
Hiç webhook gelmiyor
Hiç webhook gelmiyor
Tahsil ettiğimden daha az Vito geldi
Tahsil ettiğimden daha az Vito geldi
402 VITO_INSUFFICIENT_OWNER_FUNDS
402 VITO_INSUFFICIENT_OWNER_FUNDS
/v1/add kendi bakiyenizden finanse edilir, yoktan yaratılmaz. Bakiyenizi yükleyin.