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.

1

Dapatkan API Key

Buka Pengaturan API di dashboard.

2

Autentikasi

Sertakan api_key di setiap request.

3

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
POST

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"
    }
}
POST

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"
    }
}
POST

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",
        "..."
    }
}
POST

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": [...]
}
POST

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"
    }
}
POST

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