API Documentation

Portal
Reseller API v1.7

Jualan Pakai QRIS Kami, Untung Jadi Milik Kamu

Tentukan harga jual sendiri → customer bayar QRIS → profit otomatis masuk saldo → isi saldo & cairkan semuanya otomatis 24 jam.

https://mail.muelstore.my.id/reseller_api.php

Bagaimana Saya Untung? (Model Bisnis)

Pakai QRIS Toko + Tentukan Untung Sendiri ⭐

  1. Ambil harga dasar & your_price dari pricelist (markup kamu sudah dihitung otomatis).
  2. Tampilkan your_price di website kamu. Contoh: harga dasar Rp 850 → jual Rp 1.100.
  3. Customer bayar QRIS toko seharga your_price.
  4. Transaksi SUKSES → profit Rp 250 otomatis masuk saldo kamu.
  5. Butuh modal untuk Mode Deposit? Top up deposit sendiri via QRIS (biaya admin 0,7% + kode unik, saldo masuk otomatis).
  6. Kumpulkan profit → cairkan jadi saldo e-wallet via withdraw atau Portal — 24 jam otomatis.

Alternatif: Mode Deposit

Isi saldo via QRIS (lihat endpoint topup) → order dipotong dari saldo & diproses instan tanpa QRIS → jual dengan harga bebas. Cocok untuk volume besar.

Cara Mulai (3 Langkah)

  1. 1Minta API key — buka homepage Muel Store, klik tombol Live Chat di kanan bawah, lalu sapa CS: "Halo, mau minta API key reseller dong". Gratis.
  2. 2Login ke Portal Reseller — buka mail.muelstore.my.id/reseller.php dan masuk pakai API key kamu. Atur markup, isi saldo, tarik profit — tanpa coding.
  3. 3Integrasi (opsional) — hubungkan website/bot kamu via API: ambil pricelist (sudah termasuk markup kamu), buat order, polling status. Detail di bawah. 👇

Autentikasi

Semua endpoint (kecuali ping) wajib menyertakan API key. Dua cara:

Cara 1 — Query

https://mail.muelstore.my.id/reseller_api.php?act=pricelist&key=KEY

Cara 2 — Header

X-API-Key: KEY
Rate limit 60 request/menit per key. Jangan polling status lebih cepat dari 10 detik sekali. API key = kunci saldo kamu — jangan dibagikan ke siapa pun.

Cek Koneksi

Tes apakah API online. Tidak butuh API key — cocok untuk monitoring & tes koneksi pertama.

Contoh Response

{
    "success": true,
    "message": "API OK",
    "version": "1.7",
    "time": "2025-01-01 12:00:00"
}

Daftar Harga (+ Markup Kamu)

Ambil semua produk realtime. Setiap produk SUDAH menyertakan harga jualmu (base_price + markup yang kamu atur di Portal): tampilkan your_price ke customer, your_profit adalah untungmu per item. Saat order, cukup kirim sell_price = your_price (atau kosongkan — API otomatis pakai markup yang sama).

Parameter

keyAPI key kamu (query ?key=KEY atau header X-API-Key)

Contoh Response

{
    "success": true,
    "total": 1,
    "products": [
        {
            "kode": "FF5",
            "nama": "5 Diamonds",
            "cat": "game",
            "game": "ff",
            "operator": null,
            "harga_jual": 850,
            "is_flashsale": false,
            "harga_promo": 850,
            "is_bestseller": false,
            "base_price": 850,
            "your_price": 1100,
            "your_profit": 250
        }
    ]
}

Cek Saldo & Profit

Cek saldo kamu. Saldo terisi otomatis dari profit setiap transaksi SUKSES & dari top up deposit, lalu bisa dicairkan via withdraw atau Portal Reseller.

Parameter

keyAPI key kamu

Contoh Response

{
    "success": true,
    "balance": 5000,
    "total_profit": 12500,
    "mode": "qris",
    "topup_fee_percent": 0.6999999999999999555910790149937383830547332763671875,
    "topup_min": 10000
}

Top Up Deposit (Otomatis via QRIS)

