API Documentation

Complete guide to integrate with our API

Manage API Key

Base URL

All API requests must use this base

https://itopup.jasaberkas.com/api/v1

Request Format

HTTP Method and Content Type

Method POST
Content-Type application/json
Response JSON

Authentication & Signature

How to generate valid API signature

Setiap request wajib menyertakan api_id dan sign. Signature dibuat menggunakan hash MD5.

Sign — cek-saldo & price-list
sign = md5(api_id + api_key)
Sign — transaction
sign = md5(api_id + api_key + ref_id)
PHP Example
// cek-saldo & price-list
$sign = md5($api_id . $api_key);

// transaction
$sign = md5($api_id . $api_key . $ref_id);
400

Bad Request

401

Invalid Sign

403

IP Blocked

404

Not Found

POST /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

PHP / Laravel
$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"}
POST /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

PHP / Laravel
$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)

200 OK
{
  "data": 
  [{
    "product_name": "Pulsa 10.000",
    "code": "TSEL10",
    "price": 11500,
    "status": "active"
  }]
}

Response Error

401 Unauthorized
{
  "error": "Signature tidak valid"
}
POST /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

PHP / Laravel
$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)

200 OK
{
  "success": true,
  "trx_id": "TRX-20240101-ABC",
  "status": "Sukses",
  "sn": "1234567890"
}

Response Error

4xx Error
// 402 — Saldo kurang
{
  "success": false,
  "message": "Saldo tidak mencukupi"
}
POST /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

PHP / Laravel
$refId  = 'TRX-EXISTING-ID';
$sign   = md5($apiId . $apiKey . $refId);

Response Success

{
  "status": "Sukses"
}

Status Values

Sukses Berhasil
Pending Proses
Gagal Gagal