Skip to main content

Cek Nama Pemilik Akun

Endpoint untuk mengecek nama pemilik rekening bank atau e-wallet sebelum melakukan transfer — mencegah salah kirim ke nomor tujuan yang salah. Cek nama tidak memotong saldo, tetapi dibatasi oleh kuota (slot) — lihat Kuota Cek Nama.

Endpoint: POST /v1/account-inquiry

Tidak semua produk mendukung cek nama

Fitur ini hanya tersedia untuk brand tertentu (mis. DANA, BCA, Free Fire) — dikelola oleh IsiKuota, bisa bertambah sewaktu-waktu. Cek field has_account_inquiry pada respons Daftar Produk untuk tahu produk mana yang mendukung fitur ini sebelum menampilkan tombol/alur "Cek Nama" ke pengguna Anda. Mengirim code yang has_account_inquiry-nya false akan menghasilkan ACCOUNT_INQUIRY_FAILED.

Waktu respons lebih lama dari endpoint lain

Endpoint ini bisa memakan waktu hingga 20 detik untuk merespons. Set timeout HTTP client Anda ke minimal 25 detik khusus untuk endpoint ini.

Kuota Cek Nama​

Cek nama dibatasi agar tidak dipakai terus-menerus tanpa transaksi. Setiap akun punya slot cek nama dengan aturan berikut:

AturanKeterangan
Slot awal & batas atasMember 20 slot, Reseller 500 slot (angka dapat berubah sewaktu-waktu)
Setiap cek namaMemakai 1 slot
Setiap transaksi suksesMengembalikan 1 slot (1:1), tidak melebihi batas atas. Hanya transaksi dengan harga jual minimal Rp 1.000 yang dihitung
Cek gagal karena gangguan providerSlot dikembalikan otomatis
Nomor tidak valid / nama tidak ditemukanSlot tetap terpakai
Syarat saldoSaldo Anda harus sama dengan atau lebih besar dari harga produk yang dicek.
Batas requestMaksimal 500 request per menit per akun untuk endpoint ini

Slot melekat pada akun Anda dan aturan kuota ini berlaku untuk cek nama lewat API. Transaksi sukses dari channel mana pun (API, website, aplikasi) tetap mengembalikan slot. Sisa slot ditampilkan di field remaining_quota pada respons sukses, sehingga Anda dapat memantau pemakaiannya.

Praktik yang disarankan

Lakukan cek nama hanya saat pengguna Anda benar-benar akan melakukan transfer, lalu lanjutkan dengan order. Dengan pola cek nama → order, slot kembali setiap transaksi sukses sehingga kuota tidak pernah habis. Hindari mengecek nomor yang sama berulang kali atau mengecek tanpa niat bertransaksi.

Alur yang benar dan yang salah​

✅ Alur yang benar — setiap cek nama diikuti transaksi sukses, sehingga slot kembali:

cek nama
↓
order
↓
transaksi
↓
sukses

❌ Alur yang salah — cek nama berulang tanpa transaksi, sehingga slot terus berkurang sampai habis:

cek nama
↓
cek nama
↓
cek nama
↓
cek nama
↓
cek nama
↓
cek nama

Parameter Request​

ParameterTipeWajibKeterangan
api_idstring✅API ID
timestampinteger✅Unix timestamp
signaturestring✅HMAC-SHA256 — lihat cara membuat signature
codestring✅Kode produk transfer/e-wallet dari Daftar Produk (mis. produk transfer DANA/BCA)
customer_nostring✅Nomor rekening/e-wallet tujuan yang ingin dicek namanya

Contoh Request​

<?php
header('Content-Type: application/json');

$api_id = 'your_api_id';
$api_key = 'your_api_key';
$secret_key = 'your_secret_key';
$timestamp = time();

// Business params
$businessParams = [
'code' => 'SGBDANA1',
'customer_no' => '081234567890',
];

// Urutkan A ke Z (ksort)
ksort($businessParams);

$canonicalBody = json_encode($businessParams, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$bodyHash = hash('sha256', $canonicalBody);
$stringToSign = implode('|', [$api_id, $api_key, $timestamp, $bodyHash]);
$signature = hash_hmac('sha256', $stringToSign, $secret_key);

$payload = array_merge($businessParams, [
'api_id' => $api_id,
'timestamp' => $timestamp,
'signature' => $signature,
]);

$ch = curl_init('https://api.isikuota.com/v1/account-inquiry');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 25, // penting — endpoint ini bisa menunggu hingga 20 detik
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = json_decode(curl_exec($ch), true);

$customer_name = $response['data']['customer_name'] ?? null;

// print_r($response);
echo json_encode($response, JSON_PRETTY_PRINT);

Contoh Response​

{
"success": true,
"code": "ACCOUNT_INQUIRY_SUCCESS",
"message": "Nama pemilik akun ditemukan",
"data": {
"ref_id": "INQ20260926125705OHEWAW",
"code": "SGBDANA1",
"customer_no": "081234567890",
"customer_name": "BUDI SANTOSO",
"remaining_quota": 19
},
"errors": null,
"meta": null
}

Field Response​

FieldTipeKeterangan
ref_idstringID referensi internal untuk permintaan cek nama ini
codestringKode produk yang dikirim
customer_nostringNomor rekening/e-wallet yang dicek
customer_namestringNama pemilik akun sesuai data provider
remaining_quotaintegerSisa slot cek nama setelah request ini. Hanya ada pada respons sukses — lihat Kuota Cek Nama
Jika mendapat PROVIDER_TIMEOUT

Ini bukan berarti gagal permanen: provider mungkin masih memproses. Anda boleh mengulang request setelah beberapa saat (tidak ada saldo yang terpotong), tetapi slot untuk request yang timeout tidak dikembalikan, jadi jangan mengulang terlalu agresif.

Kode error terkait kuota

ACCOUNT_INQUIRY_QUOTA_EXCEEDED (HTTP 429) berarti slot habis, dan ACCOUNT_INQUIRY_INSUFFICIENT_BALANCE (HTTP 400) berarti saldo lebih kecil dari harga produk. Melewati batas 30 request per menit menghasilkan TOO_MANY_REQUESTS. Daftar lengkap ada di Kode Error.

Verifikasi manual tetap disarankan

Fitur ini membantu mengurangi risiko salah transfer, tapi selalu tampilkan customer_name ke pengguna untuk konfirmasi akhir sebelum transfer benar-benar diproses.