Finance Tracking Bot Implementation in Mobile Applications
"Spent 500 on a taxi" — one message to the bot, and the expense is already in the "Transport" category with date and amount. Faster than opening any native application. But viewing statistics, configuring categories, and setting budgets — it's more convenient in the mobile interface rather than through bot commands.
How Tasks Are Divided Between Bot and Mobile Application
The bot accepts input: text messages with expenses/income, voice notes (transcribed through Whisper API), quick buttons for frequent categories. The mobile application is the analytics layer: charts, budgets, transaction history with filtering, export.
Parsing the amount from arbitrary text is a separate task. "Five hundred for coffee", "−1200 groceries", "got 45k" — formats vary. On the backend, you either use regular expressions supporting Cyrillic numerals or a small language service (GPT-3.5-turbo with function calling returns {amount, currency, category, note} more consistently than regex with diverse input).
The mobile application works with already structured data through a REST API:
// iOS, Swift — loading transactions for a period
struct Transaction: Codable {
let id: UUID
let amount: Decimal
let currency: String
let category: Category
let note: String?
let createdAt: Date
let source: TransactionSource // .bot, .manual, .import
}
func fetchTransactions(from: Date, to: Date) async throws -> [Transaction] {
var components = URLComponents(string: baseURL + "/transactions")!
components.queryItems = [
URLQueryItem(name: "from", value: ISO8601DateFormatter().string(from: from)),
URLQueryItem(name: "to", value: ISO8601DateFormatter().string(from: to)),
]
let (data, _) = try await URLSession.shared.data(from: components.url!)
return try JSONDecoder().decode([Transaction].self, from: data)
}
Analytics and Budgets
The key screen is expense distribution across categories for the selected period. Pie chart or donut chart with drill-down into the category's transaction list. On Flutter: fl_chart PieChart with touchCallback for navigation.
Category budget is a monthly limit with a fill indicator. When expenses reach 80% of the limit, the bot sends a warning to the chat itself. The logic runs on the backend: after each transaction entry, the sum for the current month in the category is recalculated and compared against the budget.
Recurring payments (subscriptions, rent) are convenient to add once with the recurring flag — the bot will suggest recording them on the right day automatically through APScheduler or similar.
What's Included in the Mobile Component
- Dashboard: expense/income sum for the current month, balance
- Expense chart by categories (pie/donut + bar by day)
- Transaction history: search, filter by category and source
- Category management: creation, icon, color, budget limit
- Manual transaction entry (not through bot)
- Export to CSV
Timeline
3–5 business days for mobile application development. Bot and backend are estimated separately. Pricing is calculated individually after requirements analysis.







