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
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):
• Endpoint Umum / Cek Status / Informasi (GET): Maksimal 60 request / menit.
• Endpoint Pembuatan Order (POST Prabayar, Pascabayar, Socmed): Maksimal 30 request / menit.
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"
  }
}
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())

Kode Status HTTP & Penanganan Error

Setiap respon dari API akan mengembalikan status code HTTP yang relevan serta struktur JSON seragam.

Kode HTTP Status Penyebab & Solusi
200 OK Request berhasil diproses. Pembayaran/pemotongan saldo sukses dilakukan jika transaksi.
400 Bad Request Parameter tidak lengkap/salah, PIN tidak diisi, saldo tidak mencukupi, atau ID layanan tidak aktif.
401 Unauthorized API Key tidak valid/nonaktif, IP pengirim belum di-whitelist di dashboard, atau PIN Transaksi salah.
403 Forbidden Akun Anda diblokir untuk melakukan pemesanan via API. Silakan hubungi admin.
423 Locked Akun Anda terkunci karena salah memasukkan PIN sebanyak 5x berturut-turut. Hubungi CS untuk reset counter.
500 Server Error Terjadi kendala internal server atau respon gagal dari provider pusat. Cobalah beberapa saat lagi.
Contoh Format Respon Error (HTTP 400 / 401)
JSON Error Response status: false
{
  "status": false,
  "message": "PIN tidak valid. Sisa percobaan: 3"
}
An***a (Jakarta) baru saja membeli 1.000 Followers Instagram