Isi saldo deposit sendiri — tanpa transfer manual ke admin. Kamu tentukan deposit yang ingin diterima (deposit_amount). Total bayar = deposit + biaya admin 0,7% + kode unik 1-99 (anti bentrok). Setelah dibayar PERSIS & terdeteksi, saldo masuk otomatis. Minimal Rp 10.000, maksimal Rp 5.000.000.

Parameter

keyAPI key kamu
deposit_amountNominal deposit yang ingin diterima (contoh: 100000)

Contoh Response

{
    "success": true,
    "message": "QRIS top up dibuat.",
    "data": {
        "ref_id": "TOP2025010113000012",
        "deposit_amount": 100000,
        "admin_fee": 700,
        "unique_code": 37,
        "amount_to_pay": 100737,
        "credited_amount": 100000,
        "status": "PENDING",
        "qris_url": "https://api.qris.id/qr/v1/dynamic/...",
        "qris_base64": "data:image/png;base64,...",
        "created_at": "2025-01-01 13:00:00"
    }
}

Buat Order

Buat transaksi. Kirim body JSON (Content-Type: application/json). ⚠️ PENTING cara kirim API key: Wajib kirim key via QUERY STRING (?key=KEY di URL) ATAU header X-API-Key. Jangan hanya taruh key di body JSON saja — sudah didukung sejak v2.0 tapi disarankan tetap pakai query string. Contoh URL: POST https://mail.muelstore.my.id/reseller_api.php?act=order&key=sk_xxxxx Mode QRIS → customer membayar QRIS seharga sell_price (atau otomatis dari markup tersimpan jika sell_price dikosongkan), profit masuk saldo otomatis saat SUKSES. Mode Deposit → aktifkan di Portal Reseller, saldo terpotong & produk langsung diproses tanpa QRIS (wajib sertakan pin 6 digit).

Parameter

key⚠️ Wajib di URL: ?act=order&key=sk_xxxx ATAU header X-API-Key. (Bisa juga di body JSON sejak v2.0, tapi disarankan di URL)
kodeKode produk dari pricelist (contoh: FF5)
targetUser ID / nomor tujuan (contoh: 12345678)
sell_priceOpsional — harga jual kamu. Kosongkan = otomatis dari markup tersimpan (your_price di pricelist). Minimal = harga dasar, maksimal 10x
pinWajib jika mode Deposit (6 digit PIN akun reseller kamu)

Contoh Response

{
    "success": true,
    "message": "Order dibuat.",
    "data": {
        "ref_id": "TRX2025010112304512",
        "product_code": "FF5",
        "product_name": "5 Diamonds",
        "price": 1100,
        "base_price": 850,
        "your_profit": 250,
        "price_source": "saved_markup",
        "status": "PENDING",
        "qris_url": "https://api.qris.id/qr/v1/dynamic/...",
        "qris_base64": "data:image/png;base64,...",
        "created_at": "2025-01-01 12:30:45"
    }
}

Cek Status Order / Top Up

Cek status transaksi (order, top up deposit, maupun withdraw). Endpoint ini juga otomatis memicu pengiriman & mengkredit profit/saldo saat SUKSES. Panggil tiap 10–30 detik sampai SUKSES/EXPIRED.

Parameter

keyAPI key kamu
ref_idOrder ID dari response order/topup/withdraw

Contoh Response

{
    "success": true,
    "data": {
        "ref_id": "TRX2025010112304512",
        "status": "SUKSES",
        "product_code": "FF5",
        "product_name": "5 Diamonds",
        "target": "12345678",
        "price": 1100,
        "base_price": 850,
        "your_profit": 250,
        "profit_credited": true,
        "sn": "SN123456789",
        "created_at": "2025-01-01 12:30:45",
        "partner": "Reseller A"
    }
}

Tarik Saldo (Cairkan Profit)

Cairkan saldo profit kamu menjadi saldo e-wallet (DANA/GoPay/OVO/ShopeePay dll) yang dikirim ke nomor HP kamu. Pilih kode produk e-wallet dari pricelist sesuai nominal yang ingin ditarik. Bisa juga lewat Portal Reseller tanpa coding.

Parameter

