fundstrack_lite 0.0.1
fundstrack_lite: ^0.0.1 copied to clipboard
A Flutter plugin to extract and parse debit/credit bank SMS on Android. Supports UPI and bank notifications.
fundstrack_lite #
A Flutter plugin for parsing and extracting banking transaction details from SMS inbox on Android devices.
- Detects and parses both traditional bank and UPI SMS notifications.
- Extracts: Amount, Account Number, Date, Time, Transaction Type (debit/credit), and Sender.
⚠️ Android only: iOS support is not available (due to OS restrictions).
Features #
- Reads SMS inbox for debit/credit transaction messages.
- Extracts structured data: amount, account, sender, date, time, transaction type.
- Ready to use with custom ListView widgets and API integrations.
Installation #
Add to your pubspec.yaml:
dependencies:
fundstrack_lite: ^0.0.1
Of course! Here’s your requested section as clean, ready-to-use Markdown for your README.md:
Android Setup #
1. Required Permission #
Add this line to your android/app/src/main/AndroidManifest.xml (outside <application>):
<uses-permission android:name="android.permission.READ_SMS"/>
2. Request Permission #
You need to request SMS read permission at runtime using permission_handler:
import 'package:permission_handler/permission_handler.dart';
Future<void> requestSmsPermission() async {
await Permission.sms.request();
}
Call this before attempting to read SMS.
Usage #
import 'package:fundstrack_lite/fundstrack_lite.dart';
final smsList = await FundstrackLite.getBankSms([]);
// Returns: List<Map<String, dynamic>>
Each parsed message includes:
amount: Transaction amountaccount: Account number (often last 4-6 digits or masked)type:"debit"or"credit"sender: Bank sender (e.g., AXISBK, SBI)date: Transaction date (parsed from SMS, if available)time: Transaction time (parsed from SMS, if available)smsTimestamp: SMS received time (milliseconds since epoch)body: Full SMS text
UI Example #
ListView.builder(
itemCount: smsList.length,
itemBuilder: (context, i) {
final sms = smsList[i];
return ListTile(
title: Text("Amount: ${sms['amount'] ?? '--'}"),
subtitle: Text("Type: ${sms['type']} - Account: ${sms['account']}"),
);
},
);
API Integration #
You can send each SMS to your backend for storage:
import 'package:http/http.dart' as http;
import 'dart:convert';
Future<void> sendSmsToServer(Map<String, dynamic> sms) async {
await http.post(
Uri.parse('https://your-api-endpoint.com/sms'),
headers: {'Content-Type': 'application/json'},
body: jsonEncode(sms),
);
}
Limitations #
- Android only.
- Only works if SMS read permission is granted.
- Some SMS formats may not be parsed; contribute improvements via PR!
Contributions #
Feel free to open an issue or PR to improve pattern recognition for new bank formats.