Get paid on bKash and Nagad.Confirmed in seconds.
Customers pay your own number. A phone you own confirms every payment by its TrxID, and the money never passes through us.
Free · No merchant account needed · Set up in about ten minutes
Sample: three payments confirmed, from bKash and Nagad, each matched to its order by TrxID.
Follow one ৳1,450 payment.
Four stops, and the money never leaves your number. Works with bKash, Nagad, Rocket, Upay and Cellfin, on personal, agent or merchant numbers.
01 · your customer
Sends ৳1,450 to your number
From their own bKash or Nagad app, with Send Money, Cash Out or Payment. It lands in your wallet, never ours.
02 · your phone
Receives the wallet SMS
ToruPay for Android reads it, signs it on the phone and uploads it. If the phone is offline, it queues and sends later.
03 · torupay
Matches the TrxID
Your customer types the TrxID or adds a screenshot. It has to match the SMS, the exact amount and this order, and it can be claimed once.
04 · your site
Hears about it
A webhook signed with HMAC-SHA256, retried until your server answers 2xx. Your dashboard shows the order as paid.
You are still matching TrxIDs by hand.
A customer sends ৳1,450 and a screenshot. You open the wallet app, scroll, compare the last four digits, reply, then update the order. Then the next one arrives.
By hand
- Screenshots in the inbox. Some of them edited.
- The same TrxID sent to two of your staff.
- Orders shipped against money that never arrived.
- A spreadsheet that is wrong by Friday.
With ToruPay
- Keep the screenshots. ToruPay reads the TrxID and checks it against the SMS your phone received.
- One TrxID can be claimed once. The database enforces it.
- The phone signs every wallet SMS, and each one must continue your balance. A forged SMS breaks the chain.
- Your dashboard and your order system update themselves through a signed webhook.
Everything a paid gateway sells you. Included.
Free. The money goes straight to you.
৳0
There is no platform fee today.
Customers pay your own wallet number, so there is no settlement delay and nothing for us to hold. Every feature on this page is included, with no limit on phones, brands or links.
What you usually pay ৳10 to ৳4,999 a month for.
Licence-priced tools of this kind charge by tier or sell a one-time licence, and limit brands, devices or domains by plan.
Compare line by line
| Feature | Licence-priced gateways | ToruPay |
|---|---|---|
| Monthly licence | ৳10 to ৳4,999 by tier | None |
| Brands and devices | Limited by plan | Unlimited |
| Webhook signature | API key echoed, or unsigned | HMAC-SHA256 over the raw body |
| Find a payment by your order id | Only by their invoice id | GET /checkout/sessions?order_id= |
| Retry-safe checkout creation | Not documented | Idempotent on order_id |
| Delivery-fee or partial prepayment | Needs another plugin | Built in: full, delivery, partial, balance |
| Refund records with a webhook | Rare | Yes |
One POST opens a checkout. One HMAC proves the callback.
Server to server, no SDK required. Look up any session by your own order id, and a retry never opens a second one. The signature covers the exact bytes we send, so verify before you parse.
curl -X POST "$KRONX_BASE_URL/api/v1/checkout/initialize" \
-H "authorization: Bearer $KRONX_API_KEY" \
-H "content-type: application/json" \
-d '{
"amount": "1450.00",
"order_id": "ORD-1042",
"webhook_url": "https://yourshop.example/webhooks/kronx",
"metadata": { "cart": "8841" },
"locale": "bn"
}'
# 200 { checkout_url, session_id, payment_id, trid, expires_at }import crypto from 'node:crypto';
// req.rawBody must be the exact bytes ToruPay sent.
export function handleKronxWebhook(req, res) {
const expected = crypto
.createHmac('sha256', process.env.KRONX_CALLBACK_SECRET)
.update(req.rawBody)
.digest('hex');
const a = Buffer.from(expected, 'hex');
const b = Buffer.from(req.headers['x-kronx-signature'] ?? '', 'hex');
if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) {
return res.status(401).end();
}
const event = JSON.parse(req.rawBody);
// Deliveries are at-least-once: key your own work on the event id.
applyOnce(req.headers['x-kronx-event-id'], event.order_id, event.trx_id);
res.status(200).end();
}Three steps. About ten minutes.
One Android phone reads the payment SMS. The app installs from this site, because Google Play does not list apps that read SMS.
- 01
Install the app and scan the QR
- 02
Share a link or call the API
- 03
Get paid, get the webhook
Asked before signing up.
Do I need a merchant account with bKash or Nagad?
No. A personal, agent or merchant number all work. Checkout shows the right steps for each: Send Money, Cash Out or Payment.
Does ToruPay hold my money?
Never. Your customer pays your number directly. ToruPay only reads the confirmation SMS on your own phone and matches it to the order.
What stops someone typing a fake TrxID?
A TrxID only counts if your phone received the matching wallet SMS for that exact amount. Each TrxID can be used once. With balance-chain verification on, the SMS must also continue your wallet balance correctly.
Can my customer send a screenshot instead of typing the TrxID?
Yes. The payment page reads the TrxID from the screenshot on the customer's own phone, and the picture is never uploaded. The TrxID still has to match an SMS your phone received.
Why is the Android app not on Google Play?
Google Play does not list apps that read SMS unless they are the default SMS app. You install the signed APK from our download page and can check its SHA-256 there.
What happens if the phone is off?
Payments wait. The app queues every SMS on the phone and uploads when it is back online. Your dashboard shows when a phone has gone quiet.
Can I use it without a website?
Yes. Payment links and invoices need no code. Share the link in chat and watch the payment land in your dashboard.
Is it really free?
Yes. If a platform fee is introduced, it will be a small percentage that starts only after a free allowance, and this page will show the exact numbers.
Stop checking TrxIDs by hand.
Create an account, pair one phone, send one link. Your first payment can land tonight.
ToruPay
Takes the payment on your own wallet numbers and tells your systems.
TORI
Your online store. Checkout, delivery-fee prepayment and plan billing run on ToruPay.
Tanet Chat
Your AI sales agent on Messenger and Instagram. It sends a ToruPay link when the order is agreed.