HOA Financial Management Software Guide

This document is the current source of truth for HOAfy billing, owner payments, accounting, budgets, reports, and bank feeds. It describes implemented behavior and material limitations.

Availability

Core invoicing, manual payments, double-entry accounting, budgets, reports, and reconciliation are available. Stripe Connect payments and autopay require a configured connected account and webhook. Plaid bank feeds require configured provider credentials and institution consent.

Association billing and HOAfy subscription billing are separate. This topic covers money owed to and paid by an association; HOAfy license billing is covered in HOA Platform Administration.

Invoices and Assessments

Authorized users can create draft invoices with line items, descriptions, amounts, dates, invoice types, and GL mappings. Drafts can be edited before issuance. Issuing posts the invoice to accounting; the Also send by email option is checked by default and can be unchecked to issue without email. Issued invoices are no longer editable, even if email is not sent or delivery fails. Send by email delivers an already-issued invoice without issuing it again. Voiding requires a reason and preserves history.

Batch creation supports assessments and other charges across selected units:

  1. Select target units.
  2. Define line items and accounting mappings.
  3. Choose delivery behavior.
  4. Preview amounts and delivery coverage.
  5. Confirm creation.
  6. Send or manage the resulting invoices.

Current batch creation processes invoices in a loop and is not guaranteed to be an all-or-nothing database transaction.

Watch billing and assessments in the demo

Recurring schedules support common monthly, quarterly, twice-yearly, and annual cadences, due-date offsets, memo text, automatic sending, pause/resume, and run-now controls. Tag targeting and formulas based on square footage or bedrooms are not exposed in the current web schedule workflow.

Operational invoice CSV import is available in Billing. It validates rows, detects duplicates, previews results, and requires an explicit commit. It is distinct from the opening-balance and full-history workflows in HOA Data Import, Migration, and Export.

Late Fees and Other Charges

Late-fee policies support a flat amount or percentage. Grace days are limited to 0-60 and percentage fees to 50%. Authorized users can waive applicable fees with an auditable reason.

Availability differs for charges originating outside Billing. A fine amount stored on a violation does not currently create an invoice or GL entry automatically. Request fees can also require a separate billing action according to the configured workflow.

Manual Payments and Deposits

Staff can record check, cash, money order, and other supported offline payments, allocate them to invoices, reverse them with a reason, and group receipts into deposit batches. Manual allocations can be partial, but one payment is constrained to invoices for one unit.

Use reversals rather than deleting posted payments. Reversals preserve the audit trail and reopen affected balances.

Online Owner Payments

Watch homeowner payments in the demo

Owners can select open invoices for one unit, request a quote, and pay through Stripe-hosted payment components. The current flow pays selected invoices in full. Arbitrary partial online allocations and one payment spanning several units are not supported.

The browser success state is not the accounting event. Stripe's signed webhook confirms success or failure, updates the payment, and applies or reverses invoice balances.

Prepaid Credit

Owners can deliberately add money for future fees with Add prepaid credit. This action is always available after the association completes Stripe onboarding: the association cannot disable voluntary Prepaid credit, no open invoice is required, and an owner can add to an existing balance.

The homeowner flow is:

  1. Select Add prepaid credit from Balance and Payments.
  2. Enter the Prepaid credit amount and choose a credit card or bank account (ACH).
  3. Review the quoted processing fee and total charge.
  4. Confirm the payment through Stripe.
  5. Wait for Stripe confirmation. Card payments normally confirm immediately; ACH can remain pending until it clears.
  6. Review the updated Prepaid credit balance after HOAfy records the successful webhook.

Funding Prepaid credit does not pay an invoice or recognize assessment income. HOAfy leaves the successful payment unallocated and tracks the requested amount for that association and unit. Homeowner-paid processing fees, when configured, are separate and do not increase Prepaid credit.

When an eligible invoice is issued later, an authorized association user can apply Prepaid credit to it. Autopay applies available Prepaid credit before charging Stripe for any remainder. HOAfy requires existing Prepaid credit to be applied before the owner makes a separate online invoice payment.

From the accounting perspective, the association has received money that has not yet been earned through an assessment. HOAfy therefore records Prepaid credit as a liability:

EventDebitCredit
Successful fundingStripe Clearing (1060) for the net receipt, plus Bank and Payment Fees (5080) for Stripe feesPrepaid Assessments (2100) for the requested credit, plus Payment Fee Income (4070) for any homeowner-paid fee
Apply credit to an invoicePrepaid Assessments (2100)Accounts Receivable (1100)

The invoice posting recognizes assessment income, so applying Prepaid credit does not recognize income again. Partial applications leave the unused amount in Prepaid Assessments. Applications, reversals, and refunds retain the original payment, invoice, unit, and journal references so the audit trail remains intact.

