Checkout
Checkout
Terakhir diperbarui: 8 September 2026.
Checkout digunakan sebelum payment agar mitra mendapat estimasi harga final dan pemakaian saldo/koin yang akan digunakan.
Harga checkout mengikuti pengaturan komersial API-to-API milik mitra. Jika konfigurasi harga API belum aktif, API mengembalikan pesan Price plan API mitra belum dikonfigurasi, hubungi tim Miharogames untuk informasi lebih lanjut.
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.
Checkout Detail
GET /client/v2/checkout?product_id=15676&msisdn=082340378657&use_balance=true&use_coin=true
Authorization: Bearer o8coocg8k0ss4wcgk0o8........
X-SECRET-KEY: {partner_secret_key}
Query
| Query | Wajib | Keterangan |
|---|---|---|
product_id | Ya | ID produk dari product list atau product sync. |
msisdn | Ya | Nomor tujuan transaksi. |
reference_id | Kondisional | Wajib dikirimkan untuk produk yang membutuhkan inquiry (E-Wallet, PLN, Billing). Menggunakan reference_id hasil response inquiry. |
use_balance | Tidak | true jika ingin menggunakan saldo Miharogames. |
use_coin | Tidak | true jika ingin menggunakan koin. Koin digunakan setelah saldo. |
booking_code | Tidak | Field tambahan untuk produk tertentu. |
Success Response
{
"status": true,
"data": {
"product": {
"id": 15676,
"code": "S20",
"name": "TELKOMSEL REGULER 20.000",
"description": "",
"nominal": "20.000",
"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"
},
"pricing": {
"base_price": 20000,
"discount": 0,
"service_fee": 0,
"service_fee_type": "rupiah",
"subtotal": 20000,
"total_payment": 0
},
"balance": {
"use_balance": true,
"available": 80000,
"used": 20000
},
"coin": {
"use_coin": false,
"note": "Konversi koin: 2 koin = Rp1.",
"available": 0,
"available_value": 0,
"used": 0,
"used_value": 0
},
"promotion": {
"applied": null,
"preview": null
},
"inquiry": {
"is_estimate": false,
"is_ppob": false,
"data": null
}
},
"message": "OK"
}
Checkout Produk Inquiry
Produk yang membutuhkan Inquiry harus menggunakan reference_id dari Inquiry Status yang sudah SUCCESS. API memvalidasi bahwa reference_id milik customer yang sama, nomor tujuan sama, sub kategori cocok, status Inquiry sukses, dan belum melewati 15 menit.
| Produk | product_id dari | reference_id |
|---|---|---|
| Top Up E-Money / E-Wallet | Product Sync/List denom e-wallet. | Dari Inquiry Status e-wallet. |
| PLN Prabayar | Product List PLN Prabayar dengan reference_id, lalu pilih denom token/UNSOLD. | Dari Inquiry Status PLN Prabayar. |
| PLN Pascabayar | Field product_id pada Inquiry Status. | Dari Inquiry Status PLN Pascabayar. |
| PLN Non-Taglis | Field product_id pada Inquiry Status. | Dari Inquiry Status PLN Non-Taglis. |
Contoh Checkout PLN Pascabayar
GET /client/v2/checkout?product_id=22054&msisdn=223088829223&reference_id=9547&use_balance=true&use_coin=false
Authorization: Bearer o8coocg8k0ss4wcgk0o8........
X-SECRET-KEY: {partner_secret_key}
Pada produk PLN, inquiry.data berisi satu object data hasil parsing inquiry. Struktur field mengikuti message_parsing pada Inquiry Status, sehingga mitra dapat menampilkan detail pelanggan/tagihan tanpa membaca raw message provider.
Contoh bentuk inquiry.data PLN Pascabayar:
{
"type": "pln_postpaid",
"customer_number": "223088829223",
"customer_name": "NRML",
"bill_period": "202609",
"bill_amount": 5198,
"admin_fee": 1600,
"total_amount": 6798
}
Balance and Coin Rule
Saldo digunakan lebih dulu. Jika saldo cukup untuk membayar penuh, koin tidak dipotong walaupun use_coin=true. Jika saldo tidak cukup, koin dapat digunakan untuk menutup sisa pembayaran.
coin.usage_note hanya tampil saat use_balance=true, use_coin=true, saldo cukup membayar penuh, dan koin tidak terpakai. UI mitra sebaiknya menampilkan aturan ini agar end-user paham bahwa koin tetap aman walaupun opsi koin aktif.
Urutan penggunaan pada checkout dan payment sama: saldo lebih dulu, lalu koin, lalu payment gateway jika masih ada sisa pembayaran.
Response Codes
| HTTP | Kondisi | Message |
|---|---|---|
200 | Checkout berhasil. | OK |
400 | Request tidak 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 | Produk tidak ditemukan. | Produk tidak ditemukan atau belum tersedia. Silakan pilih produk lain. |
422 | Produk tidak aktif/tutup atau tidak aktif pada price plan mitra. | Lihat message pada response. |
500 | Gangguan sistem. | Mengikuti pesan error server. |