API Online
Dokumentasi

Venn Store API

API resmi Venn Store untuk integrasi bot, reseller, dan developer. Semua endpoint menggunakan JSON. Semua endpoint utama wajib menyertakan api_key.

Semua member dapat API key gratis. Daftar → Dashboard → API Key → Generate. Langsung bisa dipakai untuk semua endpoint.
Harga otomatis sesuai level akun. Member, Gold, atau Platinum — API mengembalikan harga yang sudah disesuaikan dengan level kamu secara otomatis.
Autentikasi

API Key

Semua endpoint utama menggunakan api_key yang unik per akun. API Key hanya dapat dibuat setelah login / daftar, lalu buka Dashboard → API Key.

Jangan bagikan API key ke orang lain. Kalau bocor, regenerate di Dashboard → API Key. Key lama langsung tidak aktif.
API key tidak bisa dibuat dari halaman publik tanpa akun. Daftar dulu, lalu ambil API key di profil kamu.
Cara penggunaan
# Di query parameter (GET) GET /api/public/saldo?api_key=usr_xxxxxxxxxxxxxx # Di request body (POST) POST /api/public/topup Content-Type: application/json { "api_key": "usr_xxxxxxxxxxxxxx", "sku": "MLBB-86", "tujuan": "12345678|1234" }
Format API Key yang dikeluarkan Venn Store:
usr_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9
Sistem Harga

Level & Harga Reseller

Setiap akun memiliki level yang menentukan harga produk. API otomatis mengembalikan harga sesuai levelmu — tidak perlu hitung manual.

LevelMarginMasa AktifBiaya
👤 Member Standar Selamanya Gratis (default)
⭐ Gold Lebih Murah 30 hari Rp 50.000
💎 Platinum Termurah 30 hari Rp 150.000
Upgrade level dari Dashboard → Upgrade Level. Bayar pakai saldo akun, langsung aktif.
Konfigurasi

Base URL

Production
https://venn.vennpay.web.id/api
Local / Development
http://localhost:5000/api
Format Respons
// Sukses { "status": "success", "data": { ... } } // Error { "status": "error", "message": "Deskripsi masalah" }
5 Endpoint Utama
Semua wajib api_key
GET
/public/layanan
api_key

Ambil semua produk yang tersedia. Harga otomatis sesuai level akunmu. Bisa filter per kategori atau cari nama produk.

