Dokumentasi API Public & H2H

Integrasikan seluruh layanan SMM, Pulsa, Data, E-Wallet, Voucher Game & PPOB SoloSmartPedia secara otomatis ke dalam sistem atau website Anda dengan RESTful API yang cepat, aman, dan responsif.

API Version
v1.0 RESTful
Format
JSON
Panduan Umum
Pendahuluan
Autentikasi & Keamanan
Akun & Saldo
Deposit Otomatis
Katalog & Transaksi
Daftar Layanan
Transaksi Prabayar
Transaksi Pascabayar
Transaksi Social Media
Cek ID PLN
Developer Kit
Contoh Kode Integrasi
Respons & Kode Error
Butuh Bantuan Integrasi?
Tim Technical Support kami siap membantu Anda 24/7.
Hubungi Support

Selamat Datang di REST API SoloSmartPedia

API SoloSmartPedia memungkinkan sistem server, aplikasi web, bot Telegram/WhatsApp, maupun aplikasi Android Anda untuk bertransaksi secara otomatis (Host-to-Host) dengan kecepatan tinggi dan stabilitas terpelihara.

Base URL Endpoint:
Semua request ke API SoloSmartPedia dikirimkan ke alamat dasar berikut:
https://solosmartpedia.com/api/v1
Fitur Utama API
Proses Cepat & Otomatis

Order diproses secara instan oleh sistem otomatis 24 jam nonstop.

Proteksi Ganda

Keamanan berlapis dengan API Key, IP Whitelisting, dan PIN Transaksi 6-digit.

Dukungan Refill Auto

API khusus untuk cek status, riwayat, dan pengajuan refill sosial media otomatis.

Langkah Mudah Memulai
  1. Daftarkan akun di SoloSmartPedia dan lakukan verifikasi profil.
  2. Masuk ke menu Profil > Pengaturan API di dashboard member.
  3. Generate API Key Anda.
  4. Daftarkan IP Address server Anda di kolom IP Whitelist.
  5. Buat PIN Transaksi 6-digit di menu Pengaturan Keamanan Akun.

Autentikasi, IP Whitelist & Proteksi PIN

Demi menjamin keamanan saldo dan transaksi Anda, API SoloSmartPedia mengimplementasikan tiga lapis keamanan wajib.

1. API Key Mandatory

Parameter api_key wajib disertakan pada setiap request (baik GET via query parameter maupun POST via body).

2. IP Whitelisting

Setiap request diperiksa apakah IP pengirim cocok dengan daftar IP Whitelist yang Anda konfigurasikan di dashboard.

3. PIN Transaksi & Anti Brute-Force

Setiap pembuatan order wajib menyertakan parameter pin (6 digit). Maksimal 5x kesalahan sebelum akun terkunci (HTTP 423).

Rate Limiting (Batas Request):
• Batas umum sekitar 60 request/menit per IP untuk seluruh endpoint.
• Pembuatan order (prabayar, pascabayar, sosial media) dan pembuatan deposit dibatasi lebih ketat; request order dihitung lebih berat terhadap batas umum.
• Pembuatan deposit: maks 10 request/menit per API key dan 30 request/menit per IP.
• Bila melebihi batas, API membalas HTTP 429 beserta header Retry-After (detik). Tunggu, lalu ulangi — jangan langsung mengulang berulang-ulang.
Catatan Keamanan Penting:
Jangan pernah memasukkan API Key atau PIN Transaksi di dalam script Front-End (seperti JavaScript di browser atau aplikasi Android tanpa obfuscation). Selalu lakukan panggilan API melalui Server Back-End Anda.
GET

Cek Saldo Akun

Endpoint cepat dan ringan untuk mengecek sisa saldo aktif akun Anda.

GET https://solosmartpedia.com/api/v1/balance?api_key=YOUR_API_KEY
Response Success (200 OK)
JSON Response 200 OK
{
  "status": true,
  "message": "Berhasil",
  "data": {
    "balance": 1500000
  }
}
GET

