Complete user guide for indiAccounting — small business accounting for Linux, macOS, and Windows.
1. Getting Started
indiAccounting is a full-featured small business accounting application that runs natively on Linux, macOS, and Windows. It handles invoicing, expenses, payroll, banking, reporting, and more — all locally on your computer with no cloud dependency or subscription.
When you first launch the app, a setup wizard walks you through entering your company name, entity type, and basic information. You can also skip this and configure it later in Settings.
Recommended First Steps
Set up your company information in Settings → Company.
Review the Chart of Accounts — a default set is seeded for you.
Add your customers and vendors.
If migrating from another system, use Settings → Import Data.
The indiAccounting window is organized into three areas:
Sidebar — Dark navy navigation panel on the left. Groups are expandable — click one to reveal its children. Only one group is open at a time. A blue dot indicates which collapsed group contains the page you're currently viewing.
Header bar — Shows the current page title, a notification bell for overdue items, and quick actions.
Main content — The primary workspace. Forms, lists, reports, and dashboards render here.
Command Palette
Press Ctrl+K (or ⌘K on macOS) from anywhere to open the command palette — a quick-search overlay that lets you jump to any page by typing a few letters. Use arrow keys to navigate results and Enter to go.
Sidebar Navigation
The sidebar contains 12 collapsible groups: Overview, Sales, Expenses, Catalog, Time Tracking, Mileage, Banking, Accounting, Payroll, Budgets, Reports, and Settings. Click any group row to expand it; clicking another group auto-collapses the previous one. Your last expanded group is remembered across sessions.
At the bottom of the sidebar, the company card shows your business name and fiscal year.
Navigate to Settings → Company to configure your business information.
Company Information
Company Name — Appears on invoices, estimates, and reports.
Entity Type — Sole Proprietorship, LLC, LLC (S-Corp), LLC (C-Corp), S-Corp, C-Corp, Partnership, or Nonprofit. This affects payroll calculations (e.g., S-Corp shareholder health insurance rules).
Address, Phone, Email, Website — Printed on invoices and estimates.
Tax ID (EIN) — Used for W-2 generation and 1099 reporting. Not printed on customer-facing documents.
Invoice Settings
Invoice Prefix & Starting Number — e.g., INV- starting at 1000 produces INV-1000, INV-1001, etc.
Estimate Prefix & Starting Number — Same pattern for estimates.
Default Payment Terms — Applied to new invoices (Due on Receipt, Net 7/15/30/45/60/90).
Fiscal Year Start Month — Determines your fiscal year for reports.
Late Fees & Reminders
Configure automatic late fee calculation (flat amount or percentage) and payment reminder emails. Set grace periods and reminder schedules (days before/after due date).
Tax Rates
Define sales tax rates with name, percentage, and description. Mark one as the default to auto-apply on new invoices.
Email (SMTP)
Configure SMTP settings to send invoices and estimates directly from the app. Supports TLS and STARTTLS encryption. Includes a test email function and customizable email templates.
Billing and shipping addresses (with "same as billing" option).
Default payment terms and credit limits.
Tax-exempt flag for non-taxable customers.
Notes field for internal reference.
The customer list is sorted alphabetically and shows each customer's outstanding balance. Click a customer to view their details, linked invoices, and payment history.
Select a customer and set the invoice date and due date.
Add line items — click Select... to choose from your Services or Products catalog, or type a description manually.
Adjust quantities, prices, discounts, and tax amounts.
Add optional notes, terms, and footer text.
Save.
Invoice numbers are generated automatically from your configured prefix and counter.
Invoice Status Lifecycle
Draft — Just created. Not yet sent to the customer.
Sent — Sent via email or manually marked as sent.
Overdue — Automatically set when the due date passes without full payment.
Partial — A payment has been recorded but doesn't cover the full balance.
Paid — Full balance settled.
Void — Invoice zeroed out and preserved for audit trail. Cannot be edited.
Actions
Send Email — Sends the invoice to the customer via your configured SMTP. Automatically marks the invoice as "Sent."
Mark Sent — For invoices delivered outside the app (printed, hand-delivered).
Download PDF — Generates a PDF and saves via a file dialog.
Print — Opens the OS print dialog with a professional document layout.
Record Payment — Log a partial or full payment. Automatically updates the status.
Void — Zeroes out the invoice and marks it void. Preserves the invoice number for audit trail.
Filtering
The invoice list can be filtered by status and searched by number, customer, or amount. Voided invoices are hidden by default — check "Show voided" to view them.
Click Convert to Invoice on an accepted estimate. This creates a new invoice pre-populated with all the estimate's line items, amounts, and customer information. The estimate is marked as "Converted" with a link to the resulting invoice.
Auto-Expiry
Estimates that pass their expiry date while still in Draft or Sent status are automatically marked as Expired.
Set up automatic invoice generation from Sales → Recurring.
Select a customer, frequency (weekly, monthly, quarterly, yearly), and interval.
Set a start date and optional end date.
Define the invoice template with line items.
Enable "Auto-send" to email invoices automatically when generated.
When a recurring invoice fires, a new invoice is created with the next sequential number and all the template's line items. The next run date advances automatically.
Manage your suppliers and contractors from Expenses → Vendors.
Vendor Information
Company name, contact, email, phone, address.
Tax ID (EIN or SSN) and 1099-eligible flag.
W-9 received status and date — tracked for compliance.
Default expense account for streamlined bill entry.
Payment terms.
Subcontractor Management
Navigate to Expenses → Subcontractors for a dedicated view of all 1099-eligible vendors. This shows:
YTD payments to each contractor.
W-9 compliance status — highlights contractors with payments but no W-9 on file.
1099 threshold flag — marks contractors who've received $600+ (IRS reporting threshold).
Year selector for viewing different tax years.
Pass-Through Tracking
When you subcontract work and bill your client at a markup, you can link a vendor bill to the client invoice it relates to. This enables margin tracking: you can see what you charged the client vs. what you paid the sub.
Create projects from Time Tracking → Projects. Each project can have a customer, budget (hours and/or amount), hourly rate, and assigned employees.
Timer
Use the live timer at Time Tracking → Timer to start, pause, resume, and stop tracking. Time entries are created automatically when you stop the timer.
Time Entries
View and manage all time entries from Time Tracking → Time Entries. Entries can be:
Cost of Goods Sold, Operating Expenses, Payroll Expenses (Expenses)
Owner Equity, Retained Earnings (Equity)
You can add custom accounts as needed. System accounts (seeded defaults) are marked as such.
Journal Entries
Create manual journal entries from Accounting → Journal Entries. Each entry has debit and credit lines that must balance. Journal entries are also created automatically by:
Set up your bank accounts from Banking → Bank Accounts. Supported types: Checking, Savings, Credit Card, Loan, Investment, Other.
Viewing Transactions
Click a bank account name (or the Transactions button) to view all transactions. Filter by date range, reconciliation status, or search by description.
Importing Transactions
Import bank statements in CSV or OFX format using the Import button on each account.
SimpleFIN Sync
Connect to your bank via SimpleFIN for automatic transaction syncing. Set up at Banking → SimpleFIN Sync — enter your SimpleFIN access URL and map your bank accounts.
Reconciliation
Reconcile your bank account by matching imported transactions against your recorded invoices, bills, and journal entries. The reconciliation view shows unreconciled transactions and lets you match, exclude, or categorize them.
Click Print on any invoice or estimate detail page. The output is a professional document layout with your company header, customer address, line item table, totals, and notes — not a screen capture.
PDF Export
Click Download PDF on an invoice to generate and save a PDF file via a file dialog. The PDF uses the same professional layout as the print output.
Report Printing
All report views include a Print Report button that opens the OS print dialog with a clean, formatted output.
Configure currencies in Settings → Currencies. Set your base currency and add additional currencies with exchange rates. Invoices and bills can be created in foreign currencies with automatic conversion.
Navigate to Settings → Encryption to enable AES-256-GCM encryption for sensitive data at rest. This encrypts stored credentials (bank connections, SMTP passwords, etc.) using a master password derived with Argon2.
This is separate from the App Password (which controls access to the app itself). Both can be used together for defense in depth.
Navigate to Settings → App Password to require a password each time the app is opened.
Password is hashed with Argon2 and stored locally — never transmitted.
Optional hint text for the login screen.
Session-based: closing the app requires re-entering the password on next launch.
Lock Now button to immediately lock the session.
Change or disable the password at any time (requires current password).
Important: There is no password recovery mechanism. If you forget the password, you must delete the database and start fresh (or restore from a backup).
indiAccounting includes a 30-day free trial with all features enabled. After the trial expires, the app enters read-only mode until a license is purchased.
Activating a License
Go to Settings → License.
Enter your license key (format: INDI-xxxx...).
Click Activate License.
License validation is performed locally. No internet connection required after activation.
Data is stored in ~/.local/share/indiaccounting/ following the XDG Base Directory Specification.
macOS
Download the .dmg from the releases page. Open the DMG and drag indiAccounting to your Applications folder. Data is stored in ~/Library/Application Support/IndiAccounting/.
Windows
Download the MSI installer from the releases page. Run and follow the prompts. Data is stored in %APPDATA%\IndiAccounting\.