Naafi Pay

MFS Automation

Mobile Financial Service (MFS) automation is the core of NaafiPay. bKash, Nagad, Rocket, and Upay all confirm payments by sending an SMS to the merchant's registered phone. Without automation, you read each SMS, copy the TRX ID, find the matching order, and mark it paid. NaafiPay replaces that loop with a hardened reader pipeline: an Android device in our data centre receives the SMS, normalises it, matches it to a pending invoice, and notifies your application — all in under fifteen seconds.

How the pipeline works

  • You create a checkout. NaafiPay returns a hosted page with the merchant MFS number and an amount.
  • The customer pays from their bKash, Nagad, or Rocket app and types the unique reference shown on the checkout page.
  • The merchant MFS account receives the funds and emits a confirmation SMS.
  • Our reader fleet parses the SMS, extracts the amount, sender wallet, TRX ID, and reference.
  • The reference is matched to the pending invoice and the invoice transitions to completed.
  • Your webhook fires within seconds, and the customer is redirected to your success_url.

Supported providers

NaafiPay currently automates bKash (personal and merchant), Nagad (personal and merchant), Rocket, and Upay. Bank transfer matching is supported for any commercial bank in Bangladesh via the same reference-matching approach using bank SMS alerts.

TipReference codes are how matching works
Each checkout generates a short reference code (for example NP-7K3R). The customer types this code in the “reference” field of their bKash or Nagad transfer. Our reader uses this code to match the payment to the correct invoice. If a customer pays without a reference, the payment lands in a manual review queue you can clear from the dashboard.

Reliability and redundancy

The reader fleet runs in two geographically separated data centres with N+1 device redundancy per provider. If one reader goes offline, the next one in the rotation picks up incoming SMS immediately. Internally we monitor end-to-end latency per provider and alert on any rolling average above thirty seconds.

WarningPersonal MFS limits apply
Personal bKash and Nagad accounts have daily and monthly transaction limits set by the provider. If you expect to receive more than the personal limit, you must upgrade to a merchant MFS account. NaafiPay reads the SMS from any account you register, but we cannot bypass provider-side limits.

What happens to unmatched payments

If a payment arrives without a recognised reference, or if the amount does not match any pending invoice within the matching window, NaafiPay flags it in the Manual Review queue. You can match it to an order yourself, refund it with one click, or, if it is a genuine bonus payment from a customer, mark it as a tip that does not affect any invoice.

NoteWhat this means for you
You do not run any reader software. You do not manage any SIMs. You do not read SMS. You just create checkouts and receive webhooks. The automation runs entirely on NaafiPay-managed infrastructure.
Updated at: May 30, 2026