Mulai cepat
Dari cek profil sampai membuat order pertama.
Panduan singkat supaya integrasi H2H T4Topup bisa jalan dalam hitungan menit.
1. Siapkan kredensial
| Item | Keterangan |
|---|---|
| Base URL | https://api.t4topup.id/v1/member-api |
| API key | Diberikan bersama akses H2H Anda |
| IP server | Harus sudah ada di whitelist |
Kirim API key lewat salah satu header:
x-api-key: YOUR_API_KEYatau
Authorization: Bearer YOUR_API_KEY2. Cek profil & saldo
curl -sS "https://api.t4topup.id/v1/member-api/profile" \
-H "x-api-key: YOUR_API_KEY"const res = await fetch('https://api.t4topup.id/v1/member-api/profile', {
headers: { 'x-api-key': process.env.H2H_API_KEY },
});
console.log(await res.json());$ch = curl_init('https://api.t4topup.id/v1/member-api/profile');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ' . getenv('H2H_API_KEY')],
]);
echo curl_exec($ch);import os, requests
r = requests.get(
'https://api.t4topup.id/v1/member-api/profile',
headers={'x-api-key': os.environ['H2H_API_KEY']},
)
print(r.json())req, _ := http.NewRequest("GET", "https://api.t4topup.id/v1/member-api/profile", nil)
req.Header.Set("x-api-key", os.Getenv("H2H_API_KEY"))
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
io.Copy(os.Stdout, res.Body)Contoh respons:
{
"member_id": "...",
"member_name": "Nama Anda",
"member_role": "RESELLER",
"member_balance": 150000
}Jika mendapat IP_NOT_WHITELISTED, daftarkan IP yang tercantum di response ke whitelist.
3. Lihat produk
curl -sS "https://api.t4topup.id/v1/member-api/products?category_code=MLBB" \
-H "x-api-key: YOUR_API_KEY"Catat code (atau id) produk yang ingin dipesan.
4. Buat order
curl -sS -X POST "https://api.t4topup.id/v1/member-api/orders" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_code": "MLBB_ID_5",
"partner_ref": "ORDER-1001",
"data": {
"user_id": "348553128",
"server_id": "943"
}
}'const res = await fetch('https://api.t4topup.id/v1/member-api/orders', {
method: 'POST',
headers: {
'x-api-key': process.env.H2H_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
product_code: 'MLBB_ID_5',
partner_ref: 'ORDER-1001',
data: { user_id: '348553128', server_id: '943' },
}),
});
console.log(await res.json());$payload = json_encode([
'product_code' => 'MLBB_ID_5',
'partner_ref' => 'ORDER-1001',
'data' => ['user_id' => '348553128', 'server_id' => '943'],
]);
$ch = curl_init('https://api.t4topup.id/v1/member-api/orders');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'x-api-key: ' . getenv('H2H_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => $payload,
]);
echo curl_exec($ch);import os, requests
r = requests.post(
'https://api.t4topup.id/v1/member-api/orders',
headers={
'x-api-key': os.environ['H2H_API_KEY'],
'Content-Type': 'application/json',
},
json={
'product_code': 'MLBB_ID_5',
'partner_ref': 'ORDER-1001',
'data': {'user_id': '348553128', 'server_id': '943'},
},
)
print(r.json())body := strings.NewReader(`{
"product_code": "MLBB_ID_5",
"partner_ref": "ORDER-1001",
"data": {"user_id": "348553128", "server_id": "943"}
}`)
req, _ := http.NewRequest("POST", "https://api.t4topup.id/v1/member-api/orders", body)
req.Header.Set("x-api-key", os.Getenv("H2H_API_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
io.Copy(os.Stdout, res.Body)Tips:
- Selalu kirim
partner_refunik — supaya retry aman (idempotent) - Isi
datasesuai kebutuhan produk (misalnyauser_id+server_iduntuk MLBB) - Saldo akan dipotong saat order berhasil dibuat
5. Cek status
curl -sS "https://api.t4topup.id/v1/member-api/orders/ORDER-1001" \
-H "x-api-key: YOUR_API_KEY"Gunakan partner_ref atau nomor invoice. Untuk update otomatis, lihat Webhook.
Contoh lengkap bahasa lain ada di Contoh kode.
Checklist sukses
-
GET /profileberhasil - Produk muncul di
GET /products -
POST /ordersmengembalikaninvoice_number - Saldo berkurang sesuai harga
-
GET /orders/:refmenampilkan status terkini