Skip to the content
Docs

bKash: pay from the bKash wallet

Connect bKash Checkout (tokenized) so buyers pay from their bKash wallet. The four values you need, the API version, testing, refunds and common errors.

5 min readLast updated 23 Oct 2026

bKash is the wallet most buyers in Bangladesh already use. Once bKash has approved your Checkout account, connecting it takes a few minutes.

What it is#

bKash Checkout (tokenized) lets a buyer pay from their bKash wallet at your checkout: they enter their number, the code and PIN on the bKash page and return to your store. It suits shops whose buyers mostly pay by bKash.

What you need#

  • A bKash merchant account with the payment gateway (Checkout) service approved by bKash. bKash gives you the credentials itself, separately for sandbox and live.
  • Four values and one choice:
Field in JuktoWhat it is
App keyIdentifies your app (secret)
App secretSecret for your app (secret)
UsernameThe API username bKash gave you
PasswordThe API password bKash gave you (secret)
API versionv2 (current) or v1.2.0-beta (older merchant accounts). Leave empty for v2

Where to find your keys#

  1. 1

    Ask bKash for the Checkout (tokenized) credentials

    Ask your bKash relationship manager or merchant support. bKash issues them per merchant, one set for sandbox and one for live. They are not a self-service download.

  2. 2

    Collect the four values

    You receive an App key, an App secret, a Username and a Password. Copy each into the field with the same name in Jukto.

  3. 3

    Choose the API version

    Leave API version empty for v2. Choose v1.2.0-beta only if bKash set up your merchant account before 2024 and told you to use it.

  4. 4

    Match the mode

    Choose Sandbox (testing) or Live so that it matches the set of values you pasted.

What Jukto does#

  • Keys. Saved encrypted for this website only. Jukto asks bKash for a token with them and keeps the token for a short time, scoped to your website.
  • Payment. Jukto creates a bKash payment and sends the buyer to the bKash page. bKash pays in BDT only.
  • Return. When the buyer returns, Jukto does not trust the address: it asks bKash to confirm the payment (execute and query) and compares the invoice and the amount.
  • Nothing to register. There is no notification address to paste in the bKash panel for payments.
  • Order. On success the payment shows Paid with the bKash transaction ID. If the buyer cancelled or the payment failed, the order stays unpaid and the payment is marked Cancelled or Failed.
  • Refunds. You can refund from the order. bKash only allows refunds within a limited time and a limited number of partial refunds per payment, so check the bKash rules before you promise one.
bKash payment
bKash paymentJukto creates a bKash payment, the buyer pays on the bKash page and returns, and Jukto asks bKash to confirm before it marks the order paid.Jukto creates thepaymentBuyer pays on bKashBuyer returnsJukto asks bKash toconfirmCompleted, invoiceand amount match?Order marked paidCancelled or failed:stays unpaidYesNo
Text version of the diagram
  1. Jukto creates the payment to Buyer pays on bKash
  2. Buyer pays on bKash to Buyer returns
  3. Buyer returns to Jukto asks bKash to confirm
  4. Jukto asks bKash to confirm to Completed, invoice and amount match?
  5. Completed, invoice and amount match? to Order marked paid (Yes)
  6. Completed, invoice and amount match? to Cancelled or failed: stays unpaid (No)

Test and turn on#

  1. 1

    Open the provider

    Go to Dashboard > Tools > Integrations, open the Payments group and choose bKash.

  2. 2

    Choose the mode and fill the fields

    Pick Sandbox (testing) or Live, fill App key, App secret, Username, Password, and API version if needed. Press Save.

  3. 3

    Press Test connection

    Jukto asks bKash for a token. You see "bKash sandbox granted a token" (or "live") when the four values are right.

  4. 4

    Repeat with live values

    After a sandbox pass, switch to Live, enter the live set, Save and test again.

  5. 5

    Press Turn on

    Make one small real order with your own bKash number, then check the Payments list. Press Check again if it stays waiting.

Common errors#

What you seeWhat it meansWhat to do
Fill in: App key, App secret, Username, PasswordA required field is emptyFill all four and save
bKash refused the credentials: (bKash's message)A value is wrong, or Sandbox values are used in LiveCheck the set and the mode, and the API version
bKash did not return a tokenbKash answered without a tokenTest again; ask bKash if it repeats
bKash did not answerbKash or the network was slowTry again in a minute
bKash refused the paymentbKash did not accept the new paymentRead the message that follows; check that the amount is valid
bKash says InitiatedThe buyer has not completed the paymentWait, then press Check again
buyer returned with cancel / failureThe buyer cancelled or the payment failedThe order stays unpaid; the buyer can try again
the bKash transaction id is not saved yet; check the payment status firstA refund was tried before the payment was confirmedPress Check again, then refund
bKash refused the refundThe refund was not acceptedCheck the amount and bKash's refund time limit

Next#

Was this guide helpful?

Comments (0)

Anyone can comment. Please do not post phone numbers, passwords or customer details.

Never shown. Only used to tell you when someone replies.
0 / 2000