Cek Profil Akun Lengkap

Mengambil informasi detail akun pengguna termasuk username, nama, email, saldo, tier keanggotaan, dan status akun.

GET https://solosmartpedia.com/api/v1/profile?api_key=YOUR_API_KEY
Response Success (200 OK)
JSON Response 200 OK
{
  "status": true,
  "message": "Berhasil",
  "data": {
    "username": "reseller_indonesia",
    "name": "Budi Santoso",
    "email": "budi@example.com",
    "balance": 2500000,
    "tier": "gold",
    "status": "active"
  }
}

Deposit Otomatis (QRIS)

Isi saldo lewat API tanpa konfirmasi manual: buat deposit, arahkan pelanggan ke payment_url, dan saldo bertambah otomatis begitu pembayaran diterima.

Alur Deposit Otomatis (QRIS)
  1. Panggil POST /deposit dengan amount (nominal deposit) dan ref_id milik Anda.
  2. Tampilkan / arahkan pelanggan ke payment_url; pelanggan membayar tepat total_amount (nominal + unique_code QRIS). Tanpa biaya tambahan.
  3. Setelah dibayar, saldo otomatis bertambah sebesar credit_amount, yaitu sama dengan jumlah yang ditransfer pelanggan (total_amount). Tidak ada langkah konfirmasi dari Anda.
  4. Pantau lewat GET /deposit/status (disarankan tiap 5–10 detik, berhenti bila status bukan pending) atau cek GET /balance.
MetodeQRIS
Batas nominalRp 10.000 – Rp 10.000.000
Kedaluwarsa60 menit

Akun belum verifikasi KTP: maks. total bayar Rp 200.000/transaksi dan Rp 1.000.000/hari. Maks. 5 deposit pending bersamaan. Batas request: 10 pembuatan deposit/menit per API key.

POST Buat Deposit
https://solosmartpedia.com/api/v1/deposit
ParameterWajibKeterangan
api_keyYaAPI key Anda
amountYaBilangan bulat rupiah (tanpa titik/koma). Nominal deposit.
ref_idDisarankanReferensi unik Anda (maks 64: huruf, angka, . : - _). Idempoten: request ulang dengan ref_id sama mengembalikan deposit yang sama, tidak membuat yang baru.
Response (200 OK)
{
  "status": true,
  "message": "Deposit berhasil dibuat, silakan lakukan pembayaran",
  "data": {
    "deposit_id": "API-260922103015AB12C",
    "ref_id": "INV-1001",
    "status": "pending",
    "amount": 100000,
    "fee": 0,
    "unique_code": 23,
    "total_amount": 100023,
    "credit_amount": 100023,
    "payment_method": "QRIS",
    "payment_url": "https://...",
    "reference": "DS1234...",
    "is_expired": false,
    "expired_at": "2026-09-22T11:30:15+07:00",
    "paid_at": null,
    "created_at": "2026-09-22T10:30:15+07:00"
  }
}
GET Status Deposit
https://solosmartpedia.com/api/v1/deposit/status?api_key=YOUR_API_KEY&deposit_id=API-260922103015AB12C
https://solosmartpedia.com/api/v1/deposit/status?api_key=YOUR_API_KEY&ref_id=INV-1001

Isi salah satu: deposit_id atau ref_id. Response sama dengan objek data di atas.

statusArti
pendingMenunggu pembayaran. Bila is_expired = true, batas waktu lewat dan akan dibatalkan otomatis (jika sudah terlanjur dibayar, saldo tetap masuk).
successSudah dibayar, saldo sudah ditambahkan (paid_at terisi).
failedPembayaran gagal.
canceledDibatalkan / kedaluwarsa tanpa pembayaran.
GET Riwayat Deposit
https://solosmartpedia.com/api/v1/deposit/history?api_key=YOUR_API_KEY&limit=20&page=1&status=success