Stripe Connect

Each association uses its own Stripe Connect account and receives its own payouts; HOAfy does not hold association funds. An authorized administrator starts onboarding, completes Stripe's hosted identity and payout setup, and waits for charges_enabled and payouts_enabled. Stripe can later restrict an account and request more information.

Live and test keys, connected accounts, and webhook secrets must use the same mode. A working Connect webhook is required for reliable payment accounting.

The onboarding sequence is:

  1. An authorized association administrator starts onboarding from payment settings.
  2. HOAfy creates or retrieves the association's Stripe Connect Express account.
  3. The administrator completes Stripe's hosted identity, business, and payout setup.
  4. HOAfy checks charges_enabled, payouts_enabled, and submitted details.
  5. Owner Pay Now becomes available only when the connected account can accept charges.

Fee Modes

An association can absorb card processing cost or pass an allowed card fee to the payer. Any pass-through remains subject to card-network rules and applicable law. ACH is the lower-cost path and does not use the card surcharge calculation. The quote displayed before confirmation controls that payment attempt.

Stripe Standard US Pricing

The following public list prices were reviewed on September 26, 2026. They are Stripe charges, not permanent HOAfy prices. Custom or negotiated pricing, Connect configuration, region, currency, payment method, and provider changes can alter them. Verify Stripe pricing and the connected account's fee schedule before quoting.

Event or serviceStripe standard US list price or rule
Successful domestic card payment2.9% + $0.30
Manually entered cardAdditional 0.5%
International cardAdditional 1.5%
Currency conversionAdditional 1% when required
ACH Direct Debit, standard settlement0.8%, capped at $5.00
Instant bank-account verification$1.50 per successful verification; microdeposit verification is free
Card dispute received$15 per dispute; rare network fees can also apply
Manually countered card disputeAdditional $15, returned if won and retained if lost
ACH failure or late returnStripe applies an ACH failure fee; verify the account fee schedule before quoting an amount
ACH disputeStripe applies the account's ACH dispute fee; ordinary-window ACH disputes are generally final

Stripe Connect has two pricing models. When Stripe handles pricing for connected accounts, Stripe states there is no additional platform account, payout-volume, tax-reporting, or per-payout fee. When the platform controls pricing, Stripe publicly lists $2 per monthly active account and 0.25% + $0.25 per payout. HOAfy's direct-charge design and commercial configuration determine which account is charged. Do not add Connect fees to a homeowner quote unless the live configuration does so.

Cancellations, Refunds, and Disputes

A payment can be canceled without a Stripe cancellation fee only while its status permits cancellation. Stripe allows cancellation for incomplete or uncaptured PaymentIntents and for a US-bank payment still in processing before it is posted to the bank. A succeeded payment must be refunded or reversed through the supported workflow. This is separate from canceling a HOAfy subscription.

For standard card pricing, Stripe generally does not add a separate fee merely to issue most card refunds, but original card processing, Connect, and currency-conversion fees are not returned. Card refunds usually appear in approximately 5-10 business days. A very early refund can appear as a reversal, in which case Stripe says it does not withhold payment-reversal fees.

ACH refunds are full-only for this payment method, may be submitted for up to 180 days, take up to three business days to initiate, and cannot be canceled after submission. Stripe waits for the original debit to succeed before submitting the refund. The owner receives a separate credit rather than a reversal. A refund does not prevent the owner from also disputing the debit through their bank, so confirm the refund with the owner.

ACH is asynchronous and standard settlement can take up to four business days. A debit can fail for insufficient funds, invalid account details, disabled debits, or other bank reasons. In rare cases it can appear successful and later return; Stripe removes the funds and applies its failure fee. A failed or disputed mandate can become unusable and require new authorization.

Card disputes follow Stripe's evidence workflow and fee schedule. Under the ordinary ACH process, personal-account customers generally have up to 60 calendar days to dispute, while business accounts generally have two business days. Ordinary ACH disputes are final through the network; rare late-return inquiries can have an evidence process. A refund, dispute, failure, or reversal can reopen the associated invoice balance.

Autopay

Owners can save an eligible card or bank payment method and configure payment on invoice due dates or a fixed day, supported minimum-due behavior, a per-charge cap, lead time, and timezone. They can pause, resume, or remove enrollment.

Autopay evaluates daily, uses same-day idempotency controls, selects eligible invoices oldest first, respects the cap, and reports invoices that do not fit. Repeated failures place the enrollment in a failing state until the owner updates the payment method and resumes it.

Pausing or removing autopay stops future HOAfy-initiated charges but does not undo a completed payment. Revoking an ACH mandate and canceling autopay are legally distinct actions.

Statements and Payment History

