Welcome Developer

Untuk para pengembang software, kami menyediakan API (Application Programming Interface) sebagai salah satu pilihan interkoneksi dengan sistem kami. API ini dapat digunakan untuk melakukan  cek saldo, pengisian ulang pulsa reguler, paket data, pulsa sms, token pln, voucher game, ppob dan semua layanan lainnya yang tersedia di D’FLASH.

Method yang digunakan untuk request yaitu HTTP GET / HTTP POST dan callback dalam format JSON.

Syarat & petunjuk penggunaan API :

  1. Memiliki IP Statis
    Anda hanya bisa melakukan transaksi dari IP yang terdaftar. Setiap ada perubahan IP anda harus menghubungi CS kami agar dapat melanjutkan transaksi kembali
  2. Menyiapkan URL Callback / Report / Reversal
    Setiap laporan transaksi sukses, gagal, ataupun refund akan kami kirimkan ke URL ini
  3. Password
    Password khusus transaksi API (bukan pin, password webreport, atau password aplikasi) Siapkan password transaksi yang rumit dan sulit ditebak. Boleh mengandung karakter khusus
  4. Support rumus signature versi kami
    Untuk pengamanan transaksi kami menggunakan parameter signature sehingga setiap transaksi akan menghasilkan signature yang berbeda
  5. Menggunakan refid transaksi
    Refid transaksi adalah id transaksi di server anda. Berfungsi sebagai proteksi transaksi dobel, yaitu mencegah transaksi dengan refid sama terproses dua kali jika dikirimkan ulang. Untuk mengisi dengan produk & No HP sama silahkan gunakan refid yang berbeda
  6. Transaksi PPOB
    Alur transaksi PPOB yaitu anda cek tagihan terlebih dahulu, (setelah reply sukses cek tagihan dari kami keluar sistem anda mengecek apakah saldo reseller anda cukup untuk membayar tagihan ) lalu anda bisa kirim perintah bayar tagihan. Tapi apakah bisa langsung bayar tagihan tanpa cek terlebih dahulu? Bisa..
    Dan untuk detail tambahan tagihan PPOB akan tercantum dalam variabel keterangan

Rumus parameter signature :

// $template = “OtomaX|” + memberId + “|” + product + “|” + dest + “|” + refID + “|” + pin + “|” + password
$template = base64_encode(sha1(‘OtomaX|DS0000|TSP10|08223334455|3452123|8715|yunw)uc&@’,true));
$sign = str_replace(‘/’, ‘_’, str_replace(‘+’, ‘-‘ ,rtrim($template, ‘=’)));
echo $sign;
// sign will be -> z4KNbX-NIUk0_GQb-hMCx17DBCU
?>

Untuk cek transaksi, cek saldo yang tidak terdapat parameter product, dest ataupun refID, rumus signature tidak berubah hanya saja parameter tersebut dikosongkan.
Contoh template : OtomaX|DS0000||||8715|yunw)uc&@

Format API Cek Saldo :

Request HTTP GET / POST: 
http://ip_dflash/balance?memberID=[memberid]&sign=[sign]

Response :
{
“status”: 20,
“memberID”: “H2H001”,
“nama”: “DFLASH”,
“trxcount”: 382132,
“saldo”: 254408825,
“pemakaian”: 771305850
}

Keterangan respon :
status= 20 sukses cek saldo
memberID = Kode Agen anda pada sistem kami
nama = nama yang terdaftar
trxcount= jumlah qty transaksi sukses + transaksi dalam proses
saldo = sisa saldo
pemakaian = akumulasi penjualan di hari tsb (termasuk transaksi dalam proses)

Format API Transaksi Pulsa/Token/Paket data/Voucher/PPOB/All product :

Request HTTP GET / POST: 
http://ip_dflash/trx?memberID=[memberid]&product=[product]&dest=[tujuan]&refID=[refid]&sign=[sign]

Contoh:
http://ip_dflash/trx?memberID=DS0000&product=TSP10&dest=08223334455&refID=3452123&sign=z4KNbX-NIUk0_GQb-hMCx17DBCU

Keterangan Parameter :
ip_dflash = akan diberikan oleh cs ketika sudah mendaftar
memberID = Kode Agen anda pada sistem kami
pin = pin transaksi
password = password khusus transaksi yang dibuat ketika mendaftarkan IP (bukan password webreport, aplikasi android atau lainnya)
product = kode produk
tujuan = id meter/ id pelanggan / id user game / nomor yang mau diisi
refID = no referensi transaksi dari server anda
sign = signature (rumus ada dibawah)

