Cek mutasi, bikin QRIS dinamis, pantau laporan — atau kalau kamu punya sistem sendiri, tinggal sambungin lewat API. Tanpa ribet.
Semua request wajib pakai header X-Merchant-Code dan X-Secret-Key, ambil dari halaman API Settings setelah login.
Endpoint Create Payment cuma bisa jalan kalau toko kamu sudah punya QRIS tersimpan di sistem. Upload dulu QRIS statis toko kamu lewat menu Generate QRIS di dashboard — dari situ baru API bisa generate QRIS dinamis per transaksi. Kalau belum upload, request bakal ditolak dengan pesan "Merchant belum punya QRIS tersimpan".
| Key | Value |
|---|---|
X-Merchant-Code | Kode/ID merchant kamu |
X-Secret-Key | Secret key dari API Settings |
Content-Type | application/json |
{
"amount": 20000
}
curl -X POST https://gopay.orionpay.cloud/api/create-payment \
-H "X-Merchant-Code: KODE_MERCHANT" \
-H "X-Secret-Key: SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"amount": 20000}'
{
"success": true,
"reference": "PAY-XXXXXXXXXXXX",
"amount": 20000,
"unique_code": 47,
"total_amount": 20047,
"qris_string": "000201...6304XXXX",
"qr_url": "https://gopay.orionpay.cloud/qris-image/PAY-XXXXXXXXXXXX.png",
"expires_at": "2026-01-01T00:15:00+00:00"
}
qr_url tinggal pasang langsung ke <img src="...">, ga perlu decode base64 sendiri.total_amount (nominal + unique_code), bukan amount. QR yang dibikin sudah pakai nominal ini, supaya transaksi dengan nominal dasar sama ga ketuker.{
"success": false,
"message": "Limit request kamu sudah habis. ..."
}
{
"success": false,
"message": "Merchant belum punya QRIS tersimpan. Upload dulu lewat dashboard."
}
| Key | Value |
|---|---|
X-Merchant-Code | Kode/ID merchant kamu |
X-Secret-Key | Secret key dari API Settings |
curl -X GET https://gopay.orionpay.cloud/api/check-status/PAY-XXXXXXXXXXXX \ -H "X-Merchant-Code: KODE_MERCHANT" \ -H "X-Secret-Key: SECRET_KEY"
{
"success": true,
"reference": "PAY-XXXXXXXXXXXX",
"status": "pending",
"amount": 20000,
"unique_code": 47,
"total_amount": 20047,
"transaction_id": null,
"paid_at": null
}
status nilainya pending, paid, atau expired. Polling tiap beberapa detik sampai statusnya berubah.