Skip to content
SORS ERP

bKash, Nagad and Rocket payments in your accounts: how an ERP keeps MFS money reconciled

How to record bKash, Nagad and Rocket payments in your ERP: MFS at the counter, SSLCommerz online, fees as expenses and reconciliation against statements.

By SORS Technology team 6 min read

Ask a shop owner in Bangladesh how much money sits in the shop’s bKash account and the answer is usually a glance at the phone. Ask the accountant, and the answer is a shrug, because the bKash number is the owner’s personal one, the fees never appear in the books, and half the customers who paid by Nagad were recorded as cash. Mobile financial services are now an everyday payment rail; the books have to treat them as such. This guide explains how an ERP records MFS money at the counter and online, treats fees properly and reconciles against the monthly statement.

Why MFS money gets messy

Three habits cause almost all the confusion.

  • A personal number. Payments arrive on the owner’s personal bKash, mixed with family transfers, so shop income and personal money are one balance.
  • Cash and MFS recorded together. Counter staff mark every sale as cash because that is the default button. The cash drawer is then short and nobody knows why.
  • Fees ignored. The customer pays ৳5,000, the wallet shows less after cash-out or merchant charges, and the difference is treated as a mystery shortfall rather than an expense.

The fix is accounting discipline, made easy by software that forces the right question at the moment of sale: how did this customer pay?

One account per wallet

In the chart of accounts, create one asset account per wallet and per provider: bKash merchant, Nagad merchant, Rocket, Upay, and if you must, a separate one for a personal number used temporarily. Each wallet is then treated like a bank account: it has a balance, transactions and a monthly statement to reconcile against. In SORS ERP bKash, Nagad, Rocket and Upay are set up as payment methods mapped to those accounts, so choosing the payment method on a sale posts to the right wallet automatically.

Recording MFS at the counter

At the POS or on an invoice, the payment method should be a required choice, with the MFS transaction ID (the TrxID on the customer’s confirmation SMS) recorded as the reference. Split payments matter: a customer pays ৳3,000 by bKash and the rest in cash, and both legs should be recorded on one sale. At end of day the Z-report then shows cash, card and each MFS wallet separately, and the counter staff can match the bKash total against the merchant app before handing over the drawer.

For due collection, the same applies: when a customer clears a due by Nagad, record a payment against their party ledger with the TrxID, not a cash receipt. The sales module handles customer payments and batch payments this way.

Online payments through SSLCommerz

For a website or an online order, SSLCommerz is the payment gateway that carries bKash, Nagad, Rocket, Upay, cards and internet banking behind one checkout. The ERP records the order as paid through the gateway, with the gateway’s transaction reference. The money then arrives in your bank account on the gateway’s settlement schedule, net of its fee. So the accounting has three steps: a gateway receivable when the customer pays, a bank receipt when SSLCommerz settles, and the fee as an expense on the difference. SORS ERP’s e-commerce module integrates SSLCommerz and records these payment transactions per order.

Fees are an expense, not a shortfall

Whatever fee your MFS provider or gateway charges, and the rates vary by account type and change over time, record it as an expense. A worked example, with illustrative numbers rather than any provider’s actual rates:

Entry Debit Credit
Customer pays ৳10,000 by bKash for an invoice bKash merchant account ৳10,000 Customer receivable ৳10,000
Provider charges a fee of ৳150 on cash-out to bank MFS fees expense ৳150 bKash merchant account ৳150
Cash-out to bank ৳9,850 Bank ৳9,850 bKash merchant account ৳9,850

The wallet account now shows zero, the bank shows the money, and the profit and loss shows the fee where it belongs. Account mapping rules in the ERP post the first line automatically from the sale; the fee and the transfer are recorded as an expense and an internal transfer when you move the money.

Reconciling against the statement

Once a month, or weekly if volume is high, download the statement from the merchant portal or app and compare it with the wallet account in the ERP.

  1. Import the statement into the bank reconciliation screen; SORS ERP treats MFS wallets as bank accounts for this purpose, with bank transaction import.
  2. Match transactions by amount and TrxID. Sales recorded with the reference match instantly.
  3. Investigate the unmatched: a sale recorded as cash that was actually bKash, a customer payment that arrived with no invoice, a fee not yet recorded, a refund sent from the wallet.
  4. Post the corrections, mark the period reconciled, and keep the statement PDF attached for the five-year record.

The first reconciliation is always the worst. After a month of forcing the payment method at the counter, most businesses find the unmatched list drops to a handful of items.

Habit What goes wrong What to do instead
Personal bKash number Business and family money mixed, no statement Merchant account, or at least a separate ledger account
Every sale marked cash Drawer short, wallet unexplained Payment method required on every sale, with TrxID
Fees ignored Mystery shortfall, wrong profit MFS fees expense account
No reconciliation Errors accumulate for months Monthly statement match, weekly if busy
Online payments recorded on settlement Orders look unpaid for days Gateway receivable at payment, bank on settlement

Personal number or merchant account

A personal bKash or Nagad number has transaction limits and no separate statement for the business, and it mixes money with the owner’s life. A merchant account gives you a statement, higher limits and a clearer position at tax time. If you are still on a personal number, at least give it its own account in the books and stop using it for family. Speak to your provider about the merchant account terms; they differ by provider and change over time.

What an ERP cannot do yet

Be careful of claims about “bKash integration”. There are two different things: recording bKash payments in the books, which every serious ERP should do, and a live connection to the bKash merchant API that confirms each payment automatically. SORS ERP does the first thoroughly and does not have the second yet. Online bKash payments come through SSLCommerz, which does confirm automatically; counter payments are recorded by staff with the TrxID. If a vendor claims direct API confirmation at the counter, ask to see it work on a live phone.

Where SORS ERP fits

SORS ERP records bKash, Nagad, Rocket and Upay as payment methods mapped to separate wallet accounts, supports split payments at the POS with transaction references, integrates SSLCommerz for online collection, posts the accounting automatically through mapping rules, and reconciles each wallet against its statement like a bank account. It does not have a direct bKash or Nagad merchant API connection at the counter yet, and we will not claim otherwise. For most shops the discipline of a required payment method and a monthly reconciliation solves the real problem.

To see a split cash and bKash sale flow through to a reconciled wallet account, request a demo.

Written by the team that builds SORS ERP, the ERP described on this site. We implement it ourselves in Bangladesh, so the guidance here comes from setups we run rather than from general research. More about SORS Technology.

Frequently asked questions

Should I use a personal bKash number for shop payments?

It is common but it mixes business and personal money, has transaction limits and gives you no business statement. A merchant account provides a statement and higher limits. If you must use a personal number for now, give it its own account in the books and stop using it for personal transfers.

How do I record bKash or Nagad fees?

As an expense. Post the full amount the customer paid to the wallet account against the invoice, then record the provider's fee as an MFS fees expense and the cash-out to bank as a transfer. The wallet account then reconciles to the statement and the fee appears in your profit and loss.

Does SORS ERP connect to the bKash merchant API?

No, not yet. SORS ERP records bKash, Nagad, Rocket and Upay as payment methods with transaction references at the counter, and collects online payments through SSLCommerz, which confirms payments automatically. There is no direct bKash merchant API connection for counter payments.

How often should I reconcile MFS wallets?

Monthly at minimum, weekly if you take many MFS payments. Download the statement from the merchant portal, match transactions by amount and TrxID against the wallet account, and investigate the unmatched items. The first reconciliation is the hardest; it gets quick once staff record the payment method on every sale.

From the blog

See SORS ERP running on your own numbers

A 30-minute demo in Bangla or English, with your products, your VAT setup and your questions.