Inquiry
Inquiry
Terakhir diperbarui: 8 September 2026.
Inquiry adalah tahap awal pengecekan dan verifikasi data pelanggan ke provider/biller sebelum transaksi diproses. Inquiry bertujuan untuk:
- Validasi Tujuan: Memastikan nomor meter, ID pelanggan, atau akun e-wallet valid (mencegah salah sasaran).
- Pengambilan Detail: Mengambil data nama pelanggan, daya/tarif, atau rincian nominal tagihan berjalan.
- Penerbitan
reference_id: Mendapatkan ID acuan transaksi yang wajib dilampirkan pada alur Checkout dan Payment.
Proses Inquiry tidak memotong saldo dan belum memproses pembayaran/transaksi. Pembelian baru benar-benar diproses saat mitra melakukan Checkout dan Payment menggunakan reference_id hasil Inquiry.
Tidak semua produk membutuhkan Inquiry. Produk reguler seperti pulsa prabayar dan paket data tidak memerlukan Inquiry dan dapat langsung ditransaksikan via Product List/Checkout.
Inquiry Flow
- Mitra mengirim request ke
POST /client/v2/inquirymenggunakaninquiry_product_code. - Miharogames membuat data Inquiry dan mengirim response berisi
reference_id. - Mitra menyimpan
reference_iddari response Inquiry. - Mitra melakukan polling ke
GET /client/v2/inquiry/statusmenggunakanreference_id. - Jika status
SUCCESS, mitra dapat melanjutkan ke Checkout/Payment denganreference_idyang sama.
Inquiry Products
Endpoint Inquiry menggunakan kode produk inquiry (inquiry_product_code), bukan ID produk denom/transaksi.
Daftar produk dan alur per kategori dapat dilihat pada modul Products.
Top Up E-Money / E-Wallet
| Sub Kategori | inquiry_product_code | Keterangan |
|---|---|---|
| DANA | INQDANA | Inquiry nomor HP / akun DANA. |
| GoPay Customer | INQGPC | Inquiry nomor HP / akun GoPay Customer. |
| LinkAja | INQLAJA | Inquiry nomor HP / akun LinkAja. |
| OVO | INQOVO | Inquiry nomor HP / akun OVO. |
| Shopee Pay | INQSHOPEE | Inquiry nomor HP / akun Shopee Pay. |
| MotionPay | INQMNCPAY | Inquiry nomor HP / akun MotionPay. |
Listrik PLN
| Sub Kategori | inquiry_product_code | Keterangan |
|---|---|---|
| PLN Prabayar | INQPLN | Inquiry meter/ID pelanggan sebelum memilih nominal token. |
| PLN Pascabayar | INQPLNPASCA | Inquiry tagihan listrik bulanan. |
| PLN Non-Taglis | INQPLNNONTAGLIS | Inquiry tagihan non-listrik PLN. |
Kode inquiry di atas bersifat tetap untuk mitra dan dapat digunakan pada environment development maupun production.
Create Inquiry
POST /client/v2/inquiry
Authorization: Bearer o8coocg8k0ss4wcgk0o8........
X-SECRET-KEY: {partner_secret_key}
Content-Type: application/json
Body
{
"inquiry_product_code": "INQDANA",
"customer_number": "081241576119"
}
Field
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
inquiry_product_code | string | Ya | Kode produk inquiry. Contoh INQDANA. |
customer_number | string | Ya | Nomor tujuan/akun yang ingin dicek. Bisa berupa nomor e-wallet, nomor meter, ID pelanggan, atau nomor tagihan sesuai tipe produk. Maksimal 50 karakter. |
Success Response
{
"status": true,
"message": "Inquiry berhasil diproses.",
"data": {
"inquiry": {
"id": 9497,
"inquiry_number": "PAY/KFI/8/2026/174",
"reference_id": "9497",
"status": "PROCESSING"
}
}
}
Simpan reference_id untuk mengambil hasil Inquiry. Untuk produk yang wajib Inquiry, kirimkan reference_id ini saat Checkout dan Payment dengan nomor tujuan dan sub kategori produk yang sama.
Inquiry Status
GET /client/v2/inquiry/status?reference_id=9497
Authorization: Bearer o8coocg8k0ss4wcgk0o8........
X-SECRET-KEY: {partner_secret_key}
Query
| Query | Wajib | Keterangan |
|---|---|---|
reference_id | Ya | ID referensi yang didapat dari Create Inquiry. |
Success Response
{
"status": true,
"message": "OK",
"data": {
"inquiry": {
"id": 7213,
"product_id": null,
"reference_id": "9497",
"inquiry_number": "PAY/KFI/8/2026/174",
"product_code": "INQDANA",
"customer_number": "081241576119",
"status": "SUCCESS",
"message": "Trx INQDANA.081241576119 BERHASIL,Harga: 0 SN: ID PELANGGAN: 081241576119@NAMA PELANGGAN:FAHRIANNUR",
"message_parsing": {
"type": "e_money",
"account_number": "081241576119",
"account_name": "FAHRIANNUR"
}
}
}
}
product_id pada Inquiry Status tidak selalu terisi. Untuk E-Money dan PLN Prabayar, nilainya null karena mitra tetap memilih produk transaksi dari Product Sync/Product List. Untuk produk yang nominalnya berasal dari Inquiry seperti PLN Pascabayar, PLN Non-Taglis, dan Tagihan Online, product_id akan terisi dan dapat digunakan pada proses Checkout/Payment.Processing Response
{
"status": false,
"message": "Inquiry masih diproses.",
"data": {
"inquiry": {
"reference_id": "9497",
"status": "PROCESSING"
}
}
}
Expired Response
{
"status": false,
"message": "Inquiry sudah kedaluwarsa. Silakan lakukan inquiry ulang.",
"data": {
"inquiry": {
"reference_id": "9497",
"status": "EXPIRED"
}
}
}
Failed Response
{
"status": false,
"message": "NOMOR REGISTRASI KADALUWARSA",
"data": {
"inquiry": {
"id": 7234,
"product_id": 718,
"reference_id": "9556",
"product_code": "INQPLNNONTAGLIS",
"customer_number": "1111761703338",
"status": "FAILED",
"message": "INQ NOTAGLIS ke 1111761703338 GAGAL. NOMOR REGISTRASI KADALUWARSA Tgl:02/09/2026 13:38:29,",
"message_parsing": {
"type": "pln_notaglis"
}
}
}
}
Inquiry Status Values
| Status | Arti |
|---|---|
PROCESSING | Inquiry masih diproses. Mitra dapat melakukan polling ulang. |
SUCCESS | Inquiry berhasil dan data hasil Inquiry tersedia. |
FAILED | Inquiry gagal. Periksa message untuk informasi kegagalan. |
EXPIRED | reference_id sudah melewati batas waktu penggunaan. Lakukan Inquiry ulang. |
Message Parsing
Field message_parsing mengembalikan data hasil ekstrak dari pesan response provider. Struktur data di dalam message_parsing berbeda bergantung pada jenis produk yang dicek.
1. E-Money / E-Wallet (type: e_money)
Kembali untuk produk: DANA, GoPay, OVO, LinkAja, Shopee Pay, MotionPay.
account_number: Nomor akun e-money yang dicek.account_name: Nama terdaftar pemilik akun (bisa mengandung sensor).
2. PLN Prabayar / Token (type: pln_prepaid)
Kembali untuk produk: PLN Prabayar.
meter_number: Nomor meter PLN.customer_number: ID Pelanggan PLN.customer_name: Nama pemilik sambungan/pelanggan.tariff_power: Informasi daya dan tarif listrik (contoh: R1/1300VA).reference_number: Nomor referensi dari sistem provider.rp_bayar: Nominal total pembayaran.meterai: Nominal biaya meterai jika ada.ppn: Nominal PPN jika ada.pbjt_tl: Nominal PBJT-TL / PPJ jika ada.installment: Nominal angsuran jika ada.rp_stroom: Nominal stroom/token bersih.kwh_amount: Jumlah kWh yang didapat.admin_fee: Nominal biaya admin.unsold_1/unsold_2: Token unsold/stroom pending 1–2 jika tersedia.
3. PLN Pascabayar (type: pln_postpaid)
Kembali untuk produk: PLN Pascabayar.
customer_number: ID Pelanggan PLN.customer_name: Nama pelanggan PLN.tariff_power: Informasi daya dan tarif listrik.bill_period: Periode bulan tagihan (contoh: 202609).bill_sheet_count: Jumlah lembar tagihan.remaining_bill_sheet: Sisa lembar tagihan jika ada.stand_meter: Posisi/stand meter listrik.reference_number: Nomor referensi provider.bill_amount: Nominal tagihan murni (tanpa admin).admin_fee: Nominal biaya admin.total_amount: Total yang harus dibayar (tagihan + admin).
4. PLN Non-Taglis (type: pln_notaglis)
Kembali untuk produk: PLN Non-Taglis.
registration_number: Nomor registrasi PLN.registration_date: Tanggal registrasi PLN.customer_number: ID Pelanggan PLN.customer_name: Nama pelanggan.service_type: Jenis transaksi non-taglis.reference_number: Nomor referensi provider.pln_fee: Nominal tagihan PLN.admin_fee: Nominal biaya admin.total_amount: Total yang harus dibayar.
5. Tagihan / Pascabayar (type: billing)
Kembali untuk produk tagihan online umum.
customer_number: ID Pelanggan.customer_name: Nama pelanggan.period: Periode bulan tagihan.bill_amount: Nominal tagihan murni (tanpa admin).admin_fee: Nominal biaya admin.total_amount: Total yang harus dibayar (tagihan + admin).
Contoh message_parsing
E-Money / E-Wallet:
{
"type": "e_money",
"account_number": "081241576119",
"account_name": "FAHRIANNUR"
}
PLN Prabayar / Token:
{
"type": "pln_prepaid",
"meter_number": "04187670019",
"customer_number": "523076170030",
"customer_name": "NRML",
"tariff_power": "B2/7700VA",
"unsold_1": "0",
"unsold_2": "0"
}
Tagihan / Pascabayar:
{
"type": "billing",
"customer_number": "223088829223",
"customer_name": "NRML",
"period": "202609",
"bill_amount": 5198,
"admin_fee": 1600,
"total_amount": 6798
}
Polling Recommendation
Mitra disarankan melakukan polling status inquiry maksimal 5 kali dengan jeda minimal 2 detik antar request. Jika inquiry masih PROCESSING, tampilkan informasi bahwa pengecekan sedang diproses atau minta customer mencoba kembali.
reference_id inquiry hanya valid untuk pengecekan dalam waktu 15 menit sejak inquiry dibuat.
Response Codes
| HTTP | Kondisi | Message |
|---|---|---|
200 | Inquiry berhasil dibuat atau status inquiry berhasil dicek. | Inquiry berhasil diproses., Inquiry masih diproses., atau OK. |
400 | Request tidak valid: body JSON tidak valid, field wajib kosong, customer_number tidak valid, atau reference_id kosong/tidak valid. | Lihat message pada response. |
401 | Secret key/token salah atau tidak sesuai. | Lihat message pada response. |
404 | Produk inquiry atau reference tidak ditemukan. | Produk inquiry tidak ditemukan. / Inquiry tidak ditemukan. |
410 | Inquiry sudah kedaluwarsa. | Inquiry sudah kedaluwarsa. Silakan lakukan inquiry ulang. |
422 | Inquiry ditolak saat Create Inquiry. | Mengikuti pesan dari sistem. |
502 | Layanan Inquiry tidak dapat dihubungi. | Gagal menghubungi layanan inquiry. |
500 | Gangguan sistem. | Mengikuti pesan error server. |