upi_parser 0.1.0
upi_parser: ^0.1.0 copied to clipboard
A comprehensive UPI SMS transaction parser for Indian banking. Extracts amount, UPI ID, date, and transaction type using PEG-based grammars.
example/upi_parser_example.dart
import 'package:upi_parser/upi_parser.dart';
void main() {
final parser = UpiSmsParser();
// Parse a single SMS
const sms = 'Rs 200.00 debited from a/c **1234 on 04-06-25 '
'to VPA merchant@upi (UPI Ref No 512345678901). '
'Not you? Call 18002586161';
final transaction = parser.parse(sms, senderId: 'VM-HDFCBK');
if (transaction != null) {
print('Amount: ₹${transaction.amount}');
print('Type: ${transaction.type}');
print('VPA: ${transaction.vpa}');
print('UPI Ref: ${transaction.upiRefNumber}');
print('Bank: ${transaction.bankName}');
print('Account: ${transaction.accountNumber}');
print('Date: ${transaction.date}');
}
// Batch parsing
final smsList = [
'Your a/c X1234 debited by Rs.500.00 on 04-Jun-25 transfer to Mr ABC Ref No 501234567890.',
'Get 50% cashback! Use code SAVE50.',
'Rs 500.00 credited to a/c **1234 on 04-06-25 by VPA sender@upi (UPI Ref No 512345678901).',
];
final transactions = parser.parseBatch(smsList);
print(
'\nParsed ${transactions.length} UPI transactions from ${smsList.length} SMS');
}