Owners can review balances, invoice and payment history, and statements. Current web statements download as text; a PDF statement should not be promised unless an explicit control is present. Administrators can review the payment register and related accounting records.

Accounting Foundations

Chart of Accounts and Funds

HOAfy provides double-entry accounting. A default chart can be provisioned, and authorized users can add, edit, archive, and organize asset, liability, equity, income, and expense accounts. Accounts can be linked to funds and eligible bank connections.

Operating and Reserve are the standard starting funds. Additional funds can be created. Transfers between funds use balanced journal treatment; they are not ordinary income and expense.

Archive unused accounts rather than deleting historical structure. Review invoice, payment, budget, vendor-bill, and bank mappings before changing accounts.

Journal Entries

Manual journals require balanced debits and credits and support dates, descriptions, source context, and reversal history. System workflows create entries for invoices, payments, deposits, transfers, and supported vendor bills. Correct posted entries with a reversal rather than rewriting history.

Cash and Accrual Views

Reports expose cash or accrual perspectives where supported. The association should adopt a primary accounting policy and clearly label alternate-basis reports.

Accounting Periods

Use Accounting > Periods to review monthly periods and the selected fiscal year's close status. Monthly closing and fiscal-year closing are separate operations: closing a month does not close the year or transfer income and expense balances to equity.

Calendar and Fiscal-Year Navigation

The page defaults to the current fiscal year, using the association's fiscal-year start month and timezone. Months appear from the later of the fiscal-year start or association creation month through the earlier of the fiscal-year end or current month. The current month is labeled Current; future months are not added to the normal monthly list.

For example, an association created in August 2025 with a July fiscal-year start shows July through October when viewing July 2026-June 2027 in October 2026. Selecting July 2025-June 2026 shows August 2025 through June 2026.

Select an earlier fiscal year to review its periods. Links highlight open months in other fiscal years so unfinished work remains discoverable. Saved historical periods remain available even when they predate association creation.

Months appear automatically as the calendar advances; staff do not need to create each period. More than one month can remain open while prior-month reconciliation is completed. A month appearing in the list does not mean that it has transactions or has already been closed.

Closing and Reopening a Month

Use the lock action on the month's row. The close dialog fixes the selected period and requires fresh confirmation that all bank accounts are reconciled and the trial balance has been reviewed by the treasurer. Add notes explaining the review or relevant adjustments.

Before closing a month:

  1. Confirm all owner payments and deposits have posted.
  2. Review failed, refunded, reversed, and disputed payments.
  3. Record outstanding vendor bills and approved adjustments.
  4. Synchronize bank feeds and resolve uncategorized transactions.
  5. Complete each bank reconciliation to zero difference.
  6. Review the trial balance and unusual account balances.
  7. Run budget variance and delinquency reports.
  8. Confirm the checklist and close the month with notes identifying the reviewer.

The table displays the status and Closed date without a time. Closed months block ordinary postings. Viewing existing records and reports does not require reopening the month.

Only the association's Account Owner can reopen a closed month. Use the amber unlock action and provide a reason; the action is recorded in the audit log. A reopened month is marked Reopened and can be closed again using its row action and a fresh checklist. Previously issued reports may change after corrections.

If the month belongs to a closed fiscal year, reopen the fiscal year first, then reopen the specific month that needs correction. Reopening the year does not automatically reopen its months.

Reviewing and Closing a Fiscal Year

The fiscal-year summary replaces a general-purpose Close Period button. A year that has not ended is labeled Year in progress or Year has not ended and cannot be finalized.

For an ended year, select Review year-end close:

  1. Confirm the displayed fiscal-year start and end dates.
  2. Review the remaining open months. Close each using its monthly row action, then review the year again. Year-end close does not automatically close them.
  3. For the association's first partial year, review the applicable months from its creation month, along with any saved historical months belonging to that fiscal year.
  4. Confirm the reconciliation and trial-balance checklist again and enter close notes.
  5. Select Close fiscal year when the prerequisites are satisfied.

Year-end close transfers remaining revenue and expense balances to the appropriate equity close account within each fund, such as Operating Retained Earnings or Reserve Fund Balance. No transfer journal is needed when there is nothing to transfer. Finalizing the year locks postings across its full fiscal-year date range, not just individual closed months.

Use View year-end close details to review the dates, saved checklist, notes, and year-end journal reference. The Account Owner can Reopen fiscal year with a recorded reason. After correcting and reclosing the affected months, review and close the year again; the close workflow accounts for prior closing entries rather than repeating the original transfer.

If the summary reports that a fiscal-year close is in progress, postings and reopen actions are temporarily locked. Use the provided Retry year-end close action when available to recover an interrupted close instead of creating a manual duplicate closing entry.

