Skip to main content
Silver veya üzeri bir üyelik gerektirir — hem başvurmak hem de her kimliği doğrulanmış çağrı için. Anahtar sahibinin üyeliği sona ererse, yeniden abone olana kadar proje dondurulur.
Uygulamanızın bir kullanıcının Vito bakiyesiyle doğrudan Discord içinden çalışmasını sağlayan bir REST API — okuma, tahsilat, alacak kaydetme veya kullanıcılar arasında aktarma. Tüm uç noktalar JSON döner ve /v1 altında sürümlenir.
Vito asla gerçek paraya dönüşmez, gerçek paradan da gelmez. Yalnızca Vetox bakiyeleri arasında hareket eder.

Erişim alma

Erişim proje bazında verilir. Dördüne birden ihtiyacınız var:
1

Aktif bir üyelik, Silver veya üzeri

Yalnızca onay anında değil, her çağrıda kontrol edilir.
2

Onaylanmış bir geliştirici başvurusu

Panelinizdeki Vito API sayfasından gönderilir. Vetox ekibi tarafından elle incelenir.
3

Kabul edilmiş API Geliştirici Şartları

Başvuruyu gönderirken onaylanır.
4

Projenizin ihtiyaç duyduğu scope'lar

Açıklamanıza göre Vetox ekibi tarafından verilir.
Ne inşa ettiğinizi ve anahtarı nasıl saklayacağınızı somut yazın. Reddedilenler, muğlak başvurulardır.

Scope’lar

Kimlik doğrulama

Gizli anahtarınızı Bearer token olarak gönderin:
İsteğe bağlı iki katman projeyi daha da sağlamlaştırır:
  • 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

Anahtarınız ve imza gizli anahtarınız tam olarak bir kez gösterilir. Onaydan sonra, bunları API anahtarları sekmesinde açığa çıkarmak için 7 günlük bir pencereniz olur. Vetox yalnızca bir özet saklar ve bunları tekrar gösteremez — pencereyi kaçırırsanız döndürme yapmanız gerekir.
  • 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

Bir kullanıcıdan tahsilat

Anahtarınız tek başına bir kullanıcının Vito’sunu hareket ettiremez. Her tahsilat, kullanıcının cüzdan PIN’iyle vetox.io üzerinde onay vermesini gerektirir — asla uygulamanızın içinde, asla Discord’un içinde değil.
1

Uygulamanız POST /v1/deduct çağırır

Kullanıcı, tutar, kaynak guildId ve ürün ayrıntılarıyla.
2

Vito bir confirmUrl döner

10 dakika geçerli, bekleyen bir onay. Kullanıcıya ayrıca DM gönderilir.
3

Kullanıcı PIN'iyle onaylar

vetox.io üzerinde.
4

Vito mahsuplaşır ve bildirir

Bakiye düşülür, işlem kaydedilir ve yapılandırdıysanız imzalı bir webhook gönderilir.
5

Uygulamanız doğrular ve tamamlar

İmzayı kontrol edin, ardından içeriği açın veya ürünü teslim edin.
İşleminizi yalnızca confirmation.completed üzerine tamamlayın — asla /deduct yanıtı üzerine değil. O noktada tahsilat henüz kesinleşmemiştir.

İ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.
Tahsilatın aksine, alacak kaydının onay adımı yoktur — anında mahsuplaşır. 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:
5 Vito ve altındaki tutarlar ücretsizdir, /v1/add üzerinden yapılan alacak kayıtları ise her zaman ücretsizdir.

Webhook’lar

Ayarlar sekmesinde bir veya daha fazla https geri çağırma adresi ekleyin. Bir onay nihai duruma ulaştığında Vito imzalı bir POST gönderir.
Webhook’lar yalnızca projenizde hem bir geri çağırma adresi hem de bir imza gizli anahtarı varsa gönderilir. Gizli anahtarı (whsec_…) API anahtarları sekmesinden bir kez açığa çıkarın.