limit (1–100, default 20), page, dan status (pending|success|failed|canceled) bersifat opsional.

{ "status": true, "message": "Berhasil",
  "data": { "items": [ { ...objek deposit... } ],
           "page": 1, "per_page": 20, "total": 42, "has_more": true } }
GET Info & Batas Deposit
https://solosmartpedia.com/api/v1/deposit/info?api_key=YOUR_API_KEY

Mengembalikan enabled, min_amount, max_amount, fee_percent, expiry_minutes, max_pending, dan (bila belum verifikasi) limits. Bila enabled = false, deposit otomatis sedang dimatikan admin.

Kode Error Deposit
HTTPcodePenyebab
401-API key salah/nonaktif, atau IP tidak di whitelist
422amount_too_small / amount_too_largeDi luar batas nominal
422invalid_ref_idFormat ref_id tidak valid
422limit_unverified / limit_unverified_dailyBatas akun belum verifikasi KTP
409ref_id_conflictref_id sudah dipakai dengan nominal berbeda
429too_many_pendingTerlalu banyak deposit pending; atau melewati batas request
502gateway_errorGagal membuat invoice; aman diulang dengan ref_id yang sama
503deposit_disabledDeposit otomatis dimatikan admin
Contoh Integrasi Deposit
# 1) buat deposit
curl -X POST "https://solosmartpedia.com/api/v1/deposit" -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_API_KEY","amount":100000,"ref_id":"INV-1001"}'

# 2) cek status (ulangi tiap 5-10 detik sampai status bukan "pending")
curl "https://solosmartpedia.com/api/v1/deposit/status?api_key=YOUR_API_KEY&ref_id=INV-1001"
<?php
$base = 'https://solosmartpedia.com/api/v1';
$key  = 'YOUR_API_KEY';

$ch = curl_init("$base/deposit");
curl_setopt_array($ch, [
    CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode(['api_key' => $key, 'amount' => 100000, 'ref_id' => 'INV-1001']),
]);
$res = json_decode(curl_exec($ch), true);
if ($res['status']) { header('Location: ' . $res['data']['payment_url']); }  // arahkan pelanggan membayar
const BASE = 'https://solosmartpedia.com/api/v1', KEY = 'YOUR_API_KEY';

const res = await fetch(`${BASE}/deposit`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ api_key: KEY, amount: 100000, ref_id: 'INV-1001' }),
}).then(r => r.json());

if (res.status) console.log(res.data.payment_url);  // tampilkan ke pelanggan
import requests

BASE, KEY = "https://solosmartpedia.com/api/v1", "YOUR_API_KEY"

res = requests.post(f"{BASE}/deposit", json={"api_key": KEY, "amount": 100000, "ref_id": "INV-1001"}).json()
if res["status"]:
    print(res["data"]["payment_url"])  # tampilkan ke pelanggan
GET

Daftar Layanan (Katalog Products)

Mengambil seluruh daftar produk & layanan beserta harga terkini yang disesuaikan secara otomatis berdasarkan tier keanggotaan akun Anda (Basic, Silver, Gold, Platinum).

