User Guide
A practical reference for using ExMint day-to-day: connecting banks, categorizing transactions, reading reports, and keeping your data clean.
Overview
ExMint is a self-hosted personal finance dashboard. All your financial data stays on your own server. The application connects to your bank accounts using the Plaid API, pulls in transactions automatically, and gives you tools to categorize, analyze, and budget your spending.
Bank Connectivity
Link accounts at thousands of institutions via Plaid Link's guided flow.
Automatic Sync
New transactions arrive via Plaid webhooks. Trigger a manual sync any time from the dashboard.
Custom Categories
Create color-coded categories and set rules to apply them automatically.
Transaction Splitting
Divide one transaction across multiple categories, e.g. a grocery run that includes household items.
Reports & Budgets
Pivot spending by year, month, and category. Set monthly budget targets and track actuals.
Private by Design
Data never leaves your server. Plaid tokens are encrypted at rest with Fernet.
First Login
Register an Account
Navigate to your ExMint instance URL and click Create an account on the login page. Fill in your name, email address, and a password (minimum 8 characters).
testuser@automatos.ca / pass_good to log in directly — no registration needed.
Approval Workflow
On instances where the admin has enabled registration approval, new accounts land in a Pending Approval state after registration. The admin receives an email with one-click approve/reject links. You will receive an email notification once your account is approved or rejected.
Registration can also be closed entirely by the admin, in which case the "Create an account" link is hidden on the login page.
Connect Your Banks
Plaid Link Flow
After logging in, click Connect a bank on the dashboard. This opens the Plaid Link modal — a secure, embedded flow hosted by Plaid that handles authentication with your institution directly. ExMint never sees your banking credentials.
Search for your institution
Type the bank name in the search box, or scroll through the list of supported institutions. Plaid supports thousands of banks, credit unions, and credit card providers.
Authenticate
Enter your online banking credentials in the Plaid-hosted form. Depending on the institution, you may also be prompted for a one-time code via SMS or email.
Select accounts
Choose which accounts (chequing, savings, credit cards) to link. You can link multiple accounts from the same institution in a single session.
Done
ExMint will receive your access token and immediately pull the last 30 days of transactions. The connected institution appears in your dashboard sidebar.
Sandbox Credentials
If the instance is running in Plaid Sandbox mode (typical for demos and testing), use the following credentials in the Plaid Link modal to simulate a successful bank connection:
| Field | Value |
|---|---|
| Username | user_good |
| Password | pass_good |
| OTP / PIN (if prompted) | 1234 |
Sandbox accounts contain simulated transactions from fictional institutions (e.g. "First Platypus Bank"). No real money or real banks are involved.
Syncing Transactions
ExMint receives new transactions in two ways:
- Webhooks (automatic): When
PLAID_WEBHOOK_URLis configured, Plaid pushes new transaction data to your server in real time (usually within minutes of a transaction posting). - Manual sync: Click the Sync button next to any connected institution on the dashboard to pull the latest transactions on demand.
Transactions
The Transactions view is the main working area of ExMint. It displays all transactions across your connected accounts, newest first.
Filtering & Search
Use the filter bar at the top of the Transactions view to narrow the list:
| Filter | Description |
|---|---|
| Date range | Select a start and end date to limit the view. |
| Account | Show transactions for one specific linked account or all accounts. |
| Category | Filter to a single custom category or all uncategorized transactions. |
| Search | Free-text search against transaction descriptions. |
Assigning Categories
Click the category badge on any transaction row to open the category picker. Select a custom category from the dropdown. The change is saved immediately.
To remove a category assignment, click the badge and choose Uncategorized.
Splitting a Transaction
Some transactions span multiple spending categories (e.g., a grocery run that also includes a pharmacy purchase). To split a transaction:
Open the split dialog
Click the split icon on the transaction row (scissors icon), or open the transaction detail and click Split.
Add split lines
Enter an amount and category for each portion. The amounts must sum exactly to the original transaction total. Click + Add line for additional splits.
Save
Click Save split. The original transaction is replaced in the list by its split portions, each with its own category.
Remove a split (optional)
Open the split dialog on any portion and click Remove split to restore the original single transaction.
Export to CSV / Excel
Click the Export button above the transaction list to download the currently filtered view. Choose CSV for plain-text export or Excel (.xlsx) for a formatted spreadsheet. The export respects all active filters (date range, account, category, search).
Custom Categories
ExMint does not impose a fixed category taxonomy. You create exactly the categories that match how you think about your spending.
Creating Categories
Navigate to Categories in the sidebar (or via My Account → Manage Categories). Click New Category and provide:
- Name — e.g., "Groceries", "Rent", "Subscriptions"
- Color — a hex color used for badges and chart segments
- Icon (optional) — emoji displayed next to the category name
Click Save. The category is immediately available in the transaction category picker and filter bar.
Auto-Apply Rules
Rules automatically assign a category to incoming transactions whose description matches a keyword or pattern. This saves manual work for recurring merchants.
To create a rule, open a category and click Add rule. Enter a keyword (case-insensitive substring match) such as NETFLIX or STARBUCKS. Future transactions containing that string in their description will be categorized automatically.
Spending Reports
The Reports view gives a hierarchical breakdown of spending: Year → Month → Category. Each level is clickable to drill down further.
- Click a year row to see the monthly breakdown for that year.
- Click a month row to see spending per category for that month.
- Click a category row to jump to the Transactions view filtered to that category and month — so you can see exactly which individual transactions make up that total.
The report respects your custom categories. Uncategorized transactions appear in a separate "Uncategorized" group.
Cash Flow Chart
The Cash Flow view displays a 12-month line chart comparing total income (credits) vs. total expenses (debits) month by month. The difference between the two lines is your net cash flow for each month.
Use the Category filter above the chart to scope the chart to a specific category. This is useful for tracking a single spending area (e.g., "Dining Out") across time without other categories inflating the numbers.
Budgets
Budgets let you set a monthly spending target for each category. The Budgets page shows:
| Column | Description |
|---|---|
| Category | Your custom category name and color. |
| Budget | Your monthly target amount. Click to edit. |
| 6-Month Avg | Average actual spending per month over the last 6 months, to help set a realistic target. |
| This Month | Actual spending in the current calendar month. |
| Remaining | Budget minus this month's actual. Shown in green when under budget, red when over. |
To set or update a budget, click the amount in the Budget column for any category, enter a new value, and press Enter or click outside to save.
Categories with no budget set appear at the bottom of the list and can be ignored or given a target at any time.
Maintenance
Access maintenance tools from My Account → Maintenance in the top-right dropdown menu.
Duplicate Transactions
Duplicate transactions can appear when:
- A supplementary (authorized user) card generates a separate Plaid transaction ID for the same underlying charge.
- A sync runs twice during a brief window and imports the same transaction.
The duplicate scanner detects groups of transactions that share the same account, date, amount, and description (cross-account matching handles the supplementary-card scenario).
Download a CSV backup (recommended)
Before removing any transactions, click Download CSV Backup to export a full archive of all transactions including removed ones.
Scan for duplicates
Click Scan for Duplicates. ExMint will show duplicate groups with a Keep / Remove breakdown. Review the preview before proceeding.
Remove duplicates
Click Remove Duplicates and confirm. Flagged transactions are marked as removed (not permanently deleted). The transaction list refreshes automatically.
CSV Backup
The Download CSV Backup button in the Maintenance modal exports all transactions to a .csv file, including transactions that have been marked as removed. This provides a full audit trail and a safe restore point before bulk operations.
My Account
Click your username in the top-right corner to open the account dropdown. Available options:
| Option | Description |
|---|---|
| Change Password | Update your login password. Requires your current password. |
| Manage Categories | Create, edit, reorder, and delete custom categories and their auto-apply rules. |
| Maintenance | Access the duplicate scanner and CSV backup tools. |
| Admin Panel | Visible only to users with the Admin role. See Admin Panel below. |
| Log Out | Ends your session immediately. |
Admin Panel
The Admin Panel at /admin is accessible only to users with role = 'Admin'. It provides:
| Feature | Description |
|---|---|
| Registration toggle | Open or close new user registration. When closed, the "Create an account" link disappears from the login page. |
| Pending approvals | Review newly registered users waiting for approval. Approve or reject with one click. Each action sends an email to the applicant. |
| User list | View all registered users. Delete a user (their Plaid connections are revoked before deletion). |
| Login welcome message | Set a short info message that appears on the login page (e.g., test credentials for a demo). Leave blank to hide the box. |
UPDATE user SET role = 'Admin' WHERE email = 'your@email.com';Subsequent admins can be promoted by existing admins once the panel is accessible.