Manually typing every expense — cloud bill, co-working rent, taxi ride, lunch with a client — is the single biggest reason freelancers give up on expense tracking by month two. The fix is not better discipline. It is automated import: drop a bank CSV in, paste an SMS, share a UPI receipt from your Android lock screen. HourSlip Pro supports all three input modes across 7 major Indian banks, with auto-categorisation that learns from your edits. This guide walks through each path and what the tool does with the data.
Why CSV / SMS Import Matters
Three reasons manual expense entry breaks down at scale:
- Volume. A working freelancer with 1-2 clients still has 30-60 expense touchpoints a month — subscriptions, utilities, food, transport, business lunches, software, internet, phone, professional fees. Typing each one in a form takes 90 seconds. That is 90 minutes a month, or 18 hours a year.
- GST claims need invoice-grade accuracy. A typo in the supplier GSTIN breaks GSTR-2B reconciliation. CSV imports carry the bank reference number; SMS parses pull the supplier name verbatim. Both are more reliable than manual entry.
- Audit defensibility. Imported rows carry their source (bank reference, SMS timestamp, original SMS body). In a scrutiny, "here is the bank entry that triggered this expense" is much stronger than "I entered this manually two years ago."
The 7 Supported Banks
HourSlip Pro parses statements and SMS formats from:
- HDFC Bank — Statement CSV + SMS
- ICICI Bank — Statement CSV + SMS
- State Bank of India (SBI) — Statement CSV + SMS
- Axis Bank — Statement CSV + SMS
- Kotak Mahindra Bank — Statement CSV + SMS
- Yes Bank — Statement CSV + SMS
- IDFC First Bank — Statement CSV + SMS
These seven cover roughly 75% of Indian freelancer banking. If your bank is not on the list, the universal CSV importer accepts a generic format with column mapping — you map your bank's columns to date, description, debit, credit, balance, and the rest works the same.
Bank CSV Import Flow
The repeatable monthly flow:
- Log in to your bank's net banking. Navigate to account statements; download the previous month's transaction history as CSV or Excel (Excel is auto-converted on upload).
- In HourSlip → Expenses → Import → Upload CSV. Drop the file in.
- HourSlip auto-detects the bank from the column header signature. If detection fails, you pick from a dropdown.
- The parser shows a preview: each debit line proposed as an expense, with auto-categorisation based on the description (e.g., "NETFLIX" → Subscriptions, "UBER" → Travel).
- Review and adjust categories where wrong. Bulk-uncheck non-business expenses (groceries, personal transfers, salary credits if you also receive salary).
- Confirm import. Expenses land in your expense list, each tagged with bank reference number for future reconciliation.
SMS Parsing — Paste and Categorise
For UPI payments and small business expenses, SMS is faster than CSV — and most banks send a notification SMS within seconds. The flow:
- Receive an SMS like:
"Rs.499.00 debited from HDFC Bank A/c XX1234 on 18-May-2026 to Notion Labs Inc via UPI. Avl Bal: Rs.45,231.50. Ref: 614329884221" - Long-press the SMS, copy text, open HourSlip → Expenses → Import → Paste SMS.
- The parser extracts: amount Rs. 499, date 18 May 2026, merchant Notion Labs Inc, reference 614329884221, account HDFC ending XX1234.
- Auto-category: "Software Subscriptions" (matched against the merchant name).
- Confirm or override. Expense saved.
Pasting a UPI debit SMS is the closest thing to zero-friction expense logging the Indian freelancer has. Five seconds, one tap, one expense saved with the bank reference attached.
Android Share Target — One-Tap from SMS
On Android, HourSlip is registered as a system share target. Workflow:
- Open your default SMS app, find the bank notification SMS.
- Long-press, tap "Share".
- HourSlip appears in the share sheet — tap it.
- The expense parsing screen opens with the SMS pre-populated. Confirm and save.
Same outcome as paste, two fewer steps. The share-target integration uses Android's standard Intent system; no special bank permissions needed (HourSlip never reads your SMS inbox directly).
Categorisation Logic
The auto-categoriser uses a 3-layer match:
- Exact merchant match — "NETFLIX.COM", "NOTION LABS", "ZOMATO ONLINE" mapped to their canonical category from a curated dictionary (3,000+ entries).
- Pattern match — "UBER", "OLA", "RAPIDO" → Travel; "SWIGGY", "ZOMATO" → Meals; "AWS", "GCP", "DIGITAL OCEAN" → Cloud Services.
- Your historical edits — once you re-categorise "XYZ COFFEE PVT LTD" as "Client Meetings", the next import of the same merchant defaults to that category.
Categories ship with India-relevant defaults: Cloud Services, Software Subscriptions, Co-working Rent, Phone & Internet, Travel, Meals, Professional Fees, Marketing, Equipment, Domain & Hosting, Books & Courses, Bank Charges, GST Paid, Other.
Reviewing and Editing Imports
Every imported expense lands in the regular expense list, with three distinguishing flags:
- A source badge showing how it was imported (CSV / SMS / Share Target / Manual).
- A bank reference number field, populated for CSV and SMS imports.
- A "Review" flag on any expense the auto-categoriser is less than 80% confident about. These show in a filtered view first.
RCM and ITC Flagging
For GST-registered freelancers, imported expenses can be marked:
- Has GST? Y/N — marks expenses where GST was charged on a tax invoice. Not all of it is claimable: ITC on meals, food delivery, outdoor catering and car hire, for example, is blocked under CGST s.17(5), and any claim has to appear in your GSTR-2B.
- Reverse charge? Y/N — for purchases where you, the recipient, pay the GST instead of the supplier. For most freelancers this means services imported from abroad (e.g. overseas software or ad platforms) and a short notified list of domestic services, such as legal services from an advocate. Buying from an unregistered supplier does not by itself trigger reverse charge.
- Supplier GSTIN — required for ITC claim and GSTR-2B reconciliation.
The bank CSV won't have GSTIN. The freelancer fills this in from the actual invoice they received. The bank entry just gives you the date, amount, and reference.