GET https://solosmartpedia.com/api/v1/services/prepaid
Prabayar (Pulsa/Data/Game)
GET https://solosmartpedia.com/api/v1/services/postpaid
Pascabayar (Tagihan)
GET https://solosmartpedia.com/api/v1/services/socialmedia
Social Media (SMM)
Query Parameters
Parameter Tipe Wajib Deskripsi & Contoh
api_key String Wajib API Key akun Anda.
category String Opsional Filter nama kategori. Contoh: Pulsa, Voucher Game, Instagram Followers.
brand String Opsional Filter provider/brand (hanya untuk prabayar). Contoh: TELKOMSEL, DANA, MOBILE LEGENDS.
per_page Integer Opsional Jumlah baris per halaman (1 s/d 500). Jika tidak diisi, mengembalikan seluruh data tanpa pagination.
page Integer Opsional Nomor halaman aktif (Default: 1). Berlaku bila per_page diisi.
Contoh Response Layanan Prabayar
GET /services/prepaid?per_page=2 200 OK
{
  "status": true,
  "message": "Berhasil",
  "data": [
    {
      "id": 101,
      "category": "Pulsa Reguler",
      "brand": "TELKOMSEL",
      "service": "Telkomsel 10.000",
      "price": 10250,
      "status": "active",
      "description": "Penambahan masa aktif 7 hari"
    }
  ],
  "pagination": {
    "total": 450,
    "per_page": 2,
    "current_page": 1,
    "last_page": 225,
    "from": 1,
    "to": 2
  }
}
POST

1. Buat Pesanan Prabayar

Membuat order pembelian pulsa, paket data, token PLN, e-wallet, atau voucher game.

POST https://solosmartpedia.com/api/v1/order/prepaid
Body Parameters (JSON / Form Data)
Parameter Tipe Wajib Deskripsi
api_key String Wajib API Key akun Anda.
service_id Integer Wajib ID Layanan (diperoleh dari endpoint Daftar Layanan Prabayar).
target String Wajib Nomor tujuan (Contoh: 081234567890, No Meter PLN, ID Game 123456(789)).
pin String Wajib PIN Transaksi Keamanan Akun Anda (6 digit angka).
Response Success (200 OK)
JSON Response 200 OK
{
  "status": true,
  "message": "Order berhasil dibuat",
  "data": {
    "order_id": 12458,
    "id_order": "f83b2a19-9430-4e2a-8d19-123456789abc",
    "service": "Telkomsel 10.000",
    "target": "081234567890",
    "price": 10250,
    "status": "Pending",
    "balance": 1489750
  }
}
GET

2. Cek Status & Riwayat Order Prabayar

GET https://solosmartpedia.com/api/v1/order/prepaid/status?api_key=...&order_id=12458
Single Status Check
GET https://solosmartpedia.com/api/v1/order/prepaid/history?api_key=...&limit=20
Riwayat Order (Max 100)
Response Status Check (200 OK)
GET /order/prepaid/status?order_id=12458 200 OK
{
  "status": true,
  "message": "Berhasil",
  "data": {
    "order_id": 12458,
    "id_order": "f83b2a19-9430-4e2a-8d19-123456789abc",
    "service": "Telkomsel 10.000",
    "target": "081234567890",
    "price": 10250,
    "status": "Success",
    "sn": "003291839210932810",
    "created_at": "2026-07-20 14:30:15"
  }
}
POST

1. Bayar Tagihan Pascabayar

Sistem akan secara otomatis melakukan dua tahap sekaligus: Inquiry Tagihan ke provider dan Pembayaran (Deduct Saldo) dalam 1 kali request atomic.

POST https://solosmartpedia.com/api/v1/order/postpaid
Body Parameters
Parameter Tipe Wajib Deskripsi
api_key String Wajib API Key akun Anda.
service_id Integer Wajib ID Layanan Pascabayar (BPJS, PLN Pascabayar, PDAM, Indihome, dll).
target String Wajib Nomor Pelanggan / ID Tagihan.
pin String Wajib PIN Transaksi Keamanan Akun Anda (6 digit).
Response Success (200 OK)
JSON Response 200 OK
{
  "status": true,
  "message": "Order berhasil dibuat",
  "data": {
    "order_id": 5521,
    "id_order": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "service": "PLN PASCABAYAR",
    "target": "531234567890",
    "name": "ANDI WIJAYA",
    "price": 125500,
    "status": "Success",
    "sn": "REF/PLN/98239102391",
    "balance": 2374500
  }
}
GET

2. Cek Status & Riwayat Order Pascabayar

