Autentikasi
Semua permintaan API memerlukan autentikasi menggunakan kunci API. Kunci API dapat diberikan dengan dua cara:
Autentikasi Header
Sertakan kunci API Anda di header permintaan sebagai X-APIKEY
Parameter Kueri
Tambahkan kunci API Anda sebagai parameter kueri apikey
Fitur Keamanan
API kami menyertakan fitur keamanan canggih untuk melindungi akun Anda dan memastikan akses yang aman.
Tindakan Keamanan
| Fitur |
Deskripsi |
Status |
| IP Whitelisting |
Batasi akses API ke alamat IP tertentu |
Aktif |
| Rate Limiting |
Cooldown 5 detik antar permintaan |
Aktif |
| Verifikasi Akun |
Hanya akun terverifikasi |
Wajib |
Profil Pengguna
Ambil informasi profil pengguna yang komprehensif termasuk detail akun, saldo, dan status verifikasi.
Dapatkan Profil Pengguna
Mengambil informasi profil pengguna yang diautentikasi termasuk detail pribadi, saldo akun, dan status verifikasi.
curl -X GET "https://topup.rootsec.co.id/h2h/profile" \
-H "X-APIKEY: your_api_key_here"
const response = await fetch('https://topup.rootsec.co.id/h2h/profile', {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/h2h/profile"
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)
Respons
{
"success": true,
"user": {
"fullname": "Felix",
"username": "Felix",
"nomor": "0813808475w1",
"email": "Felix@example.com",
"profileUrl": "https://example.com/avatar.jpg",
"saldo": 15000,
"coin": 50,
"tanggalDaftar": "2024-01-15T10:30:00.000Z",
"role": "reseller",
"isVerified": true,
"lastLogin": "2024-12-26T08:15:30.000Z",
"referralCode": "JOHNDOE123"
}
}
{
"success": false,
"message": "Internal server error"
}
Riwayat Transaksi
Akses riwayat transaksi yang komprehensif termasuk transaksi deposit dan pesanan dengan informasi terperinci.
Dapatkan Riwayat Transaksi
Mengambil riwayat transaksi lengkap untuk pengguna yang diautentikasi, termasuk transaksi deposit dan pesanan.
curl -X GET "https://topup.rootsec.co.id/h2h/mutasi" \
-H "X-APIKEY: your_api_key_here"
const response = await fetch('https://topup.rootsec.co.id/h2h/mutasi', {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/h2h/mutasi"
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)
Respons
{
"success": true,
"mutasiDeposit": [
{
"id": "ABC123DEF456",
"reff_id": "TRX-SAMPLE123",
"nominal": 25000,
"tambahan": 0,
"fee": 500,
"get_balance": 24500,
"metode": "QRISFAST",
"bank": null,
"tujuan": null,
"atas_nama": null,
"status": "success",
"qr_image": "https://topup.rootsec.co.id/qr/ABC123DEF456",
"created_at": "2024-12-26T10:30:00.000Z"
}
],
"mutasiOrder": [
{
"id": "XYZ789GHI012",
"reff_id": "TRX-ORDER456",
"layanan": "Telkomsel 5GB",
"code": "TSEL5GB",
"target": "081380848521",
"price": 45000,
"sn": "SN123456789012345",
"status": "success",
"created_at": "2024-12-26T09:15:00.000Z"
}
]
}
{
"success": false,
"message": "Internal server error"
}
Manajemen Deposit
Manajemen deposit yang komprehensif termasuk pengambilan metode, pembuatan deposit, pengecekan status, dan pembatalan.
Dapatkan Metode Deposit
Mengambil semua metode deposit yang tersedia dengan biaya, batasan, dan informasi status masing-masing.
curl -X GET "https://topup.rootsec.co.id/deposit/metode" \
-H "X-APIKEY: your_api_key_here"
const response = await fetch('https://topup.rootsec.co.id/deposit/metode', {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/deposit/metode"
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)
Respons
{
"success": true,
"message": "Daftar metode deposit TopUp RootSec",
"metode": [
{
"metode": "BCA",
"type": "bank",
"name": "Bank BCA",
"min": "10000",
"max": "50000000",
"fee": "0",
"fee_persen": "0.10",
"status": "aktif",
"img_url": "https://topup.rootsec.co.id/media/metode/bca.png"
},
{
"metode": "QRISFAST",
"type": "ewallet",
"name": "QRIS Fast",
"min": "5000",
"max": "2000000",
"fee": "0",
"fee_persen": "0.15",
"status": "aktif",
"img_url": "https://topup.rootsec.co.id/media/metode/qrisfast.png"
}
]
}
Buat Deposit
Membuat transaksi deposit baru dengan jumlah dan metode pembayaran yang ditentukan.
Parameter Kueri
| Parameter |
Tipe |
Wajib |
Deskripsi |
| nominal |
integer |
Wajib |
Jumlah deposit dalam IDR |
| metode |
string |
Opsional |
Metode pembayaran (default ke QRISFAST) |
curl -X GET "https://topup.rootsec.co.id/h2h/deposit/create?nominal=25000&metode=QRISFAST" \
-H "X-APIKEY: your_api_key_here"
const params = new URLSearchParams({
nominal: '25000',
metode: 'QRISFAST'
});
const response = await fetch(`https://topup.rootsec.co.id/h2h/deposit/create?${params}`, {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/h2h/deposit/create"
params = {
"nominal": "25000",
"metode": "QRISFAST"
}
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Respons
{
"success": true,
"data": {
"id": "ABC123DEF456GHI",
"reff_id": "TRX-SAMPLE123",
"nominal": 25000,
"tambahan": 0,
"fee": 500,
"get_balance": 24500,
"qr_string": "00020101021226610016ID.CO.SHOPEE.WWW01189360091800209988050208209988050303UME51440014ID.CO.QRIS.WWW0215ID20232405136140303UME52044814530336054072000.005802ID5905MITRA6012KOTA BANDUNG61054061462220518pay_H3chOqLuGy00336304E606",
"qr_image": "https://topup.rootsec.co.id/qr/ABC123DEF456GHI",
"status": "pending",
"created_at": "2024-12-26 15:30:00",
"expired_at": "2024-12-26 16:30:00"
}
}
{
"success": true,
"data": {
"id": "XYZ789ABC123DEF",
"reff_id": "TRX-BANK456",
"nominal": 50000,
"tambahan": 1000,
"fee": 100,
"get_balance": 50900,
"bank": "BCA",
"tujuan": "1234567890",
"atas_nama": "PT TopUp RootSec Digital",
"status": "pending",
"created_at": "2024-12-26 15:30:00",
"expired_at": "2024-12-26 23:59:59"
}
}
{
"success": false,
"message": "Nominal harus diisi dan berupa angka."
}
Cek Status Deposit
Memeriksa status terkini dari transaksi deposit menggunakan ID deposit.
Parameter Kueri
| Parameter |
Tipe |
Wajib |
Deskripsi |
| id |
string |
Wajib |
ID transaksi deposit |
curl -X GET "https://topup.rootsec.co.id/h2h/deposit/status?id=ABC123DEF456GHI" \
-H "X-APIKEY: your_api_key_here"
const params = new URLSearchParams({
id: 'ABC123DEF456GHI'
});
const response = await fetch(`https://topup.rootsec.co.id/h2h/deposit/status?${params}`, {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/h2h/deposit/status"
params = {
"id": "ABC123DEF456GHI"
}
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Respons
{
"success": true,
"data": {
"id": "ABC123DEF456GHI",
"reff_id": "TRX-SAMPLE123",
"nominal": 25000,
"tambahan": 0,
"fee": 500,
"get_balance": 24500,
"metode": "QRIS Fast",
"status": "success",
"created_at": "2024-12-26 15:30:00"
}
}
Batalkan Deposit
Membatalkan transaksi deposit yang tertunda menggunakan ID deposit.
Parameter Kueri
| Parameter |
Tipe |
Wajib |
Deskripsi |
| id |
string |
Wajib |
ID transaksi deposit untuk dibatalkan |
curl -X GET "https://topup.rootsec.co.id/h2h/deposit/cancel?id=ABC123DEF456GHI" \
-H "X-APIKEY: your_api_key_here"
const params = new URLSearchParams({
id: 'ABC123DEF456GHI'
});
const response = await fetch(`https://topup.rootsec.co.id/h2h/deposit/cancel?${params}`, {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/h2h/deposit/cancel"
params = {
"id": "ABC123DEF456GHI"
}
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Respons
{
"success": true,
"data": {
"id": "ABC123DEF456GHI",
"status": "cancel",
"created_at": "2024-12-26 15:30:00"
}
}
Pesanan Layanan
Kelola pesanan layanan digital termasuk pengambilan daftar harga, pembuatan pesanan, dan pengecekan status untuk berbagai produk digital.
Dapatkan Daftar Harga Layanan
Mengambil daftar harga lengkap untuk semua layanan digital yang tersedia termasuk pulsa, paket data, dan produk digital lainnya.
Parameter Kueri
| Parameter |
Tipe |
Wajib |
Deskripsi |
| code |
string |
Opsional |
Filter berdasarkan kode layanan tertentu |
curl -X GET "https://topup.rootsec.co.id/h2h/layanan/price-list" \
-H "X-APIKEY: your_api_key_here"
const response = await fetch('https://topup.rootsec.co.id/h2h/layanan/price-list', {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/h2h/layanan/price-list"
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)
Respons
{
"success": true,
"data": [
{
"code": "TSEL5GB",
"name": "Telkomsel Data 5GB 30 Hari",
"category": "Data Internet",
"type": "Nasional",
"provider": "TELKOMSEL",
"price": "45000",
"note": "Telkomsel Data 5GB berlaku 30 hari",
"status": "available",
"img_url": "https://topup.rootsec.co.id/images/telkomsel.png"
},
{
"code": "XL10K",
"name": "XL Pulsa 10.000",
"category": "Pulsa Reguler",
"type": "Nasional",
"provider": "XL",
"price": "10500",
"note": "XL Pulsa 10.000",
"status": "available",
"img_url": "https://topup.rootsec.co.id/images/xl.png"
}
]
}
Buat Pesanan Layanan
Membuat pesanan baru untuk layanan digital seperti pulsa, paket data, atau produk digital lainnya.
Parameter Kueri
| Parameter |
Tipe |
Wajib |
Deskripsi |
| code |
string |
Wajib |
Kode layanan dari daftar harga |
| tujuan |
string |
Wajib |
Nomor telepon atau akun tujuan |
curl -X GET "https://topup.rootsec.co.id/h2h/order/create?code=TSEL5GB&tujuan=081234567890" \
-H "X-APIKEY: your_api_key_here"
const params = new URLSearchParams({
code: 'TSEL5GB',
tujuan: '081234567890'
});
const response = await fetch(`https://topup.rootsec.co.id/h2h/order/create?${params}`, {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/h2h/order/create"
params = {
"code": "TSEL5GB",
"tujuan": "081234567890"
}
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Respons
{
"success": true,
"data": {
"id": "ORDER123ABC456",
"reff_id": "TRX-ORDER789",
"layanan": "Telkomsel Data 5GB 30 Hari",
"code": "TSEL5GB",
"target": "081234567890",
"price": "45000",
"sn": null,
"status": "pending",
"created_at": "2024-12-26 16:45:00"
}
}
Cek Status Pesanan
Memeriksa status terkini dari pesanan layanan dan mengambil nomor seri jika pesanan telah selesai.
Parameter Kueri
| Parameter |
Tipe |
Wajib |
Deskripsi |
| id |
string |
Wajib |
ID transaksi pesanan |
curl -X GET "https://topup.rootsec.co.id/h2h/order/check?id=ORDER123ABC456" \
-H "X-APIKEY: your_api_key_here"
const params = new URLSearchParams({
id: 'ORDER123ABC456'
});
const response = await fetch(`https://topup.rootsec.co.id/h2h/order/check?${params}`, {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/h2h/order/check"
params = {
"id": "ORDER123ABC456"
}
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Respons
{
"status": true,
"data": {
"id": "ORDER123ABC456",
"reff_id": "TRX-ORDER789",
"layanan": "Telkomsel Data 5GB 30 Hari",
"code": "TSEL5GB",
"target": "081234567890",
"price": "45000",
"sn": "SN123456789012345678901234567890",
"status": "success",
"created_at": "2024-12-26 16:45:00"
},
"code": 200
}
Layanan Panel
Buat dan kelola layanan panel hosting dengan berbagai konfigurasi sumber daya untuk kebutuhan hosting Anda.
Buat Layanan Panel
Membuat layanan panel hosting baru dengan konfigurasi sumber daya yang ditentukan dan secara otomatis mengatur akun pengguna dan server.
Parameter Kueri
| Parameter |
Tipe |
Wajib |
Deskripsi |
| username |
string |
Wajib |
Username untuk akun panel |
| paket |
string |
Wajib |
Tipe paket (1gb, 2gb, 3gb, 4gb, 5gb, 6gb, 7gb, 8gb, 9gb, 20gb, unli) |
Paket Tersedia
| Paket |
Memori |
Disk |
CPU |
Harga (User) |
Harga (Reseller) |
| 1gb |
1024 MB |
1024 MB |
50% |
Rp 1,100 |
Rp 1,050 |
| 2gb |
2048 MB |
2048 MB |
100% |
Rp 2,200 |
Rp 2,100 |
| unli |
Unlimited |
Unlimited |
Unlimited |
Rp 16,500 |
Rp 15,750 |
curl -X GET "https://topup.rootsec.co.id/h2h/order-panel?username=johndoe&paket=2gb" \
-H "X-APIKEY: your_api_key_here"
const params = new URLSearchParams({
username: 'johndoe',
paket: '2gb'
});
const response = await fetch(`https://topup.rootsec.co.id/h2h/order-panel?${params}`, {
method: 'GET',
headers: {
'X-APIKEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://topup.rootsec.co.id/h2h/order-panel"
params = {
"username": "Felix",
"paket": "2gb"
}
headers = {
"X-APIKEY": "your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Respons
{
"success": true,
"message": "Server berhasil dibuat",
"data": {
"id": "TRX-PANEL123",
"reff_id": "TRX-PANEL123",
"layanan": "Panel 2gb",
"code": "2GB",
"target": "Felix",
"price": "2100",
"status": "Sukses",
"created_at": "2024-12-26T16:30:00.000Z",
"user": {
"id": 42,
"username": "Felix",
"email": "Felix@gmail.com",
"password": "Felix980"
},
"server": {
"id": 58,
"name": "Felix",
"memory": 2048,
"disk": 2048,
"cpu": 100
}
}
}
{
"success": false,
"message": "Terjadi kesalahan saat membuat server",
"error": {
"errors": [
{
"code": "ValidationException",
"status": "422",
"detail": "The email has already been taken.",
"meta": {
"source_field": "email",
"rule": "unique"
}
},
{
"code": "ValidationException",
"status": "422",
"detail": "The username has already been taken.",
"meta": {
"source_field": "username",
"rule": "unique"
}
}
]
}
}