Products indiPDF indiAccounting indiBudget All Products Company Blog About Download

indiAccounting Documentation

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

  1. Set up your company information in Settings → Company.
  2. Review the Chart of Accounts — a default set is seeded for you.
  3. Add your customers and vendors.
  4. If migrating from another system, use Settings → Import Data.

Back to top

2. The Interface

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.

Back to top

3. Company Setup

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.

Back to top

4. Customers

Manage your clients from Overview → Customers.

  • Company name, contact name, email, phone.
  • 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.

Back to top

5. Invoices

Create and manage invoices from Sales → Invoices.

Creating an Invoice

  1. Click Create Invoice.
  2. Select a customer and set the invoice date and due date.
  3. Add line items — click Select... to choose from your Services or Products catalog, or type a description manually.
  4. Adjust quantities, prices, discounts, and tax amounts.
  5. Add optional notes, terms, and footer text.
  6. 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.

Back to top

6. Estimates

Create quotes and proposals from Sales → Estimates.

Estimates work like invoices but include an expiry date and a different status lifecycle:

  • DraftSentAccepted / Rejected / ExpiredConverted

Converting to Invoice

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.

Back to top

7. Recurring Invoices

Set up automatic invoice generation from Sales → Recurring.

  1. Select a customer, frequency (weekly, monthly, quarterly, yearly), and interval.
  2. Set a start date and optional end date.
  3. Define the invoice template with line items.
  4. 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.

Back to top

8. Bills & Expenses

Track money you owe from Expenses → Bills.

  • Enter bills from vendors with line items, amounts, and due dates.
  • Each line item is assigned to an expense account in your Chart of Accounts.
  • Record payments against bills (partial or full).
  • Link a bill to a related invoice for pass-through/markup tracking (see Vendors & Subcontractors).

Bill Status

  • Unpaid — Balance outstanding.
  • Partial — Some payment recorded.
  • Paid — Fully settled.
  • Void — Zeroed out.

Back to top

9. Vendors & Subcontractors

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.

Back to top

10. Purchase Orders

Create purchase orders from Expenses → Purchase Orders to track orders placed with vendors.

  • Select a vendor and add line items with quantities and prices.
  • Track order status: Draft, Sent, Partial, Received, Cancelled.
  • Record receiving — mark items as received with quantities.
  • Convert to Bill when ready to record the expense.

Back to top

11. Inventory & Products

Manage your product catalog from Catalog → Inventory.

  • Product details — Name, SKU, description, unit of measure.
  • Pricing — Sales price and cost price with margin display.
  • Inventory tracking — Enable to track quantity on hand, reorder points, and stock adjustments.
  • Accounting — Assign income, expense, and asset accounts from your Chart of Accounts.
  • Primary vendor — Link to the supplier for reordering.
  • Tax — Taxable flag and tax rate assignment.

When you create an invoice with a tracked product, inventory is automatically adjusted.

Back to top

12. Services

Manage your service offerings from Catalog → Services.

  • Service name, code (auto-generated if left blank), description.
  • Default price — pre-fills when added to an invoice or estimate.
  • Income account and tax rate assignment.

Services and Products both appear in the line item picker when creating invoices, estimates, and recurring invoices.

Back to top

13. Receipts & OCR

Upload and manage receipt images from Expenses → Receipts.

  • Upload receipt images (PNG, JPEG) or PDF files.
  • Automatic OCR text extraction (requires Tesseract) identifies vendor name, amount, and date.
  • Approve or reject receipts before recording as expenses.

OCR Requirements

Receipt text extraction uses Tesseract OCR. If not installed, receipts still work as image attachments — OCR is optional.

  • Linux: sudo apt install tesseract-ocr
  • macOS: brew install tesseract
  • Windows: Download from UB Mannheim

Back to top

14. Time Tracking & Projects

Projects

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:

  • Linked to a project, customer, and/or employee.
  • Marked as billable or non-billable.
  • Set with an hourly rate for invoicing.

Back to top

15. Mileage Tracking

Track business travel mileage from the Mileage section.

Mileage Entries

  • Log trips with start/end locations, distance, purpose, and vehicle.
  • Automatic reimbursement calculation using the IRS standard mileage rate (or custom rates).
  • Link entries to customers, projects, and expense accounts.
  • Approval workflow: Pending → Approved → Reimbursed.

Vehicles

Register your vehicles with year, make, model, and license plate. Assign vehicles to mileage entries for per-vehicle reporting.

Reporting

The mileage list includes summary breakdowns by vehicle, project, and customer — useful for tax reporting and client billing.

