# 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.

Guide: https://sitesplaced.com/help/payments-and-orders/connect-bkash · Section: Payments & Orders · Last reviewed: 2026-09-21

**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. In your store dashboard, open **Settings → Payments & invoices**. On a taka store the **bKash** card is the first one.
2. Paste the **Username**, **Password**, **App key** and **App secret** from bKash's email. Use the **live** set.
3. Leave 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. At checkout they choose **Pay with bKash** and press the order button.
2. They 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. They enter the **verification code** bKash sends by SMS, then their **bKash PIN**.
4. They 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](https://sitesplaced.com/help/md/online-stores/shipping-charges.md).

## 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](https://sitesplaced.com/help/md/payments-and-orders/how-we-handle-your-keys.md).

## If something goes wrong

**Q: 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.

**Q: 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.

**Q: 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.

**Q: 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.

**Q: 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.

**Q: 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.

**Q: 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.
