Dokumentasi API Terpadu

Dokumentasi API Host-to-Host (H2H)

Selamat datang di dokumentasi resmi API NS Reload (Reload System v2). Sistem kami menggunakan standar RESTful JSON API berkinerja tinggi, aman, dan mendukung transaksi pulsa, paket data, voucher game, token PLN, e-wallet, dan produk PPOB secara real-time.

Base URL Production:
https://nsreload.com/api/h2h/trx
Format Data & Method:
Content-Type: application/json | HTTP Method: POST

1. Autentikasi Member

Setiap request ke API wajib menyertakan api_key rahasia milik member langsung di dalam Body JSON parameter request tanpa perlu menghitung hash MD5.

Format Pengiriman API Key (Body JSON):

Sertakan parameter api_key Anda di dalam payload JSON seperti contoh berikut:

{
  "api_key": "abab1212abab1212abab1212abab1212",
  ...
}

2. Kirim Transaksi (Topup)

POST /api/h2h/trx

Digunakan untuk melakukan pengisian pulsa, paket data, PLN, atau e-money ke nomor tujuan secara instan.

Parameter Request (JSON Body):
Parameter Tipe Wajib? Keterangan
api_key String Ya API Key unik member yang terdaftar.
commands String Ya Perintah transaksi, isi: topup.
produk String Ya Kode produk SKU yang akan dibeli (contoh: S5, CEKPLN).
tujuan String Ya Nomor HP atau ID Pelanggan tujuan transaksi.
ref_id String Ya ID Transaksi unik dari sistem partner (Anti-Duplikasi).
Contoh Request (JSON):
{
  "api_key": "abab1212abab1212abab1212abab1212",
  "commands": "topup",
  "ref_id": "TRX-2026-0001",
  "tujuan": "082210138584",
  "produk": "S5"
}
Contoh Response Sedang Diproses (Pending):
{
  "data": {
    "ref_id": "TRX-2026-0001",
    "status": 0,
    "produk": "S5",
    "tujuan": "082210138584",
    "price": 5340,
    "message": "PROCESS",
    "stok": 94660,
    "trx_id": "128",
    "rc": "39",
    "sn": ""
  }
}
Contoh Response Sukses:
{
  "data": {
    "ref_id": "TRX-2026-0001",
    "status": 1,
    "produk": "S5",
    "tujuan": "082210138584",
    "price": 5340,
    "message": "S5.1.082210138584 SUKSES. SN: 04253900000262702449. Stok 100.000 - 5.340 = 94.660 @30/08 11:27:37. - NSRELOAD -",
    "stok": 94660,
    "trx_id": "128",
    "rc": "00",
    "sn": "04253900000262702449"
  }
}
Contoh Response Gagal:
{
  "data": {
    "ref_id": "TRX-2026-0001",
    "status": 2,
    "produk": "S5",
    "tujuan": "082210138584",
    "price": 5340,
    "message": "S5.1.082210138584 GAGAL. Stok member tidak mencukupi @30/08 11:27:37. Saldo dikembalikan. - NSRELOAD -",
    "stok": 94660,
    "trx_id": "0",
    "rc": "07",
    "sn": ""
  }
}

3. Cek Status Otomatis (Idempotency)

Jika sistem Anda ingin memastikan status transaksi lama atau terjadi timeout jaringan saat pengiriman request, Anda dapat menembakkan request transaksi ulang dengan ref_id yang sama ke endpoint /api/h2h/trx.

Anti Double-Charging: Server NS Reload tidak akan memotong stok/saldo Anda dua kali, dan langsung mengembalikan status terakhir transaksi dengan message konfirmasi: SUCCESS, transaksi sdh pernah ada.
Format Response Cek Status:
{
  "data": {
    "ref_id": "TRX-2026-0001",
    "status": 1,
    "produk": "S5",
    "tujuan": "082210138584",
    "price": 5340,
    "message": "SUCCESS, transaksi sdh pernah ada",
    "stok": 94660,
    "trx_id": "128",
    "rc": "00",
    "sn": "04253900000262702449"
  }
}

4. Cek Status Khusus

POST /api/h2h/status

Jika sistem Anda membutuhkan jalur khusus murni untuk menanyakan status pesanan tanpa memanggil endpoint topup.

