A manual payment gateway module for WHMCS that allows customers to pay invoices via Bangladesh's popular mobile banking services bKash, Nagad, and Rocket. After payment, customers submit their transaction details for admin verification via WhatsApp or Email.
- ✅ Supports bKash, Nagad, and Rocket in a single module
- ✅ Clean, minimal popup modal with tabbed gateway selection
- ✅ Step-by-step payment instructions (numbered, left-aligned)
- ✅ One-click copy buttons for account number, amount, and invoice reference
- ✅ Displays exact payable amount with currency (e.g.,
2500.00 BDT) - ✅ Verification via WhatsApp or Email with pre-filled transaction details
- ✅ Uses WHMCS default Pay Now button — no custom styling on the invoice page
- ✅ No external font or icon libraries — zero dependencies
- ✅ Mobile-friendly responsive layout
- WHMCS 7.x or higher
- PHP 7.4+
- SSL (HTTPS) recommended for clipboard API support
-
Copy
bdpay.phpinto your WHMCS installation at:/modules/gateways/bdpay.php -
Log in to your WHMCS Admin Panel.
-
Go to Setup → Payment Gateways → All Payment Gateways.
-
Find Mobile Banking (bdPay) and click Activate.
-
Go to Setup → Payment Gateways → Manage Existing Gateways.
-
Click Configure next to Mobile Banking (bdPay) and fill in the required fields.
| Field | Description |
|---|---|
| bKash Number | Your bKash merchant/personal number |
| Nagad Number | Your Nagad merchant/personal number |
| Rocket Number | Your Rocket merchant/personal number |
| Admin WhatsApp Number | Full number with country code, e.g. 8801712345678 |
| Admin Email Address | Email address to receive verification messages |
Note: You only need to fill in the numbers for the gateways you want to offer. If a number is left blank, that tab will still appear, but the number field will be empty.
- Customer views an invoice and clicks Pay Now.
- A modal popup appears with three tabs: bKash, Nagad, Rocket.
- Customer selects their preferred gateway and follows the 7-step guide:
- Open the app or dial the USSD code
- Select Send Money
- Copy and enter the account number
- Copy and enter the exact payable amount
- Add the invoice number as the Reference
- Confirm with PIN
- Tap to pay
- After payment, the customer enters their sender account number and Transaction ID (TxID).
- They click Verify via WhatsApp or Verify via Email — a pre-filled message is sent to the admin.
- Admin receives a WhatsApp message or email with:
- Invoice number
- Gateway used (bKash / Nagad / Rocket)
- Amount
- Sender's account number
- Transaction ID (TxID)
- Admin verifies the transaction manually in the respective banking app.
- Admin marks the invoice as Paid in WHMCS.
modules/
└── gateways/
├── bdpay/
│ ├── logo.png
│ └── whmcs.json
└── bdpay.php ← Main gateway module file
All styling is embedded directly in bdpay.php within the bdpay_link() function using CSS custom properties (variables). You can adjust colors by editing the : root block:
: root {
--bk: #e2136e; /* bKash pink */
--ng: #f97316; /* Nagad orange */
--rk: #7c3aed; /* Rocket violet */
--tx: #575757; /* Body text */
--bd: #e2e8f0; /* Borders */
--sl: #f8fafc; /* Subtle background */
}When the customer clicks Verify, the following message is sent:
Payment Verification
Invoice: #[ID]
Gateway: [bKash / Nagad / Rocket]
Amount: [amount] [currency]
Sender: [customer's account number]
TxID: [transaction ID]
- This is a manual gateway — no automated payment confirmation via API.
- Admin must verify each transaction manually and mark invoices as paid.
- The module does not store transaction data in the WHMCS database.
- Initial release with bKash, Nagad, and Rocket support
- Tabbed modal UI with step-by-step instructions
- Copy-to-clipboard for account number, amount, and reference
- WhatsApp and Email verification flow
- WHMCS default Pay Now button integration
Built for the Bangladesh hosting market. Designed to be simple, clean, and user-friendly for customers unfamiliar with technical payment flows.