GET https://solosmartpedia.com/api/v1/order/postpaid/status?api_key=...&order_id=5521
Cek Single Status
GET https://solosmartpedia.com/api/v1/order/postpaid/history?api_key=...&limit=20
Riwayat Order (Max 100)
POST

1. Buat Pesanan Social Media (SMM)

Membuat order optimasi sosial media (Followers, Likes, Views, Subscribers, Comments, dll).

POST https://solosmartpedia.com/api/v1/order/socialmedia
Body Parameters
Parameter Tipe Wajib Deskripsi
api_key String Wajib API Key akun Anda.
service_id Integer Wajib ID Layanan Social Media.
target String Wajib Target URL postingan atau Username akun target.
quantity Integer Wajib Jumlah pemesanan (harus antara min dan max layanan).
pin String Wajib PIN Transaksi Akun Anda (6 digit).
custom_comments String Opsional Daftar teks komentar per baris (jika layanan tipe custom comments).
custom_link String Opsional Link khusus apabila layanan membutuhkan rujukan tambahan.
Response Success (200 OK)
JSON Response 200 OK
{
  "status": true,
  "message": "Order berhasil dibuat",
  "data": {
    "order_id": 8841,
    "id_order": "3c9a1d2e-5b6f-7890-1234-56789abcdef0",
    "service": "Instagram Followers Real Indonesia [Refill 30D]",
    "target": "https://instagram.com/myaccount",
    "quantity": 1000,
    "price": 25000,
    "status": "Pending",
    "balance": 2349500
  }
}
POST

2. Ajukan Refill Pesanan SMM

Mengajukan pengisian ulang (refill) apabila terjadi penurunan (drop) pada pesanan sosial media yang memiliki garansi refill.

POST https://solosmartpedia.com/api/v1/order/socialmedia/refill
Syarat Refill:
  • Layanan memiliki atribut refill: true (berlogo ♻️).
  • Pesanan utama sudah berstatus Success.
  • Pesanan dibuat lebih dari 2 hari yang lalu (sesuai jeda provider).
  • Belum ada refill yang berstatus Pending atau Success untuk orderan tersebut.
Body Parameters
Parameter Wajib Deskripsi
api_key Wajib API Key akun Anda.
order_id Wajib ID Pesanan (nilai order_id / ID angka pesanan utama).
Response Success (200 OK)
JSON Response 200 OK
{
  "status": true,
  "message": "Refill berhasil diajukan",
  "data": {
    "id_refill": "RF260720143500ABCD",
    "order_id": 8841,
    "status": "Pending"
  }
}
GET

3. Cek Status, Riwayat & Refill Socmed

GET https://solosmartpedia.com/api/v1/order/socialmedia/status?api_key=...&order_id=8841
Cek Status Order
GET https://solosmartpedia.com/api/v1/order/socialmedia/history?api_key=...&limit=20
Riwayat Order
GET https://solosmartpedia.com/api/v1/order/socialmedia/refill/history?api_key=...&limit=20
Riwayat Refill
POST

Cek ID Pelanggan / No Meter PLN Prabayar

Melakukan pengecekan nama pemilik rekening/meteran listrik PLN prabayar sebelum melakukan pembelian token.

POST https://solosmartpedia.com/api/v1/inquiry/pln
Body Parameters
Parameter Tipe Wajib Deskripsi
api_key String Wajib API Key akun Anda.
target String Wajib Nomor Meter / ID Pelanggan PLN (11-12 digit).
Response Success (200 OK)
JSON Response 200 OK
{
  "status": true,
  "message": "Inquiry berhasil",
  "data": {
    "name": "SITI AMINAH",
    "meter_no": "531209381920",
    "segment_power": "R1M/900VA",
    "customer_no": "531209381920"
  }
}

Contoh Kode Integrasi (Multi-Language)

