Dashboard
Shows payment totals, status breakdown and latest transactions. Use it to quickly identify pending or failed payments.
Payment panel, branded checkout, gateway, SMS verifier and API integration guide.
Panel version 2.0.7 · Updated 17 July 2026MhPay lets you create payment requests, accept payments through active gateways, monitor transactions and verify supported MFS payment SMS with the MH Pay Verifier Android app.
https://your-domain/install/ and confirm PHP 7.4–8.3, cURL, MySQLi, GD, Fileinfo, Imagick and ZipArchive are available.https://your-domain/admin/, configure the panel, then remove or protect the install directory.Active signed response is accepted.Shows payment totals, status breakdown and latest transactions. Use it to quickly identify pending or failed payments.
Lists all payment attempts. Filter by status and brand, open a transaction to inspect its customer, gateway, sender, verification ID and timeline.
Stores payment customers and their payment history.
Create invoices, choose a due amount and share the invoice checkout URL.
Create shareable fixed-amount payment links. Each link creates a checkout request when the customer selects Pay.
Displays recognised MFS messages, their account type, SIM slot, transaction ID, amount and verification state.
| State | Meaning |
|---|---|
| Pending | The customer submitted payment details, but MhPay has not yet verified the matching payment. |
| Completed | The payment is verified and can trigger redirect/webhook actions. |
| Failed / Refunded | The payment was unsuccessful or was refunded. |
The left menu Gateways opens installed payment gateways. A gateway can be activated or deactivated from its card. Only active gateways are available at checkout and for brand assignment.
Select Gateways → Add New, then choose Create Bank Gateway for a bank not included in the installed list. The new gateway is managed alongside the other gateways.
| Section | Required data |
|---|---|
| Information | Gateway Name, Display Name, min/max amount, fixed and percentage charge/discount, currency and Active/Inactive status. |
| Assets | Optional PNG, JPG, GIF or WEBP logo (maximum 2 MB). |
| Colors | Primary, text, button and button-text colors. |
| Configuration | Bank name, account holder, account number, branch, routing number and SWIFT/BIC code. |
One MhPay installation can serve multiple approved domains. A Domain represents the allowed integration domain; a Brand controls the customer-facing identity for that domain.
Brand logo, primary color, text color, button color and button text color apply to branded checkout.
Transactions retain brand and source-domain data. The Transaction page can filter records by brand.
Open System Settings → API Settings to copy a key. Regenerating it immediately stops integrations using the old key.
domain in the request body or send X-Brand-Domain; a mismatched domain is rejected.The Android verifier reads only recognised incoming payment transaction messages for supported bKash, Nagad and Rocket Personal, Merchant and Agent accounts. It sends recognised transaction data to the connected MhPay panel over HTTPS.
| Situation | Result |
|---|---|
| Recognised SMS reaches the panel and the Auto Verify Pending Payment module is active | MhPay matches transaction ID, amount, gateway, account type and sender number. The payment becomes Completed immediately. |
| Mobile/app has no internet | The payment remains Pending; the app queues the recognised message for delivery. |
| Internet returns | The queued SMS is uploaded and the pending-payment module retries the match. A matched SMS is marked Used. |
| SMS is unrelated or an OTP | It is not used for payment verification. |
Open Modules from the left menu to review installed modules and activate or deactivate each one. The current module set is:
Sends panel events to the MhPay payment panel app.
Checks and applies supported panel updates.
Matches approved, delayed MFS SMS data to pending payments.
Sends SMS alerts for invoice and payment events.
Delivers email through an authenticated SMTP server.
Delivers transaction alerts through a Telegram bot.
Adds a second sign-in verification step for account security.
Posts transaction and event data to configured HTTP/HTTPS endpoints.
Open System Settings → API Settings to copy the global API key or a Brand API key. Make requests from your server only; do not expose a key in browser JavaScript, a mobile app or a public repository.
| Endpoint | Method | Purpose |
|---|---|---|
https://your-panel-domain/api/create-charge | POST | Create a hosted payment request. |
https://your-panel-domain/api/verify-payments | POST | Retrieve the current state of a payment by pp_id. |
https://your-panel-domain/api/brand-config | GET | With a Brand API key, returns brand appearance and active gateway information. |
All of the following are required: full_name, email_mobile, amount, metadata, redirect_url, cancel_url, webhook_url, return_type and currency. Redirect and cancel URLs must be valid HTTP or HTTPS URLs. Set webhook_url to -- only when webhook delivery is intentionally disabled.
A successful response returns status, pp_id and pp_url. Redirect the customer to pp_url. For a brand request, include domain in the JSON body or use X-Brand-Domain.
The response includes customer data, payment method, amount, sender number, transaction ID, status, metadata, source domain and brand information when applicable.
| Code | Meaning |
|---|---|
| 200 | Request completed. |
| 401 | API key is missing or invalid. |
| 403 | Brand key does not match the requested domain or transaction. |
| 404 | Unknown endpoint or payment. |
| 409 | The payment has not yet been submitted by the customer. |
| 422 | Required field, amount, currency or URL validation failed. |
Use a complete URL including https://, for example https://merchant.example/complete. Do not send an empty value, a relative path or a non-web scheme.
Confirm the transaction ID, amount, mobile sender, gateway and Personal/Merchant/Agent type match. Ensure the payment is still pending, the device has uploaded the SMS, and the Auto Verify Pending Payment module is active. A successfully matched row changes from Approved to Used.
Use the API key from the same Brand, activate both the domain and brand, and send the exact approved domain in domain or X-Brand-Domain.
Download the official MhPay integration package for your platform. Configure the panel URL and API key after installation.
Accept MhPay payments from WHMCS invoices and receive payment status through the included callback module.
↓ Download WHMCS ModuleAdd MhPay as a WooCommerce payment method, including classic checkout and WooCommerce Blocks support.
↓ Download WordPress PluginConnect MhPay with a supported Smart/SMM panel using the included controller, admin integration and installation guide.
↓ Download SMM ModuleContact MH IT for a custom MhPay integration for your website, billing panel, mobile app or other platform.
Contact for Custom Module