İmzayı doğrulama

Her teslimat bir X-Vito-Signature başlığı taşır:
Her teslimata iki başlık daha eşlik eder — X-Vito-Event-Id’yi yineleme önleme anahtarı olarak kullanın, çünkü yeniden deneme aynı kimliği tekrar gönderir:
İmza gizli anahtarı döndürülürken başlık birden fazla imza taşır, en yenisi başta:
h1 değerlerinden herhangi biri eşleşiyorsa teslimatı kabul edin. Yalnızca ilkini okuyan bir doğrulayıcı, yeni gizli anahtarı dağıtana kadar her webhook’u reddeder — ki bu da 24 saatlik örtüşmenin bütün amacını ortadan kaldırır.
HMAC’i <ts>:<rawBody> üzerinden imza gizli anahtarınızla yeniden hesaplayın ve sabit sürede karşılaştırın.
JSON ayrıştırma veya ara katman onu yeniden yazmadan önce, ham gövdeye karşı doğrulayın.

Olaylar

Beş olay türü, hepsi aynı yük yapısını paylaşır. Sonucu data.status taşır.
Webhook’lar artan beklemeyle 5 kez yeniden denenir. Hızlıca 2xx ile yanıt verin ve teslimatınızı eşzamansız yapın.

Hata kodları

Her yanıt bir zarf içindedir. Başarı data, hata ise error taşır; ikisi birden asla olmaz:
Her kod VITO_ ön ekiyle başlar. Tam dizeyi karşılaştırın — yalın bir RATE_LIMITED veya FORBIDDEN yanıtta asla görünmez.

Hız limitleri

Ayrıca dakikalık kotanızın yarısına eşit, en az 30 olan bir IP başına limit vardır.
Yük altında yazma uç noktaları kapalı biçimde başarısız olur — çifte harcama riskine girmek yerine tahsilat reddedilir. Okuma uç noktaları açık biçimde başarısız olur. Reddedilen bir yazmayı “gerçekleşmedi” kabul edip yeniden deneyin.
Yeniden denemeleri güvenle yinelemesiz kılmak için bir Idempotency-Key başlığı gönderin.

Uç noktalar

Sınırlar

  • Onaylar 10 dakika sonra sona erer — onaylanmamış talepleri terk edilmiş sayın
  • amount pozitif bir tam sayı olmalıdır
  • metadata 10 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

API anahtarı ve imza gizli anahtarı asla istemci koduna ait değildir. Herhangi biri sızarsa hemen döndürün.
İmzayı ham gövdeye karşı kontrol edin ve ~5 dakikadan eski teslimatları reddedin.
Asla /deduct yanıtına dayanarak teslim etmeyin — tahsilat ancak confirmation.completed ile kesinleşir.
Yalnızca gerçekten kullandığınız scope’ları isteyin ve IP izin listesini etkinleştirin.

Sorun giderme

Sahibin üyeliği sona ermiş. Her çağrıda yeniden kontrol edilir.
Geri getirilemez — yalnızca bir özet saklanır. Yeni bir tane almak için döndürün.
24 saatlik örtüşme boyunca her iki gizli anahtarı da kabul edin.
Kullanıcı onaylamadı. Onaylar 10 dakika sonra sona erer.
Bir projeye hem geri çağırma adresi hem imza gizli anahtarı gerekir. Yalnızca biri varsa hiçbir şey teslim edilmez.
Bu mahsuplaşma ücretidir. Kaçınmak için 5 Vito ve altı tutarlar kullanın veya fiyatınıza dâhil edin.
/v1/add kendi bakiyenizden finanse edilir, yoktan yaratılmaz. Bakiyenizi yükleyin.

Vito

Bakiyeler, PIN ve ücretler.

Ödeme talepleri

Ondan tahsilat yaptığınızda kullanıcının gördüğü şey.