bKash & SSLCommerz Payment Gateway Guide for Bangladesh

How to add bKash and SSLCommerz to your website: merchant account, integration options for WooCommerce, Shopify and custom stores, testing and common mistakes.

Redwan RahatRedwan RahatFull-Stack Web Developer · Dhaka · Updated

Short answer: To use the bKash payment gateway on your website you need a bKash merchant account, the API credentials bKash issues after onboarding, a plugin or a custom integration, a full round of sandbox tests and then a switch to live credentials. SSLCommerz follows the same path and adds cards, mobile banking and internet banking in one gateway.

I build online stores in Bangladesh with bKash, SSLCommerz and Stripe. I also run my own store, Blusshy, which takes cash on delivery, bKash and Nagad. This guide covers what you need before a developer can switch payments on. It also covers the mistakes that cause lost orders.

What is the bKash payment gateway?

The bKash payment gateway lets a customer pay on your website from their bKash wallet. Your server starts the payment and the customer confirms it on a bKash page with their PIN and OTP. Then bKash sends them back to your site with the result.

bKash calls this standard flow Tokenized Checkout. It also offers an older iFrame checkout, which its own documentation marks as not recommended. There is also Direct Charge, an advanced option for charging a linked wallet without a redirect. For most stores Tokenized Checkout is the right choice.

What is SSLCommerz and how is it different from bKash?

SSLCommerz is a payment aggregator. Instead of connecting one payment method, you connect one gateway and your customer chooses how to pay on the SSLCommerz page: a card, a mobile wallet or internet banking. bKash on its own only takes bKash.

bKash (direct)SSLCommerz (aggregator)
What customers can pay withbKash wallet onlyCards, mobile banking (including bKash) and internet banking
Who you sign withbKashSSLCommerz
CheckoutbKash payment pageSSLCommerz payment page
Best forStores where most buyers pay by bKashStores that also want card payments
Docsdeveloper.bka.shdeveloper.sslcommerz.com

Many stores use both: bKash direct as the main button, because most customers already have the app. SSLCommerz then covers everyone who wants to pay by card.

Which payment gateway in Bangladesh should you choose?

Start from how your customers already pay, not from the gateway with the longest feature list.

  • Most buyers use bKash: start with the bKash payment gateway. It is the most familiar checkout for local shoppers. The payment happens inside an app they already trust.
  • You also sell to people who pay by card: add SSLCommerz, so one integration covers Visa, Mastercard, mobile wallets and internet banking.
  • You sell to customers abroad: add Stripe for international cards. I integrate Stripe alongside the local gateways when a store sells abroad.
  • First-time buyers are nervous about paying online: keep cash on delivery next to the online options. It costs you a slower cash flow but wins orders from people who would not pay upfront.

Whatever you choose, make the checkout honest and simple: show every method by name, show the total in taka before the customer leaves your site and send a confirmation by SMS, WhatsApp or email as soon as the payment is verified.

How do you get a bKash merchant account?

You apply through bKash, not through your developer. At a high level:

  1. Apply on the official bKash merchant page. If you already have a merchant account, bKash points you to the online business sign-up for the business dashboard.
  2. Complete onboarding as an organisation account. bKash's developer documentation says this involves KYC documents and signing an agreement, with help from a Merchant Account Manager.
  3. Receive your production credentials. bKash only issues them once onboarding is complete.

My own bKash merchant approval took about 30 minutes. Yours can take longer, because the documents and fees depend on your business type and change over time, so check them with bKash directly.

While you wait for approval, your developer can build and test everything against the bKash sandbox. Nothing about the integration has to wait for the live keys.

How to add bKash or SSLCommerz to WooCommerce

On WordPress with WooCommerce, payments are usually added with a payment plugin. The plugin adds bKash or SSLCommerz as a checkout option, sends the customer to the gateway and marks the WooCommerce order as paid when the gateway confirms it.

