A Telegram Bot to track your expenses.
Expense Tracker Bot
is a Telegram Bot to track your daily transactions.
- Expense Tracking: Keep track of your daily expenses, income, and balance transfers between accounts.
- Flexible Input: Add transactions interactively by selecting options or simply send a text describing your transaction.
- Lending and Borrowing: Track lendings and borrowings with other individuals.
- Transaction Summary: Retrieve transaction summaries based on type, category, or subcategory for your preferred duration.
- Transaction Reports: Generate transaction reports in PDF format for your chosen duration.
The Expense Tracker Bot
is now available for public use.
To use this bot, go to Telegram and search for @XpenseTrackerBot
Once you are inside the bot inbox, press Start
button to start using the Tracker Bot.
Before you start tracking your expenses
- Add accounts like
cash
,brac
,ebl
etc- Command
/new
=> Account => Type (Cash or Bank) - Reply with account details (
cash "Cash in Hand"
,ebl EBL
etc)
- Command
- Add some debtors/creditors with whom you are financially involved
- Command
/new
=> DebtorsCreditors - Reply with the person details (
john "John Doe" [email protected]
)
- Command
To track your transactions interactively, send /newtxn
command and follow the on-display suggestions.
You also can add new transaction by sending a regular text message.
You just need to mention
- what you did
- how much did it cost
- when you did it
- affected accounts
- affected persons in case of loan/borrow
- remarks
and the bot will take care of the rest
Message needs to be in key/value pairs, like:
- {action} {amount}
- for {txn subcategory} // the subcategory must match the allowed subcategory
- {from/to} {account} // default cash
- {from/to} {debtor/creditor} // in case of lending/borrowing
- on {date} // "DD-MM-YYY", "YYYY-MM-DD", "MMM DD, YYYY", today, tomorrow, yesterday [default today]
- at {time} // midnight, morning, noon, afternoon, evening, night and also different time formats [default now]
- note {remarks}
These key/value pairs can appear in any order
Some example text for adding a new transaction:
- transferred 2000 from brac to dbbl on 2020-01-01 note "Bill payment"
- spent 1000 for food-rest on "Jan 13, 2013" from dbbl note "Lunch"
- earn 5000 to brac on 20-01-2023 note "Salary"
- borrow 1000 from user to brac on 2020-01-01
- return 1000 to user from brac on 2020-01-01
- lend 1000 to user from brac on 2020-01-01
- recover 1000 from user to brac on 2020-01-01
Expand to see the Allowed Transaction Subcategory list
Food (food):
- Restaurants (food-rest)
- Groceries (food-groc)
- Takeout (food-take)
- Snacks (food-snack)
- Fruits (food-fruit)
- Beverages (food-bev)
Housing (house):
- Rent (house-rent)
- Utilities (house-util)
- Furniture (house-furn)
- Electronics (house-elec)
- Real State (house-real)
Entertainment (ent):
- Movies (ent-movie)
- Subscription (ent-sub)
- Recreation (ent-rec)
- Books (ent-books)
Personal Care (pc):
- Salon (pc-salon)
- Toiletries (pc-toilet)
- Gym (pc-gym)
- Clothing (pc-cloth)
- Health (pc-health)
- Medicine (pc-med)
Travel (trv):
- Accommodation (trv-accom)
- Dining (trv-dine)
- Sightseeing (trv-sight)
- Transportation (trv-trans)
- Gifts (trv-gift)
Financial (fin):
- Salary (fin-sal)
- Deposit (fin-deposit)
- Withdraw (fin-with)
- DPS (fin-dps)
- Credit Card Payment (fin-ccpay)
- Bank Transfer (fin-bank)
- Loan (fin-loan)
- Loan Recovery (fin-recover)
- Borrow (fin-borrow)
- Borrow Return (fin-return)
- Tax (fin-tax)
- Charges (fin-charge)
- Mobile Recharge (fin-flexi)
Miscellaneous (misc):
- Initial Amount (misc-init)
- Giveaway (misc-give)
- Miscellaneous (misc-misc)
You always can send /cat
command to list the subcategory
/new
- Add new Transaction, Account or UserDebtorsCreditors
- Add new debtor or creditorsAccount
- Add new account (Cash, Bank)- i.e:
brac "BRAC Bank"
- i.e:
cash "Cash in Hand"
- i.e:
/newtxn
- Add new transaction- Add a new transaction through a series of callback queries.
/users
- List users- list all the persons involved in some loan/borrow with the system user
/balance
- List Account Balance- list all the registered accounts and their balance
/expense
- Fetch Expense of Current month- list transactions of current month
/summary
- Transaction summary of current month- list transaction summary of current month
/allsummary
- Transaction summary based on Type, Category, Subcategory- list transaction summary based on Type, Category, Subcategory
- with a duration query parameter
/report
- Transaction Report- list transaction report
- with a duration query parameter
/cat
- List Transaction categories- list all the registered categories
- by selecting a category, list all the registered subcategories of that category
/help
- Show Usage page
expense-tracker-quickstart.mp4
A list of possible future work:
- Add support for undoing a transaction
- Add Database backup and restore support
- Add support for multiple users
If you want to host your own Expense Tracker Bot
, refer to the self-hosting doc page.
Telegram - masudur-rahman.