Skip to main content
Vantage captures spending by listening to Android push notifications from your banking apps. No bank API, no screen scraping, no manual entry.

How it works

The parser runs locally on your device — notification text never leaves your phone except when Haiku fallback is triggered, in which case only the raw text string is sent (never the full notification object or any metadata).

Singapore

Package: com.dbs.sg.dbsmbanking Default currency: SGDSupported notification formats:
Regex patterns (simplified):
Packages: sg.com.hsbc.hsbcsingapore / com.hsbc.hsbcsg (legacy) Default currency: SGDSupported notification formats:
Regex patterns (simplified):
Packages: com.uob.mighty / com.uob.mighty.app Default currency: SGDSupported notification formats:
Regex patterns (simplified):
Packages: com.citibank.mobile.sg / com.citibank.mobile.sgipb (IPB) Default currency: SGDSupported notification formats:
Regex patterns (simplified):
Package: com.google.android.apps.walletnfcrel Default currency: SGDCaptures tap-to-pay NFC transactions. The merchant name comes from the notification title; the amount and card are in the body.
Google Wallet notifications don’t include the merchant in the body — the parser reads both title and text fields from the notification object.
Package: com.futu.moomoo Default currency: USD Transaction types: trade_buy, trade_sellCaptures US equity and options trades:
Moomoo trades are saved with transactionType: trade_buy or trade_sell and excluded from spend analytics (they appear in the portfolio module instead).

India

Package: com.citi.citimobile Default currency: INRSupported notification formats:
Package: com.axis.mobile Default currency: INR Supported amount formats: INR, Rs, Rs., Supported notification formats:
Package: com.phonepe.app Default currency: INRSupported notification formats:
Package: com.zerodha.kite Default currency: INR Transaction types: trade_buy, trade_sellCaptures NSE/BSE equity and F&O trades:

ParsedTransaction fields

Every successful parse produces a ParsedTransaction object:
Trades (trade_buy, trade_sell) are excluded from the Spend Hub and routed to the Portfolio module.

Claude Haiku fallback

When no regex matches, the raw notification text is sent to Claude Haiku with this prompt:
Haiku is accurate for novel notification formats and costs < $0.001 per parse. Successful Haiku parses are logged to help identify patterns worth adding to the regex library.

Adding a new bank

Want your bank supported? Here’s how: Step 1 — Find the package name:
Step 2 — Add BankingAppPattern to notification_parser.dart:
Step 3 — Add the package name to BANKING_PACKAGES in VantageNotificationListener.kt. Step 4 — Open a PR with example notification strings (anonymised) in the description. Full guide: CONTRIBUTING.md → Adding a New Banking App