Lompat ke konten utama
Gempay Topup

Akun Gempay

Terintegrasi dengan API H2H Gempay

API Cek Nickname & Region MLBB

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

Pilih sesuai kebutuhan integrasi

Paket melekat pada satu key produksi. Key sandbox dapat menguji bentuk respons tanpa paket, tanpa kuota, dan tanpa memanggil provider.

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
Masuk untuk Mengaktifkan

Belum punya akun? Daftar member

Pilihan Bulanan

Paket 1 Bulan

Rp 15.000 / 30 hari

  • Masa aktif 30 hari
  • Tanpa batas kuota periode
  • Maksimal 5 whitelist IP server
  • Nickname, region, kode negara, dan rekomendasi type produk
  • Autentikasi dan rate limit dari key H2H yang sama
Masuk untuk Mengaktifkan

Belum punya akun? Daftar member

Referensi integrasi

Dokumentasi API Cek Region MLBB

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.

POST

https://www.gempaytopup.com/api/v1/ml-region

Kirim JSON dari backend melalui HTTPS. Kondisi bisnis dikembalikan dalam HTTP 200; selalu baca data.rc untuk menentukan hasil.

FieldAturanKeterangan
usernameWajibPrefix key H2H, contoh gmp_1234abcd.
ref_id1–64 karakterReferensi unik dari sistem Anda untuk idempotensi.
signWajibmd5(username + secret + ref_id), lowercase dan tanpa pemisah.
user_id5–12 digitUser ID Mobile Legends; kirim sebagai string.
zone_id3–5 digitZone 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"
}

Contoh implementasi

cURL
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"
  }'
PHP 8+
$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'];
}
Node.js 18+
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();

Respons sukses

{
  "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.

Response code dan tindakan klien

rcArtiTindakan
00Akun ditemukanPakai nickname, region, dan allowed_product_types.
03Ref ID sedang diprosesRetry dengan ref_id dan target yang sama setelah beberapa saat.
40Parameter salah atau ref_id dipakai untuk target berbedaPerbaiki input; target lama tidak dapat diganti pada ref_id yang sama.
41Autentikasi gagalPeriksa key, secret, sign, status key, dan status akun.
42IP tidak diizinkanPastikan IP lolos allowlist key dan whitelist paket.
43Rate limit key terlampauiGunakan antrean dan exponential backoff.
53Provider validasi sedang tidak tersediaCoba kembali memakai ref_id baru setelah gangguan pulih.
54User ID/Zone ID tidak ditemukanMinta pengguna memeriksa kedua nilai.
57Paket tidak aktifAktifkan atau perpanjang paket pada key produksi.
58Kuota paket habisAktifkan paket bulanan baru atau tunggu periode berikutnya.
99Kesalahan internalJangan mengasumsikan hasil; coba lagi dengan ref_id yang sama dahulu.