CMS Plugins
QPay V2 payment integrations for e-commerce platforms and content management systems. All plugins communicate directly with the QPay V2 API — no separate SDK dependency is required.
Available Plugins
| Platform | Version | Language | License | GitHub |
|---|---|---|---|---|
| WooCommerce | 1.0.0 | PHP | MIT | qpay-woocommerce |
| Shopify | 1.0.0 | Node.js | MIT | qpay-shopify |
| OpenCart | 1.0.0 | PHP | MIT | qpay-opencart |
| Magento | 1.0.0 | PHP | MIT | qpay-magento |
| PrestaShop | 1.0.0 | PHP | MIT | qpay-prestashop |
| WordPress | 1.0.0 | PHP | MIT | qpay-wordpress |
| Odoo | 1.0.0 | Python | LGPL-3 | qpay-odoo |
Common Features
Every QPay CMS plugin shares a core set of capabilities:
- QR Code Display — Generates and displays a QPay QR code image for customers to scan
- Bank App Deep Links — Provides direct links to Mongolian banking apps (Khan Bank, Golomt, TDB, etc.)
- Automatic Polling — Client-side JavaScript polls the payment status every 3 seconds and redirects on success
- Webhook Callbacks — Server-side webhook endpoint verifies payment via
POST /v2/payment/check - Auto Token Management — Handles QPay V2 token acquisition and caching internally
How Payment Works
All plugins follow the same payment flow:
- Customer initiates checkout and selects QPay as the payment method
- Plugin authenticates with the QPay V2 API using Basic Auth (
POST /v2/auth/token) - Invoice is created via
POST /v2/invoicewith the order amount and callback URL - QR code and bank links are displayed to the customer from the invoice response
- Customer pays by scanning the QR code or tapping a bank app deep link
- Payment is confirmed through two parallel mechanisms:
- QPay sends a webhook callback to the configured callback URL
- Client-side JavaScript polls the payment status via AJAX
- Order status is updated to paid/completed
Prerequisites
Before installing any plugin, you need:
- A QPay merchant account with API credentials (username and password)
- An invoice code assigned to your merchant account
- A publicly accessible server for webhook callbacks (production only)
For testing, use the sandbox environment:
https://merchant-sandbox.qpay.mnFor production:
https://merchant.qpay.mnMarketplace Status
All plugins are open source on GitHub. Several are also submitted to their respective platform marketplaces:
| Platform | Marketplace | Status |
|---|---|---|
| WooCommerce | WordPress.org | Submitted, awaiting review |
| Shopify | Shopify App Store | App created, registration pending |
| OpenCart | OpenCart Marketplace | Seller account pending approval |
| Magento | Adobe Commerce Marketplace | Submitted, Technical + Marketing review in progress |
| PrestaShop | GitHub only | Marketplace requires EU seller account |
| WordPress | GitHub | Standalone plugin, available via GitHub |
| Odoo | GitHub | Available via GitHub |
Plugins that are pending marketplace approval can be installed directly from their GitHub repositories.
Choosing a Plugin
| If you use… | Install… |
|---|---|
| WordPress + WooCommerce | WooCommerce plugin |
| WordPress (no shop) | WordPress plugin |
| Shopify | Shopify app |
| OpenCart 4.x | OpenCart extension |
| Magento 2 | Magento module |
| PrestaShop 8.x | PrestaShop module |
| Odoo 17+ | Odoo module |
Last updated on