API to API

Inquiry

Cek data pelanggan/akun sebelum transaksi untuk produk tertentu.

Inquiry

Terakhir diperbarui: 8 September 2026.

Inquiry adalah tahap awal pengecekan dan verifikasi data pelanggan ke provider/biller sebelum transaksi diproses. Inquiry bertujuan untuk:

  1. Validasi Tujuan: Memastikan nomor meter, ID pelanggan, atau akun e-wallet valid (mencegah salah sasaran).
  2. Pengambilan Detail: Mengambil data nama pelanggan, daya/tarif, atau rincian nominal tagihan berjalan.
  3. 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.

Gunakan Inquiry hanya untuk produk yang memang memiliki produk inquiry. Untuk pulsa prabayar, paket data, dan paket SMS reguler, mitra dapat langsung menggunakan Product List, Checkout, lalu Payment.

Inquiry Flow

  1. Mitra mengirim request ke POST /client/v2/inquiry menggunakan inquiry_product_code.
  2. Miharogames membuat data Inquiry dan mengirim response berisi reference_id.
  3. Mitra menyimpan reference_id dari response Inquiry.
  4. Mitra melakukan polling ke GET /client/v2/inquiry/status menggunakan reference_id.
  5. Jika status SUCCESS, mitra dapat melanjutkan ke Checkout/Payment dengan reference_id yang 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 Kategoriinquiry_product_codeKeterangan
DANAINQDANAInquiry nomor HP / akun DANA.
GoPay CustomerINQGPCInquiry nomor HP / akun GoPay Customer.
LinkAjaINQLAJAInquiry nomor HP / akun LinkAja.
OVOINQOVOInquiry nomor HP / akun OVO.
Shopee PayINQSHOPEEInquiry nomor HP / akun Shopee Pay.
MotionPayINQMNCPAYInquiry nomor HP / akun MotionPay.

Listrik PLN

Sub Kategoriinquiry_product_codeKeterangan
PLN PrabayarINQPLNInquiry meter/ID pelanggan sebelum memilih nominal token.
PLN PascabayarINQPLNPASCAInquiry tagihan listrik bulanan.
PLN Non-TaglisINQPLNNONTAGLISInquiry 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

FieldTipeWajibKeterangan
inquiry_product_codestringYaKode produk inquiry. Contoh INQDANA.
customer_numberstringYaNomor 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

QueryWajibKeterangan
reference_idYaID 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

StatusArti
PROCESSINGInquiry masih diproses. Mitra dapat melakukan polling ulang.
SUCCESSInquiry berhasil dan data hasil Inquiry tersedia.
FAILEDInquiry gagal. Periksa message untuk informasi kegagalan.
EXPIREDreference_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

HTTPKondisiMessage
200Inquiry berhasil dibuat atau status inquiry berhasil dicek.Inquiry berhasil diproses., Inquiry masih diproses., atau OK.
400Request tidak valid: body JSON tidak valid, field wajib kosong, customer_number tidak valid, atau reference_id kosong/tidak valid.Lihat message pada response.
401Secret key/token salah atau tidak sesuai.Lihat message pada response.
404Produk inquiry atau reference tidak ditemukan.Produk inquiry tidak ditemukan. / Inquiry tidak ditemukan.
410Inquiry sudah kedaluwarsa.Inquiry sudah kedaluwarsa. Silakan lakukan inquiry ulang.
422Inquiry ditolak saat Create Inquiry.Mengikuti pesan dari sistem.
502Layanan Inquiry tidak dapat dihubungi.Gagal menghubungi layanan inquiry.
500Gangguan sistem.Mengikuti pesan error server.