/v1.
Mendapatkan akses
Akses diberikan per proyek. Kamu memerlukan keempatnya:Keanggotaan aktif, Silver atau lebih tinggi
Pengajuan pengembang yang disetujui
Ketentuan Pengembang API yang disetujui
Scope yang dibutuhkan proyekmu
Scope
Autentikasi
Kirim kunci rahasiamu sebagai token Bearer:- Daftar IP yang diizinkan — membatasi panggilan ke IP server tertentu
- Batas laju — plafon per proyek yang naik seiring tingkat Keanggotaan pemilik
Kunci, rotasi, dan penyimpanan
- Simpan hanya di sisi server — siapa pun yang memegangnya bisa menagih penggunamu
- Rotasi dari tab kunci API. Kunci sebelumnya tetap berfungsi selama masa tenggang 24 jam agar kamu bisa merilis tanpa waktu henti
- Secret penandatanganan webhook dirotasi terpisah, dengan tumpang tindih 24 jam tersendiri
- Jika bocor, segera rotasi
SDK Node.js resmi
Paket resmi@vetox-bot/vito membungkus kesembilan endpoint sekaligus verifikasi webhook. Paket ini menangani header Idempotency-Key, percobaan ulang dengan jeda menaik, batas waktu, dan klasifikasi galat untukmu.
Instalasi
fetch bawaan dan node:crypto — serta dikirim dalam ESM dan CommonJS lengkap dengan definisi TypeScript.
Inisialisasi
apiKey tidak diberikan, SDK membaca VITO_API_KEY dari environment. Format kunci divalidasi saat pembuatan objek, sehingga kunci yang salah bentuk langsung gagal alih-alih memakan satu perjalanan jaringan dan respons 401.
Opsi klien
Metode yang tersedia
data yang sudah dibuka — kamu tidak pernah perlu membongkar success atau data sendiri. Semuanya juga menerima opsi per panggilan: { timeoutMs, maxRetries, signal, headers }, dan metode tulis menerima { idempotencyKey } sebagai tambahan.Contoh penggunaan
Memeriksa kunci saat aplikasi mulai
Membaca saldo
Menagih pengguna (menjual barang)
Menambah saldo pengguna
Menelusuri transaksi
Idempotensi dan percobaan ulang
SDK mengirim headerIdempotency-Key pada setiap operasi tulis (deduct, credit, transfer). Jika kamu tidak menyediakannya, SDK membuat kunci itu sekali per panggilan dan mengirim ulang kunci yang sama persis pada setiap percobaan ulang, sehingga percobaan ulang tidak akan pernah menyelesaikan operasi dua kali.
Sediakan kuncimu sendiri bila operasi logis yang sama bisa diulang dari proses baru — pelaksana pekerjaan, pengiriman ulang dari antrean, atau sapuan terjadwal:
auth.rotateKey() sengaja dikecualikan — percobaan ulang di sana menerbitkan kunci kedua dan membatalkan kunci yang dikembalikan percobaan pertama.Memverifikasi webhook dengan SDK
constructEvent memeriksa jendela replay 5 menit, membandingkan dalam waktu konstan terhadap setiap tanda tangan h1 di header — sehingga otomatis bekerja selama tumpang tindih rotasi 24 jam — lalu mem-parsing payload dan mengembalikan peristiwa bertipe.
Di route handler Next.js (App Router), pakai varian yang membaca body mentah sendiri:
event.eventId sebelum menjalankan efek samping apa pun.Penanganan galat
Semua yang dilempar SDK mewarisiVitoError dan membawa code, status, type, requestId, dan retryable.
Membatalkan sebuah panggilan
VitoConnectionError dengan kode VITO_SDK_ABORTED.
Menagih pengguna
Aplikasimu memanggil POST /v1/deduct
guildId asal, dan detail barang.Vito mengembalikan confirmUrl
Pengguna menyetujui dengan PIN-nya
vetox.io.Vito menyelesaikan dan memberi tahu
Aplikasimu memverifikasi dan menyelesaikan
Parameter permintaan — /v1/deduct
Menambah saldo pengguna
POST /v1/add menambahkan Vito ke pengguna dari saldomu sendiri — untuk hadiah atau pengembalian dana. Bidang yang sama dengan /deduct kecuali guildId dan product.
credit:create dan saldo yang cukup, atau panggilan mengembalikan 402 VITO_INSUFFICIENT_OWNER_FUNDS.Biaya
Setiap penagihan diselesaikan kepadamu dikurangi biaya platform — skema yang sama dengan transfer Vito di dalam aplikasi, berdasarkan tingkat Keanggotaan kamu:/v1/add selalu bebas biaya.Webhook
Tambahkan satu atau beberapa URL callbackhttps di tab pengaturan. Vito mengirim POST bertanda tangan setiap kali sebuah konfirmasi mencapai keadaan akhir.
Memverifikasi tanda tangan
Setiap pengiriman membawa headerX-Vito-Signature:
X-Vito-Event-Id sebagai kunci deduplikasi, karena percobaan ulang mengirim id yang sama:
<ts>:<rawBody> dengan secret penandatangananmu dan bandingkan dalam waktu konstan.
Peristiwa
Lima jenis peristiwa, semuanya berbagi satu bentuk payload.data.status membawa hasilnya.
Kode galat
Setiap respons dibungkus. Keberhasilan membawadata, kegagalan membawa error, tidak pernah keduanya:
Batas laju
Idempotency-Key untuk menghindari duplikasi saat mencoba ulang.Endpoint
Batasan
- Konfirmasi kedaluwarsa setelah 10 menit — anggap permintaan yang belum dikonfirmasi sebagai ditinggalkan
amountharus bilangan bulat positifmetadatadibatasi 10 kunci- Plafon per transaksi dan harian ditetapkan tim Vetox dan tampil hanya-baca di tab pengaturan
Daftar periksa keamanan
Simpan secret di sisi server
Simpan secret di sisi server
Verifikasi setiap webhook
Verifikasi setiap webhook
Selesaikan hanya pada completed
Selesaikan hanya pada completed
/deduct — penagihan baru final pada confirmation.completed.Hak seminimal mungkin
Hak seminimal mungkin
Pemecahan masalah
Setiap panggilan mengembalikan tidak terotorisasi
Setiap panggilan mengembalikan tidak terotorisasi
Saya kehilangan kunci saya
Saya kehilangan kunci saya
Tanda tangan webhook gagal setelah rotasi
Tanda tangan webhook gagal setelah rotasi
Sebuah penagihan tidak pernah selesai
Sebuah penagihan tidak pernah selesai
Tidak ada webhook yang datang
Tidak ada webhook yang datang
Vito yang masuk lebih sedikit dari yang saya tagih
Vito yang masuk lebih sedikit dari yang saya tagih
402 VITO_INSUFFICIENT_OWNER_FUNDS
402 VITO_INSUFFICIENT_OWNER_FUNDS
/v1/add didanai dari saldomu sendiri, bukan diciptakan dari ketiadaan. Isi ulang saldomu.