mirror of
https://github.com/actualbudget/actual.git
synced 2026-05-06 15:12:35 -05:00
[GH-ISSUE #4069] [Bug]: QFX amounts are lumped together in Amount column despite having distinct positive and negative values #27523
Closed
opened 2026-04-18 04:05:26 -05:00 by GiteaMirror
·
7 comments
No Branch/Tag Specified
master
claude/hide-default-categories-1cwBZ
matiss/crdt-source-loading
matiss/crdt-protobuf
release/26.5.0
claude/update-issue-template-ykMNn
claude/fix-issue-7667-DPXi3
cursor/formula-feedback-improvements-4223
cursor/resolve-pr-7449-ee11
claude/fix-typescript-build-error-JPtZ5
jfdoming/api-tokens-part-3
jfdoming/api-tokens-part-2
jfdoming/api-tokens-part-1
claude/speed-up-vrt-workflow-ZAyI5
claude/crdt-version-auto-publish-Ph1BH
copilot/add-repository-configs-to-packages
worktree-compressed-drifting-ritchie
worktree-mellow-strolling-dawn
matiss/browser-api
claude/api-consumer-verification-kfz1K
feature/enable-banking
cursor/transaction-table-rewrite-f077
pr-7454
claude/fix-issue-7410-LLLQ4
release/v100.0.0
revert-7350-trim-deps
revert-7220-sankey-report
revert-7242-fix/split-parent-update-corruption
revert-7281-generate-icons
claude/electron-to-tauri-migration-LjBN8
worktree-remotion
release/vv26.4.0-pre
claude/browser-compatible-api-QbhHh
claude/improve-cli-transactions-waTUY
claude/publish-react-native-ios-j8qoT
js-proxy
claude/fix-flaky-ci-job-5gDdz
react-query-rules
react-query-useSchedules
claude/nightly-theme-validation-scan-DzOGD
claude/debug-simplefin-error-ZuKzB
matiss/desktop-client-subpath-imports
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
add-claude-github-actions-1772738270730
cursor/sync-performance-notification-9899
react-query-prefs
matiss/chunked-sync-and-progress-ux
v26.2.1
copilot/sub-pr-6880
fix-react-query-clear-on-close-budget
copilot/sub-pr-6140
feat/auto-note
feat/scoped-bank-sync
cursor/desktop-transactions-react-table-1d0c
fix-exhaustive-deps-App
copilot/fix-find-replace-bug
release/v26.2.0-pre
matiss/browser-tests
mobile-fix-drag-and-drop-across-groups
budget-table-v2
PayeeAutocomplete2
pglite
bugfix/plugins/fix-plugins-sw
feat/plugins/plugins-core-package
prerelease
matiss/unicode-minus-fix
cursor/fix-actual-github-issue-6206-gemini-3-pro-preview-9c37
TransactionFormPage
cursor/implement-mortgage-and-loan-account-type-78ca
tests-update-fill-with-pressSequentially
mobile/link-modal
deps/25.11
cursor/fix-update-vrt-apply-ci-job-dispatch-b324
sync-server-plugins
cursor/propose-patch-for-github-issue-5680-2a18
fix/compiler-preserve-inner-dollar-escapes
cursor/analyze-actual-budget-issue-and-propose-fix-5b70
coderabbitai/docstrings/0c070e5
cursor/add-wip-prefix-and-comment-to-prs-d78d
jfdoming/08-21-auto-focus-on-navigate-in-all-browsers
show-totals-on-mobile-budget-banners
allow-child-transactions-make-transfer
mobile-calculator-keyboard
payee-geolocation
enhance/restore_scroll_position
dm-fix-second-click-on-mobile-new-transaction-2
scrollToLocationBudget
alert-autofix-38
tsconfig-composite
mobile-fix-uncategorized-transactions-on-tracking-budgets
server-budget-handlers
fix-sql-injection-in-cleanup-template
non-chrome-draggable-workaround
mobile-budget-page-swipe-navigation
ts-db-all
stable
dark-theme-with-brand-colors
fix-mobile-delete-group
ts-db-select
UnderKoen/reconcile-context-menu
master-before-server-merge
v25.2.1
ts-runQuery
rename-redux-hooks
UnderKoen/3557-persist-state-in-history
remove-redux-CLOSE_BUDGET
fix-exhaustive-deps-errors-FinancesApp
redux-toolkit-createSlice-backup
accounts-function-component
ts-useSplitsExpanded
loot-core-server-package
useTransactios-in-TransactionEdit
react-aria-input
move-redux-to-desktop-client
QueryState-type
fix-themes-applied-late
mobile-vrts
revert-3295-spendingCardFix
react-aria-button-4
split-payee-on-mobile
twk3/pin-apis-crdt
notes-tag-autocomplete
ts-LoadBackup
dnd-kit
package-upgrades
v26.5.0
v26.4.0
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
No Label
bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#27523
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @bverkron on GitHub (Jan 2, 2025).
Original GitHub issue: https://github.com/actualbudget/actual/issues/4069
Verified issue does not already exist?
What happened?
When attempting to import a QFX file from my credit card company Actual Budget lumps all the values, regardless if they're positive or negative, into an "Amount" column. If I complete the import like this all the credit card charges go into the deposit column instead of the payment column and are treated as payments on the credit card instead of charges.
I am not intimately familiar with the QFX file format but I can see in the file that the transactions have positive values for payments and negative values for charges and are marked as Debit or Credit so not sure why this isn't picked up by AB and put into the Amount columns.
Have tried Safari and Brave, same behaviour.
How can we reproduce the issue?
Try to import this file...
credit_card_sample.qfx.zip
Example snippet...
Should see results like this...

Where are you hosting Actual?
Docker
What browsers are you seeing the problem on?
Chrome, Safari
Operating System
Mac OSX
@jx34tech commented on GitHub (Jan 11, 2025):
I just want to add that I have seen this bug the same way (pulled via docker) for myself, Every file format shown in this way except for QIF, that appeared to import the data correctly
@matt-fidd commented on GitHub (Jan 30, 2025):
I can't seem to replicate this on edge, has it been fixed?
https://github.com/user-attachments/assets/49ce8530-64e8-40b9-8b46-a0007a7da465
@bverkron commented on GitHub (Feb 3, 2025):
Strange it's working for your. I just tried edge and I get the same behaviour as described originally. Everything goes into the Amount column as a positive value, both with the attached sample file and a fresh file from my credit card company.
Tried wiping all cache in my browser as well. No change. Tried Safari and Brave (basically Chrome) on macOS.
Not sure how to better check the version of Actual I'm running. The UI just says 25.1.0 but says nothing about edge or finer versions.
@langelgjm commented on GitHub (Feb 12, 2025):
Confirming I see the same issue on version 25.2.1 on Mac OS, installed from a DMG I downloaded today. My credit card company provides a QFX export with negative numbers for debits and positive for credits, but when imported into Actual, both negative and positive amounts appears in the "Deposit" column, so that debits look like credits.
In both the sample provided in this bug report and my data file, the OFX file has DATA:OFXSGML and VERSION:102 headers, so it is an older version of the OFX standard. In contrast my bank provides a QFX file that's version 202 and uses XML, and when I import the XML-based QFX file debits and credits show up correctly.
In packages/loot-core/src/server/accounts/ofx2json.ts I can see that SGML-based OFX data is first converted to XML before being parsed, but I didn't see anything obvious that would cause the sign of the transaction to be lost. I don't have a proper development environment set up yet but would be happy to dig into this further.
@langelgjm commented on GitHub (Feb 13, 2025):
Upon further research, the only way I can reproduce this issue is with the following steps:
This suggests to me the issue has nothing to do with OFX parsing. Instead, it seems that having chosen to previously use an "in/out identifier" is affecting how amounts are read from subsequent imports.
I'm attaching a sample CSV file that contains the same transactions as the sample QFX.
I confirmed the issue is present in the current repo code built with Docker Compose.
credit_card_sample.csv
@bverkron commented on GitHub (Feb 13, 2025):
Great find @langelgjm.
I can confirm that recently I have been using .csv imports with this account because my bank was going through some changes and was only providing .csv as an option (though they had other formats before). So, this could very well be the cause of the issue for me too. Will try to confirm when I have time but I think it’s very likely the case for me.
@langelgjm commented on GitHub (Feb 14, 2025):
I opened #4382 which checks to see if the file being imported is an OFX file, and if so, ignores the "inOutMode" which is CSV-specific, and it resolves the issue for me locally. Not sure if this should also check for CAMT files.