bKash Module
Configure bKash to accept wallet payments on its payment page and track the resulting invoices in WISECP.
Reaching the Screen
Go to Settings → Financial → Payment Gateways → All Modules and click bKash: {admin}/modules/payment?module=bKash
What Is on the Screen
The form contains merchant credentials, a sandbox switch and shared gateway settings. Clients leave WISECP to enter their wallet number, OTP and PIN on bKash.
This module uses one-time checkout. It offers no saved wallet agreement, card storage, automatic payment, subscription, installment, separate capture or automatic refund. bKash's other products do not add these capabilities to this module.
Before You Configure It
Apply through bKash Online Business. Complete the merchant documents and agreement requested by your account manager. Request Checkout (URL based) access and separate sandbox/live integration credentials.
Use HTTPS and TLS 1.2 or newer. Payments must reach bKash in BDT. The current module sends the checkout's amount and currency without applying the shared conversion setting; use BDT invoices and confirm the received currency in sandbox. Confirm the approved website and endpoint version with bKash. This form has no custom API-address field.
Fields
Status enables the module. Commission, conversion, amount limits and country lists belong to Payment Modules. Callback URL, Success URL and Failed URL are generated addresses.
Tasks
Configure the Merchant Account
- Obtain Username, Password, App Key and App Secret from bKash's integration team. These are issued during onboarding; this WISECP form cannot generate them.
- On a separate test system, enter the sandbox set in the bKash form. Enable Status and Sandbox.
- Click Save Changes. Prepare a BDT test invoice; the shared conversion setting does not convert this module's payment request.
- Open Payment Gateways → Initial → Enabled Module Selection, select bKash and click Save Changes. The method becomes available within its configured limits.
Check the Payment Return
The module sends Callback URL to bKash when creating each payment. If bKash requests your return address during approval, copy this complete value from WISECP.
No separate webhook/IPN registration or signing-secret field is used. The browser return supplies the payment ID; WISECP asks bKash to execute it. Payment completion requires a successful response with Completed status.
Test and Switch to Live
- Open an unpaid test invoice as its client. Select bKash and click Pay Now.
- Use the sandbox wallet details supplied by bKash on its hosted page. Test success, cancellation and interrupted return separately.
- Compare the bKash transaction ID, amount and BDT currency with the WISECP invoice and its payment record. Saving settings alone is not a connection test.
- After merchant approval and successful tests, replace all four credentials with the live set. Clear Sandbox and click Save Changes; subsequent payments use real funds.
Record a Refund
- Arrange the refund through the process approved for your bKash merchant account. Give its operator the original transaction ID and confirm the returned amount.
- For a completed full refund, open the WISECP invoice: {admin}/invoices/detail?id={invoice}.
- Under Summary → Change Status, choose Refunded → Add as expense and click Update Status.
- WISECP records the refund without sending funds. Keep the provider reference; track a partial refund separately at its actual amount.
Things to Watch
The module has no automatic Query Payment recovery after an unanswered Execute request. A lost return can leave the invoice unpaid. Ask bKash to confirm the transaction before requesting another payment or releasing a service.
The current module requests a fresh access token at payment creation and return. If bKash reports token limits, stop repeating the payment and contact your integration team. An error page does not prove that no funds moved.
Required Privileges
Settings require Modules → Payment Gateways (MODULES_PAYMENT_SETTINGS). Invoice changes require Billing → Edit (INVOICES_OPERATION). bKash must authorize the merchant integration and any refund operator separately.
Related Articles
Thanks for your feedback!
Our support team is here around the clock for anything you can't find above.