Dokumentasi API
Semua yang Anda butuhkan untuk mengintegrasikan KevanPay ke sistem Anda.
Memulai Integrasi
API KevanPay menggunakan arsitektur RESTful. Semua request via HTTPS, response berupa JSON.
Dapatkan API Key
Buka Pengaturan API di dashboard.
Autentikasi
Sertakan api_key di setiap request.
Atur Callback
Setup URL webhook untuk notifikasi realtime.
Keamanan: Jangan pernah membagikan API Key. Gunakan fitur Whitelist IP untuk keamanan maksimal.
Base URL
https://pg.kevanpremium.com/api
Sandbox: /api/sandbox
Profile
Mendapatkan informasi profil dan saldo akun.
/api/profile
| Nama | Tipe | Wajib | Keterangan |
|---|---|---|---|
| api_key | String | Ya | API Key rahasia akun Anda. |
Request
{"api_key": "YOUR_API_KEY"}Response
{
"status": true,
"message": "Profil berhasil diambil.",
"data": {
"username": "kevan_dev",
"name": "Kevan Dirgantara",
"email": "kevan@example.com",
"whatsapp": "08123456789",
"balance": 1500000,
"role": "User",
"created_at": "2026-01-15 08:30:00"
}
}Create Transaction
Membangkitkan pembayaran QRIS untuk menerima dana.
/api/transaction/create
| Nama | Tipe | Wajib | Keterangan |
|---|---|---|---|
| api_key | String | Ya | API Key rahasia akun Anda. |
| code | String | Ya | Kode pembayaran: qris |
| amount | Integer | Ya | Jumlah dana (Minimal 1000). |
| description | String | Tidak | Catatan pesanan (maks 255). |
Request
{
"api_key": "YOUR_API_KEY",
"code": "qris",
"amount": 50000,
"description": "Invoice INV-20260401"
}Response
{
"status": true,
"message": "Transaksi berhasil dibuat.",
"data": {
"reff_id": "PAY-A8B3X2",
"description": "Invoice INV-20260401",
"method": "ewallet",
"code": "qris",
"type": "in",
"amount": 50350,
"fee": 350,
"get_amount": 50000,
"qr_string": "00020101021126...",
"qr_image": "https://api.qrserver.com/...",
"payment_name": "QRIS",
"instructions": "Scan QR ini dengan aplikasi pembayaran...",
"status": "pending",
"created_at": "2026-04-06 10:00:00",
"expired_at": "2026-04-06 10:15:00"
}
}Status Transaction
Mengecek status pembayaran berdasarkan Reference ID.
/api/transaction/status
| Nama | Tipe | Wajib | Keterangan |
|---|---|---|---|
| api_key | String | Ya | API Key rahasia akun Anda. |
| reff_id | String | Ya | ID Referensi transaksi. |
Request
{"api_key": "YOUR_API_KEY", "reff_id": "PAY-A8B3X2"}Response
{
"status": true,
"message": "Transaksi berhasil diambil.",
"data": {
"reff_id": "PAY-A8B3X2",
"status": "success",
"..."
}
}List Transaction
Melihat riwayat transaksi akun.
/api/transaction/list
| Nama | Tipe | Wajib | Keterangan |
|---|---|---|---|
| api_key | String | Ya | API Key rahasia. |
| status | String | Tidak | Filter status (pending/success/failed/expired). |
| code | String | Tidak | Kode metode pembayaran. |
Request
{"api_key": "YOUR_API_KEY", "status": "success"}Response
{
"status": true,
"message": "Menampilkan 2 riwayat transaksi.",
"data": [...]
}Create Transfer
Transfer saldo ke pengguna lain.
/api/transfer/create
| Nama | Tipe | Wajib | Keterangan |
|---|---|---|---|
| api_key | String | Ya | API Key rahasia akun Anda. |
| recipient_username | String | Ya | Username tujuan transfer. |
| amount | Integer | Ya | Jumlah dana (Min: 1). |
Request
{
"api_key": "YOUR_API_KEY",
"recipient_username": "riki_user",
"amount": 25000
}Response
{
"status": true,
"message": "Transfer berhasil.",
"data": {
"reff_id": "TRF-X9BC72",
"description": "Transfer ke riki_user",
"method": "transfer",
"recipient": {"username": "riki_user", "name": "Riki Firmansyah"},
"type": "out",
"amount": 25000,
"status": "success",
"created_at": "2026-04-06 14:05:00"
}
}Create Withdraw
Tarik saldo ke bank atau e-wallet.
/api/withdraw/create
| Nama | Tipe | Wajib | Keterangan |
|---|---|---|---|
| api_key | String | Ya | API Key rahasia akun Anda. |
| amount | Integer | Ya | Jumlah tarik dana (Min: 10000). |
| method | String | Ya | bank atau ewallet. |
| code | String | Ya | Kode bank/e-wallet (BCA, DANA, dll). |
| account_number | String | Ya | Nomor Rekening/Telepon tujuan. |
| account_name | String | Ya | Atas nama pemilik. |
Request
{
"api_key": "YOUR_API_KEY",
"amount": 250000,
"method": "bank",
"code": "BCA",
"account_number": "1203495811",
"account_name": "KEVAN DIRGANTARA"
}Response
{
"status": true,
"message": "Permintaan withdraw berhasil dibuat.",
"data": {
"reff_id": "WD-19881A",
"description": "Withdraw ke Bank BCA",
"method": "bank",
"code": "bca",
"type": "out",
"amount": 250000,
"fee": 2000,
"total": 252000,
"status": "pending",
"created_at": "2026-04-06 14:05:00"
}
}Callback / Webhook
Server akan mengirim HTTP POST ke Webhook URL Anda saat status transaksi berubah.
Contoh Payload
{
"event": "transaction.success",
"data": {
"reff_id": "PAY-A8B3X2",
"description": "Invoice INV-20260401",
"method": "ewallet",
"code": "qris",
"type": "in",
"amount": 50350,
"fee": 350,
"get_amount": 50000,
"status": "success",
"created_at": "2026-04-06 10:00:00",
"updated_at": "2026-04-06 10:02:30"
}
}URL Anda harus merespon dengan kode HTTP 200 OK agar dianggap berhasil.
Sandbox
Gunakan prefix /api/sandbox/ untuk testing. Status transaksi bisa diubah manual via dashboard admin.
Endpoint Sandbox:
- /api/sandbox/transaction/create
- /api/sandbox/transaction/status
- /api/sandbox/withdraw/create
- /api/sandbox/withdraw/status