Payment
Payment
Terakhir diperbarui: 8 September 2026.
Payment digunakan untuk membuat transaksi dari hasil checkout. Nilai transaksi dihitung ulang oleh Miharogames saat payment dibuat menggunakan pengaturan komersial API-to-API milik mitra.
callback_url mitra sebelum membuat payment. Jika callback_url belum terdaftar atau format URL tidak valid, transaksi tidak dapat dibuat.Jika pengaturan harga API belum aktif, payment dapat gagal dengan pesan Price plan API mitra belum dikonfigurasi. Silakan hubungi dukungan mitra.
Untuk produk yang wajib inquiry, reference_id harus berasal dari inquiry yang sukses, milik customer/mitra yang sama, nomor tujuan sama, sub kategori produk cocok, dan belum melewati 15 menit.
Urutan penggunaan saldo/koin mengikuti hasil checkout. Saldo digunakan lebih dulu. Jika saldo mencukupi, koin tidak dipotong walaupun use_coin=true.
Payment Methods
GET /client/v2/payment/methods
Authorization: Bearer o8coocg8k0ss4wcgk0o8........
X-SECRET-KEY: {partner_secret_key}
Success Response
{
"status": true,
"data": [
{
"id": 9,
"code": "QRIS",
"name": "QRIS",
"group": "E-Wallet",
"payment_gateway": "MIDTRANS",
"payment_type": "QRIS",
"image": "qris-logo.png",
"minimum_payment": 0,
"service_fee": {
"type": "rupiah",
"amount": 0
}
}
],
"message": "OK"
}
Gunakan payment_method_id = 0 untuk pembayaran menggunakan saldo/koin Miharogames.
Available Payment Method
| ID | Code | Name | Gateway | Type | Keterangan |
|---|---|---|---|---|---|
0 | BALANCE | Saldo/Koin | SALDO | SALDO / COIN | Pembayaran menggunakan saldo dan/atau koin Miharogames. |
9 | QRIS | QRIS | MIDTRANS | QRIS | Pembayaran QRIS melalui Midtrans. Gunakan nilai payment.redirect_url untuk menampilkan QR Code pembayaran. |
Metode selain daftar di atas belum dibuka di dokumentasi karena masih tahap pengujian internal.
Create Payment
POST /client/v2/payment
Authorization: Bearer o8coocg8k0ss4wcgk0o8........
X-SECRET-KEY: {partner_secret_key}
Content-Type: application/json
{
"product_id": 15676,
"msisdn": "082340378657",
"payment_method_id": 0,
"promotion_id": null,
"use_balance": true,
"use_coin": false,
"reference_id": null,
"parts": null,
"partner_trx_id": "OMNI-TRX-001",
"shift_code": "SHIFT-001"
}
Field
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
product_id | integer | Ya | ID produk dari checkout/product list. |
msisdn | string | Ya | Nomor tujuan transaksi. |
payment_method_id | integer | Ya | ID dari payment methods. Gunakan 0 untuk saldo/koin. |
promotion_id | integer/null | Tidak | ID promo jika digunakan. |
reference_id | string/null | Kondisional | Wajib dikirimkan untuk produk yang membutuhkan inquiry (E-Wallet, PLN, Billing). Menggunakan reference_id hasil response inquiry. |
use_balance | boolean | Tidak | Pakai saldo Miharogames. |
use_coin | boolean | Tidak | Pakai koin setelah saldo. Jika saldo mencukupi, koin tidak dipotong. |
parts | object/null | Tidak | Field tambahan untuk produk tertentu. |
partner_trx_id | string | Ya | ID transaksi dari sistem mitra. Maksimal 50 karakter dan harus unik. |
shift_code | string/null | Tidak | Kode shift/kasir dari sistem mitra. Maksimal 50 karakter. |
Success Response
{
"status": true,
"message": "Pembayaran berhasil diproses.",
"data": {
"transaction": {
"id": 9410,
"transaction_number": "PAY/KFI/8/2026/86",
"status": "PROCESSING",
"payment_status": "PAID",
"amount": {
"total": 20000,
"balance_used": 20000,
"coin_used": 0,
"coin_value_used": 0,
"gateway_payment": 0
},
"partner_trx_id": "OMNI-TRX-001"
},
"payment_method": {
"id": 0,
"code": "BALANCE",
"name": "Saldo/Koin",
"gateway": "SALDO",
"type": "SALDO"
},
"payment": {
"is_required": false,
"token": null,
"redirect_url": null,
"amount": 0
},
"developer_notes": {
"coin_conversion": "2 koin = Rp1.",
"gateway_payment": "Diisi jika masih ada nominal yang perlu dibayar melalui payment gateway."
}
}
}
Payment Status
Cari transaksi menggunakan partner_trx_id atau transaction_number.
Endpoint ini digunakan untuk mengecek status transaksi terbaru. Mitra disarankan menyediakan tombol cek status di aplikasi, dan dapat melakukan pengecekan berkala jika callback belum diterima setelah transaksi dibuat.
GET /client/v2/payment/status?partner_trx_id=OMNI-TRX-001
Authorization: Bearer o8coocg8k0ss4wcgk0o8........
X-SECRET-KEY: {partner_secret_key}
GET /client/v2/payment/status?transaction_number=PAY/KFI/8/2026/86
Authorization: Bearer o8coocg8k0ss4wcgk0o8........
X-SECRET-KEY: {partner_secret_key}
Success Response
{
"status": true,
"data": {
"partner_trx_id": "OMNI-TRX-001",
"transaction_number": "PAY/KFI/8/2026/86",
"product": {
"id": 15676,
"code": "S20",
"name": "TELKOMSEL REGULER 20.000",
"description": "",
"image": {
"operator_logo": "https://dev-asset.miharogames.co.id/uploads/files/m_operator_logo/telkomsel.svg",
"product_icon": null,
"product_banner": null
}
},
"operator": {
"id": 1,
"name": "Telkomsel",
"logo": "https://dev-asset.miharogames.co.id/uploads/files/m_operator_logo/telkomsel.svg"
},
"payment_status": "PAID",
"transaction_status": "SUCCESS",
"serial_number": "0214027100001032312531",
"reference_number": null,
"amount": {
"total": 20000,
"balance_used": 20000,
"coin_used": 0,
"coin_value_used": 0,
"gateway_payment": 0
},
"payment_method": {
"gateway": "SALDO",
"type": "SALDO"
},
"created_at": "2026-08-18 11:15:20",
"updated_at": "2026-08-18 11:15:25"
},
"message": "OK"
}
serial_number berisi SN atau token transaksi jika provider mengirim data tersebut. Untuk PLN Pascabayar dan PLN Non-Taglis, serial_number bernilai null karena provider mengirim nomor referensi, bukan SN/token. Gunakan reference_number jika provider mengirim nomor referensi transaksi.
Status Mapping
Daftar status berikut digunakan pada response Payment Status dan callback transaksi.
| Field | Value | Arti |
|---|---|---|
payment_status | UNPAID | Pembayaran belum selesai. |
payment_status | PAID | Pembayaran sudah selesai. |
payment_status | EXPIRED | Pembayaran melewati batas waktu. |
payment_status | FAILED | Pembayaran gagal. |
transaction_status | WAITING_PAYMENT | Menunggu pembayaran. |
transaction_status | PROCESSING | Transaksi sedang diproses. |
transaction_status | SUCCESS | Transaksi sukses dan SN tersedia jika produk memiliki SN. |
transaction_status | FAILED | Transaksi gagal. |
Response Codes
| HTTP | Kondisi | Message |
|---|---|---|
200 | Metode pembayaran, payment, atau status payment berhasil. | OK / Pembayaran berhasil diproses. |
400 | Request tidak valid, callback URL belum valid, atau reference_id inquiry tidak dapat digunakan. | Lihat message pada response. |
401 | Secret key/token salah atau tidak sesuai. | Lihat message pada response. |
404 | Transaksi/payment/produk tidak ditemukan. | Lihat message pada response. |
409 | partner_trx_id sudah pernah digunakan. | partner_trx_id sudah pernah digunakan. Gunakan ID transaksi mitra yang unik. |
422 | Payment belum dapat diproses atau produk tidak tersedia. | Lihat message pada response. |