Select Action |
Endpoint | https://pay.tokomini.net/api/v3 | ||||||||||||
HTTP Method | GET | ||||||||||||
HTTP Header |
|
||||||||||||
Payload |
Berikut ini adalah struktur JSON yang diharapkan:
|
{
"status": true,
"command": "balance",
"message": "IDR 3.809.488",
"balance": 3809488
}
Endpoint | https://pay.tokomini.net/api/pricelist | ||||||||
HTTP Method | GET | ||||||||
HTTP Header |
|
||||||||
Payload |
Payload ini bersifat opsional dan hanya berpengaruh ke informasi harga produk.
Jika payload diisi, maka hanya akan terdapat informasi product_price pada response data. Nilai product_price akan menyesuaikan otomatis dengan status akun kamu (reguler atau reseller). Jika payload tidak diisi, maka pada response akan terdapat informasi product_regular_price dan product_reseller_price pada response data. Jika ingin menambahkan payload, berikut struktur JSON yang diharapkan:
|
{
"status": true,
"command": "services",
"message": "List of Topup & Vouchers Products",
"data": [
{
"product_code": "A10",
"product_cat": "pulsa",
"product_opt": "Axis",
"product_name": "Axis 10rb [SRV1]",
"product_regular_price": 10810,
"product_reseller_price": 10800,
"product_desc": null,
"product_ready": true
},
{
"product_code": "TSD20",
"product_cat": "kuota_telkomsel",
"product_opt": "Telkomsel Best Deal (Promo)",
"product_name": "Surprise Deal 20GB (2G/3G/4G) 24jam/30hr",
"product_regular_price": 99999,
"product_reseller_price": 88888,
"product_desc": "Promo hanya berlaku bagi nomor Telkomsel dengan usia lebih dari 90 hari",
"product_ready": false
},
{
"product_code": "PLN20",
"product_cat": "token_pln",
"product_opt": "Token PLN",
"product_name": "Token PLN 20 [SRV2]",
"product_regular_price": 20030,
"product_reseller_price": 20000,
"product_desc": null,
"product_ready": true
},
{
"product_code": "CPLN",
"product_cat": "tagihan_pln",
"product_opt": "PPOB Tagihan PLN",
"product_name": "Cek Tagihan PLN",
"product_regular_price": 0,
"product_reseller_price": 0,
"product_desc": "Tagihan adalah nominal di akhir SN saat pengecekan.",
"product_ready": true
}
]
}
{
"status": true,
"command": "services",
"message": "List of Topup & Vouchers Products",
"data": [
{
"product_code": "A10",
"product_cat": "pulsa",
"product_opt": "Axis",
"product_name": "Axis 10rb [SRV1]",
"product_price": 10810,
"product_desc": null,
"product_ready": true
},
{
"product_code": "TSD20",
"product_cat": "kuota_telkomsel",
"product_opt": "Telkomsel Best Deal (Promo)",
"product_name": "Surprise Deal 20GB (2G/3G/4G) 24jam/30hr",
"product_price": 99999,
"product_desc": "Promo hanya berlaku bagi nomor Telkomsel dengan usia lebih dari 90 hari",
"product_ready": false
},
{
"product_code": "PLN20",
"product_cat": "token_pln",
"product_opt": "Token PLN",
"product_name": "Token PLN 20 [SRV2]",
"product_price": 20030,
"product_desc": null,
"product_ready": true
},
{
"product_code": "CPLN",
"product_cat": "tagihan_pln",
"product_opt": "PPOB Tagihan PLN",
"product_name": "Cek Tagihan PLN",
"product_price": 0,
"product_desc": "Tagihan adalah nominal di akhir SN saat pengecekan.",
"product_ready": true
}
]
}
Value | Description |
---|---|
product_code | Kode produk yang digunakan sebagai identitas produk (bersifat unik). |
product_cat | Kategori produk berdasarkan jenis produk (pulsa, pulsa_transfer, voucher_internet, token_pln, kuota_telkomsel, telkomsel_bulk, kuota_indosat, kuota_tri, kuota_smarfren, kuota_axis, kuota_xl, voucher_wifi_id, paket_telpon_sms, e_wallet, e_money, ojek_online, topup_game, voucher_game, tagihan_pln, bpjs_kesehatan, pdam, tagihan_lainnya). |
product_opt | Kategori produk berdasarkan jenis dan penyedia produk (Axis, Voucher Axis Nasional, Garena, Mobile Legends Murah Terbaik, dll) |
product_name | Nama Produk dan Deskripsi Ringkas |
product_price | Harga produk (menyesuaikan dengan status akun reseller atau reguler). |
product_regular_price | Harga produk untuk akun reguler (umum). |
product_reseller_price | Harga produk untuk akun reseller. |
product_desc | Deskripsi produk lebih detail dan/atau panduan order. |
product_ready | Status produk. Jika true berarti produk tersedia. Jika false berarti produk tidak tersedia. |
Endpoint | https://pay.tokomini.net/api/v3 | ||||||||||||||||||||||||||||
HTTP Method | POST | ||||||||||||||||||||||||||||
HTTP Header |
|
||||||||||||||||||||||||||||
Payload |
Berikut ini adalah struktur JSON yang diharapkan untuk transaksi tunggal:
Berikut struktur JSON untuk transaksi lebih dari satu.
Cara mengetahui apakah suatu produk perlu customer_id atau tidak, silakan coba buka order form melalui web atau aplikasi.
|
{
"status": true,
"command": "order",
"message": "Order Completed.",
"data": {
"101": {
"message": "Success: New order added.",
"idtrx": 96116,
"price": 1700,
"balance": 7819895
},
"102": {
"message": "Success: New order added.",
"idtrx": 96117,
"price": 17955,
"balance": 7801940
}
}
}
{
"status": true,
"command": "order",
"message": "Order Completed.",
"data": {
"101": {
"message": "Failed: duplicate buyer_id or the latest transaction still in progress.",
"idtrx": 19992,
"buyer_id": "101"
}
}
}
{
"status": true,
"command": "order",
"message": "Order Completed.",
"data": {
"101": {
"message": "Order Failed: Insufficient balance",
"idtrx": null,
"balance": 352
}
}
}
{
"status": true,
"command": "order",
"message": "Order Completed.",
"data": {
"101": {
"message": "Failed: Product is not available right now",
"idtrx": null,
}
}
}
{
"status": true,
"command": "order",
"message": "Order Completed.",
"data": {
"101": {
"message": "Failed: Product not found",
"idtrx": null,
}
}
}
{
"status": true,
"command": "order",
"message": "Order Completed.",
"data": {
"101": {
"message": "Error: Please report to Administrator",
"idtrx": null,
}
}
}
Endpoint | https://pay.tokomini.net/api/v3 | ||||||||||||||||
HTTP Method | GET | ||||||||||||||||
HTTP Header |
|
||||||||||||||||
Payload |
Berikut ini adalah struktur JSON yang diharapkan:
|
{
"status": true,
"command": "viewTrx",
"message": "Transaction Details",
"data": {
"95123": {
"buyer_id": "10001",
"phone_number": "082314839277",
"customer_id": "",
"cost": 19825,
"timestamp": 1626598572,
"status": "FAILED",
"sn": "nomor yang anda tuju salah/belum diaktivasi"
}
}
}
Contoh JSON response multiple transaksi.
{
"status": true,
"command": "viewTrx",
"message": "Transaction Details",
"data": {
"7235": {
"buyer_id": "10003",
"phone_number": "082314839277",
"customer_id": "",
"cost": 19825,
"timestamp": 1626598572,
"status": "FAILED",
"sn": "nomor yang anda tuju salah/belum diaktivasi"
},
"7236": {
"buyer_id": "10002",
"phone_number": "085725882711",
"customer_id": "",
"cost": 19825,
"timestamp": 1626598572,
"status": "SUCCESS",
"sn": "20190902131126130917/RIZQI ALDI PRAYUGO "
},
"7242": {
"buyer_id": "10001",
"phone_number": "085725882711",
"customer_id": "0",
"cost": 19825,
"timestamp": 1626598572,
"status": "PENDING",
"sn": null
}
}
}
Value | Description |
---|---|
buyer_id | ID transaksi dari pembeli (kamu), digunakan untuk mencegah duplicate transaksi dengan buyer_id yang sama. |
phone_number | Nomor HP Tujuan. |
customer_id | ID Pelanggan untuk transaksi tertentu. |
cost | Harga produk atau biaya transaksi. |
timestamp | Waktu perubahan status transaksi dalam format timestamp. |
status |
Valunya antara FAILED, PENDING, dan SUCCESS.
FAILED = transaksi gagal, biaya telah dikemabikan ke saldo akun. PENDING = transaksi masih dalam proses. SUCCESS = transaksi berhasil. |
sn | Jika transaksi berhasil, sn adalah serial number transaksi. Sedangkan jika gagal, maka sn adalah keterangan/penyebab kegagalan. |
Webhook atau disebut juga Callback adalah fitur untuk mendapatkan update status transaksi secara realtime. Ketika di server kami status transaksimu berubah, server kami akan mengirimkan data ke callback URL yang kamu setting di halaman pengaturan API.
Dengan webhook, kamu tidak perlu menjalankan API request (command = viewTrx) menggunakan crontab/cronjob untuk mendapatkan status transaksi.
Itu artinya, script kamu hanya akan dieksekusi ketika ada perubahan status transaksi yang dikirim dari server kami. Hal tersebut akan menghemat resource.
Kamu punya 3 cara untuk mendapatkan update status transaksi:
Pertama, menggunakan API Request (command = viewTrx)
Kedua, menggunakan Webhook atau Callback URL
Ketiga, menggunakan kombinasi keduanya. Contoh: kamu menyediakan webhook, tetapi untuk backup kamu juga menjalankan API request setiap 1 jam.
Kamu bisa memimilih mana yang sesuai dengan kebutuhanmu. Kami menyarankan menggunakan opsi ketiga.
Bagaimana cara membuat Webhook atau Callback URL?
Kamu hanya perlu membuat sebuah page yang menerima HTTP POST Request. Kami akan mengirim JSON data menggunakan metode POST setiap ada update status transaksi. Lalu, kamu bisa memproses data tersbut untuk menjalankan query database.
Berikut struktur JSON yang kami kirim ke Callback URL:
{
"auth": "68b739692fa849e6572ee31610a75750",
"idtrx": 95123,
"buyer_id": "10001",
"trx_code": "I5",
"phone_number": "085725882711",
"customer_id": 0,
"cost": 5760,
"timestamp": 1626598572,
"status": true,
"note": "4774-9099-7991-7104-8383/TOKO MINI NET/R1M/900/13.5"
}
Parameter | Description | Data Type |
---|---|---|
auth | Merupakan hasil hash md5 (callback_key + idtrx). | String |
buyer_id | ID transaksi dari kamu, digunakan untuk mencegah duplicate transaksi dengan buyer_id yang sama. | String |
idtrx | ID transaksi yang mengalami perubahan status. | Integer |
trx_code | Kode produk yang dibeli. | String |
phone_number | Nomor HP Tujuan. | String |
customer_id | ID Pelanggan untuk transaksi tertentu. | String |
cost | Biaya atau harga transaksi. | Integer |
timestamp | Waktu perubahan status transaksi dalam format timestamp. | Integer |
status | Status transaksi. Jika true artinya sukses. Jika false artinya gagal. | Boolean |
note | Serial number atau keterangan transaksi. | String |
Jangan lupa untuk mendaftarkan URL webhook kamu di halaman Pengaturan API. Jangan sungkan untuk menghubungi kami jika ada yang belum jelas.
Kami sarankan untuk memfilter callback URL hanya bisa diakses oleh IP pay.tokomini.net, yakni 103.147.32.13 . Jika terjadi perubahan IP akan diinformasikan melalui grup telegram.
Untuk mendapatkan data nickname, silakan lakukan HTTP Request GET ke endpoint berikut.
Game | URL | Notes |
Mobile Legends | https://pay.tokomini.net/api/id/mlbb/player_id | Ubah player_id ke ID game yang sesuai. Untuk mobile legends: id game adalah gabungan user_id dan server_id. (contoh: jika user_id kamu 79100601 dan server_id 2149, maka player_id adalah 791006012149) |
{
"apikey": "LIcAYp3FfOPCBQJ6cGfoQj22vjMMjfbRR3MKh3WJJlOPCxFdptPZWKV77V7xkTx1"
}
Contoh Responses:
{
"status": true,
"nickname": "MbahPocong"
}
{
"status": false,
"nickname": null
}
Error Message | Solution |
Forbidden: invalid data format, please use JSON data format. | Cek kembali struktur JSON pada data yang kamu kirim. |
Forbidden: apikey and command are invalid. | Pastikan parameter apikey (64 karakter) dan command telah diisi (maksimal 16 karakter). |
Bad Request: invalid or incomplete parameter(s). | Cek kembali tipe data parameter (apakah string atau integer), dan sesuai format yang wajar, don't try to hack us. |
Bad Request: command not found. | Parameter command yang Anda masukan salah, baca lagi dokumentasi. |
Invalid API Key. | API Key salah, cek lagi API Key yang kamu kirim di parameter apikey. |
IP Address is not match. | Cek pengaturan API, pastikan IP Address sama dengan IP Address API Client kamu. |
Status Transaksi | Request | Response via Callback |
Sukses |
|
|
Gagal |
|
|