API Reseller Bocastore
Dokumentasi API versi v1.0.5 untuk integrasi saldo, price list, transaksi, dan pengecekan status. Check ID tetap menggunakan sistem Check ID yang sudah tersedia dan didokumentasikan terpisah.
Autentikasi
API Key adalah secret dan tidak dikirim sebagai parameter JSON. Client menghitung signature menggunakan API Key miliknya.
| Operasi | Signature |
|---|---|
| Cek Saldo | md5(api_id + api_key) |
| Price List | md5(api_id + api_key) |
| Transaction / Cek Status | md5(api_id + api_key + ref_id) |
API ID dan API Key dibuat dari Pengaturan API. Simpan API Key di server/SDK, bukan di frontend publik.
Quick Start
Login → Pengaturan API → buat API ID + API Key.
Hitung
md5(api_id + api_key), lalu POST ke /cek-saldo.POST
/price-list. Gunakan field code sebagai kode produk saat transaksi.POST
/transaction dengan ref_id unik dan signature transaksi.Gunakan endpoint
/status hanya dengan ref_id yang sama. Tidak perlu mengirim code/target. Endpoint status hanya membaca transaksi dan tidak membuat transaksi baru.$apiId = 'API116-XXXXXXXX'; $apiKey = 'AKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; $refId = 'TRX-20260903-0001'; $sign = md5($apiId . $apiKey . $refId);
Akun
Cek Saldo
| Parameter | Wajib | Keterangan |
|---|---|---|
api_id | Ya | API ID dari Pengaturan API. |
sign | Ya | MD5(api_id + api_key). |
{
"api_id": "API116-XXXXXXXX",
"sign": "md5(api_id + api_key)"
}{
"success": true,
"data": {
"balance": 150000,
"points": 2500
}
}Profil Akun
| Parameter | Wajib | Keterangan |
|---|---|---|
api_id | Ya | API ID dari Pengaturan API. |
sign | Ya | MD5(api_id + api_key). |
{
"api_id": "API116-XXXXXXXX",
"sign": "md5(api_id + api_key)"
}{
"success": true,
"data": {
"username": "developer",
"role": "Super Admin",
"referral": "RES-XXXXXXXX",
"check_id_token": 188
}
}Produk
Price List
| Parameter | Wajib | Keterangan |
|---|---|---|
api_id | Ya | API ID dari Pengaturan API. |
sign | Ya | MD5(api_id + api_key). |
search | Tidak | Filter kode/nama produk atau kategori. |
{
"api_id": "API116-XXXXXXXX",
"sign": "md5(api_id + api_key)",
"search": "Mobile Legends"
}{
"data": [
{
"product_name": "5 Diamonds",
"code": "MLA5-S13",
"price": 1529,
"status": "active"
}
]
}Transaksi
Transaction
| Parameter | Wajib | Keterangan |
|---|---|---|
api_id | Ya | API ID dari Pengaturan API. |
sign | Ya | MD5(api_id + api_key + ref_id). |
ref_id | Ya | ID transaksi unik dari sistem Anda. |
code | Ya | Kode produk dari Price List. |
target | Ya | User ID/nomor tujuan. |
zone | Tidak | Server/zone bila produk membutuhkannya. |
nickname | Tidak | Nickname hasil Check ID jika tersedia. |
nomor | Tidak | Nomor WhatsApp/pelanggan; default dari akun reseller. |
{
"api_id": "API116-XXXXXXXX",
"sign": "md5(api_id + api_key + ref_id)",
"ref_id": "TRX-20260903-0001",
"code": "MLA5-S13",
"target": "290716936",
"zone": "9508",
"nickname": "Nama Player"
}{
"success": true,
"trx_id": "TRX260903XXXX",
"status": "Pending"
}Cek Status
/status.Gunakan
ref_id yang sudah pernah dipakai. Request dengan ref_id yang sama tidak membuat order baru.| Parameter | Wajib | Keterangan |
|---|---|---|
api_id | Ya | API ID dari Pengaturan API. |
sign | Ya | MD5(api_id + api_key + ref_id). |
ref_id | Ya | ref_id transaksi yang sudah dibuat. Tidak perlu mengirim code/target untuk cek status. |
{
"api_id": "API116-XXXXXXXX",
"sign": "md5(api_id + api_key + ref_id)",
"ref_id": "TRX-20260903-0001"
}{
"success": true,
"code": "SUCCESS",
"message": "OK",
"data": {
"ref_id": "TRX-20260903-0001",
"trx_id": "TRX260903XXXX",
"status": "Sukses",
"sn": "SN-123456789"
}
}Check ID game & username
Check ID tidak menggunakan API ID + Sign reseller. Endpoint ini memakai API Key Check ID yang telah dikonfigurasi pada sistem dan token Check ID sesuai pengaturan akun.
Parameter Request
| Parameter | Wajib | Tipe | Keterangan |
|---|---|---|---|
type | Ya | string | Jenis Check ID. Nilai yang didukung: game, emoney/ewallet, pln, atau bank. |
code | Ya | string | Kode Check ID yang dipublikasikan, misalnya mobile-legends atau free-fire. |
target | Ya | string | ID akun, nomor pelanggan, nomor tujuan, atau target yang akan diverifikasi. |
zone | Kondisional | string | Server/zone akun jika layanan membutuhkannya. Untuk game tanpa zone, tidak perlu dikirim. |
Content-Type: application/jsonEndpoint memakai mekanisme autentikasi Check ID yang dikonfigurasi di server. API ID dan Sign reseller tidak diperlukan.
Contoh Body JSON — Mobile Legends
{
"type": "game",
"code": "mobile-legends",
"target": "290716936",
"zone": "9508"
}Contoh Body JSON — Free Fire
{
"type": "game",
"code": "free-fire",
"target": "123456789"
}Contoh Response Berhasil
{
"success": true,
"code": "SUCCESS",
"message": "OK",
"data": {
"type": "game",
"code": "mobile-legends",
"name": "Mobile Legends",
"target": "290716936",
"zone": "9508",
"nickname": "Nama Player",
"data": {
"status": "valid"
},
"tokens_charged": 1,
"token_balance": 99,
"reference": "CHK-20260904104600-A1B2C3D4"
}
}Contoh Response Gagal — Belum Dikonfigurasi
{
"success": false,
"code": "CHECK_NOT_CONFIGURED",
"message": "Check ID ini belum tersedia atau belum dipublikasikan.",
"data": null
}mobile-legends dan free-fire akan diproses hanya jika mapping Check ID-nya aktif dan dipublikasikan. Daftar yang tampil di bawah berasal dari mapping publik yang tersedia.Game
Biaya 5 token / cekaov
cod
fcmobile
free-fire
genshin-impact
honkai-star-rail
hok
la
mobile-legends
pointblank
pubgm
roblox
undawn
undawn
valorant
E-Wallet Maintenance
Biaya 15 token / cekdana
gopay
linkaja
ovo
shopeepay
PLN
Biaya 10 token / cekBank Maintenance
Biaya 20 token / cek014
009
002
542
008
490
503
535
Webhook Status Transaksi
Webhook tidak membuat transaksi baru. Webhook hanya memberitahukan perubahan status transaksi API.
| Header | Keterangan |
|---|---|
X-Bocastore-Event | transaction.status.pending, transaction.status.sukses, atau transaction.status.gagal. |
X-Bocastore-Timestamp | Unix timestamp saat webhook dibuat. |
X-Bocastore-Signature | sha256=HMAC_SHA256(timestamp + '.' + raw_json, webhook_secret). |
X-Bocastore-Delivery | ID delivery internal untuk tracing. |
Contoh Payload
{
"event": "transaction.status.sukses",
"success": true,
"data": {
"ref_id": "TRX-20260905-0001",
"trx_id": "TRX260905XXXX",
"status": "Sukses",
"sn": "SN-123456",
"service": "5 Diamonds",
"target": "290716936",
"zone": "9508",
"price": 1500,
"updated_at": "2026-09-05T06:00:00+07:00"
}
}IP Server
IP server aplikasi yang dapat digunakan sebagai referensi whitelist: 202.73.25.122. Dari log API yang tersedia, request keluar server juga tercatat dari 82.25.62.250; verifikasi di cPanel sebelum whitelist.
Bocastore Merchant Payment API
api_id dan sign. Merchant harus sudah disetujui admin. Saldo merchant terpisah dari saldo website dan hanya bertambah setelah callback pembayaran tervalidasi.Daftar metode pembayaran aktif dan tersedia. Setiap metode menyertakan code yang dipakai pada parameter method saat membuat pembayaran. Nama provider gateway internal tidak ditampilkan.
{
"api_id": "API_ID_RESELLER",
"sign": "SIGN_RESELLER",
"external_id": "INV-20261011-0001",
"amount": 25000,
"method": "KODE_METODE_AKTIF",
"name": "Nama Pembeli",
"phone": "08123456789",
"description": "Pembayaran invoice"
}external_id unik per merchant. Retry dengan external_id yang sama mengembalikan transaksi lama, tidak membuat pembayaran kedua. Nilai minimum awal Rp1.000.
{
"api_id": "API_ID_RESELLER",
"sign": "SIGN_RESELLER",
"external_id": "INV-20261011-0001"
}Gunakan reference atau external_id untuk membaca status transaksi. Callback untuk gateway generik: /api/v1/merchant/callback/{gateway_code}; pastikan pengaturan callback gateway memakai signature verification yang sesuai. Metode bawaan yang callback-nya dikelola controller khusus website memerlukan integrasi callback merchant tersendiri sebelum digunakan untuk settlement otomatis.
Contoh respons pembayaran
{
"success": true,
"data": {
"reference": "MRC-XXXXXXXX",
"external_id": "INV-20261011-0001",
"method": "KODE_METODE_AKTIF",
"amount": 25000,
"status": "pending",
"payment_no": "nomor-atau-url-pembayaran",
"checkout_url": "https://contoh-pembayaran"
}
}Keamanan & Konfigurasi
API Key
API Key adalah secret. Jangan ditaruh di JavaScript/frontend publik atau dikirim sebagai field JSON.
Signature
Gunakan API Key untuk menghitung MD5 sesuai operasi. Server akan memverifikasi signature sebelum request diproses.
ref_id
Satu ref_id mewakili satu transaksi logis. Retry transaksi harus mempertahankan ref_id yang sama.
Rate Limit
Endpoint transaction dibatasi untuk mencegah request berulang yang berlebihan.
HTTP Status
| 200 | Request berhasil. |
| 401 | API ID atau signature tidak valid. |
| 403 | Akses API akun tidak diizinkan. |
| 404 | Produk/transaksi tidak ditemukan. |
| 409 | ref_id sudah digunakan dengan payload berbeda. |
| 422 | Parameter tidak valid atau transaksi gagal. |
| 429 | Terlalu banyak request. |
| 503 | API sedang dinonaktifkan. |