Response transaksi telah masuk antrian:
{
“refid”: “112”,
“check”: false,
“double”: false,
“tgl_entri”: “2018-07-13T23:01:27”,
“tgl_status”: “2018-07-13T23:01:27”,
“kode_produk”: “AS”,
“tujuan”: “082219199696”,
“status”: 22,
“status_text”: ” Sukses masuk antrian”,
“message”: “R#112 AS ke 082219199696 Sukses masuk antrian”
}

Response refid sama sudah pernah di transaksikan (transaksi dobel, otomatis ditolak) :
{
“refid”: “11221212”,
“check”: false,
“double”: true,
“tgl_entri”: “2018-10-02T22:12:51.24”,
“tgl_status”: “2018-10-02T22:12:53.26”,
“kode_produk”: “T5”,
“tujuan”: “089656065539”,
“counter”: 1,
“status”: 20,
“sn”: “16100921298113312”,
“keterangan”: “”,
“message”: “”,
“harga”: 5851,
“saldo”: 55269113
}

Response saldo tidak cukup & respon lainnya :
{
“refid”: “113”,
“check”: false,
“double”: false,
“tgl_entri”: “2018-07-13T23:01:27”,
“tgl_status”: “2018-07-13T23:01:27”,
“kode_produk”: “ovo500”,
“tujuan”: “082219199696”,
“status”: 43,
“status_text”: “Saldo tidak cukup“,
“message”: “R#113 ovo500 ke 082219199696 Saldo tidak cukup
}

Respon lainnya memiliki struktur yang sama hanya terdapat perbedaan pada kata-kata yang di bold saja. Untuk acuan kode status bisa melihat kamus status dibawah

Callback transaksi dalam format JSON :

{

“refid”: 1550305072
“tgl_entri”: “2019-02-16T15:17:52.56“, 
“tgl_status”: “2019-02-16T15:17:54.057“, 
“kode_produk”: “TSPP10“, 
“tujuan”: “082130871971“, 
“counter”: 1, 
“status”: 20, 
“status_text”: “Sukses“, 
“sn”: “900241003386726321“, 
“keterangan”: “”, 
“message”: “17. TSPP10 ke 082130871971 SUKSES @15:18 16/02 SN: 900241003386726321. Sal: 163.852 – 10.055 = 153.797 #R1550305072 #*Transaksi Lancarrr…“, 
“harga”: 10055
“saldo”: 153797220

}

Keterangan Respon :

refid = No referensi transaksi yang anda kirim
tgl_entri = Waktu transaksi diterima oleh sistem kami
tgl_status = Waktu transaksi selesai di proses oleh sistem kami / Waktu perubahan status transaksi
kode_produk = Kode produk yang diisi
tujuan = No tujuan (Bisa No HP, ID Meter, ID Pelanggan, tergantung produk yang di transaksikan)
counter = Pengisian ke-n dengan nomor&nominal sama dalam 1 hari
status = Kode status transaksi (Keterangan mengenai kode ada disamping)
status_text = Deskripsi status transaksi
sn = Serial number transaksi / kode voucher / no token pln
keterangan = Keterangan tambahan utk transaksi PLN Full reply & transaksi PPOB
message = Respon dalam bentuk string message
harga = Harga produk
saldo = Sisa saldo

Keterangan kode status :

Transaksi belum selesai
0,1 = Sedang dalam proses
2 = Menunggu Jawaban
22 = Masuk antrian

Transaksi sukses
20 = Sukses (transaksi selesai)

Transaksi gagal
40 = Gagal
42 = Format salah
43 = Saldo tidak cukup
44 = Kode produk salah
45 = Stok kosong
47 = Produk gangguan
50 = Dibatalkan
51 = Reseller tidak aktif
52 = Nomor tujuan salah
53 = Tujuan diluar wilayah
55 = Timeout
56 = Nomor di blacklist

Contoh mengolah respon :

