Bangladesh payment methods PAYJN supports
Pay-in and payout coverage confirmed by PAYJN operations on 30 October 2026. Final availability, limits and fees are confirmed for each approved merchant setup.
| Method | Pay-in | Payouts |
|---|---|---|
| bKash | Customer pays from a bKash wallet | BDT sent to a bKash account |
| Nagad | Customer pays from a Nagad wallet | BDT sent to a Nagad account |
| Upay | Customer pays from an Upay wallet | BDT sent to an Upay account |
Published scope only. Each method, limit and fee depends on merchant approval. Collection approval does not by itself enable payouts.
How a Bangladesh wallet payment works, step by step
- Your system creates the order with a unique merchant reference and the exact BDT amount, and calls the PAYJN API.
- PAYJN returns the payment step for the chosen wallet, as described in your integration documentation.
- The customer approves the payment in bKash, Nagad or Upay. Your page should explain what the customer will see and how long the request stays open.
- PAYJN sends a callback when the payment result is known. Your server verifies it and updates the order once, even if the callback arrives more than once.
- If the callback is late, query the order status instead of asking the customer to pay again.
- Reconcile daily against the transaction report, including expired and failed attempts.
bKash, Nagad and Upay: what to get right
Follow the authorization steps documented for each approved wallet route. Where the customer approves the payment outside your page, design the checkout so a slow or interrupted approval does not turn into a lost order or a double charge. Do not assume every wallet uses identical instructions; follow the flow documented for each approved method.
- Wallet account details: collect the details your documentation requires, typically the mobile number linked to the wallet, and validate the format before creating the order.
- Exact amount: show the BDT amount the customer will approve and do not let it change after the order is created.
- Expiry: show how long the customer has to approve, and decide what happens to an approval that arrives after the order has expired.
- Return to your page: treat it as navigation only. Mark the order paid only after your server receives and verifies the PAYJN callback, or confirms the status by query.
- Never ask for a PIN: your support team should never request a customer's wallet PIN, password or one-time code.
For a detailed planning checklist, read the bKash and Nagad integration checklist.
Transaction states and what your system should do
| State | Meaning | Your system should |
|---|---|---|
| Created / pending | Payment requested, not yet confirmed | Wait for the customer's approval; do not fulfil |
| Paid | Payment confirmed for the order | Fulfil once, record the PAYJN reference |
| Failed | Payment declined or not completed | Let the customer start a new attempt |
| Expired | No confirmed payment before the deadline | Close the order; investigate any later payment |
| Unknown after timeout | Your request or callback timed out | Query status before any retry; never create a duplicate order |
Bangladesh payouts to bKash, Nagad and Upay
PAYJN payouts in Bangladesh send BDT to bKash, Nagad and Upay wallet accounts. Common uses include seller settlements, commissions and customer withdrawals. Plan each payout with validated beneficiary details, a funded balance, one stable merchant reference and a clear rule for timeouts: query the original payout first, and create a replacement only after the original is confirmed as failed and the replacement is approved.
The Bangladesh payout API page covers beneficiary checks, payout states and controls in detail.
Reconciliation and exception handling
Finance teams should be able to explain every BDT movement. Match each paid order to its PAYJN transaction reference and amount every day, and keep a short list of open exceptions with an owner for each.
- Paid but order still pending: check whether the callback reached your server, then query the order status.
- Customer says they paid, no record: ask for the payment time, amount and wallet transaction ID, and send them to PAYJN support through the agreed channel.
- Duplicate callbacks: acknowledge each one, but credit the order only once. See how to handle duplicate payment webhooks.
- Repeated attempts: if a customer tries again after a failure, link the attempts to the same order so only one can be fulfilled.
Prepare a Bangladesh merchant or partner enquiry
Explain your role in the proposed integration so the team can review the business and payment flow together.
- Direct merchant: the product or service you sell, your website or app URL, customer locations and expected BDT order amounts.
- Platform or software team: the merchant you are integrating for, the contracting company and how orders and payment results will be matched.
- Payment or referral partner: your service, the downstream merchant types and which entity would receive onboarding review.
For each enquiry, include your company registration jurisdiction, the methods and directions you need (collections, payouts or both), current or forecast monthly BDT volume and intended launch timing. Do not send API secrets, identity documents or customer data in a first enquiry. Fees, limits, settlement arrangements and timelines are agreed for each approved business. A new business with no prior processing history can apply too; see what PAYJN reviews instead. Start with the local payment API checklist or review the integration approach.