Parameter Request (JSON Body):
Parameter Tipe Wajib? Keterangan
api_key String Ya API Key unik member yang terdaftar.
ref_id String Wajib* Ref ID unik pesanan Anda saat melakukan order.
trx_id String Wajib* Atau ID transaksi sistem yang diberikan oleh NS Reload.
*Wajib menyertakan salah satu antara ref_id atau trx_id.
Contoh Request (JSON):
{
  "api_key": "abab1212abab1212abab1212abab1212",
  "ref_id": "TRX-2026-0001"
}
Contoh Response (HTTP 200):
{
  "data": {
    "ref_id": "TRX-2026-0001",
    "status": 1,
    "produk": "S5",
    "tujuan": "082210138584",
    "price": 5340,
    "message": "SUCCESS",
    "stok": 94660,
    "trx_id": "128",
    "rc": "00",
    "sn": "04253900000262702449"
  }
}

5. Cek Stok (Saldo) Member

POST /api/h2h/saldo

Digunakan untuk memeriksa sisa stok / saldo deposit member secara real-time. Saldo dikembalikan dalam bilangan bulat Rupiah murni.

Contoh Request (JSON):
{
  "cmd": "saldo",
  "api_key": "abab1212abab1212abab1212abab1212"
}
Contoh Response (HTTP 200):
{
  "success": true,
  "nama": "Nama Agen Partner",
  "kode_member": "NS00001",
  "stok": 1500000,
  "rc": "00",
  "message": "Cek Stok Berhasil"
}

6. Daftar Produk & Harga

GET / POST /api/h2h/produk

Mengambil daftar seluruh produk SKU aktif beserta harga jual terkini. Mendukung filter opsional operator, kategori, atau pencarian search.

Contoh Request (JSON POST / URL Query):
{
  "api_key": "abab1212abab1212abab1212abab1212",
  "operator": "TELKOMSEL"
}
Contoh Response (HTTP 200):
{
  "success": true,
  "total": 1,
  "data": [
    {
      "produk": "S5",
      "nama_produk": "Telkomsel 5.000",
      "kategori": "Pulsa",
      "operator": "TELKOMSEL",
      "harga": 5340,
      "status": "aktif",
      "deskripsi": "Telkomsel 5.000 Reguler"
    }
  ]
}

7. Webhook Callback (Notifikasi Otomatis)

Ketika transaksi yang berstatus 0 (PROCESS) telah selesai diproses oleh supplier (menjadi Sukses atau Gagal), server NS Reload akan secara otomatis mengirimkan HTTP POST Callback ke URL Webhook yang Anda daftarkan pada profil member.

Payload JSON Webhook yang Dikirimkan:
{
  "data": {
    "ref_id": "TRX-2026-0001",
    "status": 1,
    "produk": "S5",
    "tujuan": "082210138584",
    "price": 5340,
    "message": "S5.1.082210138584 SUKSES. SN: 04253900000262702449. Stok 100.000 - 5.340 = 94.660 @30/08 11:27:37. - NSRELOAD -",
    "stok": 94660,
    "trx_id": "128",
    "rc": "00",
    "sn": "04253900000262702449"
  }
}
Respon Server Partner: Endpoint webhook partner diharapkan membalas HTTP Status 200 OK saat menerima callback.

8. Standar Status & Response Code (RC)

Gunakan tabel Response Code dan Status di bawah ini untuk standardisasi mapping status transaksi pada sistem Anda.

Tabel Status Utama:
Status Integer Label RC Default Keterangan
1 Sukses 00 Transaksi berhasil diselesaikan oleh provider/supplier dan SN telah terbit.
0 Pending / Process 39 Transaksi sedang diproses oleh supplier. Tunggu webhook atau lakukan cek status.
2 Gagal 07 Transaksi gagal diproses. Saldo member aman / otomatis dikembalikan.
Daftar Lengkap Response Code (RC):
RC Kategori Deskripsi Sistem
00 SUCCESS Transaksi Berhasil / Sukses.
39 PROCESS Transaksi Sedang Diproses Supplier.
06 TRANSACTION NOT FOUND Ref ID tidak ditemukan saat cek status.
07 FAILED Transaksi Gagal / Saldo Tidak Mencukupi.
13 BLOCKED Nomor Pelanggan Terblokir / Masa Tenggang.
14 INVALID DESTINATION Nomor Tujuan Tidak Valid / Kurang Digit.
20 CODE NOT FOUND Kode Produk SKU Tidak Ditemukan.
106 OUT OF SERVICE Produk Sedang Gangguan / Nonaktif Sementara.
121 LIMIT EXCEEDED Nomor Tujuan Telah Melampaui Limit Bulanan Operator.
204 AUTH / IP ERROR API Key Salah atau IP Tidak Terdaftar di Whitelist.