bKash is Bangladesh's dominant mobile financial service with over 70 million registered accounts. For ISPs, bKash is not optional — a significant portion of subscribers will only pay through bKash, and many will pay via the physical PayBill option at their local shop or bank. This guide covers all three bKash integration modes available in iBilling and explains which mode fits different ISP business models.
Why bKash Integration Matters for Bangladesh ISPs
ISPs that require only bank transfer or cash collection lose revenue to subscriber churn when payment is inconvenient. In Bangladesh, late payment is the primary cause of subscriber loss for small and mid-size ISPs. bKash removes the friction: subscribers pay from their phone in under 30 seconds, the payment posts immediately to the billing system, and the subscriber's account renews automatically — no operator intervention needed. The result is lower late-payment rates, fewer manual renewal calls, and faster cash flow.
Three bKash Integration Modes in iBilling
iBilling supports all three official bKash API integration patterns:
- Payment Gateway: subscriber pays via a hosted bKash checkout page in the customer portal
- Webhook IPN: subscriber-initiated payment to your bKash merchant number triggers automatic invoice matching
- PayBill: subscriber pays via any bKash channel (app, USSD, agent) to your registered PayBill number
Most ISPs in Bangladesh use PayBill as the primary mode because it works for subscribers who do not use the customer portal. The bKash app, USSD menu, and bank counters all support PayBill payments — no portal login required.
bKash Payment Gateway Integration
The Payment Gateway mode uses bKash's Create Payment and Execute Payment API endpoints. When a subscriber clicks Pay in the iBilling customer portal, iBilling creates a bKash payment session and redirects the subscriber to the bKash checkout URL. After the subscriber completes payment on the bKash page, bKash redirects back to the iBilling portal with a payment ID. iBilling calls the Query Payment endpoint to verify the transaction and marks the invoice as paid. The subscriber's account renews automatically.
This mode requires a bKash merchant account with API access enabled. The API credentials (App Key, App Secret, Username, Password) are configured in iBilling under Settings > Payment Gateways > bKash.
bKash Webhook IPN Integration
The IPN (Instant Payment Notification) mode handles payments that subscribers make directly to your bKash merchant number outside the portal — via the bKash app or USSD. bKash sends a POST request to your iBilling webhook URL the moment a payment completes. iBilling receives the IPN, matches the payment amount and reference to an open invoice, and automatically reconciles. The subscriber's account renews without any manual action from your billing team.
The webhook URL format in iBilling is api.ibilling.net/v1/webhooks/bkash/[your-tenant-slug]. This URL must be registered with bKash as your merchant's IPN endpoint. iBilling verifies the webhook signature before processing any payment to prevent spoofed notifications.
bKash PayBill Integration
PayBill is the most widely used bKash mode for ISPs in Bangladesh. Subscribers pay to your registered bKash bill number from any channel — bKash app, USSD *247#, Nagad, bank counters, or bKash agent points. The payment posts to your merchant account and bKash sends a real-time notification. iBilling receives the notification, extracts the subscriber reference number from the bill payment details, matches it to the correct customer account, and applies the payment automatically.
To use PayBill, you must register a bKash bill number through your bKash business relationship manager. Once registered, iBilling handles all reconciliation — no manual payment entry, no daily spreadsheets.
Automatic Invoice Reconciliation in iBilling
Regardless of which bKash mode your subscribers use, iBilling reconciles payments automatically. The matching logic works as follows: iBilling extracts the payment amount and subscriber reference from the bKash notification, finds the oldest unpaid invoice for that subscriber with a matching or close amount, and marks it paid. If no match is found, the payment is logged as unmatched and appears in the billing team's reconciliation queue. Over 95% of bKash payments reconcile automatically without any manual action.
Common bKash ISP Billing Pitfalls
ISPs new to bKash integration frequently encounter these issues:
- IPN endpoint not whitelisted in bKash merchant settings — webhooks silently fail
- Subscriber reference number format mismatch — payments land in unmatched queue
- bKash API version mismatch — bKash updates APIs regularly; always use current v1.2 endpoints
- Missing HTTPS on the IPN endpoint — bKash rejects non-TLS webhook URLs
- Timezone mismatch in transaction logging — bKash timestamps in BST, reconcile in BST not UTC
iBilling handles all of these automatically for tenants on the platform. API version updates are deployed centrally — you never need to update integration code when bKash changes their API.