KHQR that actually binds
Amount and currency are verified against the QR before a payment can settle. A mismatch never reaches your webhook.
One API for ABA PayWay and Bakong. Create a payment, render the QR, and learn the outcome by signed webhook or polling. Money settles into your own bank account — we never hold it.
ទទួលការទូទាត់តាម ABA KHQR និង Bakong ដោយប្រើ API តែមួយ។ បង្កើតការទូទាត់ បង្ហាញ QR ហើយទទួលលទ្ធផលដោយ Webhook។
The QR is the source of truth. Everything else — expiry, retries, signatures, reconciliation — is the boring part we already solved.
Amount and currency are verified against the QR before a payment can settle. A mismatch never reaches your webhook.
One delivery per terminal result, HMAC-SHA256 signed, retried with backoff. Polling stays available as the fallback.
Account keys carry scopes and expire in 90 days. Store keys can be rotated in one click. Nothing secret ever reaches the browser.
Upgrade from the dashboard, pay by QR, and the limit changes the moment the payment lands. No emails, no waiting.
Both currencies on both rails, with exact decimal handling. Bakong riel amounts are validated as whole riel.
The hosted checkout and dashboard speak Khmer and English, with a layout that survives both scripts.
Paste your ABA PayWay link once. Add a Bakong account if you collect riel.
One POST with an amount and your own tranId. You get a QR and a checkout URL.
Verify the signature, release the order. Polling covers a missed webhook.
Every paid plan is bought in the dashboard by QR and activates instantly.
Prices in USD. Paid plans renew every 30 days; you can buy again any time to extend.
A guided walkthrough for your first payment, and the complete contract for everything after it.
| tranId | Amount | Status | |
|---|---|---|---|
| Loading… | |||
One store per destination. The key is tied to its store.
Latest 100 payments across your stores.
| tranId | Amount | Status | |||
|---|---|---|---|---|---|
| Loading… | |||||
Pay by KHQR. The new limit applies as soon as the payment is confirmed.
| Date | Plan | Amount | ||
|---|---|---|---|---|
| No purchases yet. | ||||
The guided path from zero to a settled payment.
tranId on every create. A retry with the same id returns the original payment instead of charging twice.
Replace the key with one from Stores & keys.
Use the Google account that owns your stores.
We only store your name, email and avatar to sign you in.
A store is one destination with its own PayWay link.
Preparing your QR…
Your new limit is active now.