💎 Zakkistore SDK for Ruby

Official B2B Client Library for Zakki Store API Gateway

Pustaka Ruby resmi untuk memudahkan integrasi layanan Host-to-Host (H2H) prabayar/pascabayar, payment gateway QRIS otomatis, perbankan Virtual Account (VA), Noktel OTP virtual, mining reward, dan gacha koin Zakki Store ke dalam proyek Ruby Anda (Rails, Sinatra, Hanami, bot Telegram/Discord, dll).


🚀 Instalasi & Inisialisasi

Tambahkan pustaka ini ke dalam Gemfile Anda:

gem 'zakkistore-sdk'

Atau instal secara manual via RubyGems:

gem install zakkistore-sdk

Inisialisasi Klien

require 'zakkistore-sdk'

# Inisialisasi klien SDK
zakki = ZakkiStore.new(
  "https://qris.zakki.store", # URL API Server
  "API_TOKEN_ANDA",          # Token API
  "IBO99",                   # iduser
  "member@gmail.com",        # email
  "123456",                  # PIN transaksi (Wajib untuk tabung & tarik)
  true                       # Aktifkan penarikan saldo VA otomatis ke aplikasi!
)

🛠️ Fitur Unggulan

🔄 Auto-Withdraw Saldo VA

Jika opsi auto_withdraw: true diaktifkan, SDK akan memicu penarikan dana VA bank otomatis secara real-time menjadi saldo utama aplikasi zakki store ketika fungsi checkbank() dipanggil.

💡 Dual-Flow Pascabayar & Bebas Nominal

  • Pascabayar (PLN/BPJS/PDAM): Inquiry tagihan terlebih dahulu, lalu bayar dengan format tujuan [ID_Pelanggan].[Nominal_Tagihan] (Contoh: 122345678901.150000).
  • E-Wallet Bebas Nominal: Kirim transfer E-Wallet nominal kustom dengan format tujuan [No_HP].[Nominal] (Contoh: 08123456789.25000).

📑 Daftar Referensi Metode Lengkap & Struktur Pengelompokan (36 Fungsi Resmi)

Seluruh fungsi yang didukung oleh SDK ini dikelompokkan secara rapi ke dalam 7 kategori layanan utama demi mempermudah pemahaman dan integrasi:

1. ⚡ Layanan Payment Gateway (QRIS Topup) — [4 Fungsi]

  • zakki.topup(nominal) — Membuat tiket pembayaran QRIS dinamis instan dengan nominal kode unik.
  • zakki.cektopup(idtopup) — Mengecek status pembayaran tiket QRIS tertentu secara real-time.
  • zakki.mytopup() — Mengambil seluruh riwayat transaksi topup QRIS akun Anda.
  • zakki.cancel(id_transaksi, all_pending) — Membatalkan satu atau seluruh tiket topup pending.

2. 🏪 Layanan Transaksi Host-to-Host (H2H) — [4 Fungsi]

  • zakki.listkode(jenis, product_type) — Mengambil katalog produk prabayar/pascabayar aktif beserta daftar harga beli.
  • zakki.h2h(kode, tujuan, refID) — Mengirimkan order transaksi H2H (pulsa, paket data, PLN kustom, dll).
  • zakki.cekh2h(id_trx) — Mengecek status transaksi, Serial Number (SN), dan harga beli riil dari order H2H.
  • zakki.myh2h() — Mengambil 20 riwayat transaksi H2H terupdate milik akun Anda.

3. 🏦 Layanan Perbankan & Transfer Saldo VA — [8 Fungsi]

  • zakki.checkbank() — Memeriksa detail Virtual Account (VA), saldo bank VA, serta memicu Auto-Withdraw jika diaktifkan.
  • zakki.checkname(number) — Memverifikasi nama asli pemilik rekening Virtual Account tujuan sebelum melakukan transfer.
  • zakki.transfer(to, amount) — Mengirimkan saldo antar-VA member secara instan dan bebas biaya admin.
  • zakki.tabung(jumlah) — Menyetorkan saldo aktif aplikasi ke rekening bank Virtual Account terhubung Anda.
  • zakki.tarik(jumlah) — Menarik dana dari bank Virtual Account ke saldo aktif aplikasi Zakki Store Anda.
  • zakki.checkmutasi(mutasi_type) — Melihat riwayat mutasi tabung/tarik saldo bank VA (all, tarik, tabung).
  • zakki.checktransfer(idtransfer) — Mengecek status pengiriman dana transfer tertentu secara detail.
  • zakki.mytransfer(type) — Mengambil riwayat pengiriman dan penerimaan transfer saldo (all, kirim, terima).

4. 📱 Layanan Noktel Marketplace (OTP Virtual) — [5 Fungsi]

  • zakki.noktelStok() — Memeriksa ketersediaan stok nomor virtual aktif per kategori layanan/aplikasi.
  • zakki.noktelBuy(category) — Membeli nomor virtual baru untuk penerimaan kode verifikasi/OTP.
  • zakki.noktelGetOtp(account_id) — Mengambil kode verifikasi/OTP yang masuk ke nomor virtual secara real-time.
  • zakki.noktelCancel(invoice_id) — Membatalkan order nomor virtual yang pending OTP dan memicu auto-refund saldo.
  • zakki.noktelHistory() — Mengambil daftar riwayat lengkap pemesanan nomor virtual.

5. ⛏️ Layanan Reward Komputasi SHA-256 (Mining) & Game — [5 Fungsi]

  • zakki.miningStart() — Meminta challenge penambangan SHA-256 serta target kesulitan (difficulty) dari server.
  • zakki.miningSubmit(nonce, signature) — Mengirimkan hasil kerja hashing SHA-256 (Proof-of-Work) untuk mendapatkan koin.
  • zakki.cekmining(idmining) — Mengecek status audit dan persetujuan dari blok mining yang telah Anda selesaikan.
  • zakki.mymining() — Melihat riwayat penambangan koin dan total reward hashing akun Anda.
  • zakki.cekgacha() — Mengecek jumlah tiket gacha, riwayat kemenangan, dan detail koin keberuntungan Anda.

6. 🔒 Layanan Keamanan IP & Utilitas — [6 Fungsi]

  • zakki.whitelistip(ip) — Mendaftarkan IP server/host Anda agar diizinkan melakukan transaksi H2H via API (Maksimal 3 IP).
  • zakki.delwhitelistip(ip) — Menghapus alamat IP terdaftar dari whitelist API.
  • zakki.cekmyip() — Mendeteksi alamat IP publik host/server Anda saat ini yang terbaca oleh sistem.
  • zakki.cekip(ip) — Mengecek detail status IP whitelisting tertentu.
  • zakki.leaderboard(limit, period) — Melihat daftar Sultan topup teraktif secara global.
  • zakki.status() — Memeriksa beban CPU server, statistik finansial global, dan kesehatan sistem.

7. 🔗 Layanan Webhook Callback & Notifikasi Bot — [4 Fungsi]

  • zakki.setcallback(site) — Memasang URL callback real-time untuk menerima laporan status transaksi H2H.
  • zakki.delcallback() — Menghapus URL callback yang terpasang di sistem.
  • zakki.setnotifbot(telegramId) — Memasang ID Telegram Anda untuk menerima notifikasi otomatis transaksi sukses/gagal.
  • zakki.delnotifbot() — Menonaktifkan bot notifikasi Telegram.

🛡️ Protokol Keamanan API

[!WARNING] Selalu jalankan SDK ini di sisi backend (Server-side)! Jangan pernah mengekspos API Token dan PIN Anda langsung di frontend aplikasi / browser klien publik demi mencegah potensi pencurian saldo.