<?php
$json
= file_get_contents(‘php://input’);
$array = json_decode($json, true);
echo $array[‘refid’];
echo $array[‘tujuan’];
//Silahkan tambahkan sendiri parameter lainnya
?>

Format API cek status transaksi :

Request HTTP GET / POST:
Mengecek transaksi menggunakan refid :

http://ip_dflash/check?memberID=[memberid]&refID=[refid]&sign=[sign]

atau mengecek transaksi menggunakan kode_produk & tujuan:

http://ip_dflash/check?memberID=[memberid]&product=[product]&dest=[tujuan]&sign=[sign]

jika terdapat lebih dari satu pengisian dengan kode produk sama ke tujuan yang sama maka data yang ditampilkan adalah transaksi yang paling terakhir dilakukan

Data transaksi tidak ditemukan :
{
“check”: true,
“refid”: “11221212”,
“kode_produk”: “T5”,
“tujuan”: “089656065539”,
“status”: 99,
“message”: “No data”
}

Data transaksi ditemukan :
{
“check”: true,
“refid”: “123713285”,
“tgl_entri”: “2019-07-11T20:45:06.617”,
“tgl_status”: “2019-07-11T20:45:08.85”,
“kode_produk”: “TSPP5”,
“tujuan”: “082233313156”,
“counter”: 1,
“status”: 20,
“sn”: “51003596235111”,
“keterangan”: “”,
“message”: “”,
“harga”: 5360,
“saldo”: 65128
}

Contoh Script Function API dalam PHP :

//Isi dengan data member anda

$memberId = ”; //Kode agen
$pin = ”; //Pin transaksi
$password = ”; //Password transaksi (bukan password webreport!)
$ip_dflash = ”; //Silahkan minta ke CS

Function CreateSign($product,$dest,$refID) {
// $template = “OtomaX|” + memberId + “|” + product + “|” + dest + “|” + refID + “|” + pin + “|” + password
$template = base64_encode(sha1(‘OtomaX|’.$GLOBALS[‘memberId’].’|’.$product.’|’.$dest.’|’.$refID.’|’.$GLOBALS[‘pin’].’|’.$GLOBALS[‘password’],true));
$sign = str_replace(‘/’, ‘_’, str_replace(‘+’, ‘-‘ ,rtrim($template, ‘=’)));
return $sign;
}

//Untuk mengecek IP anda. Pastikan IP yang didaftarkan sudah sama dengan IP yang muncul disini.
Function myip() {
$url = ‘http://’.$GLOBALS[‘ip_dflash’].’/myip’;
$data = file_get_contents($url);
$result = json_decode($data,true);
return $result;
}

//Fungsi untuk transaksi pengisian pulsa, paket data, ppob, dll
Function TopUp($product,$dest,$refID) {
$sign = CreateSign($product,$dest,$refID);
$url = ‘http://’.$GLOBALS[‘ip_dflash’].’/trx?memberID=’.$GLOBALS[‘memberId’].’&product=’.$product.’&dest=’.$dest.’&refID=’.$refID.’&sign=’.$sign;
$data = file_get_contents($url);
$result = json_decode($data,true);
return $result;
}

//Fungsi untuk mengecek status transaksi by refid
Function CheckTrxByID($refID) {
$sign = CreateSign(”,”,$refID);
$url = ‘http://’.$GLOBALS[‘ip_dflash’].’/check?memberID=’.$GLOBALS[‘memberId’].’&refID=’.$refID.’&sign=’.$sign;
$data = file_get_contents($url);
$result = json_decode($data,true);
return $result;
}

//Fungsi untuk mengecek status transaksi by kode produk & tujuan
Function CheckTrxByNo($product,$dest) {
$sign = CreateSign($product,$dest,”);
$url = ‘http://’.$GLOBALS[‘ip_dflash’].’/check?memberID=’.$GLOBALS[‘memberId’].’&product=’.$product.’&dest=’.$dest.’&sign=’.$sign;
$data = file_get_contents($url);
$result = json_decode($data,true);
return $result;
}

//Fungsi untuk mengecek sisa saldo
Function Balance() {
$sign = CreateSign(”,”,”);
$url = ‘http://’.$GLOBALS[‘ip_dflash’].’/balance?memberID=’.$GLOBALS[‘memberId’].’&sign=’.$sign;
$data = file_get_contents($url);
$result = json_decode($data,true);
return $result;
}

//Fungsi untuk menarik daftar harga
Function PriceList() {

$url = ‘https://dflash.co.id/harga/pricelist_json.php’;
$data = file_get_contents($url);
$result = json_decode($data);
return $result;
}
?>