All projects

~/projects/bkash-sync

bKash Sync

Turns bKash payment SMS into an instant, verifiable payment API.

Year
2025
Role
Creator
Status
Open Source
Type
Android · Fintech

stack — Kotlin · Jetpack Compose · Room · WorkManager · Cloudflare Workers · D1

bKash Sync is an Android application that automatically monitors incoming bKash SMS messages, extracts transaction details, and synchronizes them with a custom backend server — built on an offline-first architecture with bidirectional sync.

The killer use case: automated P2P payment verification. A customer sends money to your personal bKash number, your phone captures the SMS, the backend syncs it, and your website verifies the payment by matching sender number + TrxID + amount. No merchant account, no bKash API access, no manual SMS checking.

01

The problem

Millions of Bangladeshi small sellers accept bKash on personal numbers because merchant onboarding is out of reach. Verification is manual: wait for the SMS, squint at the TrxID, tick the order by hand. And the official bKash API is locked behind business approvals. The gap: personal-number payments with zero automation tooling.

02

The build

Android app in Kotlin with Jetpack Compose UI — dashboard, settings and a searchable transaction list.

SmsReceiver captures incoming bKash SMS; SmsParser extracts amount, sender number, balance and TrxID into a typed model.

Room database (transactions, outbox, sync_state) gives offline-first storage with TrxID-level deduplication.

Outbox queue + WorkManager SyncWorker push parsed transactions to a Cloudflare Worker with retry and backoff — network down is not a problem.

Cloudflare Workers backend persists to D1 (SQLite at the edge) and exposes a /user/transactions lookup so any website can verify a payment by sender + TrxID + amount.

Encrypted preferences hold credentials; MIT licensed so anyone can build payment pages, bots or finance dashboards on top.

03

What it does

Automatic SMS capture

Listens for bKash SMS and parses amount, sender, balance and TrxID — no manual entry.

Offline-first sync

Room + outbox queue with WorkManager retries: transactions sync when the network returns.

Verification API

Cloudflare Worker + D1 backend that websites query to match sender number + TrxID + amount.

No merchant account

Works with personal bKash numbers — payment automation without official API access.

04

Outcome

Android
Platform
Workers + D1
Backend
24
Min SDK
MIT
License