keyAPI key kamu
kodeKode produk e-wallet dari pricelist (contoh: kode saldo DANA 25rb)
targetNomor HP kamu (tujuan saldo e-wallet)

Contoh Response

{
    "success": true,
    "message": "Withdraw diproses. Saldo e-wallet dikirim ke nomor kamu.",
    "data": {
        "ref_id": "WDR2025010113000012",
        "product_name": "Saldo DANA 25.000",
        "amount": 25250,
        "target": "081234567890",
        "status": "SUKSES",
        "sn": "WD123456",
        "balance_after": 0
    }
}

Status Transaksi

PENDING
Menunggu pembayaran QRIS (bayar dalam 1 jam)
PAID
Dibayar — sedang dikirim ke provider
PROSES
Provider memproses — cek lagi 1–2 menit
SUKSES
Berhasil! SN tersedia & profit masuk saldo
EXPIRED
Tidak dibayar sampai batas waktu

Kode Error (HTTP)

401 API key tidak valid / nonaktif. Pastikan key dikirim via ?key=sk_xxx di URL atau header X-API-Key
400 Parameter kurang / salah, sell_price di bawah harga dasar, atau nominal top up di bawah minimum
402 Saldo deposit tidak cukup
404 Produk / transaksi tidak ditemukan
409 Stok habis
429 Rate limit — maks 60 request/menit
503 Maintenance — coba lagi nanti (lihat flag "maintenance": true)
502 Server pembayaran bermasalah — coba lagi

Contoh Kode Integrasi

Alur lengkap: ambil harga (markup sudah termasuk) → order → polling status → cairkan profit.

PHP — Alur Lengkap

<?php
 $base  = 'https://mail.muelstore.my.id/reseller_api.php';
 $key   = 'API_KEY_KAMU';

function api($url, $body = null) {
    $ch = curl_init($url);
    curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false]);
    if ($body !== null) {
        curl_setopt_array($ch, [CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => json_encode($body),
            CURLOPT_HTTPHEADER => ['Content-Type: application/json']]);
    }
    return json_decode(curl_exec($ch), true);
}

// 1. Ambil pricelist — your_price sudah termasuk markup kamu
 $list = api($base . '?act=pricelist&key=' . $key);
 $produk = null;
foreach ($list['products'] as $p) {
    if ($p['kode'] === 'FF5') { $produk = $p; break; }
}
// Tampilkan harga jualmu ke customer:
echo 'Harga: Rp ' . number_format($produk['your_price'], 0, ',', '.');
echo ' (untungmu Rp ' . $produk['your_profit'] . ')';

// 2. Order — kosongkan sell_price, API otomatis pakai markup kamu
 $order = api($base . '?act=order', [
    'key' => $key, 'kode' => $produk['kode'], 'target' => '12345678'
]);
 $refId = $order['data']['ref_id'];
echo 'Untungmu: Rp ' . $order['data']['your_profit'];

// 3. Tampilkan QRIS ke pembeli
echo '<img src="' . $order['data']['qris_base64'] . '">';

// 4. Polling status (AJAX/cron tiap 15 detik)
 $status = api($base . '?act=status&key=' . $key . '&ref_id=' . $refId);
if ($status['data']['status'] === 'SUKSES') {
    echo 'SN: ' . $status['data']['sn'];
    // profit otomatis masuk saldo!
}

// 5. Cairkan profit jadi e-wallet (contoh: saldo DANA 25rb)
 $wd = api($base . '?act=withdraw', [
    'key' => $key, 'kode' => 'DANA25', 'target' => '081234567890'
]);
echo $wd['message'];

JavaScript (AJAX)

const res = await fetch('https://mail.muelstore.my.id/reseller_api.php?act=order', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    key: 'API_KEY_KAMU',
    kode: 'FF5',
    target: '12345678'
    // sell_price tidak dikirim = otomatis pakai markup Portal kamu
  })
});
const data = await res.json();
console.log('Untungmu:', data.data.your_profit);
document.querySelector('#qris').src = data.data.qris_base64;

Python

import requests
BASE = "https://mail.muelstore.my.id/reseller_api.php"
KEY = "API_KEY_KAMU"

