API to API
Payment
Metode pembayaran, pembuatan transaksi, dan pengecekan status pembayaran.
Payment
Terakhir diperbarui: 19 Agustus 2026.
Payment dipakai untuk membuat transaksi dari hasil checkout. Nilai transaksi dihitung ulang oleh Miharogames saat payment dibuat memakai pengaturan komersial API-to-API milik mitra.
Jika pengaturan harga API belum aktif, payment dapat gagal dengan pesan Price plan API mitra belum dikonfigurasi, hubungi tim Miharogames untuk informasi lebih lanjut.
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 memakai saldo/koin Miharogames.
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": true,
"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 dipakai. |
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": 10000,
"coin_used": 20000,
"coin_value_used": 10000,
"gateway_payment": 0
},
"partner_trx_id": "OMNI-TRX-001"
},
"payment_method": {
"id": 0,
"code": "BALANCE",
"name": "Saldo/Koin",
"gateway": "SALDO",
"type": "COIN"
},
"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 memakai partner_trx_id atau transaction_number.
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",
"amount": {
"total": 20000,
"balance_used": 10000,
"coin_used": 20000,
"coin_value_used": 10000,
"gateway_payment": 0
},
"payment_method": {
"gateway": "SALDO",
"type": "COIN"
},
"created_at": "2026-08-18 11:15:20",
"updated_at": "2026-08-18 11:15:25"
},
"message": "OK"
}
Status Mapping
Urutan penggunaan saldo/koin pada payment mengikuti checkout. Saldo dipakai lebih dulu. Jika saldo cukup, koin tidak dipotong walaupun use_coin=true.
| 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 | Endpoint | Kondisi | Message |
|---|---|---|---|
200 | Payment Methods | Metode berhasil dimuat. | OK |
200 | Create Payment | Payment berhasil dibuat. | Pembayaran berhasil diproses. |
200 | Payment Status | Status berhasil dimuat. | OK |
400 | Create Payment | Field wajib kosong. | Produk wajib dipilih., Nomor tujuan wajib diisi., Metode pembayaran wajib dipilih., atau ID transaksi mitra wajib diisi. |
400 | Create Payment | partner_trx_id lebih dari 50 karakter. | ID transaksi mitra maksimal 50 karakter. |
400 | Create Payment | shift_code lebih dari 50 karakter. | Kode shift maksimal 50 karakter. |
400 | Create Payment | Metode tidak tersedia. | Metode pembayaran tidak tersedia. |
400 | Create Payment | Pembayaran saldo/koin dipilih tanpa mengaktifkan saldo atau koin. | Untuk metode pembayaran internal, pilih saldo atau koin terlebih dahulu. |
400 | Payment Status | Parameter lookup kosong. | partner_trx_id atau transaction_number wajib diisi. |
401 | Semua | Secret key/token salah. | Akses ditolak..., Token wajib diisi., atau Token tidak valid. |
409 | Create Payment | partner_trx_id sudah dipakai. | partner_trx_id sudah pernah digunakan. Gunakan ID transaksi mitra yang unik. |
422 | Create Payment | Payment belum dapat diproses. | Mengikuti message dari response payment. |
404 | Payment Status | Transaksi tidak ditemukan. | Transaksi tidak ditemukan. |
404 | Payment Status | Payment belum terbentuk. | Transaksi payment belum terbentuk. |