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

FieldTipeWajibKeterangan
product_idintegerYaID produk dari checkout/product list.
msisdnstringYaNomor tujuan transaksi.
payment_method_idintegerYaID dari payment methods. Gunakan 0 untuk saldo/koin.
promotion_idinteger/nullTidakID promo jika dipakai.
use_balancebooleanTidakPakai saldo Miharogames.
use_coinbooleanTidakPakai koin setelah saldo. Jika saldo mencukupi, koin tidak dipotong.
partsobject/nullTidakField tambahan untuk produk tertentu.
partner_trx_idstringYaID transaksi dari sistem mitra. Maksimal 50 karakter dan harus unik.
shift_codestring/nullTidakKode 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.

FieldValueArti
payment_statusUNPAIDPembayaran belum selesai.
payment_statusPAIDPembayaran sudah selesai.
payment_statusEXPIREDPembayaran melewati batas waktu.
payment_statusFAILEDPembayaran gagal.
transaction_statusWAITING_PAYMENTMenunggu pembayaran.
transaction_statusPROCESSINGTransaksi sedang diproses.
transaction_statusSUCCESSTransaksi sukses dan SN tersedia jika produk memiliki SN.
transaction_statusFAILEDTransaksi gagal.

Response Codes

HTTPEndpointKondisiMessage
200Payment MethodsMetode berhasil dimuat.OK
200Create PaymentPayment berhasil dibuat.Pembayaran berhasil diproses.
200Payment StatusStatus berhasil dimuat.OK
400Create PaymentField wajib kosong.Produk wajib dipilih., Nomor tujuan wajib diisi., Metode pembayaran wajib dipilih., atau ID transaksi mitra wajib diisi.
400Create Paymentpartner_trx_id lebih dari 50 karakter.ID transaksi mitra maksimal 50 karakter.
400Create Paymentshift_code lebih dari 50 karakter.Kode shift maksimal 50 karakter.
400Create PaymentMetode tidak tersedia.Metode pembayaran tidak tersedia.
400Create PaymentPembayaran saldo/koin dipilih tanpa mengaktifkan saldo atau koin.Untuk metode pembayaran internal, pilih saldo atau koin terlebih dahulu.
400Payment StatusParameter lookup kosong.partner_trx_id atau transaction_number wajib diisi.
401SemuaSecret key/token salah.Akses ditolak..., Token wajib diisi., atau Token tidak valid.
409Create Paymentpartner_trx_id sudah dipakai.partner_trx_id sudah pernah digunakan. Gunakan ID transaksi mitra yang unik.
422Create PaymentPayment belum dapat diproses.Mengikuti message dari response payment.
404Payment StatusTransaksi tidak ditemukan.Transaksi tidak ditemukan.
404Payment StatusPayment belum terbentuk.Transaksi payment belum terbentuk.