Query Parameters
ParameterTipeWajibKeterangan
api_keystringWajibAPI key akunmu
categorystringOpsionalSlug kategori, contoh: mobile-legends-id
searchstringOpsionalCari nama produk
Contoh Request
GET /api/public/layanan?api_key=usr_xxxx&category=mobile-legends-id
Contoh Respons
{ "status": "success", "level": "gold", // level akunmu saat ini "total": 48, "data": [ { "sku": "MLBB-86", "nama": "86 Diamond", "category": "mobile-legends-id", "harga": 21350, // harga sudah sesuai levelmu "status": "available" } ] }
GET
/public/saldo
api_key

Cek saldo akun, level aktif, dan masa aktif level.

Query Parameters
ParameterTipeWajibKeterangan
api_keystringWajibAPI key akunmu
Contoh Request
GET /api/public/saldo?api_key=usr_xxxx
Contoh Respons
{ "status": "success", "data": { "username": "JohnDoe", "saldo": 250000, "level": "gold", "levelExpiresAt": "2026-07-29T00:00:00.000Z" // null kalau member } }
POST
/public/topup
api_key

Buat order top up. Saldo dipotong otomatis sesuai harga level akunmu. Order langsung diproses.

Pastikan saldo cukup sebelum order. Cek dulu dengan endpoint GET /public/saldo dan harga produk dengan GET /public/harga/:sku.
Request Body (JSON)
FieldTipeWajibKeterangan
api_keystringWajibAPI key akunmu
skustringWajibKode produk dari GET /layanan
tujuanstringWajibUser ID / No HP / ID Akun tujuan
nicknamestringOpsionalNama karakter (beberapa game butuh ini)
Contoh Request
POST /api/public/topup Content-Type: application/json { "api_key": "usr_xxxx", "sku": "MLBB-86", "tujuan": "12345678|1234", "nickname": "Player1" }
Contoh Respons Sukses
{ "status": "success", "message": "Order sedang diproses.", "data": { "invoice": "TRX-1718000000000-ABCDEF7", "produk": "86 Diamond", "tujuan": "12345678|1234", "harga": 21350, "level": "gold", "tx_status": "pending" } }
Alur Status Order
pending → Sedang diproses success → Berhasil failed → Gagal
GET
/public/cekstatus/:invoice
api_key

Cek status order berdasarkan nomor invoice. Hanya bisa cek order milik akun sendiri.

Parameter
ParameterTipeWajibKeterangan
:invoicepathWajibNomor invoice dari response topup
api_keyqueryWajibAPI key akunmu
Contoh Request
GET /api/public/cekstatus/TRX-1718000000000-ABCDEF7?api_key=usr_xxxx
Contoh Respons
{ "status": "success", "data": { "invoice": "TRX-1718000000000-ABCDEF7", "produk": "86 Diamond", "tujuan": "12345678|1234", "harga": 21350, "level": "gold", "tx_status": "success", "sn": "SN12345678", // serial number kalau sudah sukses "createdAt": "2026-06-29T10:00:00.000Z", "updatedAt": "2026-06-29T10:01:30.000Z" } }
POST
/public/deposit
api_key

Ajukan permintaan deposit saldo. Kirim bukti transfer, admin akan verifikasi dan menambahkan saldo akunmu.

Request Body (JSON)
FieldTipeWajibKeterangan
api_keystringWajibAPI key akunmu
amountnumberWajibNominal dalam Rupiah (min. Rp 10.000)
paymentMethodstringWajibContoh: bca, dana, qris
proofUrlstringWajibURL foto bukti transfer untuk deposit manual. Untuk QRIS VennPay, field ini bisa dikosongkan.
notestringOpsionalCatatan untuk admin
Contoh Request
POST /api/public/deposit Content-Type: application/json { "api_key": "usr_xxxx", "amount": 100000, "paymentMethod": "bca", "proofUrl": "https://i.ibb.co/xxx/bukti.jpg", "note": "Transfer 100rb jam 10 pagi" }
Contoh Respons
{ "status": "success", "message": "Request deposit berhasil dikirim. Admin akan memverifikasi dan menambahkan saldo kamu.", "data": { "id": "DEP-1718000000000", "amount": 100000, "paymentMethod": "bca", "status": "pending" } }
Akun
API Key & Upgrade Level
Daftar di venn.vennpay.web.id untuk dapatkan API key dan akses semua fitur.
GET
/user/api-key
JWT Bearer

Ambil API key akun kamu setelah login. Kalau belum ada, otomatis di-generate. Gunakan POST /user/api-key/regenerate untuk buat key baru (key lama nonaktif).

Header
Authorization: Bearer eyJhbGci...
Contoh Respons
{ "status": "success", "data": { "apiKey": "usr_a1b2c3d4e5f6g7h8i9j0...", "username": "JohnDoe", "level": "member" } }
Setelah dapat API key, simpan dan gunakan di semua 5 endpoint utama. Tidak perlu login lagi setiap request API.
POST
/user/upgrade-level
JWT Bearer

Upgrade level akun ke Gold atau Platinum. Saldo dipotong otomatis. Level aktif 30 hari dan bisa diperpanjang kapan saja.

Request Body
FieldTipeWajibKeterangan
targetLevelstringWajibNilai: gold atau platinum
Contoh Request
POST /api/user/upgrade-level Authorization: Bearer eyJhbGci... Content-Type: application/json { "targetLevel": "gold" }
Contoh Respons
{ "status": "success", "message": "Selamat! Kamu sekarang level GOLD hingga 29 Juli 2026", "data": { "level": "gold", "expiresAt": "2026-07-29T00:00:00.000Z", "daysLeft": 30, "saldoSisa": 200000 } }
Utilitas
Endpoint Tambahan
GET
/public/harga/:sku
api_key

Cek harga satu produk berdasarkan SKU. Harga disesuaikan dengan level akunmu.

Contoh Request
GET /api/public/harga/MLBB-86?api_key=usr_xxxx
Contoh Respons
{ "status": "success", "data": { "sku": "MLBB-86", "nama": "86 Diamond", "harga": 21350, "level": "gold", "status": "available" } }
GET
/public/categories
Bebas

Daftar semua kategori tersedia beserta jumlah produknya. Tidak butuh api_key.

Contoh Respons
{ "status": "success", "total": 12, "data": [ { "id": "cat-xxx", "name": "Mobile Legends Indonesia", "slug": "mobile-legends-id", "emoji": "🎮", "productCount": 48 } ] }
Referensi

Error Codes

HTTP CodeContoh MessagePenyebab
400sku dan tujuan wajib diisiField wajib tidak ada / tidak valid
401API key tidak validapi_key salah atau sudah diregenerasi
401api_key wajibRequest tidak menyertakan api_key
403Invoice ini bukan milik akun kamuCoba cek order orang lain
404Produk tidak ditemukanSKU salah atau produk tidak tersedia
400Saldo tidak mencukupiSaldo kurang, lakukan deposit dulu
500Gagal memproses orderError internal, coba beberapa saat lagi
🚀 Quick Start

Mulai pakai API Venn Store dalam 3 langkah:

1
Daftar akun di venn.vennpay.web.id
2
Ambil API key di Dashboard → API Key → Generate
3
Mulai request ke /api/public/layanan?api_key=YOUR_KEY