Paket Gratis
Gratis / 7 hari
- ✓Masa aktif 7 hari
- ✓100 request/periode
- ✓Maksimal 1 whitelist IP server
- ✓Nickname, region, kode negara, dan rekomendasi type produk
- ✓Autentikasi dan rate limit dari key H2H yang sama
Belum punya akun? Daftar member
Hubungkan bot, website, atau aplikasi reseller Anda untuk memvalidasi User ID, Zone ID, nickname, negara akun, dan type produk Mobile Legends yang sesuai.
Hanya 2 paket
Paket melekat pada satu key produksi. Key sandbox dapat menguji bentuk respons tanpa paket, tanpa kuota, dan tanpa memanggil provider.
Paket Gratis
Belum punya akun? Daftar member
Paket 1 Bulan
Belum punya akun? Daftar member
Referensi integrasi
Endpoint ini memakai key, signature, rate limit, status akun, dan IP allowlist API H2H yang sama. Pada key produksi, paket Region API yang aktif dan whitelist IP paket juga wajib cocok.
Kirim JSON dari backend melalui HTTPS. Kondisi bisnis dikembalikan dalam HTTP 200;
selalu baca data.rc untuk menentukan hasil.
| Field | Aturan | Keterangan |
|---|---|---|
| username | Wajib | Prefix key H2H, contoh gmp_1234abcd. |
| ref_id | 1–64 karakter | Referensi unik dari sistem Anda untuk idempotensi. |
| sign | Wajib | md5(username + secret + ref_id), lowercase dan tanpa pemisah. |
| user_id | 5–12 digit | User ID Mobile Legends; kirim sebagai string. |
| zone_id | 3–5 digit | Zone ID/Server Mobile Legends; kirim sebagai string. |
{
"username": "gmp_1234abcd",
"ref_id": "cek-ml-20260804-0001",
"sign": "HASIL_MD5_USERNAME_SECRET_REF_ID",
"user_id": "106101371",
"zone_id": "2540"
}
curl --request POST 'https://www.gempaytopup.com/api/v1/ml-region' \
--header 'Content-Type: application/json' \
--data '{
"username": "GEMPAY_API_USERNAME",
"ref_id": "cek-ml-20260804-0001",
"sign": "HASIL_MD5",
"user_id": "106101371",
"zone_id": "2540"
}'
$username = getenv('GEMPAY_API_USERNAME');
$secret = getenv('GEMPAY_API_SECRET');
$refId = 'cek-ml-'.bin2hex(random_bytes(8));
$payload = [
'username' => $username,
'ref_id' => $refId,
'sign' => md5($username.$secret.$refId),
'user_id' => '106101371',
'zone_id' => '2540',
];
$curl = curl_init('https://www.gempaytopup.com/api/v1/ml-region');
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 20,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_THROW_ON_ERROR),
]);
$result = json_decode(curl_exec($curl), true, 512, JSON_THROW_ON_ERROR);
if (($result['data']['rc'] ?? '99') === '00') {
$region = $result['data']['region'];
}
import { createHash, randomUUID } from 'node:crypto';
const username = process.env.GEMPAY_API_USERNAME;
const secret = process.env.GEMPAY_API_SECRET;
const refId = `cek-ml-${randomUUID()}`;
const sign = createHash('md5')
.update(username + secret + refId, 'utf8')
.digest('hex');
const response = await fetch('https://www.gempaytopup.com/api/v1/ml-region', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
username, ref_id: refId, sign,
user_id: '106101371', zone_id: '2540'
}),
signal: AbortSignal.timeout(20_000),
});
const result = await response.json();
{
"data": {
"ref_id": "cek-ml-20260804-0001",
"status": "Sukses",
"nickname": "ContohNick",
"region": "Indonesia",
"country_code": "ID",
"allowed_product_types": ["Umum", "Indonesia", "Membership"],
"cached": false,
"sandbox": false,
"quota": {
"plan": "monthly",
"used": 21,
"limit": null,
"remaining": null,
"expires_at": "2026-09-03T12:00:00+07:00"
},
"rc": "00",
"message": "Transaksi sukses"
}
}
Nilai null pada quota.limit dan quota.remaining berarti paket tidak mempunyai batas total request.
Rate limit per menit milik key H2H tetap berlaku.
| rc | Arti | Tindakan |
|---|---|---|
| 00 | Akun ditemukan | Pakai nickname, region, dan allowed_product_types. |
| 03 | Ref ID sedang diproses | Retry dengan ref_id dan target yang sama setelah beberapa saat. |
| 40 | Parameter salah atau ref_id dipakai untuk target berbeda | Perbaiki input; target lama tidak dapat diganti pada ref_id yang sama. |
| 41 | Autentikasi gagal | Periksa key, secret, sign, status key, dan status akun. |
| 42 | IP tidak diizinkan | Pastikan IP lolos allowlist key dan whitelist paket. |
| 43 | Rate limit key terlampaui | Gunakan antrean dan exponential backoff. |
| 53 | Provider validasi sedang tidak tersedia | Coba kembali memakai ref_id baru setelah gangguan pulih. |
| 54 | User ID/Zone ID tidak ditemukan | Minta pengguna memeriksa kedua nilai. |
| 57 | Paket tidak aktif | Aktifkan atau perpanjang paket pada key produksi. |
| 58 | Kuota paket habis | Aktifkan paket bulanan baru atau tunggu periode berikutnya. |
| 99 | Kesalahan internal | Jangan mengasumsikan hasil; coba lagi dengan ref_id yang sama dahulu. |