API Documentation
Complete guide to integrate with our API
Base URL
All API requests must use this base
https://itopup.jasaberkas.com/api/v1
Request Format
HTTP Method and Content Type
Authentication & Signature
How to generate valid API signature
Setiap request wajib menyertakan api_id dan
sign.
Signature dibuat menggunakan hash MD5.
sign = md5(api_id + api_key)
sign = md5(api_id + api_key + ref_id)
// cek-saldo & price-list $sign = md5($api_id . $api_key); // transaction $sign = md5($api_id . $api_key . $ref_id);
Bad Request
Invalid Sign
IP Blocked
Not Found
Endpoints
/api/v1/cek-saldo
Cek Saldo
Mengecek saldo balance yang tersedia pada akun Anda.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
api_id |
string | Required | API ID dari halaman API Settings |
sign |
string | Required | MD5(api_id + api_key) |
Code Example
$apiId = 'your_api_id'; $apiKey = 'your_api_key'; $sign = md5($apiId . $apiKey); $response = Http::post('https://itopup.jasaberkas.com/api/v1/cek-saldo', [ 'api_id' => $apiId, 'sign' => $sign, ]);
Response Success (200)
{"data" : { "balance" : 150000 }}
Response Error
{"error": "Signature tidak valid"}
/api/v1/price-list
Price List
Mengambil daftar produk yang tersedia beserta harga dan statusnya.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
api_id |
string | Required | API ID dari halaman API Settings |
sign |
string | Required | MD5(api_id + api_key) |
Code Example
$apiId = 'your_api_id'; $apiKey = 'your_api_key'; $sign = md5($apiId . $apiKey); $response = Http::post('https://itopup.jasaberkas.com/api/v1/price-list', [ 'api_id' => $apiId, 'sign' => $sign, ]);
Response Success (200)
{
"data":
[{
"product_name": "Pulsa 10.000",
"code": "TSEL10",
"price": 11500,
"status": "active"
}]
}
Response Error
{
"error": "Signature tidak valid"
}
/api/v1/transaction
Transaction
Membuat transaksi pembelian produk. Pastikan saldo mencukupi sebelum melakukan transaksi.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
api_id |
string | Required | API ID dari halaman API Settings |
sign |
string | Required | MD5(api_id + api_key + ref_id) |
ref_id |
string | Required | ID unik transaksi dari sistem Anda |
code |
string | Required | Kode produk dari price-list |
target |
string | Required | Nomor tujuan (nomor HP, ID game, dll) |
Code Example
$apiId = 'your_api_id'; $apiKey = 'your_api_key'; $refId = 'TRX-' . time(); $sign = md5($apiId . $apiKey . $refId); $response = Http::post('https://itopup.jasaberkas.com/api/v1/transaction', [ 'api_id' => $apiId, 'sign' => $sign, 'ref_id' => $refId, 'code' => 'TSEL10', 'target' => '08123456789', ]);
Response Success (200)
{
"success": true,
"trx_id": "TRX-20240101-ABC",
"status": "Sukses",
"sn": "1234567890"
}
Response Error
// 402 — Saldo kurang { "success": false, "message": "Saldo tidak mencukupi" }
/api/v1/transaction
Cek Status
Cek status transaksi dengan mengirim ulang request menggunakan ref_id yang sama.
Cara Kerja Cek Status
Gunakan endpoint yang sama dengan ref_id identik. Sistem akan mengembalikan status terkini tanpa membuat transaksi baru.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
api_id |
string | Required | API ID dari halaman API Settings |
sign |
string | Required | MD5(api_id + api_key + ref_id) |
ref_id |
string | Required | ref_id dari transaksi yang ingin dicek |
code |
string | Required | Kode produk (sama seperti transaksi awal) |
target |
string | Required | Target (sama seperti transaksi awal) |
Code Example
$refId = 'TRX-EXISTING-ID'; $sign = md5($apiId . $apiKey . $refId);
Response Success
{
"status": "Sukses"
}