What to check before you install any plugin:

  • It uses the current API (Tokenized Checkout for bKash, the v4 API for SSLCommerz)
  • It verifies the payment on the server before marking the order as paid
  • It is kept up to date with your WordPress and WooCommerce versions
  • It supports refunds if you need them

There is no single plugin I use for every store. I choose the payment plugin (or write a custom gateway) based on what the client needs and which gateways they sign up with.

Can you use bKash with Shopify?

Yes, through a third-party payment gateway. For Shopify stores I connect bKash through providers such as SSLCommerz or shurjoPay, which offer bKash as one of their payment methods. Shopify's help center explains how third-party payment providers work and links to its page on gateway availability. Check the gateway's Shopify setup before you launch, so bKash shows correctly at checkout.

If bKash at checkout is essential and your platform can't offer it, WooCommerce or a custom build gives you full control over the payment flow.

How does integration work on a custom website?

On a custom store (Next.js, Node.js, Django or PHP) the flow for both gateways looks the same:

  1. Create the payment. Your server calls the gateway with the order amount and your order ID. The gateway answers with a payment URL.
  2. Redirect. The customer goes to the bKash or SSLCommerz page and pays.
  3. Callback. The gateway sends the customer back to a success, fail or cancel URL on your site.
  4. Notification. The gateway also notifies your server directly. bKash calls this a webhook or IPN. SSLCommerz calls it IPN.
  5. Verify on the server. Before you trust any callback or notification, your server asks the gateway to confirm the payment. SSLCommerz's v4 documentation says to call its validation API and check the transaction ID, amount, currency and status.
  6. Update the order. Only then do you mark the order as paid, send the confirmation and reduce stock.

Two rules that matter more than anything else:

  • Secret keys stay on the server. App keys, secrets and store passwords never go into front-end JavaScript, a public repository or a mobile app. Anyone who sees them can make requests as your store.
  • The redirect is not proof of payment. A customer can open your success URL by hand. Only a server-side verification counts.

Testing checklist

Test every case in the sandbox before you switch to live credentials:

TestWhat should happen
Successful paymentOrder marked paid once, confirmation sent, stock reduced
Failed paymentOrder stays unpaid, customer sees a clear message and can try again
Cancelled paymentOrder stays unpaid, cart is kept
RefundRefund recorded on the order, customer notified
Duplicate callback or IPNOrder is not marked paid twice and stock is not reduced twice
Customer closes the tab after payingThe IPN still marks the order as paid
Amount changed in the browserVerification fails because the amount does not match the order

Common mistakes

  • Marking orders as paid from the redirect alone, without server-side verification
  • Putting API secrets in front-end code
  • Ignoring the IPN, so payments are lost when a customer closes the browser early
  • Not handling duplicate notifications, which double stock deductions
  • Going live without testing failed and cancelled payments
  • Forgetting to switch the sandbox URLs and keys to production ones
  • Showing a confusing checkout. Name the methods clearly (bKash, card, cash on delivery) so customers trust the page

Frequently asked questions

How much does the bKash or SSLCommerz payment gateway cost?

Both charge a fee per successful transaction. The rates depend on your agreement. Check the current rates on the official SSLCommerz pricing page and with bKash when you apply for your merchant account.

How long does bKash merchant approval take?

My own approval took about 30 minutes. It depends on your documents and business type, so yours may take longer.

Can I offer cash on delivery alongside bKash?

Yes. Cash on delivery is a separate checkout option and does not need a gateway. Blusshy offers cash on delivery nationwide alongside bKash and Nagad, which helps first-time buyers who prefer to pay when the product arrives.

Can one website use both bKash and SSLCommerz?

Yes. Each gateway is a separate checkout option. A common setup is bKash for wallet payments and SSLCommerz for cards and other banks.

Do I need a trade license?

bKash's online business page mentions a Personal Retail Account for businesses without a trade license. Check the current requirements with bKash and SSLCommerz before you apply.


Need an online store with bKash and SSLCommerz? See e-commerce websites in Bangladesh for platforms and features. You can also check the website pricing to see where your project starts.

Usually replies fastChat on WhatsApp