API to API

Checkout

Validasi produk, nomor tujuan, harga, promo, saldo, dan koin sebelum payment.

Checkout

Terakhir diperbarui: 18 Agustus 2026.

Checkout dipakai sebelum payment agar mitra mendapat estimasi harga final dan pemakaian saldo/koin yang akan dipakai.

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.

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

QueryWajibKeterangan
product_idYaID produk dari product list atau product sync.
msisdnYaNomor tujuan transaksi.
use_balanceTidaktrue jika ingin memakai saldo Miharogames.
use_coinTidaktrue jika ingin memakai koin. Koin dipakai setelah saldo.
booking_codeTidakField tambahan untuk produk tertentu.
inquiry_idTidakField 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": true,
      "note": "Konversi koin: 2 koin = Rp1.",
      "available": 20000,
      "available_value": 10000,
      "used": 0,
      "used_value": 0,
      "usage_note": "Transaksi menggunakan saldo penuh karena saldo mencukupi. Koin tidak dipotong."
    },
    "promotion": {
      "applied": null,
      "preview": null
    },
    "inquiry": {
      "is_estimate": false,
      "is_ppob": false,
      "data": null
    }
  },
  "message": "OK"
}

Balance and Coin Rule

Saldo dipakai lebih dulu. Jika saldo cukup untuk membayar penuh, koin tidak dipotong walaupun use_coin=true. Jika saldo tidak cukup, koin dapat dipakai 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

HTTPKondisiMessage
200Checkout berhasil.OK
400product_id kosong.product_id wajib diisi.
400msisdn kosong.msisdn wajib diisi.
400Nomor tujuan tidak valid.Nomor tujuan tidak valid. Gunakan format nomor Indonesia yang diawali 08 dan terdiri dari 10 sampai 13 digit angka.
401Secret key/token salah.Akses ditolak..., Token wajib diisi., atau Token tidak valid.
400Produk tidak tersedia.Produk tidak ditemukan atau belum tersedia. Silakan pilih produk lain.
500Gangguan sistem.Mengikuti pesan error server.