Free and open source · MIT licence

Payments and SMS for any Bangladeshi business.

Take bKash, Nagad, Rocket, Upay and card payments on your website, in your app, by payment link, or by asking Claude. Every payment comes back as a clear success or failed, with the amount, customer and transaction ID, and an SMS receipt goes to your customer.

Runs on your own server with your own gateway accounts. Prefer it hosted? See the hosted version.

Payment resultpayment.success
Amount৳1,250
CustomerRahim Uddin · 01712345678
Paid withbKash
Transaction IDBKA7Q2XYZ
Your orderINV-1001
SMS to customer: “Dhaka Books: payment of Tk 1250 received for order INV-1001. Trx ID BKA7Q2XYZ. Thank you!”
Illustrative example with sample data.
Payment methods

Every way Bangladesh pays

Turn on one gateway or all of them. Customers pick how they pay on the checkout page.

GatewayCustomers pay withRefunds from the connector
bKashbKashYes
NagadNagadIn the Nagad panel
SSLCommerzVisa, Mastercard, Amex, bKash, Nagad, Rocket, Upay, net bankingYes
shurjoPaybKash, Nagad, Rocket, Upay, cards, net bankingIn the shurjoPay panel
aamarPaybKash, Nagad, Rocket, Upay, cardsIn the aamarPay panel
BulkSMSBDSMS receipts to customers and payment alerts to you

Rocket and Upay have no open merchant API of their own, so they come through SSLCommerz, shurjoPay or aamarPay. You need your own merchant account with each gateway you use.

Ways to use it

From no code to full control

Pick what suits your business. They all use the same payment records, webhooks and SMS.

No code

Payment links

Make a link for any amount in the dashboard and send it by SMS, WhatsApp, Facebook or email. The customer opens it, picks bKash, Nagad or card, and pays.

Paste 2 lines

Pay button on any website

Add a “Pay ৳1,500” button to WordPress, Shopify, Wix, Blogger or plain HTML. Your website needs no server code.

Developers

API and webhooks

Start payments from any language (PHP, Laravel, Python, Node.js) and receive every result as a signed webhook. Full OpenAPI description included.

Node.js

Library

Use it inside your own Node.js app: one object starts payments, confirms them and tells your code when someone paid.

AI agents

Claude and MCP

Ask Claude to make a payment link, check if an order is paid, list today’s payments or text a customer. Actions that move money ask first.

Owners

Dashboard

See money received today and in total, every payment with its status, search by phone or order, and download CSV for your accounts.

How a payment works

One clear result for every payment

1StartFrom a link, a button, your API call or Claude.
2Customer paysOn the bKash, Nagad or card page of the gateway.
3ConfirmedThe connector asks the gateway itself. A wrong amount is never marked as paid.
4RecordedSuccess, failed or cancelled, with amount, customer and transaction ID.
5Everyone knowsWebhook to your system, SMS to the customer and to you, receipt page.
For websites

A Pay button in two lines

Paste this into a WordPress Custom HTML block, a Shopify Custom Liquid section, Wix Embed Code or any page. It opens your checkout with the amount filled in.

Website guide · Button maker

<!-- Your BD Connector address -->
<script src="https://pay.your-shop.com/embed.js" defer></script>

<!-- Shows "Pay ৳1,500" -->
<button data-bd-pay
        data-amount="1500"
        data-description="Invoice 42"
        data-reference="INV-42"></button>
For developers

A simple API with signed webhooks

Create a payment, send the customer to paymentUrl, and mark the order paid when the payment.success webhook arrives. Webhooks are signed with HMAC-SHA256.

API guide · API reference

# Start a payment
curl -X POST https://pay.your-shop.com/api/payments \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider": "bkash", "amount": 1250,
       "customer": {"name": "Rahim", "phone": "01712345678"},
       "reference": "INV-1001"}'

# Your webhook receives
{ "event": "payment.success",
  "payment": { "amount": 1250, "status": "success",
    "transactionId": "BKA7Q2XYZ", "reference": "INV-1001" } }
Everything included

What you get, free

Checkout and receipts

A mobile-friendly checkout page where customers choose how to pay, and a receipt page with the transaction ID.

SMS receipts and alerts

The customer gets a receipt SMS. You get an SMS for every payment. Write your own text, in Bangla or English.

Checked with the gateway

Results are confirmed with the gateway, never trusted from the browser. A paid amount that doesn’t match the order is never marked as paid.

Accounts and CRM

Download CSV for Excel or your accountant. Send every payment to Google Sheets, or through Zapier, Make or n8n to HubSpot, Zoho, QuickBooks and more.

Refunds

Full or partial refunds for bKash and SSLCommerz, from the API or by asking Claude.

Runs anywhere

Any server with Node.js 20, or Docker. No database needed; payments are saved in a file, or in your own database.

Safe by default

Nothing real happens until you switch it on

Test everything with the gateways’ sandbox systems first.

  • Starts in sandbox mode: test gateways only, and no SMS is sent.
  • Real money moves only after you set live mode with your own merchant keys.
  • Your keys stay on your own server. They are never logged or shown.
  • The API and dashboard stay off until you set a key and a password.
  • Webhooks and the return redirect are signed, so your system can trust them.
  • Open source: anyone can read every line. Independently checked by the M8ven Trust Index, with no concerning findings.
Get started

Your first test payment in minutes

You need Node.js 20 or newer and sandbox keys for one gateway. The setup guide walks through every step.

01

Download

Clone the GitHub repository, then run npm install.

02

Add your keys

Copy .env.example to .env and fill in your gateway’s sandbox keys.

03

Start

npm run serve gives you the checkout page, dashboard and API.

04

Go live

Test a payment, then switch to live keys. Where to get keys.

Free or hosted

Run it yourself, or let us run it

Open sourceHosted by Flowthera
PriceFree৳990/month
Who runs the serverYouFlowthera
All gateways, SMS, dashboard, APIYesYes
Setup help and supportCommunity on GitHubYes

Gateway fees are charged by each gateway under your own merchant account.

Questions

Good to know

Is it really free?

Yes. The software is open source under the MIT licence. You run it with your own gateway and SMS accounts, and each gateway charges its own fees.

Do I need a merchant account?

Yes, with each gateway you want to use. Sandbox (test) keys are quick to get; live keys need your trade licence and a merchant agreement with the gateway.

Does it take Rocket, Upay and Visa cards?

Yes, through SSLCommerz, shurjoPay or aamarPay. Turn on any of them to accept cards, Rocket, Upay and net banking.

Can I use it with WordPress or WooCommerce?

Yes, with payment links or the Pay button, which you paste into a Custom HTML block. A dedicated WooCommerce plugin is planned.

How does my system know a payment succeeded?

Through a signed webhook sent to your system, a signed redirect to your own page, the API, or a Google Sheet. The SMS and dashboard also show it.

Where is payment data stored?

On your own server, in a file or in your own database. Flowthera doesn’t see it unless you use the hosted version.

Is Flowthera part of Anthropic?

No. Flowthera is an independent company. Claude is a product of Anthropic, and the connector works with it through the open MCP standard.

Start taking payments

Free and open source, or hosted and supported for ৳990/month.