API Documentation
Integrasikan layanan produk digital RayMarket ke dalam website atau bot kamu. Mendukung transaksi 24 jam dengan respons realtime, sistem saldo user, deposit otomatis via QRIS, dan tarik saldo ke DANA.
Autentikasi
Setiap request ke API wajib menyertakan api_key milik kamu. Dapatkan API Key di halaman Akun setelah login.
{ "api_key": "your_api_key_here" }
Base URL
https://premiumku.raymarkett.my.id/api.php
Semua request menggunakan metode POST dengan body JSON, kecuali dinyatakan lain.
POST Profil Akun
Mendapatkan informasi akun: nama, email, saldo, dan API Key. Berguna untuk validasi koneksi.
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key akun kamu |
{ "api_key": "your_key" }
{ "success": true, "data": { "id": "USR123ABC", "name": "Nama Kamu", "email": "email@example.com", "saldo": 50000, "api_key": "abc123...", "created_at": "2026-04-01 10:00:00" } }
POST List Produk
Menampilkan semua produk yang tersedia beserta harga jual, stok, dan gambar. Harga sudah disesuaikan oleh admin. Jika login sebagai member, tersedia juga price_member (diskon Rp 50/item).
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key akun kamu (jika ada → aktifkan harga member) |
{ "success": true, "products": [ { "id": 1, "name": "Alight Motion 1 Tahun", "price": 5000, "price_member": 4950, // harga setelah diskon member "member_discount": 50, "stock": 42, "status": "available", "image": "https://cdn.premku.com/am.png" } ] }
POST Cek Stok
Mengecek stok produk spesifik secara realtime.
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key |
| product_id | Integer | Wajib | ID Produk |
{ "success": true, "product": "Alight Motion 1 Tahun", "stock": 42 }
POST Buat Order
Membeli produk. Jika menggunakan use_balance: true, saldo akan dipotong otomatis. Jika tidak, order dibuat setelah pembayaran QRIS sukses.
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key |
| product_id | Integer | Wajib | ID Produk |
| qty | Integer | Wajib | Jumlah (min: 1) |
| use_balance | Boolean | Opsional | true = potong saldo. Saldo harus cukup. |
| phone | String | Opsional | Nomor WA (untuk notifikasi) |
{ "api_key": "your_key", "product_id": 1, "qty": 1, "use_balance": true }
{ "success": true, "invoice": "2026040301412610", "product": "Alight Motion 1 Tahun", "qty": 1, "price": 4950, "balance_after": 45050 }
POST Cek Status Order
Mengecek status order dan mengambil data akun (email/pass) jika status sudah sukses.
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key |
| invoice | String | Wajib | ID Invoice |
{ "success": true, "status": "success", "product": "Alight Motion 1 Tahun", "accounts": [ { "username": "email@ex.com", "password": "pass123" } ] }
POST Deposit Saldo
Membuat permintaan deposit. Respons berisi QRIS untuk dibayar. Fee admin Rp 500 per transaksi otomatis ditambahkan.
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key |
| amount | Integer | Wajib | Jumlah deposit (min: 1000, maks: 1.000.000) |
{ "success": true, "data": { "invoice": "ORD592817", "amount_req": 50000, // saldo yang masuk "admin_fee": 500, "total_bayar": 50623, // yang harus dibayar "qr_image": "data:image/png;base64,...", "qr_raw": "00020101..." } }
POST Status Deposit
Mengecek status pembayaran deposit. Jika sukses, saldo otomatis masuk ke akun user.
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key |
| invoice | String | Wajib | ID Invoice deposit |
{ "success": true, "data": { "invoice": "ORD592817", "status": "success", // pending | success | canceled "total_bayar": 50623 } }
POST Batalkan Deposit
Membatalkan deposit yang masih pending. Deposit sukses tidak bisa dibatalkan.
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key |
| invoice | String | Wajib | ID Invoice deposit |
POST Riwayat Deposit
Mengambil riwayat deposit akun kamu (50 terbaru).
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key |
POST Tarik Saldo
Mengajukan permintaan tarik saldo ke DANA. Saldo dipotong langsung. Admin akan memproses dalam 1×24 jam dan memberi notifikasi Telegram.
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key |
| nama_pemilik | String | Wajib | Nama pemilik akun DANA |
| nomor_dana | String | Wajib | Nomor DANA (08XXXXXXXXXX) |
| amount | Integer | Wajib | Jumlah tarik (min: 10.000) |
{ "api_key": "your_key", "nama_pemilik": "Nama Kamu", "nomor_dana": "08123456789", "amount": 50000 }
{ "success": true, "message": "Permintaan dikirim. Admin proses dalam 1x24 jam.", "withdrawal_id": "WD20260403123456789" }
POST Riwayat Tarik Saldo
Mengambil riwayat permintaan tarik saldo akun kamu.
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| api_key | String | Wajib | API Key |
Kode Error
Semua error mengembalikan "success": false dengan pesan yang sesuai.
| Pesan | Penyebab | HTTP Code |
|---|---|---|
| API key atau token tidak valid. | API Key salah atau tidak ditemukan | 401 |
| Saldo tidak mencukupi. | Saldo akun kurang untuk transaksi | 400 |
| Minimum deposit Rp 1.000. | Amount deposit terlalu kecil | 400 |
| Minimum tarik saldo Rp 10.000. | Amount withdraw terlalu kecil | 400 |
| Action tidak valid. | Parameter action salah atau tidak ada | 404 |
| product_id wajib. | Parameter product_id tidak dikirim | 400 |
{ "success": false, "message": "Saldo tidak mencukupi." }
Contoh PHP Lengkap
<?php // ── Konfigurasi ────────────────────────────────── $apiKey = "API_KEY_KAMU_DISINI"; $baseUrl = "https://premiumku.raymarkett.my.id/api.php"; // ── Helper Function ─────────────────────────────── function apiRequest($action, $data) { global $baseUrl; $ch = curl_init($baseUrl."?action=".$action); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode($data), CURLOPT_HTTPHEADER => ['Content-Type: application/json'], ]); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; } // ── 1. Cek Profil ───────────────────────────────── $profile = apiRequest('profile', ['api_key'=>$apiKey]); echo "Saldo: Rp " . number_format($profile['data']['saldo']); // ── 2. List Produk ──────────────────────────────── $products = apiRequest('products', ['api_key'=>$apiKey]); // ── 3. Order Pakai Saldo ────────────────────────── $order = apiRequest('order', [ 'api_key' => $apiKey, 'product_id' => 1, 'qty' => 1, 'use_balance' => true, ]); if ($order['success']) { $invoice = $order['invoice']; echo "Order sukses! Invoice: " . $invoice; } else { echo "Gagal: " . $order['message']; } // ── 4. Deposit via QRIS ─────────────────────────── $deposit = apiRequest('pay', [ 'api_key' => $apiKey, 'amount' => 50000, ]); // ── 5. Tarik Saldo ke DANA ──────────────────────── $wd = apiRequest('withdraw', [ 'api_key' => $apiKey, 'nama_pemilik' => 'Nama Saya', 'nomor_dana' => '08123456789', 'amount' => 20000, ]); ?>