๐Ÿ“– 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_KAMU

Isi 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 dikonfirmasi
order_pendingโ€” Menunggu pembayaran
order_failedโ€” Pembayaran gagal
order_refundedโ€” Refund diproses
chat_replyโ€” Balasan chat dari admin
dm_messageโ€” Pesan DM baru
broadcastโ€” Pengumuman dari admin
systemโ€” Notifikasi sistem (maintenance, dll)

๐Ÿ”ง Environment Variables

Semua variabel yang dibutuhkan di file .env.local

๐Ÿ”‘ NextAuth

NEXTAUTH_URLURL produksihttps://kamilshop.my.id
NEXTAUTH_SECRETSecret key โ€” generate: openssl rand -base64 32
GOOGLE_CLIENT_IDGoogle OAuth Client ID
GOOGLE_CLIENT_SECRETGoogle OAuth Client Secret
GITHUB_IDGitHub OAuth App ID
GITHUB_SECRETGitHub OAuth App Secret

๐Ÿ”ฅ Firebase

NEXT_PUBLIC_FIREBASE_API_KEYFirebase Web API Key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAINFirebase Auth Domain
NEXT_PUBLIC_FIREBASE_PROJECT_IDFirebase Project ID
FIREBASE_ADMIN_PROJECT_IDFirebase Admin Project ID
FIREBASE_ADMIN_CLIENT_EMAILFirebase Admin Client Email
FIREBASE_ADMIN_PRIVATE_KEYFirebase Admin Private Key (dengan \n)

๐Ÿ’ณ Pakasir Payment

PAKASIR_SLUGSlug toko di Pakasir
PAKASIR_API_KEYAPI Key Pakasir
WEBHOOK_SECRETSecret untuk validasi webhook Pakasir

๐Ÿค– Telegram

TELEGRAM_BOT_TOKENToken bot dari @BotFather
TELEGRAM_ADMIN_CHAT_IDChat ID pribadi admin
TELEGRAM_GROUP_CHAT_IDChat ID grup informasi-1003918831181
TELEGRAM_WEBHOOK_SECRETSecret untuk validasi webhook Telegram

๐Ÿ“ง Email

GMAIL_USERAlamat Gmail pengirim
GMAIL_APP_PASSGoogle App Password (bukan password akun)

๐ŸŒ App

NEXT_PUBLIC_APP_URLURL produksi websitehttps://kamilshop.my.id
NEXT_PUBLIC_APP_NAMENama aplikasiKAMIL MARKET
ADMIN_UIDUID Firestore dokumen user admin