Payment settings explanations
Getting paid is the part of your store that has to work perfectly. This guide covers every payment setting in one place: what each method does, how to set it up, what the customer actually sees at checkout, how the advance-payment options are calculated, and how money gets confirmed afterwards.
Where the settings live
Payments touch three places in your dashboard:
- Integrations → Payment tab is where you switch methods on and configure them.
- Payment Verification is where you approve manual payments, reachable from the sidebar and from the Orders page.
- The order detail page shows the payment for one order, with Verify and Reject buttons when a decision is needed.
Note: This guide is about money from your customers. Your own subscription bill for using Sohoj Dokan is a separate thing, handled on the Subscription page.
The six methods
| Method | Type | Who confirms the payment |
|---|---|---|
| Cash on Delivery | Cash | The courier, when the parcel arrives |
| bKash | Manual | You, by checking your own bKash app |
| Nagad | Manual | You, by checking your own Nagad app |
| Bank Transfer | Manual | You, by checking your bank statement |
| PayStation | Automatic | The gateway confirms it for you |
| DGePay | Automatic | The gateway confirms it for you |
The difference between manual and automatic is the whole story. With a manual method your customer sends money themselves and types in a transaction ID, and nobody knows it is real until you look. With a gateway, the payment is confirmed by the provider and the order updates itself.
Manual methods cost you nothing per transaction and are what most small Bangladeshi stores run on. Gateways charge a fee but remove the checking work entirely, which starts to matter somewhere around the point where verifying payments eats an hour of your day.
Turning a method on
- Open Integrations and go to the Payment tab.
- Tap the method you want. A panel slides in with its settings.
- Fill in the details, switch Enable on, and press Save Changes.
A card shows Configured or Connected once it is set up, so you can see the state of everything at a glance.
Checkout payment order
At the bottom of the Payment tab is Checkout payment order, where you arrange the sequence your enabled methods appear in at checkout. Move up and move down, then save.
This is worth thirty seconds of thought. Whichever option sits at the top gets chosen most, simply because it is first. If you want more advance payments and fewer pure cash-on-delivery orders, put bKash above COD and watch what happens.
Cash on Delivery
The simplest one, and the default expectation for most shoppers in Bangladesh. The customer pays the courier when the parcel arrives.
The only setting is Custom Instructions, shown to the customer when they pick COD. Use it for something practical like “please keep the exact amount ready” rather than leaving it empty.
Cash on delivery stays available unless you explicitly switch it off, which is deliberate. Losing COD by accident would cost you most of your orders.
bKash and Nagad
These are Send Money payments, straight from your customer’s personal account to yours. There is no API involved, which is why they are free and why they need checking.
What you configure:
- Your bKash or Nagad number, where customers send money. Use a number you actually watch.
- Payment Amount, explained in its own section below.
- Custom Instructions, shown at checkout alongside the automatic instructions.
What the customer sees at checkout: your number with a one-tap copy button, the exact amount to send, and two fields to fill in after they send it.
- Transaction ID: 8 to 10 characters, letters and numbers, exactly as bKash or Nagad texted it to them.
- Sender phone number: the Bangladeshi mobile number they sent from, which has to be a valid 11-digit number starting with 01.
The order then arrives in your dashboard with the payment status Pending Verification, which is your queue of things to check.
Bank Transfer
For larger orders and for customers who prefer banking to mobile money. You provide your account details and the customer transfers, then gives you a reference.
What you configure:
- Bank name, account holder name, account number, routing number, branch name
- Account type: savings or current
- Payment Amount and Custom Instructions, same as the others
Customers see all of it at checkout with a copy button on the account number, and they enter a reference for the transfer. Unlike bKash and Nagad, there is no fixed format for a bank reference, so anything they give you is accepted and you match it against your statement yourself.
Bank transfers take longer to appear on your side than mobile money does. Do not treat a missing transfer as a fake one until the next working day has passed.
PayStation
An automatic gateway that handles bKash, Nagad, Visa and Mastercard on one hosted page.
You need a Merchant ID and password from PayStation, plus the usual Payment Amount and Custom Instructions.
How the flow runs:
- The customer picks PayStation and places the order.
- They are sent to PayStation’s own secure page to pay.
- On success they come back to your store, and the order is marked Paid automatically.
- If the payment fails or they cancel, the order comes back as Unpaid, and the order still exists so you can follow up.
Nothing needs verifying. The gateway tells us the outcome and the order updates itself.
DGePay
A second automatic gateway with its own hosted checkout, working the same way as PayStation. It needs a Client ID, an API Key and a Secret Key, plus the same amount and instruction settings.
Run whichever gateway gives you better rates. There is no benefit to enabling both unless one of them is unreliable for your customers.
The Payment Amount option
Every method except cash on delivery has this setting, and it is the most useful thing on the whole page. It decides how much is collected up front and how much is left for the courier to collect.
| Option | Paid now | Collected on delivery |
|---|---|---|
| Full order amount | The whole total | Nothing |
| Fixed amount | The amount you set | The rest |
| Percentage of order total | That share of the total | The rest |
| Delivery charge only | Just the delivery fee | Everything else |
Worked through on a ৳1,200 order with a ৳60 delivery charge:
- Full: customer pays ৳1,200 now, courier collects ৳0
- Fixed at ৳200: customer pays ৳200 now, courier collects ৳1,000
- Percentage at 20%: customer pays ৳240 now, courier collects ৳960
- Delivery charge only: customer pays ৳60 now, courier collects ৳1,140
Two small details worth knowing. A percentage is rounded up to the nearest taka, so 20% of ৳1,199 becomes ৳240 rather than ৳239.80. And a fixed amount is capped at the order total, so a ৳200 advance on a ৳150 order simply collects ৳150.
Why an advance changes your business
Delivery charge only is the most quietly effective setting in the whole dashboard. Asking for just the delivery fee up front is small enough that genuine customers barely hesitate, and it removes almost all fake orders, because nobody places a prank order after paying real money. If a customer then refuses the parcel, your courier cost is already covered instead of coming out of your pocket.
The split shows on the order as Paid online and Collect on delivery, and that second figure is exactly what your courier is told to collect.
What happens after a customer pays
| Method | Payment status when the order arrives | What you do |
|---|---|---|
| Cash on Delivery | Unpaid | Mark Paid after the courier settles with you |
| bKash, Nagad, Bank Transfer | Pending Verification | Check your app or statement, then Verify or Reject |
| PayStation, DGePay | Paid on success, Unpaid on failure | Nothing |
Verifying manual payments
Two ways to do it, both leading to the same place.
From the Payment Verification page you get every order awaiting a decision in one list, with the order number, customer, amount, transaction ID, sender phone, method and date. You can filter by method, which helps when you want to check all your bKash payments against the app in one pass. The list holds up to 100 pending orders.
From an individual order, the Verify and Reject buttons appear in the Payment Info card while the status is Pending Verification, and disappear once you have decided.
- Verify sets the payment to Paid and writes “Payment verified” into the order history.
- Reject sets it to Unpaid and writes “Payment verification rejected”.
Neither action deletes anything or cancels the order, so a rejection is recoverable. If a customer mistyped their transaction ID and sends you the right one, you can set the payment status back to Paid from the order page.
Note: Always check the transaction in your own bKash, Nagad or banking app. Never verify from a screenshot the customer sends you. Screenshots are trivially edited, and a transaction ID that looks real proves nothing on its own. This single habit prevents nearly all payment fraud against small stores.
Payment statuses
| Status | Meaning |
|---|---|
| Unpaid | Nothing received yet. Normal for COD |
| Pending Verification | A claimed payment you have not confirmed |
| Partial | An advance received, the rest still owed |
| Paid | Fully paid |
| Refunded | Money returned to the customer |
Pending Verification counts as nothing collected in your totals, on purpose, since an unchecked claim is not money. The full picture of how Collected and Due are worked out is in orders page explanations.
Common questions
| What you notice | Why |
|---|---|
| A method is not showing at checkout | It is configured but not enabled, or the changes were not saved |
| The customer cannot enter their transaction ID | bKash and Nagad IDs must be 8 to 10 letters and numbers. Bank references have no fixed format |
| The sender phone field is refused | It must be a valid Bangladeshi mobile number, 11 digits starting with 01 |
| A gateway order came back Unpaid | The payment failed or the customer cancelled. The order is still there to follow up |
| The advance amount looks a taka too high | Percentages are rounded up to the nearest taka |
| An order says Paid but money is still to collect | It is a split payment. The online part is paid, the rest is with the courier |
| Verify and Reject are missing on an order | They only appear while the status is Pending Verification |
| Two orders arrived with the same transaction ID | Nothing blocks a repeated ID, so check each one against your own app |
In the mobile app
The merchant app has the same Integrations screen for configuring payment methods, and a Payment Verification screen with a pending count badge, so you can see at a glance whether anything is waiting. Since verifying means switching to your bKash app anyway, doing it on your phone is usually faster than on a computer.
Tips
- Start with COD plus one manual method. Adding six options does not help anyone decide.
- Use Delivery charge only as your advance setting. It is the cheapest insurance against fake orders you will ever get.
- Put your preferred method at the top of the checkout order. Position genuinely changes what customers pick.
- Verify payments in batches at fixed times rather than one by one all day.
- Keep the bKash or Nagad number you accept payments on separate from the one you use personally, so your transaction list is easy to scan.
- Write real instructions on each method. “Send Money, not Payment” saves a surprising number of confused messages.
What’s next
For each method in more depth, see payment methods overview, cash on delivery, bKash and Nagad, bank transfer, PayStation, DGePay, and partial and advance payments. To act on payments once orders arrive, see verify manual payments.
Still need help?
Our team is here for you. Reach out and we’ll get you sorted.