๐ Pengenalan
Referensi API lengkap untuk platform KAMIL MARKET
๐
Base URL
https://kamilshop.my.id
๐ฆ
Format
JSON (application/json)
๐
Auth
NextAuth.js Session / JWT
โน๏ธ Konvensi Response
// Sukses
{ "ok": true, "data": { ... } }
// Error
{ "error": "Pesan error", "code": 400 }๐ท๏ธ Format Order ID
Semua order ID menggunakan prefix KM- diikuti timestamp dan random string.
KM-{timestamp}-{random4char}
// Contoh: KM-1780992398025-7YQ1๐ Autentikasi
KAMIL MARKET menggunakan NextAuth.js dengan provider Google dan GitHub.
โ ๏ธ Endpoint Terproteksi
Endpoint dengan label ๐ Auth membutuhkan sesi aktif. Request tanpa sesi akan mendapat response 401 Unauthorized.
๐๏ธ Orders
Endpoint untuk membuat, melihat, dan mengelola pesanan.
๐ Webhook Pakasir
Endpoint ini dipanggil otomatis oleh Pakasir saat pembayaran berhasil.
๐ Konfigurasi di Pakasir
Webhook URL:
https://kamilshop.my.id/api/webhook/pakasir?secret=WEBHOOK_SECRET_KAMUIsi WEBHOOK_SECRET di env dengan string acak yang sama dengan yang didaftarkan di Pakasir.
๐งช Test Webhook via cURL / Termux
curl -X POST "https://kamilshop.my.id/api/webhook/pakasir?secret=ISI_SECRET_KAMU" \
-H "Content-Type: application/json" \
-d '{"order_id":"KM-1780992398025-7YQ1","status":"paid"}'๐ฐ Affiliate
Program affiliate dengan komisi 10% per transaksi menggunakan ref code.
๐ Cara Kerja Ref Link
// User share link:
https://kamilshop.my.id?ref=KAMIL10
// Sistem menyimpan refCode di cookie selama 30 hari
// Saat checkout, refCode otomatis ikut di order
// Setelah order paid โ komisi 10% masuk ke saldo affiliate๐ค Telegram Bot
Bot Telegram KAMIL MARKET untuk notifikasi & manajemen via chat.
๐ค Commands User
/startHubungkan akun & lihat menu/menuMenu utama/katalogBrowse produk/pesanan5 pesanan terakhir/saldoSaldo & info affiliate/statusStatus koneksi akun/helpDaftar semua perintah/stopPutus koneksi Telegram๐ Commands Admin
/adminPanel admin/orders7 order terbaru/withdrawalsDaftar WD pending/statsStatistik platform๐ข Notifikasi Otomatis ke Grup
โข ๐๏ธ Ada transaksi baru (order paid)
โข ๐ง Maintenance aktif
โข โ Maintenance selesai
โ๏ธ Cara Daftarkan Webhook ke Telegram
curl "https://api.telegram.org/bot{BOT_TOKEN}/setWebhook" \
-d "url=https://kamilshop.my.id/api/telegram/webhook" \
-d "secret_token=TELEGRAM_WEBHOOK_SECRET_KAMU"โ๏ธ Admin API
Semua endpoint admin membutuhkan role admin.
๐จ Endpoint ini hanya bisa diakses jika user memiliki role: "admin" di Firestore.
๐ Notifikasi
In-app notification system untuk user.
๐ Tipe Notifikasi
order_paidโ Pembayaran berhasil dikonfirmasiorder_pendingโ Menunggu pembayaranorder_failedโ Pembayaran gagalorder_refundedโ Refund diproseschat_replyโ Balasan chat dari admindm_messageโ Pesan DM barubroadcastโ Pengumuman dari adminsystemโ Notifikasi sistem (maintenance, dll)๐ง Environment Variables
Semua variabel yang dibutuhkan di file .env.local
๐ NextAuth
NEXTAUTH_URLURL produksihttps://kamilshop.my.idNEXTAUTH_SECRETSecret key โ generate: openssl rand -base64 32GOOGLE_CLIENT_IDGoogle OAuth Client IDGOOGLE_CLIENT_SECRETGoogle OAuth Client SecretGITHUB_IDGitHub OAuth App IDGITHUB_SECRETGitHub OAuth App Secret๐ฅ Firebase
NEXT_PUBLIC_FIREBASE_API_KEYFirebase Web API KeyNEXT_PUBLIC_FIREBASE_AUTH_DOMAINFirebase Auth DomainNEXT_PUBLIC_FIREBASE_PROJECT_IDFirebase Project IDFIREBASE_ADMIN_PROJECT_IDFirebase Admin Project IDFIREBASE_ADMIN_CLIENT_EMAILFirebase Admin Client EmailFIREBASE_ADMIN_PRIVATE_KEYFirebase Admin Private Key (dengan \n)๐ณ Pakasir Payment
PAKASIR_SLUGSlug toko di PakasirPAKASIR_API_KEYAPI Key PakasirWEBHOOK_SECRETSecret untuk validasi webhook Pakasir๐ค Telegram
TELEGRAM_BOT_TOKENToken bot dari @BotFatherTELEGRAM_ADMIN_CHAT_IDChat ID pribadi adminTELEGRAM_GROUP_CHAT_IDChat ID grup informasi-1003918831181TELEGRAM_WEBHOOK_SECRETSecret untuk validasi webhook Telegram๐ง Email
GMAIL_USERAlamat Gmail pengirimGMAIL_APP_PASSGoogle App Password (bukan password akun)๐ App
NEXT_PUBLIC_APP_URLURL produksi websitehttps://kamilshop.my.idNEXT_PUBLIC_APP_NAMENama aplikasiKAMIL MARKETADMIN_UIDUID Firestore dokumen user admin