Confirm the association's timezone and fiscal-year start before saving accounting records. HOAfy blocks changes while accounting history exists, including a saved open period or draft journal—not just posted transactions or closed years. Merely viewing the calculated calendar does not lock the settings. Set the calendar before recording activity: a settings save submitted at the same time as the first accounting record may race with that record.

Bank Reconciliation and Plaid

Watch banking and reconciliation in the demo

Reconciliation compares statement or feed activity with HOAfy accounting. Users enter statement dates and balances, import statement lines or use feed transactions, review suggested matches, resolve exceptions, and lock only when all items are resolved and the difference is zero.

Automatic matching looks for a unique amount/account match within three days. It is a suggestion, not proof. Confirm payer, description, deposit grouping, and transfer direction.

The reconciliation CSV format is date,description,amount. The current web parser can be fragile when a quoted description contains commas; verify parsed rows before locking.

Plaid connects the association's bank accounts to accounting. It is separate from Stripe verification for owner ACH payments. The flow requests a Link token, completes institution authentication, exchanges the public token, maps imported accounts to GL assets, and synchronizes transactions.

If Plaid credentials or environment configuration are missing, setup returns a provider-not-configured response. Institution login, MFA, consent expiration, and account changes can require reconnection.

Initial synchronization can retrieve approximately 90 days of provider-available history. Later syncs process additions, modifications, and removals. Users can filter, match, split and categorize, ignore, undo, and link transfers. Split totals must equal the source amount.

HOAfy does not currently provide association-authored auto-categorization rules or a guaranteed machine-learning categorizer. Plaid metadata and matching suggestions still require review.

Budgets

Watch budgets and financial reports in the demo

Budgets support names, fiscal years, funds, account/month values in the data model, notes, workflow state, and versioned amendments. The current web editor primarily exposes metadata rather than a complete monthly allocation worksheet and does not expose every modeled transition. It should not be represented as spreadsheet-equivalent authoring.

Budget variance compares actual activity with budget and supports threshold review and GL drilldown. Governing-document adoption evidence should be retained in Documents when minutes or a signed resolution are required.

Reports and Packets

The standard library includes income statement, balance sheet, trial balance, cash flow, AR aging, delinquency, payment register, general-ledger detail, budget variance, and treasurer dashboard metrics. Filters vary by report. Several reports support CSV; PDF should be claimed only where an explicit export exists.

Saved reports provide pivot-style views over supported GL dimensions with sum, count, and average aggregations. Results can appear as raw structured data rather than a polished printable report.

Report packets bundle reports for recurring distribution. Income statement, balance sheet, and trial balance are fully assembled by the packet worker. Some other accepted packet types can produce a placeholder directing the recipient to the web application while still recording a successful run. Review a sample before relying on unattended delivery.

Operating Guidance

  • Have the association's accountant approve the chart, fund structure, and migration approach.
  • Complete Stripe onboarding before the first due date and verify a small live payment end to end.
  • Reconcile monthly and before closing a period.
  • Use ACH for larger assessments when delayed settlement is acceptable.
  • Record offline money through Manual Payments rather than editing balances.
  • Use reversals and explanatory notes for corrections.
  • Preview report packets after changing their contents.

Support Answers

  • Does HOAfy hold association money? No. Direct charges settle through the association's connected Stripe account.
  • Can an owner add money for future assessments? Yes. After Stripe onboarding, the owner can use Add prepaid credit without an open invoice. The association cannot disable voluntary Prepaid credit.
  • Can an owner pay invoices from two units at once? No. One current online payment is limited to invoices for one unit.
  • Can an owner make a partial online payment? Not currently. Staff can record partial manual allocations.
  • Why is an ACH payment pending? ACH Direct Debit uses delayed confirmation and standard settlement can take up to four business days.
  • Why did a paid invoice reopen? A refund, dispute, failure, or reversal can restore its balance.
  • Is Plaid required for accounting? No. Manual journals and CSV reconciliation work without it.
  • Is Plaid used for owner ACH? No. Plaid imports association bank activity; Stripe handles owner ACH.
  • Why is the current month visible before it has transactions? The Periods page shows the accounting calendar, not just months with activity. New months appear automatically.
  • Why can I not finalize the current fiscal year? The year must have ended, and all applicable months must be closed, before year-end confirmation is available.
  • Does closing a fiscal year close all its months? No. Close the remaining months individually before finalizing the year.
  • Can a closed period be changed? Ordinary changes are blocked. The Account Owner can reopen it with a recorded reason; if its fiscal year is closed, reopen the year first and then the affected month.
  • Does reopening a fiscal year reopen every month? No. Monthly statuses remain unchanged until the Account Owner explicitly reopens the required months.
  • Are all report packets complete PDFs? No. Some accepted report types currently produce a web-application placeholder.

Provider Sources

Ready to simplify your HOA?

Start your free trial today. No credit card required.