Budgie logo
Budgie

Monobank Expense Tracker — Direct API Sync, No Plaid

Connect your Monobank account, pull a full transaction history straight to your device, and keep working offline. No third-party aggregator in between.

Why direct API matters more than convenience

Monobank exposes a clean public API, so Budgie talks to it directly from your phone using your token — no Plaid, no data broker. Every transaction lands in your local SQLite database the moment it arrives.

Cross-currency transactions carry their original FX rate. Counter-party IBANs are stored, which lets Budgie auto-merge transfer pairs across two accounts you own. The optional re-sync window lets you re-pull just the last N days when your data drifts — without nuking manual edits.

What you get

Direct Monobank Personal API — your token, your call

Full historical sync on first connect, then incremental every 30 minutes

Cross-currency transactions preserve original FX rate per leg

Counter-IBAN stored from the corr_iban field, enabling smart transfer-pair consolidation

Windowed re-sync to fix drift without losing manual edits

Automatic Transfer Consolidation — both legs of a cross-bank transfer are detected via counter-IBAN and exchange-rate matching, then merged into a single transfer entry

Imported commissions become bank-fee entries, so fees stay in analytics after transfer consolidation

Counter-IBAN enrichment and transfer consolidation

Monobank's API returns a corr_iban field on every transaction that has a counterparty IBAN — outgoing payments, bank transfers, and peer-to-peer moves all carry it. Budgie stores this field per transaction leg, which gives the transfer-pair detector a primary signal: when the debit side and credit side of the same transfer both reference the same IBAN, they collapse into one transfer automatically.

When you transfer between two banks, both legs are automatically detected via counter-IBAN and exchange-rate matching, then consolidated into a single transfer — no double-counting in your spending stats, no manual cleanup needed.

How it works

Generate a personal API token from the Monobank app, paste it into Budgie, choose which Monobank accounts to import, and select an initial sync window. A background task syncs every 30 minutes when you're online; you control the cadence and can pause anytime.

Plaid-based apps vs. Budgie + Monobank

ConcernPlaid-based appBudgie
Token controlPlaid-managed credential vaultYour token, in your keystore
FX preservedOften dropped or recomputedOriginal FX kept per leg
Bank feesOften merged into the main amountTracked as fee entries
Counter-IBAN storedRarely surfacedYes — enables transfer-pair detection
Aggregator middlemanPlaid (or similar) sees every transactionNone — Budgie talks to Monobank directly

Frequently Asked Questions

How is this different from Plaid-based apps?
Plaid sits between you and your bank, mirroring all your transactions to its servers. Budgie talks to Monobank's API directly from your phone using your token. Monobank sees the request; nothing else.
Where does my Monobank token live?
In your platform's secure keystore (iOS Keychain / Android Keystore), never in plaintext or our servers (we have none).
Can I use multiple Monobank accounts?
Yes — one token grants access to all your Monobank accounts. Pick which to import per account.
What if Monobank's API changes?
Budgie is open source. The Monobank integration lives in packages/bank-sync/src/monobank/ and the project's release cadence keeps it current.

Ready to take Budgie for a spin?

Join the waitlist — be first to try the offline-first expense tracker.