Back to top

16. Chart of Accounts & Journal Entries

Chart of Accounts

Navigate to Accounting → Chart of Accounts to view and manage your account structure. A default set of accounts is created automatically, including:

  • Cash, Checking, Savings (Assets)
  • Accounts Receivable, Inventory Asset (Assets)
  • Accounts Payable, Sales Tax Payable, Payroll Liabilities (Liabilities)
  • Sales Revenue, Service Revenue (Revenue)
  • 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:

  • Processing payroll (salary expense, tax liabilities, etc.)
  • Recording invoice payments
  • Bill payments

Back to top

17. Banking & Reconciliation

Bank Accounts

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.

Back to top

18. Payroll

Full payroll processing from Payroll → Employees and Pay Runs.

Employee Setup

  • Personal information, address, SSN (last 4 digits only).
  • Employment type (Full-Time, Part-Time, Contractor), department, job title.
  • Pay type (Salary or Hourly) with rate and frequency.
  • W-4 information (2020+ format): filing status, dependents, multiple jobs, deductions, extra withholding.
  • Benefits: 401k/retirement (employee contribution + employer match), health/dental/vision insurance premiums, HSA contributions — all with pre-tax/post-tax options.
  • Overtime: Configurable OT multiplier (default 1.5x), double-time (2.0x), and rule selection (weekly 40, daily 8, California, etc.).
  • PTO: Accrual rate, period, and balance tracking for vacation and sick leave.
  • Multi-state: Work state field for employees who work in a different state than their residence.
  • S-Corp: Shareholder-owner flag with health insurance premium adjustment per IRS Notice 2008-1.

Running Payroll

  1. Go to Payroll → Pay Runs and click Run Payroll.
  2. Step 1: Set pay period dates and pay date. Quick presets available (this week, biweekly, monthly, etc.).
  3. Step 2: Review employee hours — adjust regular, overtime, double-time, vacation, and sick hours.
  4. Step 3: Review tax calculations — federal, state, local taxes, Social Security, Medicare, employer taxes, benefits.
  5. Step 4: Confirm and process. Creates journal entries in your ledger.

Tax Calculations

Payroll automatically calculates:

  • Federal income tax (IRS 2025 Percentage Method with W-4 2020+ support)
  • State income tax (imported or hardcoded rates for all 50 states)
  • Local/city taxes (flat or graduated, employer or employee-paid)
  • Social Security (6.2% with $176,100 wage base limit)
  • Medicare (1.45% + 0.9% additional over threshold)
  • FUTA and SUTA (employer taxes)

Tax Liability & W-2

  • Tax Liability — Quarterly and YTD summary of employer and employee taxes.
  • W-2 Forms — Generate W-2 data by employee for year-end reporting.

Back to top

19. Prevailing Wages & Fringe Benefits

For businesses working on government contracts or union jobs, indiAccounting supports prevailing wage requirements.

Wage Allocations

During a pay run, click Add prevailing wages under any employee to split their hours across projects at different rates. Each allocation includes:

  • Project selection and work state (for multi-state tax allocation).
  • Base rate — Always taxable as wages.
  • Health & welfare fringe — Toggle between paid to a plan (non-taxable) or paid as cash (taxable).
  • Pension/retirement fringe — Same toggle.
  • Training fund — Same toggle.
  • Other fringe — Same toggle.

The system calculates taxable vs. non-taxable portions correctly based on each fringe component's disposition.

Prevailing Wage Report

Navigate to Payroll → Prevailing Wage for a detailed report showing:

  • Grand totals: hours, base pay, fringes to plans vs. fringes as cash.
  • Category breakdown: Health & Welfare, Pension, Training, Other — with plan vs. cash amounts.
  • Per-employee detail with project-level breakdowns.

Back to top

20. Budgets

Create and track budgets from Budgets → All Budgets.

  • Set up annual, quarterly, or monthly budgets.
  • Assign budget amounts per account.
  • Track actuals vs. budget with variance calculations.
  • Configure alerts when spending approaches or exceeds thresholds.

The Budget vs Actual report provides a visual comparison of planned vs. actual spending across all budget categories.

Back to top

21. Reports

Navigate to Reports → All Reports for the complete list. Available reports:

