MONA Pay webhook and bank API documentation
MONA Pay reads the transaction notification ACB sends the moment money lands in your account, then POSTs a webhook to your server or sends a message to your Telegram group. Money never passes through MONA Pay; it goes straight into your bank account as usual. A basic integration takes about 5 minutes if you already have an ACB account and a URL that can receive webhooks.
MONA Pay is the payment gateway and bank API of The MONA Group that lets Vietnamese businesses receive and confirm bank transfers in real time via virtual accounts (VA), VietQR, webhooks and Telegram — built so both developers and AI agents can integrate in minutes.
How MONA Pay works
The whole flow has 4 steps. Nothing changes on the bank side except registering for transaction notifications (done once, with an OTP from ACB).
[1] Customer transfers [2] ACB notifies [3] MONA Pay records [4] Your system
into an ACB account ───▶ MONA Pay ───▶ and sends the event ───▶ confirms the order
(VA or VietQR scan) (real time) webhook / Telegram (nobody watches the app)
- The customer transfers. They pay into the virtual account (VA) attached to the order, or scan a VietQR code that already carries the amount and reference.
- ACB notifies MONA Pay. As soon as the money arrives, ACB pushes the transaction to MONA Pay. This is an official connection you register once from the dashboard with an OTP sent to your phone.
- MONA Pay records and forwards. The transaction appears on the dashboard, then MONA Pay POSTs a JSON payload to your webhook URL (signed with HMAC-SHA256 if enabled) and sends a Telegram message if configured.
- Your system handles it. Your store, back-office software or even a Google Sheet receives the webhook and flips the order to “paid”. Nobody opens a banking app to match transfers by hand.
Your server only has to answer HTTP 200, 201 or 202 within 10 seconds for MONA Pay to count the delivery as successful. Every attempt is logged so you can inspect it later.
Features and where they are documented
| Feature | When to use it | Documentation |
|---|---|---|
| Virtual accounts (VA) | Give each order or customer its own account number so payments match automatically | Virtual accounts (VA) |
| Dynamic VietQR | Generate a QR code with the amount and reference pre-filled; the customer scans and pays exactly | QR payments |
| Webhooks | Your server receives incoming payments in real time | Webhook integration |
| HMAC signature | Verify a webhook really came from MONA Pay, block forgeries and replays | Webhook security |
| Retries and logs | See every delivery attempt, error labels, resend by hand | Retries and error handling |
| Reconciliation | Pull the transaction list page by page to compare with your books | Reconciliation |
| Telegram | Accountants and shop owners get an instant message on their phone | Telegram |
| API keys | Create and revoke keys for server-to-server calls | API keys |
| API authentication | Log in for a Bearer token, send X-Client-Secret | Authentication |
| IP addresses | Open your firewall for the MONA Pay webhook server | IP addresses |
| AI agents | A prompt and checklist so Claude Code, Codex or Cursor can integrate on their own | For AI agents |
Where to start
- No account yet: read Quick start (5 minutes). It walks from sign-up to your first webhook.
- New to VA, VietQR, webhooks or HMAC: read Concepts first; it is written for non-technical readers too.
- You are an AI agent, or you want to hand the job to one: open For AI agents, or load
https://monapay.vn/llms-full.txtdirectly.
Machine-readable docs
Every docs page has a raw markdown version: append .md to the URL (for example https://monapay.vn/en/docs/webhooks/tich-hop-webhook.md). There is also https://monapay.vn/llms.txt (index), https://monapay.vn/llms-full.txt (full text) and https://monapay.vn/openapi.json (API v1 spec). Loading any of them gives an agent enough context to write the integration.
System facts
| Item | Value |
|---|---|
| API base URL | https://api.monapay.vn (legacy alias https://ipn.mona.host still works) |
| Dashboard | https://my.monapay.vn |
| Supported banks | ACB is live; MB, BIDV, VietinBank, OCB, MSB, KienlongBank and TPBank are in the partner-registration process. Status table at /ngan-hang |
| Successful webhook | HTTP 200, 201 or 202 within 10 seconds |
| Webhook signature | HMAC-SHA256, headers X-Mona-Signature and X-Mona-Timestamp, 5-minute replay window |
| Webhook source IP | 103.168.55.14 (checked 28/08/2026) |
| Support | Hotline 1900 636 648, email [email protected] |
MONA Pay is a product of The MONA Group, founded in 2016, with 14,000+ web and software projects delivered. We built this system to collect our own payments first; since 2022 more than 6,000 new MONA customers have collected payments through it inside the websites and software MONA delivered. In 2026 it opened to every business.
Quick answers
Does money pass through MONA Pay? No. Money goes straight into your ACB account. MONA Pay only receives the bank’s transaction notification and forwards it to you.
Do I need to code? Not necessarily. If you only need to know when money arrives, turn on Telegram notifications in the dashboard. Webhooks and the API are for stores and software that confirm orders automatically.
Can a new account be used right away? Yes. Sign up, log in immediately, create your own API key; nobody has to approve you. Only the ACB linking step needs an OTP sent to the phone number registered with the bank. MONA Pay is completely free with no transaction limit (see pricing).
Are banks other than ACB supported? ACB is live; MB, BIDV, VietinBank, OCB, MSB, KienlongBank and TPBank are in the partner-registration process, with status updated at supported banks. Webhooks, Telegram and the API are shared across banks and the payload carries bank_name, so adding a bank does not change your integration.