BDGate SMS Relay
Automate MFS payment confirmations with the Android SMS Relay app — no manual verification needed.
BDGate SMS Relay is an Android application that automatically monitors incoming SMS messages from MFS providers (bKash, Nagad, Rocket, etc.) and forwards payment confirmation data to your BDGate merchant account — so payments are verified instantly without any manual input.
Why Use SMS Relay?
When a customer sends money via bKash or Nagad, the MFS provider sends a confirmation SMS to the merchant's phone. Without automation, you'd need to manually check each SMS and verify each payment. BDGate SMS Relay does this automatically:
Requirements
| Item | Requirement |
|---|---|
| Android Version | Android 5.0 (API 21) or higher |
| Internet Connection | Mobile data or Wi-Fi |
| MFS SIM Card | bKash / Nagad / Rocket registered number |
| BDGate Account | Active merchant account on my.bdgate.net |
| Storage | ~2 MB free space |
Download & Install
Step 1 — Download the APK
You can download the APK directly from your BDGate merchant panel:
- Log into my.bdgate.net
- Go to Settings → Android SMS Relay
- Click "Download APK"
Or download directly: https://api.bdgate.net/download/android-relay
Step 2 — Enable Unknown Sources
Since this app is not from the Google Play Store, you need to allow installation from unknown sources:
Open Settings
Go to your phone's Settings app.
Apps → Special App Access
Navigate to Apps (or Application Manager) → Special App Access → Install Unknown Apps.
Allow Your File Manager / Browser
Select the app you used to download the APK (Files, Chrome, etc.) and enable "Allow from this source".
Step 3 — Install the APK
Open the downloaded BDGate-SMS-Relay.apk file from your Downloads folder and tap Install.
Google Play Store → Profile icon → Play Protect → ⚙️ Settings → Turn off "Scan apps with Play Protect"
Configuration
When you open the app for the first time, you'll see the configuration screen:
Webhook URL
This is pre-filled with the BDGate webhook endpoint. Do not change this unless instructed:
https://api.bdgate.net/v1/sms-webhook
Security Secret
This is a unique token that identifies your merchant account. You must generate it from your BDGate dashboard (see Security Secret section below).
After entering both fields, tap "SAVE SETTINGS".
Getting Your Security Secret
The Security Secret links the app to your merchant account. Follow these steps to generate one:
Log into Merchant Panel
Visit my.bdgate.net and sign in to your account.
Go to Settings → Android SMS Relay
In the left sidebar, click Settings, then select Android SMS Relay.
Generate Secret
Click "Generate New Secret". A token starting with bgs_ will appear.
Copy to App
Copy the secret and paste it into the Security Secret field in the Android app. Tap Save Settings.
Starting the Service
Save Your Settings First
Make sure Webhook URL and Security Secret are saved before starting.
Tap "START SERVICE"
The app will request SMS and Notification permissions. Grant both.
Grant SMS Permission
When asked for SMS access, tap Allow. If the button is greyed out, see Troubleshooting.
Status Shows "● Active"
The service is now running. A persistent notification will appear in your notification bar confirming the relay is active.
Disable Battery Optimization (Recommended)
To prevent Android from killing the service in the background:
- Settings → Apps → BDGate SMS Relay → Battery
- Select "Unrestricted" or "Don't optimize"
Auto-Start on Boot
The relay automatically restarts after the phone reboots. No manual action needed.
How It Works
When BDGate SMS Relay is running, here's exactly what happens when a customer makes a payment:
Customer Makes Payment
The customer sends money to your bKash/Nagad/Rocket number via their MFS app.
MFS Sends Confirmation SMS
The MFS provider sends a confirmation SMS to your phone, containing the Transaction ID, amount, and sender number.
Relay Intercepts & Verifies
The app detects the SMS from a known MFS sender, extracts the payment details, and sends them to your BDGate webhook.
BDGate Matches & Confirms
BDGate matches the Transaction ID and amount with the pending order and automatically marks it as approved.
Notifications Sent
Both you and your customer receive email confirmation of the successful payment.
Security Model
{
"sender_id": "bKash",
"sms_body": "TK 500.00 received from 01XXXXXXXXX. TrxID ABCD123...",
"timestamp": 1719744000000,
"security_secret": "bgs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
- Security Secret validates the request belongs to your account
- Timestamp check (±5 minutes) prevents replay attacks
- Transaction ID + Amount matching prevents false approvals
- Database-level locking prevents double-approval race conditions
Supported MFS Providers
BDGate SMS Relay automatically recognizes SMS from these providers:
SMS from unrecognized senders are ignored — your personal SMS remain completely private.
Troubleshooting
1. Open Google Play Store → Profile → Play Protect → ⚙️ Settings → Turn off scanning
2. Go to Settings → Apps → BDGate SMS Relay → Permissions → SMS → Allow
3. Re-enable Play Protect after granting the permission.
1. Service status shows "● Active" in the app
2. SMS permission is granted (Settings → Apps → BDGate SMS Relay → Permissions)
3. Battery optimization is disabled for the app
4. Security Secret in the app matches the one in your BDGate dashboard
5. The phone has an active internet connection