Pilih bahasa pemrograman favorit Anda untuk melihat contoh snippet transaksi order prabayar, cek saldo, dan cek status secara lengkap.

cURL Commands Bash
# 1. Cek Saldo
curl -X GET "https://solosmartpedia.com/api/v1/balance?api_key=YOUR_API_KEY"

# 2. Order Prabayar (Pulsa/Data/Game)
curl -X POST "https://solosmartpedia.com/api/v1/order/prepaid" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "service_id": 101,
    "target": "081234567890",
    "pin": "123456"
  }'

# 3. Order Social Media (SMM)
curl -X POST "https://solosmartpedia.com/api/v1/order/socialmedia" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "service_id": 55,
    "target": "https://instagram.com/p/xxxxxx",
    "quantity": 1000,
    "pin": "123456"
  }'

# 4. Cek Status Order
curl -X GET "https://solosmartpedia.com/api/v1/order/prepaid/status?api_key=YOUR_API_KEY&order_id=12458"
PHP Class Helper & Native cURL PHP 7.4+ / 8.x
<?php

class SoloSmartPediaAPI 
{
    private string $apiKey;
    private string $pin;
    private string $baseUrl = "https://solosmartpedia.com/api/v1";

    public function __construct(string $apiKey, string $pin = '') 
    {
        $this->apiKey = $apiKey;
        $this->pin = $pin;
    }

    private function request(string $endpoint, string $method = 'GET', array $data = []) 
    {
        $url = $this->baseUrl . $endpoint;
        
        if ($method === 'GET') {
            $data['api_key'] = $this->apiKey;
            $url .= '?' . http_build_query($data);
        } else {
            $data['api_key'] = $this->apiKey;
            if ($this->pin) $data['pin'] = $this->pin;
        }

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);

        if ($method === 'POST') {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
            curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
        }

        $response = curl_exec($ch);
        $err = curl_error($ch);
        curl_close($ch);

        if ($err) return ['status' => false, 'message' => 'cURL Error: ' . $err];
        return json_decode($response, true);
    }

    public function getBalance() { return $this->request('/balance', 'GET'); }
    public function orderPrepaid(int $serviceId, string $target) {
        return $this->request('/order/prepaid', 'POST', ['service_id' => $serviceId, 'target' => $target]);
    }
    public function getStatusPrepaid(int $orderId) {
        return $this->request('/order/prepaid/status', 'GET', ['order_id' => $orderId]);
    }
}

// === Contoh Penggunaan ===
$api = new SoloSmartPediaAPI('YOUR_API_KEY_HERE', '123456');

// Cek Saldo
print_r($api->getBalance());

// Buat Order Pulsa
print_r($api->orderPrepaid(101, '081234567890'));
?>
Node.js (Axios & Fetch) JavaScript
const axios = require('axios');

const API_KEY = "YOUR_API_KEY_HERE";
const PIN = "123456";
const BASE_URL = "https://solosmartpedia.com/api/v1";

// 1. Cek Saldo
async function getBalance() {
  const res = await axios.get(`${BASE_URL}/balance`, {
    params: { api_key: API_KEY }
  });
  console.log("Saldo:", res.data);
}

// 2. Order Prabayar (Pulsa/Data)
async function orderPrepaid(serviceId, target) {
  const res = await axios.post(`${BASE_URL}/order/prepaid`, {
    api_key: API_KEY,
    pin: PIN,
    service_id: serviceId,
    target: target
  });
  console.log("Order Respon:", res.data);
}

// 3. Cek Status Order
async function checkStatus(orderId) {
  const res = await axios.get(`${BASE_URL}/order/prepaid/status`, {
    params: { api_key: API_KEY, order_id: orderId }
  });
  console.log("Status Respon:", res.data);
}

getBalance();
Python requests library
import requests

API_KEY = "YOUR_API_KEY_HERE"
PIN = "123456"
BASE_URL = "https://solosmartpedia.com/api/v1"

