Dapatkan nomor virtual untuk WhatsApp, Telegram, Instagram, dan 100+ layanan lainnya. Mulai Rp 100 — Cepat, murah, terpercaya!
Kami hadir untuk memudahkan proses verifikasi akun dengan nomor virtual berkualitas tinggi.
Dari media sosial hingga marketplace, semua tersedia.
Integrasikan layanan nomor virtual ke bot Telegram, website, atau aplikasi kamu.
https://DOMAIN_KAMU
X-Api-Key atau query param ?api_key=wsms_xxxX-Api-Key: wsms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/api/v1/balanceCek saldocurl -H "X-Api-Key: wsms_xxx" \
https://DOMAIN/api/v1/balance
# Response:
{"success":true,"data":{"username":"user1","balance":50000,"currency":"IDR"}}
/api/v1/servicesDaftar layanancurl -H "X-Api-Key: wsms_xxx" \
https://DOMAIN/api/v1/services
# Response:
{"success":true,"total":200,"data":[
{"id":123,"name":"WhatsApp - Indonesia","available":50,"price":2500},
{"id":124,"name":"Telegram - Indonesia","available":80,"price":2000}
]}
/api/v1/orderBeli nomorcurl -X POST -H "X-Api-Key: wsms_xxx" \
-H "Content-Type: application/json" \
-d '{"product_id": 123}' \
https://DOMAIN/api/v1/order
# Response:
{"success":true,"data":{
"order_id":1,"phone_number":"+628xxx",
"service":"WhatsApp","price":2500,
"status":"active","expired_at":"..."
}}
/api/v1/order/:idCek OTPcurl -H "X-Api-Key: wsms_xxx" \
https://DOMAIN/api/v1/order/1
# Response (OTP sudah masuk):
{"success":true,"data":{
"order_id":1,"phone_number":"+628xxx",
"otp_code":"123456","status":"otp_received"
}}
/api/v1/ordersDaftar order history?limit=10 (max 50)curl -H "X-Api-Key: wsms_xxx" \
"https://DOMAIN/api/v1/orders?limit=10"
# Response:
{"success":true,"total":3,"data":[
{"id":3,"phone_number":"+628xxx",
"otp_code":"123456","service":"WhatsApp",
"status":"otp_received","sell_price":2500,
"created_at":"2026-05-25T10:00:00Z"},
{"id":2,...},{"id":1,...}
]}
/api/v1/order/:id/cancelCancel ordercurl -X POST -H "X-Api-Key: wsms_xxx" \
https://DOMAIN/api/v1/order/1/cancel
# Response:
{"success":true,"message":"Order dibatalkan","refund":2500}
/api/v1/depositsDaftar depositcurl -H "X-Api-Key: wsms_xxx" \
https://DOMAIN/api/v1/deposits
# Response:
{"success":true,"total":3,"data":[
{"id":1,"amount":50000,"unique_code":123,
"total_amount":50123,"status":"paid",
"created_at":"2026-05-25T10:00:00.000Z"}
]}
/api/v1/deposit/:idStatus depositcurl -H "X-Api-Key: wsms_xxx" \
https://DOMAIN/api/v1/deposit/1
# Response (pending):
{"success":true,"data":{
"id":1,"amount":50000,"unique_code":123,
"total_amount":50123,"status":"pending",
"qris_url":"https://...","expired_at":"..."
}}
# Response (paid):
{"success":true,"data":{
"id":1,"amount":50000,"status":"paid",
"paid_at":"2026-05-25T10:05:00.000Z"
}}
// npm install node-fetch
const fetch = require('node-fetch');
const API_KEY = 'wsms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const BASE = 'https://DOMAIN_KAMU';
const headers = { 'X-Api-Key': API_KEY, 'Content-Type': 'application/json' };
// 1. Cek saldo
const bal = await fetch(`${BASE}/api/v1/balance`, { headers });
console.log(await bal.json());
// 2. Daftar layanan
const svc = await fetch(`${BASE}/api/v1/services`, { headers });
const { data: services } = await svc.json();
console.log('Total layanan:', services.length);
// 3. Beli nomor WhatsApp
const order = await fetch(`${BASE}/api/v1/order`, {
method: 'POST', headers,
body: JSON.stringify({ product_id: services[0].id })
});
const { data: ord } = await order.json();
console.log('Nomor:', ord.phone_number);
// 4. Polling OTP setiap 5 detik
const pollOTP = async (orderId) => {
for (let i = 0; i < 24; i++) { // max 2 menit
await new Promise(r => setTimeout(r, 5000));
const r = await fetch(`${BASE}/api/v1/order/${orderId}`, { headers });
const { data } = await r.json();
if (data.otp_code) {
console.log('OTP Diterima:', data.otp_code);
return data.otp_code;
}
console.log('Menunggu OTP... status:', data.status);
}
return null;
};
const otp = await pollOTP(ord.order_id);
// ─── DEPOSIT ───────────────────────────────
// Cek daftar deposit
const deps = await fetch(`${BASE}/api/v1/deposits`, { headers });
const { data: deposits } = await deps.json();
// Cek status deposit tertentu
const dep = await fetch(`${BASE}/api/v1/deposit/1`, { headers });
const { data: deposit } = await dep.json();
// deposit.status: 'pending' | 'paid' | 'cancelled'
// deposit.qris_url: URL QR Code untuk bayar (jika pending)
console.log('Status deposit:', deposit.status);
import requests, time
API_KEY = 'wsms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
BASE = 'https://DOMAIN_KAMU'
HEADERS = {'X-Api-Key': API_KEY}
# 1. Cek saldo
r = requests.get(f'{BASE}/api/v1/balance', headers=HEADERS)
print(r.json())
# 2. Daftar layanan
r = requests.get(f'{BASE}/api/v1/services', headers=HEADERS)
services = r.json()['data']
print(f'Total layanan: {len(services)}')
# 3. Beli nomor
order = requests.post(f'{BASE}/api/v1/order', headers=HEADERS,
json={'product_id': services[0]['id']}).json()
ord_id = order['data']['order_id']
phone = order['data']['phone_number']
print(f'Nomor: {phone}')
# 4. Polling OTP
def wait_otp(order_id, timeout=120, interval=5):
for _ in range(timeout // interval):
time.sleep(interval)
r = requests.get(f'{BASE}/api/v1/order/{order_id}', headers=HEADERS).json()
otp = r['data'].get('otp_code')
if otp:
print(f'OTP: {otp}')
return otp
print('Menunggu OTP...', r['data']['status'])
return None
otp = wait_otp(ord_id)
# ─── DEPOSIT ───────────────────────────────────
# Cek daftar deposit
r = requests.get(f'{BASE}/api/v1/deposits', headers=HEADERS)
deposits = r.json()['data']
# Cek status deposit tertentu
r = requests.get(f'{BASE}/api/v1/deposit/1', headers=HEADERS)
dep = r.json()['data']
# dep['status']: 'pending' | 'paid' | 'cancelled'
# dep['qris_url']: URL QR jika pending
print(f"Status: {dep['status']}")
<?php
$API_KEY = 'wsms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$BASE = 'https://DOMAIN_KAMU';
function apiRequest($method, $path, $body = null) {
global $API_KEY, $BASE;
$ch = curl_init($BASE . $path);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-Api-Key: '.$API_KEY, 'Content-Type: application/json'],
CURLOPT_CUSTOMREQUEST => $method,
CURLOPT_POSTFIELDS => $body ? json_encode($body) : null,
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
return $res;
}
// 1. Cek saldo
$bal = apiRequest('GET', '/api/v1/balance');
echo 'Saldo: ' . $bal['data']['balance'] . " IDR\n";
// 2. Daftar layanan
$svc = apiRequest('GET', '/api/v1/services');
$services = $svc['data'];
// 3. Beli nomor
$order = apiRequest('POST', '/api/v1/order', ['product_id' => $services[0]['id']]);
$ordId = $order['data']['order_id'];
echo 'Nomor: ' . $order['data']['phone_number'] . "\n";
// 4. Polling OTP
for ($i = 0; $i < 24; $i++) {
sleep(5);
$status = apiRequest('GET', '/api/v1/order/'.$ordId);
if (!empty($status['data']['otp_code'])) {
echo 'OTP: ' . $status['data']['otp_code'] . "\n";
break;
}
}
// ─── DEPOSIT ─────────────────────────────
// Cek daftar deposit
$deps = apiRequest('GET', '/api/v1/deposits');
foreach ($deps['data'] as $d) {
echo "Deposit #{$d['id']} - {$d['status']} - Rp {$d['amount']}\n";
}
// Cek status deposit
$dep = apiRequest('GET', '/api/v1/deposit/1');
echo 'Status: ' . $dep['data']['status'] . "\n";
?>
| Kode | Arti |
|---|---|
| 401 | API key tidak valid / tidak disertakan |
| 400 | Saldo tidak cukup / parameter salah / waktu cancel belum 2 menit |
| 404 | Order / produk tidak ditemukan |
| 500 | Error server internal |
Bergabung dan rasakan kemudahan verifikasi nomor virtual.
🚀 Daftar Gratis Sekarang