Accept payments in
Cambodia with one API call.
Tola Saint lets merchants create KHQR payments and payment links, then track every transaction from one dashboard. Built for developers — clean REST, signed webhooks, and predictable responses.
No setup fees · KHQR · USD & KHR
# Create a KHQR payment curl -X POST https://api.tolasaint.com/v1/payment \ -H "x-api-key: sk_live_..." \ -H "content-type: application/json" \ -d '{"amount":"1.00","currency":"USD"}' # → 201 Created { "id": "AbC123xyz789", "status": "pending", "amount": "1.00", "currency": "USD", "qr_link": "https://api.tolasaint.com/qr/uQH8...", "expires_at": "2026-01-01T00:03:00Z" }
Everything you need
One platform for payments, links, and tracking
From your first test payment to production scale — a clean API and a dashboard that keeps up.
Payment Links
Generate a shareable payment link in one API call — no checkout code required.
KHQR Payments
Accept KHQR payments in USD or KHR, verified against the EMVCo/CRC standard.
Transaction Tracking
Real-time status: pending, scanned, processing, approved, failed, expired.
API Keys
Issue and rotate scoped keys per environment. Every request is authenticated.
Signed Webhooks
HMAC-signed, auto-retried webhooks notify your backend the moment a payment settles.
Developer API
Predictable REST, clear errors, and copy-paste examples in the docs.
How it works
Live in four steps
Create account
Sign up and open your dashboard in seconds.
Generate API key
Create a key and add it to the x-api-key header.
Create a payment
POST an amount and currency to get a QR and link.
Track the status
Poll the status endpoint or receive a webhook.
Developer-first
Verify a webhook in a few lines
Every event carries an HMAC-SHA256 signature and a timestamp. No SDK required — verify with the standard library and you're done.
import { createHmac } from "node:crypto"; export function verify(headers, rawBody, secret) { const ts = headers["x-webhook-timestamp"]; const sig = headers["x-webhook-signature"]; const mac = createHmac("sha256", secret) .update(ts + "." + rawBody) .digest("hex"); return sig === "sha256=" + mac; }
Dashboard
See every payment at a glance
Volume (30d)
$12,480
▲ 8.2%
Transactions
1,204
▲ 3.1%
Success rate
98.6%
▲ 0.4%
Pending
7
live
FAQ
Common questions
What merchants ask before integrating KHQR payments.
What is Tola Saint?
Tola Saint is a KHQR payment gateway API for Cambodia. You create a payment with one HTTPS request and get back a scannable KHQR code, a hosted QR link, and an expiry, then track the result from the same API or from the dashboard.
What do I need before I can accept payments?
An ABA PayWay hosted merchant link. You add it under Merchant Settings in the dashboard, and Tola Saint uses it to issue QR codes on your behalf. ABA fixes each link to a single currency, so add one link per currency you want to charge in.
Which currencies are supported?
USD and KHR. USD amounts allow up to two decimal places; KHR amounts must be whole numbers. Every QR is verified against the amount and currency you asked for before it is returned to you.
How do I know when a payment succeeds?
Two ways. Poll the status endpoint with the payment id, or register a webhook URL and receive a signed POST on every status change: scanned, processing, approved, failed and expired. Webhooks are HMAC-SHA256 signed and retried up to five times.
Do I have to build a checkout page?
No. Every payment comes back with a hosted QR link you can share or embed directly with an img tag, so you can take a payment without writing any checkout UI.
Is there a setup fee?
No. Creating an account, issuing API keys and using the API carry no setup fee. You settle through your own ABA merchant account, so payouts and any bank charges stay between you and ABA.
Start accepting payments today
Create your account, grab an API key, and send your first KHQR payment in minutes.