Base URL: https://araaxz.ciparage.web.id. Semua endpoint mengembalikan JSON. Simpan api-id dan api-key di backend/server, jangan pernah menaruhnya di JavaScript frontend, aplikasi mobile, atau repository publik.
Contoh alur pembelian OTP
GET /api/get-service untuk mengambil daftar aplikasi.
GET /api/get-country?app=wa&server=server1 untuk daftar negara. Gunakan ID aplikasi dan negara yang benar-benar dikembalikan API.
GET /api/get-prices?app=wa&country=6&server=server1 untuk mengecek harga dan stok terbaru.
POST /api/create-order dengan api-id, api-key, country, service, dan reff-id yang unik.
GET /api/check-status?reff-id=REF_UNIK atau GET /api/check-otp?reff-id=REF_UNIK untuk memeriksa status/OTP.
POST /api/cancel dengan reff-id untuk membatalkan pesanan yang memenuhi syarat. Pembatalan tersedia setelah 3 menit dan sebelum OTP diterima.
Contoh PHP: membuat pesanan OTP
<?php
$base = 'https://araaxz.ciparage.web.id';
$payload = [
'api-id' => getenv('ARAAXZ_API_ID'),
'api-key' => getenv('ARAAXZ_API_KEY'),
'country' => '6', // ganti dengan ID negara dari API
'service' => 'wa', // ganti dengan ID aplikasi dari API
'reff-id' => 'otp-' . bin2hex(random_bytes(8))
];
$ch = curl_init($base . '/api/create-order.php');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'],
CURLOPT_POSTFIELDS => http_build_query($payload),
CURLOPT_TIMEOUT => 25
]);
$raw = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($raw === false) { throw new RuntimeException(curl_error($ch)); }
curl_close($ch);
$result = json_decode($raw, true);
if ($http < 200 || $http >= 300 || empty($result['status'])) {
throw new RuntimeException($result['message'] ?? 'Order OTP gagal');
}
print_r($result['data']); // reff-id, phone, status, price
?>
Deposit QRIS dan fee 3%
Parameter amount adalah nominal saldo yang akan dikreditkan. Fee dihitung sebesar ceil(amount × 0,03), lalu jumlah pembayaran QRIS = nominal saldo + fee (belum termasuk kode unik yang mungkin diterapkan gateway). Contoh: saldo Rp10.000, fee Rp300, total dasar Rp10.300. Saldo hanya ditambahkan setelah status pembayaran terverifikasi.
const base = 'https://araaxz.ciparage.web.id';
const form = new URLSearchParams({
'api-id': process.env.ARAAXZ_API_ID,
'api-key': process.env.ARAAXZ_API_KEY,
amount: '10000',
'reff-id': `dep-${Date.now()}-${Math.random().toString(16).slice(2, 8)}`
});
const response = await fetch(`${base}/api/create-deposit.php`, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: form
});
const result = await response.json();
if (!response.ok || !result.status) throw new Error(result.message || 'Deposit gagal');
console.log(result.data); // Kirim QRIS dan total pembayaran ke pengguna
Catatan kompatibilitas: gunakan endpoint dengan ekstensi .php untuk kompatibilitas shared hosting; rewrite URL tanpa ekstensi hanya bekerja jika konfigurasi server mendukungnya. Contoh nilai aplikasi/negara di atas hanya contoh—ambil ID terbaru dari katalog API. Polling status secara wajar (misalnya setiap 3–5 detik), hentikan setelah status final, dan jangan membuat referensi transaksi yang sama untuk pembayaran baru.
Halaman 1 — Integrasi Bot Telegram (Node.js)
Gunakan Node.js 18+ agar fetch tersedia. Jalankan kode di backend bot, bukan di browser. Buat environment variable ARAAXZ_API_ID dan ARAAXZ_API_KEY dari menu akun. Jangan kirim API key ke pengguna.
Helper request yang menangani HTTP error
const BASE = 'https://araaxz.ciparage.web.id';
const auth = {
'api-id': process.env.ARAAXZ_API_ID,
'api-key': process.env.ARAAXZ_API_KEY,
};
async function araaxz(path, { method = 'GET', params = {}, body } = {}) {
const url = new URL(path, BASE);
if (method === 'GET') {
for (const [k, v] of Object.entries({ ...auth, ...params })) {
if (v !== undefined && v !== null) url.searchParams.set(k, String(v));
}
}
const options = { method, headers: { Accept: 'application/json' } };
if (method !== 'GET') {
options.headers['Content-Type'] = 'application/json';
options.body = JSON.stringify({ ...auth, ...body });
}
const response = await fetch(url, options);
const raw = await response.text();
let data;
try { data = JSON.parse(raw); }
catch { throw new Error(`Respons bukan JSON (HTTP ${response.status}): ${raw.slice(0, 160)}`); }
if (!response.ok || data.status !== true) {
throw new Error(data.message || `Request gagal (HTTP ${response.status})`);
}
return data;
}
// Daftar layanan
const services = await araaxz('/api/get-service.php');
console.log(services.data);
// Negara untuk app dan server yang diambil dari daftar layanan
const countries = await araaxz('/api/get-country.php', {
params: { app: 'ID_APLIKASI_DARI_RESPONS', server: 'SERVER_DARI_RESPONS' }
});
console.log(countries.data);
// Harga sebelum order
const prices = await araaxz('/api/get-prices.php', {
params: { app: 'ID_APLIKASI', country: 'ID_NEGARA', server: 'SERVER' }
});
console.log(prices.data);
Penting: ganti placeholder ID dengan nilai aktual dari respons katalog. API melakukan pembelian sungguhan dan memakai saldo akun; uji dengan nominal kecil. Endpoint order/deposit harus dipanggil dari server bot.
JavaScript di browser (panggil backend Anda sendiri)
// Jangan taruh api-key di kode frontend. /backend/order.php adalah endpoint milik website Anda.
document.querySelector('#buy').addEventListener('click', async () => {
const response = await fetch('/backend/order.php', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ service: document.querySelector('#service').value,
country: document.querySelector('#country').value })
});
const result = await response.json();
if (!response.ok || !result.success) {
document.querySelector('#message').textContent = result.message || 'Order gagal';
return;
}
document.querySelector('#message').textContent = `Nomor: ${result.phone}`;
});
Endpoint /backend/order.php pada contoh frontend adalah endpoint backend milik Anda sendiri, bukan endpoint bawaan AraaXZ. Backend harus memvalidasi input, membuat reff-id unik, lalu meneruskan request ke AraaXZ menggunakan API key dari environment server.
Troubleshooting HTTP 400
Pastikan nama parameter tepat: api-id, api-key, country, service, dan reff-id untuk order.
Versi terbaru mendukung JSON request body maupun application/x-www-form-urlencoded. Saat memakai JSON, set header Content-Type: application/json.
Pastikan service dan country memakai ID yang benar dari katalog; service dapat berbentuk SERVER|ID_APLIKASI.
Gunakan URL endpoint dengan ekstensi .php jika rewrite URL tidak aktif.
Catat status HTTP dan properti message dari respons. Jangan mencatat atau membagikan API key ke log/tiket bantuan.
Halaman 1 — Integrasi Bot Telegram (Node.js)
Gunakan Node.js 18+ agar fetch tersedia. Jalankan kode di backend bot, bukan di browser. Buat environment variable ARAAXZ_API_ID dan ARAAXZ_API_KEY dari menu akun. Jangan kirim API key ke pengguna.
Helper request (JSON dan penanganan HTTP error)
const BASE = 'https://araaxz.ciparage.web.id';
const auth = { 'api-id': process.env.ARAAXZ_API_ID, 'api-key': process.env.ARAAXZ_API_KEY };
async function araaxz(path, { method = 'GET', params = {}, body } = {}) {
const url = new URL(path, BASE);
if (method === 'GET') for (const [k,v] of Object.entries({...auth,...params})) if (v != null) url.searchParams.set(k,String(v));
const options = { method, headers: { Accept: 'application/json' } };
if (method !== 'GET') { options.headers['Content-Type']='application/json'; options.body=JSON.stringify({...auth,...body}); }
const response = await fetch(url, options); const raw = await response.text(); let data;
try { data=JSON.parse(raw); } catch { throw new Error(`Respons bukan JSON (HTTP ${response.status}): ${raw.slice(0,160)}`); }
if (!response.ok || data.status !== true) throw new Error(data.message || `Request gagal (HTTP ${response.status})`);
return data;
}
const services = await araaxz('/api/get-service.php');
console.log(services.data);
const countries = await araaxz('/api/get-country.php', {params:{app:'ID_APLIKASI_DARI_RESPONS',server:'SERVER_DARI_RESPONS'}});
console.log(countries.data);
const prices = await araaxz('/api/get-prices.php', {params:{app:'ID_APLIKASI',country:'ID_NEGARA',server:'SERVER'}});
console.log(prices.data);
// Jangan pernah taruh API key di JavaScript browser.
document.querySelector('#buy').addEventListener('click', async () => {
const response = await fetch('/backend/order.php', {method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({service:document.querySelector('#service').value,country:document.querySelector('#country').value})});
const result = await response.json();
if(!response.ok || !result.success){document.querySelector('#message').textContent=result.message||'Order gagal';return;}
document.querySelector('#message').textContent=`Nomor: ${result.phone}`;
});
/backend/order.php adalah endpoint backend milik website Anda, bukan endpoint bawaan AraaXZ. Backend harus memvalidasi input, membuat reff-id unik, dan meneruskan request ke AraaXZ menggunakan API key dari environment server.
Troubleshooting HTTP 400
Pastikan parameter tepat: api-id, api-key, country, service, dan reff-id untuk order.
API kini mendukung JSON request body dan application/x-www-form-urlencoded. Untuk JSON, kirim header Content-Type: application/json.
Gunakan ID layanan/negara dari katalog; nilai layanan dapat berupa SERVER|ID_APLIKASI.
Gunakan endpoint dengan ekstensi .php jika rewrite URL tidak aktif. Periksa HTTP status dan properti message dari respons.
Jangan pernah mencatat atau membagikan API key di log/tiket bantuan.