# Cek saldo & total profit
b = requests.get(f"{BASE}?act=balance&key={KEY}").json()
print("Saldo:", b["balance"], "| Total profit:", b["total_profit"])

# Top up deposit otomatis via QRIS
t = requests.post(f"{BASE}?act=topup",
    json={"key": KEY, "deposit_amount": 100000}).json()
print("Bayar PERSIS:", t["data"]["amount_to_pay"])
print("(deposit", t["data"]["deposit_amount"], "+ fee", t["data"]["admin_fee"], "+ kode unik", t["data"]["unique_code"], ")")

# Order dengan markup (sell_price opsional)
r = requests.post(f"{BASE}?act=order",
    json={"key": KEY, "kode": "FF5", "target": "12345678"}).json()
print("Ref ID:", r["data"]["ref_id"], "| Untung:", r["data"]["your_profit"])

# Cek status
s = requests.get(f"{BASE}?act=status&key={KEY}&ref_id={r['data']['ref_id']}").json()
print("Status:", s["data"]["status"], "| SN:", s["data"]["sn"])

# Tarik saldo jadi e-wallet
w = requests.post(f"{BASE}?act=withdraw",
    json={"key": KEY, "kode": "DANA25", "target": "081234567890"}).json()
print(w["message"])

FAQ

Bagaimana cara mendapatkan API key?

Buka homepage, klik tombol Live Chat kanan bawah, lalu minta ke CS. Sebutkan nama website/aplikasi kamu & mode yang diinginkan. API key dibuatkan gratis.

Bagaimana mengatur harga jual (markup) saya?

Buka Portal Reseller → tab Harga & Untung. Atur untung per kategori: Game/Pulsa/Kuota pakai persen (%) atau nominal (Rp), PLN & E-Wallet pakai nominal tetap. Klik Simpan Markup — setelah itu pricelist (kolom your_price) dan order tanpa sell_price otomatis memakai untung tersebut.

Bagaimana cara isi saldo deposit?

Otomatis! Buka Portal Reseller → tab Isi Saldo, tentukan deposit yang ingin diterima (min Rp 10.000), bayar QRIS-nya persis sampai digit terakhir (termasuk kode unik) — saldo masuk otomatis dalam hitungan detik setelah pembayaran terdeteksi. Bisa juga lewat API endpoint topup. Biaya admin 0,7% ditambahkan di atas nominal.

Bagaimana cara melihat & menarik saldo profit?

Buka Portal Reseller, login pakai API key kamu. Di sana ada saldo, total profit, riwayat transaksi & tombol Tarik Saldo — pilih e-wallet (DANA/GoPay/OVO dll), isi nomor HP, saldo dikirim otomatis. Bisa juga lewat API endpoint withdraw.

Kapan profit masuk ke saldo saya?

Otomatis begitu transaksi berstatus SUKSES. Profit = sell_price − harga dasar (atau = your_profit di pricelist). Profit tidak masuk jika order EXPIRED (pembeli tidak bayar). Setiap profit hanya dihitung satu kali walau status di-polling berkali-kali.

Apa yang terjadi jika order gagal karena salah nomor/ID?

Untuk Mode Deposit, saldo sudah terpotong saat order dibuat — refund kegagalan permanen ditangani manual oleh admin. Untuk Mode QRIS, tidak ada kerugian karena pembayaran tidak terjadi (order jadi EXPIRED). Selalu validasi ID/nomor sebelum order.

Berapa lama QRIS berlaku?

1 jam sejak dibuat. Untuk order: pastikan pembeli membayar nominal persis sama dengan sell_price. Untuk top up deposit: bayar persis termasuk kode unik — kurang/lebih Rp 1 saja tidak akan terdeteksi otomatis.

Berapa cepat produk masuk setelah bayar?

Otomatis, umumnya hitungan detik sampai maksimal 5 menit. Mode Deposit diproses instan begitu order dibuat. Endpoint status otomatis memicu pengiriman & kredit profit, jadi polling rutin = semuanya pasti jalan.

Dilindungi rate limit & hanya bisa diakses dengan API key valid. © 2026 Muel Store - Layanan Top Up Game & Voucher Termurah 24 Jam