API to API

Payment

Metode pembayaran, create payment, dan pengecekan status transaksi.

Payment

Payment membuat transaksi Miharogames dari sistem mitra. Skema pembayaran bisa saldo, koin, payment gateway, atau kombinasi sesuai response checkout.

Payment Methods

GET /client/v2/payment/methods
Authorization: Bearer {access_token}
X-SECRET-KEY: {partner_secret_key}

payment_method_id = 0 dipakai untuk pembayaran internal saldo/koin.

{
  "status": true,
  "data": [
    {
      "id": 9,
      "code": "QRIS",
      "name": "QRIS",
      "group": "E-Wallet",
      "payment_gateway": "MIDTRANS",
      "payment_type": "QRIS",
      "image": "qris-logo.png",
      "minimum_payment": 1000,
      "service_fee": {
        "type": "percent",
        "amount": 0.7
      }
    },
    {
      "id": 12,
      "code": "VA",
      "name": "Virtual Account (VA)",
      "group": "Virtual Account (VA)",
      "payment_gateway": "MIDTRANS",
      "payment_type": "Virtual Account (VA)",
      "image": "virtual-account-banks.png",
      "minimum_payment": 10000,
      "service_fee": {
        "type": "rupiah",
        "amount": 4000
      }
    }
  ],
  "message": "OK"
}

Supported Gateway

IDCodeGatewayType
9QRISMIDTRANSQRIS
1GOPAYMIDTRANSGopay
4SHOPEEPAYMIDTRANSShopeePay
5OVOESPAYOvo
6DANADANADANA
12VAMIDTRANSVirtual Account (VA)
2ALFAMARTESPAYAlfamart

Create Payment

POST /client/v2/payment
Authorization: Bearer {access_token}
X-SECRET-KEY: {partner_secret_key}
Content-Type: application/json
{
  "product_id": 22046,
  "msisdn": "082340378657",
  "payment_method_id": 0,
  "promotion_id": null,
  "use_balance": true,
  "use_coin": false,
  "parts": null,
  "partner_trx_id": "OMNI-TRX-001",
  "shift_code": "SHIFT-001"
}

Catatan:

  • partner_trx_id adalah nomor transaksi dari sistem mitra.
  • Kombinasi id_mitra + partner_trx_id harus unik.
  • shift_code opsional untuk kebutuhan shift/operator mitra.

Payment Response

{
  "status": true,
  "message": "Pembayaran berhasil diproses.",
  "data": {
    "transaction": {
      "id": 9381,
      "transaction_number": "PAY/KFI/8/2026/54",
      "status": "PROCESSING",
      "payment_status": "PAID",
      "amount": {
        "total": 2000,
        "balance_used": 2000,
        "coin_used": 0,
        "coin_value_used": 0,
        "gateway_payment": 0
      }
    },
    "payment_method": {
      "id": 0,
      "code": "BALANCE",
      "name": "Saldo/Koin",
      "gateway": "SALDO",
      "type": "SALDO"
    },
    "payment": {
      "is_required": false,
      "token": null,
      "redirect_url": null,
      "amount": 0
    }
  }
}

Payment Status

GET /client/v2/payment/status?partner_trx_id=OMNI-TRX-001
Authorization: Bearer {access_token}
X-SECRET-KEY: {partner_secret_key}

Alternatif lookup memakai nomor transaksi Miharogames.

GET /client/v2/payment/status?transaction_number=PAY/KFI/8/2026/54
Authorization: Bearer {access_token}
X-SECRET-KEY: {partner_secret_key}
{
  "status": true,
  "data": {
    "partner_trx_id": "OMNI-TRX-001",
    "transaction_number": "PAY/KFI/8/2026/54",
    "payment_status": "PAID",
    "transaction_status": "SUCCESS",
    "serial_number": "0214073400005825489229",
    "product": {
      "id": 22046,
      "code": "S20",
      "name": "[TESTING] PULSA TELKOMSEL 2.000 (SUKSES)"
    },
    "operator": {
      "id": 1,
      "name": "Telkomsel"
    }
  },
  "message": "OK"
}

Status Mapping

FieldValueMeaning
payment_statusUNPAIDPembayaran belum selesai.
payment_statusPAIDPembayaran sudah berhasil dari saldo/koin/PG.
payment_statusEXPIREDPembayaran melewati batas waktu.
transaction_statusPROCESSINGTransaksi sedang diproses ke supplier.
transaction_statusSUCCESSTransaksi sukses dan SN tersedia jika ada.
transaction_statusFAILEDTransaksi gagal dan refund mengikuti flow transaksi.

Error Conditions

HTTPEndpointKondisiMessage
401Semua payment endpointSecret key/token salah.Akses ditolak..., Token wajib diisi., atau Token tidak valid.
400Create PaymentProduk kosong.Produk wajib dipilih.
400Create PaymentNomor tujuan kosong.Nomor tujuan wajib diisi.
400Create PaymentMetode pembayaran kosong.Metode pembayaran wajib dipilih.
400Create Paymentpartner_trx_id kosong atau lebih dari 50 karakter.ID transaksi mitra wajib diisi. atau ID transaksi mitra maksimal 50 karakter.
400Create Paymentshift_code lebih dari 50 karakter.Kode shift maksimal 50 karakter.
400Create PaymentMetode payment gateway tidak terdaftar.Metode pembayaran tidak tersedia.
400Create PaymentInternal payment tanpa saldo/koin.Untuk metode pembayaran internal, pilih saldo atau koin terlebih dahulu.
409Create Paymentpartner_trx_id sudah pernah dipakai mitra.partner_trx_id sudah pernah digunakan. Gunakan ID transaksi mitra yang unik.
422Create PaymentLegacy payment gagal.Mengikuti message dari proses payment.
400Payment StatusParameter lookup kosong.partner_trx_id atau transaction_number wajib diisi.
404Payment StatusTransaksi tidak ditemukan.Transaksi tidak ditemukan.
404Payment StatusPayment belum terbentuk.Transaksi payment belum terbentuk.