Skip to main content

Order Prepaid & Voucher Game

Endpoint untuk melakukan transaksi pulsa, paket data, dan voucher game.

Endpoint: POST /v1/order

Parameter Request

ParameterTipeWajibKeterangan
api_idstringAPI ID
timestampintegerUnix timestamp
signaturestringHMAC-SHA256
cmdstringprepaid untuk pulsa/data, game untuk voucher game
codestringKode produk dari Daftar Produk
customer_nostringNomor HP tujuan (pulsa/data) atau ID game (voucher)
ref_idstringID referensi unik — jika kosong di-generate otomatis
testingbooleantrue untuk mode testing (tidak potong saldo). Default: false

Contoh Request

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

// Business params
$businessParams = [
'cmd' => 'prepaid',
'code' => 'TSEL21',
'customer_no' => '08123456789',
'ref_id' => 'TRX' . uniqid(),
];

// 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/order');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

Contoh Response

{
"success": true,
"code": "ORDER_SUCCESS",
"message": "Transaksi berhasil diproses",
"data": {
"ref_id": "TRX12345asdxxx",
"status": "Success",
"customer_no": "08123456789",
"code": "TSEL21",
"name": "Telkomsel 21.000",
"price": 21425,
"sn": "1234-5678-9012-3456",
"created_at": "2026-05-31 10:34:36"
},
"errors": null,
"meta": null
}

Field Response

FieldTipeKeterangan
ref_idstringID referensi transaksi
statusstringStatus transaksi (Pending / Success / Failed)
customer_nostringNomor tujuan transaksi
codestringKode produk
namestringNama produk
priceintegerHarga yang dibayarkan (Rp)
snstring/nullSerial Number / kode voucher (tersedia jika Success)
created_atstringWaktu transaksi dibuat

Status Transaksi

StatusKeteranganTindakan
PendingSedang diprosesTunggu callback atau cek via /status
SuccessBerhasil — sn tersediaUpdate status di sistem Anda
FailedGagal — saldo dikembalikan otomatisNotifikasi user
warning

Jika request timeout, cek status dulu via /status menggunakan ref_id sebelum membuat transaksi baru. Transaksi mungkin sudah berhasil meski response tidak diterima.

Mode Testing

Tambahkan "testing": true untuk simulasi transaksi tanpa memotong saldo.