Take payments with bKash (Bangladesh)

Connect your own bKash merchant account so customers in Bangladesh can pay from their bKash wallet at checkout — what bKash has to give you first, where the four credentials come from, and what to check if they're rejected.

Last updated 21 September 2026


bKash is how most of Bangladesh pays online. Once it is connected, your checkout shows a Pay with bKash option: the customer goes to bKash's own page, enters their bKash number, the code bKash texts them and their PIN, and comes straight back to your store with the order confirmed. You connect your own bKash merchant account, and every payment settles into your account — SitesPlaced is never in the middle and takes no cut on any plan.

Your store must sell in taka

bKash only takes payments in Bangladeshi taka (BDT). Set your store's currency to BDT under Settings → Store details first. On a store priced in any other currency the bKash option does not appear at checkout, because it could never take the payment.

Before you start

A personal bKash account is not enough, and neither is an ordinary merchant number that customers use with Payment in the app. To take payments on a website, bKash has to switch on its payment gateway service (they call it PGW) for your merchant account. That is bKash's decision and their paperwork: usually your trade licence, NID and bank details.

When bKash approves it, they email you four values. There is no dashboard to copy them from, so keep that email safe:

  • Username
  • Password
  • App key
  • App secret

They normally send two sets: one for their sandbox (testing, no real money) and one for live (they may call it production). If you have a merchant account but not these, ask your bKash merchant contact for tokenized checkout API credentials.

Step 1 — Connect

  1. 1In your store dashboard, open Settings → Payments & invoices. On a taka store the bKash card is the first one.
  2. 2Paste the Username, Password, App key and App secret from bKash's email. Use the live set.
  3. 3Leave Mode on Live and click Connect bKash.

Check them before you press connect

We test the four values by logging in to bKash with them, and bKash only allows a couple of logins an hour. A few wrong attempts in a row and bKash will refuse every login for the next hour, even with the right values. Copy and paste rather than typing, and watch for a stray space at the end.

Step 2 — Switch it on

Tick Customers can pay with bKash on the card. A Pay with bKash option now appears at your checkout. Place a small order on your own store to see it end to end.

What your customers see

  1. 1At checkout they choose Pay with bKash and press the order button.
  2. 2They are taken to bKash's page. If they gave you a Bangladeshi mobile number at checkout, it is already filled in as the wallet number.
  3. 3They enter the verification code bKash sends by SMS, then their bKash PIN.
  4. 4They come straight back to your store and see their confirmation. The order shows in your Orders tab marked paid, with the bKash transaction ID (TrxID) on it so you can match it in your bKash merchant panel.

One thing works differently from card gateways, in your favour: bKash only takes the money at the very last step, once the customer is back on your store. A customer who closes bKash's page halfway, or cancels, has not been charged anything — so you will not get orders where the customer paid but the store never heard about it.

Delivery charges inside and outside Dhaka

You can offer two delivery options with your own names and prices: for example Inside Dhaka and Outside Dhaka. Set them under Settings → Shipping (the standard charge, plus the second delivery option with its own label and charge), and the customer picks the one that applies at checkout. The charge is not worked out from the address, so check the option against the District on the order: checkout on a taka store asks for it from a list of all 64, so Dhaka is always spelled one way. More in Shipping charges.

Do I need to set up a webhook?

No. bKash's webhook is something their support team sets up by hand for each merchant, and this integration does not need it, for the reason above: no money moves until the customer is back on your store and we ask bKash to complete the payment.

What we do with your credentials

  • Your password and app secret are encrypted before they are stored, and all four values are stripped out of every page your website sends to a browser.
  • Payments go straight from your customer's wallet to your bKash merchant account. We never hold your money and cannot pay ourselves out of it.
  • We never confirm a payment on the customer's say-so. The order is marked paid only when bKash itself tells us the payment completed, for the right amount and the right order.
  • Disconnect removes the credentials and the login we hold with bKash from our systems immediately. To stop the old ones working everywhere, ask bKash to reissue them.

More on all of this: How SitesPlaced handles your keys.

If something goes wrong

It says bKash rejected my credentials.

Usually one of three things. (1) You pasted the sandbox set with Mode on Live, or the reverse. (2) A value has a space at the start or end, or two values are swapped: the app key and app secret are both long strings and easy to mix up. (3) bKash has not finished switching on the payment gateway for your account. If you have tried a few times in a row, wait an hour before trying again: bKash blocks logins for a while after repeated failures.

I connected bKash but it does not show at checkout.

Check two things: the box Customers can pay with bKash is ticked, and your store currency is BDT (Settings → Store details). bKash is hidden on any other currency.

A customer says they paid but the order is pending.

Look the payment up in your bKash merchant panel. With bKash the money only leaves the customer's wallet at the last step, back on your store, so a pending order nearly always means the customer closed the page early and was not charged. Ask them to order again. If your bKash panel does show the money, open the order in your Orders tab and press Mark as paid: the order confirms, the emails go out and your stock updates.

The customer sees "insufficient balance".

That message comes from bKash: their wallet does not hold enough for the order. They can add money and try again; their cart is still there.

Can I test before going live?

Yes. Paste the sandbox set and choose Mode Test. bKash gives you test wallet numbers, a test code and a test PIN along with the sandbox credentials. Reconnect with the live set before you start selling: sandbox payments are not real money.

Where do I issue refunds?

From your bKash merchant panel, on the transaction. The order in SitesPlaced will not change on its own for a bKash refund, so update its status by hand so your records match.

What does bKash charge?

bKash charges its own fee on each payment, agreed between you and bKash. SitesPlaced adds nothing on top: 0% commission on every plan, including the free one.

Didn't find what you needed? Ask an AI assistant about this guide. It answers in seconds.