# 1. Cek Saldo
def get_balance():
    res = requests.get(f"{BASE_URL}/balance", params={"api_key": API_KEY})
    return res.json()

# 2. Order Prabayar
def order_prepaid(service_id, target):
    payload = {
        "api_key": API_KEY,
        "pin": PIN,
        "service_id": service_id,
        "target": target
    }
    res = requests.post(f"{BASE_URL}/order/prepaid", json=payload)
    return res.json()

# 3. Cek Status
def check_status(order_id):
    res = requests.get(f"{BASE_URL}/order/prepaid/status", params={"api_key": API_KEY, "order_id": order_id})
    return res.json()

if __name__ == "__main__":
    print(get_balance())

Format Respons, Batas Request & Kode Error

Setiap respons API mengembalikan status code HTTP yang relevan dan struktur JSON yang seragam.

Format Respons

Semua endpoint membalas JSON dengan bentuk seragam. status menunjukkan berhasil/tidak, message berupa teks yang bisa ditampilkan, dan data hanya ada saat berhasil.

Berhasil
{
  "status": true,
  "message": "Berhasil",
  "data": { ... }
}
Gagal
{
  "status": false,
  "message": "PIN tidak valid. Sisa percobaan: 3",
  "code": "amount_too_small"  // hanya endpoint deposit
}
Batas Request
  • Batas umum sekitar 60 request/menit per IP untuk seluruh endpoint.
  • Pembuatan order (prabayar, pascabayar, sosial media) dan pembuatan deposit dibatasi lebih ketat; request order dihitung lebih berat terhadap batas umum.
  • Pembuatan deposit: maks 10 request/menit per API key dan 30 request/menit per IP.
  • Bila melebihi batas, API membalas HTTP 429 beserta header Retry-After (detik). Tunggu, lalu ulangi — jangan langsung mengulang berulang-ulang.
Kode Status HTTP
KodeStatusPenyebab & Solusi
200 OK Request berhasil. Pada transaksi saldo sudah dipotong; pada deposit permintaan sudah dibuat.
400 Bad Request Parameter kurang/tidak valid, PIN kosong, saldo tidak mencukupi, layanan tidak ditemukan/nonaktif, order tidak ditemukan, atau ditolak provider.
401 Unauthorized API key salah/nonaktif, IP pengirim belum di-whitelist, atau PIN salah (sisa percobaan tertulis di pesan).
403 Forbidden Akun diblokir untuk melakukan pemesanan via API. Hubungi admin.
404 Not Found Pesanan (refill) atau deposit tidak ditemukan.
409 Conflict Deposit: ref_id sudah dipakai dengan nominal berbeda.
422 Unprocessable Deposit: input tidak memenuhi aturan (nominal di luar batas, format ref_id, batas akun belum verifikasi KTP).
423 Locked Akun terkunci karena PIN salah 5x berturut-turut. Hubungi admin untuk reset.
429 Too Many Requests Melebihi batas request (tunggu sesuai header Retry-After), atau deposit pending terlalu banyak.
500 Server Error Gangguan internal atau provider pusat. Cek status order sebelum mengulang, agar tidak terjadi order ganda.
502 Bad Gateway Deposit: gagal membuat invoice di gateway pembayaran. Aman diulang dengan ref_id yang sama.
503 Service Unavailable Deposit otomatis sedang dimatikan admin.
Praktik Terbaik
  • Panggil API dari server back-end Anda; jangan menaruh api_key / pin di JavaScript browser atau aplikasi mobile.
  • Saat menerima 500 atau timeout pada order, cek status order dulu sebelum mengulang, agar tidak terjadi order ganda.
  • Gunakan ref_id pada pembuatan deposit sehingga retry aman (tidak membuat deposit ganda).
  • Simpan order_id / deposit_id dari respons untuk pengecekan status.
An***a (Jakarta) baru saja membeli 1.000 Followers Instagram