ReportDescription
Profit & LossIncome statement for a date range
Balance SheetAssets, liabilities, and equity at a point in time
Cash Flow StatementOperating, investing, and financing cash flows
Trial BalanceDebit/credit totals for all accounts
General LedgerDetailed transaction history by account
A/R AgingOutstanding customer invoices grouped by age
A/P AgingOutstanding vendor bills grouped by age
Profit MarginMargins by product and service
Expense by VendorTotal expenses broken down by vendor
Income by CustomerRevenue breakdown by customer
1099-NECVendor payments for tax reporting ($600+ threshold)
Budget vs ActualBudgeted vs. actual spending
Sales Tax ReportTax collected by jurisdiction
Sales Tax FilingsFiling status tracking
Prevailing WageFringe benefit accruals by employee and project

All reports support date range filtering and can be printed using the browser's print dialog.

Back to top

22. Sales Tax

Manage sales tax from Reports → Sales Tax Report and Sales Tax Filings.

  • Define tax jurisdictions in Settings → Tax Jurisdictions.
  • View collected tax by jurisdiction and period.
  • Track filing status and due dates.

Back to top

23. Importing Data

Migrate from other accounting software via Settings → Import Data.

Supported Sources

Pre-built column templates for one-click import from:

  • QuickBooks — Customers, Vendors, Products, Chart of Accounts
  • FreshBooks — Customers, Services
  • Wave — Customers, Vendors, Chart of Accounts
  • Sage — Customers, Vendors
  • Zoho Books — Customers, Vendors, Products
  • Generic CSV — Any CSV with a configurable column mapper

What Can Be Imported

  • Customers, Vendors, Products, Services
  • Chart of Accounts (with automatic account type mapping)
  • Invoices (multi-row CSV with line items grouped by invoice number)
  • Bills (multi-row CSV with line items grouped by bill number)

Import Wizard

  1. Upload — Select your source software and entity type, then upload a CSV file.
  2. Map Columns — The wizard auto-detects column mappings. Review and adjust as needed.
  3. Preview — See the first 20 rows as they'll be imported.
  4. Import — Execute the import with duplicate detection. Existing records are skipped with a clear message.

Recommended Import Order

Chart of Accounts → Customers → Vendors → Products → Services → Invoices → Bills

Back to top

24. Export & Backup

Navigate to Settings → Export & Backup.

Export Options

  • Full JSON Export — All data in JSON format for migration or archival.
  • CSV Export — Individual tables as CSV files.
  • Database Backup — Complete SQLite database copy (most comprehensive).

Restore from Backup

  1. Click Restore Backup.
  2. Confirm that this will replace all current data.
  3. Select a .db backup file.
  4. The backup is validated, copied over the current database, and migrations are applied to bring the schema up to date.
  5. Restart the app to use the restored data.

Back to top

25. Printing & PDF Export

Printing Invoices & Estimates

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.

Back to top

26. Multi-Currency Support

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.

Back to top

27. Data Encryption

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.

Back to top

28. App Password Protection

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).

Back to top

29. Licensing

Trial Period

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

  1. Go to Settings → License.
  2. Enter your license key (format: INDI-xxxx...).
  3. Click Activate License.

License validation is performed locally. No internet connection required after activation.

Back to top

30. Keyboard Shortcuts

ShortcutAction
Ctrl+K / ⌘KOpen command palette (search)
EscapeClose command palette or modal
/ Navigate command palette results
EnterSelect command palette result

Back to top

31. Installation

Linux

Download the .deb or .rpm package from the releases page, or build from source.

  • Debian / Ubuntu / Mint: sudo dpkg -i indiaccounting_*.deb
  • Fedora / RHEL: sudo rpm -i indiaccounting-*.rpm

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\.

Back to top

32. Troubleshooting

App won't launch after restoring a backup

Delete the database file and restart:

  • Linux: rm ~/.local/share/indiaccounting/accounting.db
  • macOS: rm ~/Library/Application\ Support/IndiAccounting/accounting.db
  • Windows: Delete %APPDATA%\IndiAccounting\accounting.db

Blank or white window on startup (Linux)

Some GPU drivers cause WebKitGTK rendering issues. Try launching with:

WEBKIT_DISABLE_DMABUF_RENDERER=1 indiaccounting

Create Employee button does nothing

This was fixed — the button now shows validation errors inline if required fields are missing (First Name, Last Name, State, Hire Date, Pay Rate).

Invoice/Estimate number says "cannot be blank"

This was fixed — numbers are now auto-generated from your prefix and counter in Company Settings.

Receipt OCR not working

OCR requires Tesseract to be installed separately. See the Receipts section for installation instructions. OCR is optional — the app works without it.

Forgot app password

There is no recovery mechanism. Delete the database file (see paths above) and restart the app. You will lose all data unless you have a backup.

Need More Help?

Visit our support page to report issues or request features.

Back to top