Skip to content

Firefly III

Open Accountant can pull transactions directly from a self-hosted Firefly III instance via its REST API, bypassing the need to export and import CSV files manually.

Generate a Personal Access Token in your Firefly III instance under Options > Profile > OAuth, then set both values in .env:

Terminal window
FIREFLY_API_URL=https://firefly.example.com
FIREFLY_API_TOKEN=eyJ0eXAiOiJKV1Qi...

FIREFLY_API_URL should be the root URL of your instance (no trailing slash, no /api/v1).

Terminal window
wilson --sync

Syncs all configured integrations including Firefly III. Runs without the interactive agent — ideal for cron jobs. See --sync docs for details.

Sync my transactions from Firefly III
Import the last 3 months from Firefly
Terminal window
wilson --run "Sync transactions from Firefly III"
ParameterDefaultDescription
startDateStart date filter (YYYY-MM-DD)
endDateEnd date filter (YYYY-MM-DD)
limitallMaximum number of transactions to fetch
includeTransfersfalseInclude transfer transactions
  1. Open Accountant authenticates with Firefly III using your Personal Access Token
  2. Fetches transactions via the /api/v1/transactions endpoint, paginating automatically
  3. Maps Firefly III’s data model to Open Accountant’s schema:
    • Withdrawals become negative amounts (expenses)
    • Deposits become positive amounts (income)
    • Transfers are skipped by default (use includeTransfers to include them)
    • Reconciliation and opening balance entries are always skipped
  4. Deduplicates by transaction_journal_id to prevent re-importing existing transactions
  5. Preserves categories, tags, notes, and recurring bill/subscription flags
Firefly III FieldOpen Accountant FieldNotes
amount + typeamountWithdrawal = negative, deposit = positive
destination_namedescriptionFor withdrawals (merchant name)
source_namedescriptionFor deposits (payer name)
category_namecategoryPreserved as-is
tagstagsJoined as comma-separated string
bill_name / subscription_nameis_recurringEither present = recurring
transaction_journal_idexternal_idPrefixed with firefly: for dedup
notesnotesPreserved as-is

Firefly III supports split transactions — a single group containing multiple splits (e.g., a receipt with office supplies and snacks). Each split is imported as a separate transaction with its own transaction_journal_id.

  • Network access required — Your Firefly III instance must be reachable from the machine running Open Accountant.
  • API v1 only — Uses the stable v1 API. Future API changes may require updates.
  • Personal Access Token in .env — Your token is stored locally in plaintext. Consider using environment variable management tools for added security.