mirror of
https://github.com/actualbudget/actual.git
synced 2026-05-06 20:15:33 -05:00
[GH-ISSUE #1392] [Bug]: GoCardLess does not import all transactions for credit card (Bank of Norwegian, SE/DK) #7464
Closed
opened 2026-04-10 17:18:38 -05:00 by GiteaMirror
·
16 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#7464
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 @leikoilja on GitHub (Jul 24, 2023).
Original GitHub issue: https://github.com/actualbudget/actual/issues/1392
Verified issue does not already exist?
What happened?
Similar to the issues stated in https://github.com/actualbudget/actual/issues/724#issuecomment-1576331381 by @Inrego, when enabling a credit card from the Bank of Norwegian (Swedish in my case) - the integration does not import all transaction but only:
valueDateis lower than current day (IMHO this is where the problem is for credit cards)For context, on July 24th this is the last transaction that actual sees under Available (first 10) transactions properties for new integration of institution in sortTransactions function logs:
there were a lot dozen more transaction made between June 15th and July 24th. In the example above: the
bookingDatepoints to the date when the payment was made.When i perform a raw API call to gocardless - they correctly return a full list of transactions, example of the transaction that i performed this month (18th of July):
The problem with credit cards
*at least the Swedish ones
After contacting GoCardLess support, this is the message they received from the bank:
Here's what the bank says about the valueDates in the future:
The verdict
Following the explanation from the bank, the last transaction example (with
creditorName"OKQ8") thevalueDateis August 28th which is the last date when to pay for the purchase interest free. And sincevalueDateis in the future - Actual will not import this transaction and will simply ignore it.IMHO, for this specific bank (since it's a credit card) - Actual must take
bookingDateinstead ofvalueDate. I am not sure the same logic applies for all credit cards, but might be something to look into.What error did you receive?
No response
Where are you hosting Actual?
Locally via Yarn
What browsers are you seeing the problem on?
Other
Operating System
Mac OSX
@leikoilja commented on GitHub (Jul 24, 2023):
(could it be that this issues belongs to https://github.com/actualbudget/actual-server)? 😅
@kyrias commented on GitHub (Jul 24, 2023):
From the GoCardless documentatio:
This description seems... not very helpful for me, but I found this one instead from lewik.org which gives the definition in the context of PSD2:
That to me makes it sound like we should not be using
valueDatein Actual, or at the very least it should not be the primary value used. From the rest of the GoCardless documentation it sounds to me like if anything we should usebookingDate || bookingDateTime || valueDate || valueDateTimeto make sure that we hopefully get some date.@kyrias commented on GitHub (Jul 30, 2023):
I guess the GoCardless description is half the sentence from the Berlin Group guideliness, the full one being:
Based on this and reading some other documents it feels like
valueDateeithervalueDateorbookingDatewould be reasonable depending on the wanted semantics, thoughvalueDateshould be the date I would actually expect, i.e. the transaction date.BUT, since GoCardless appears to be trying to follow the Berlin Group's NextGenPSD2 specification for their API then I would argue that the GoCardless integration with this bank is incorrect and should be changed.
@leikoilja Since the bank has said that the
valueDatethey send does not match the NextGenPSD2 definition ofvalueDateI feel like you should request that GoCardless change their integration with that bank to not forward the value under that name since the bank's use of thevalueDatefield does not match the GoCardless API documentation.@kyrias commented on GitHub (Jul 30, 2023):
As a 'local' workaround I think it would make sense for the server to be able to normalize transactions as well to be able to locally fix this for the affected bank.
@kyrias commented on GitHub (Jul 30, 2023):
@leikoilja Could you post a (redacted is fine) instance of the
Available account properties for new institution integrationandAvailable (first 10) transactions properties for new integration of institution in calculateStartingBalance functionlog lines so I can try to add this normalization in the server?@Inrego commented on GitHub (Jul 31, 2023):
Want to add that I've been in contact with GoCardless about the issue. They've just forwarded it to Bank Norwegian and then nothing seems to happen
@kyrias commented on GitHub (Jul 31, 2023):
Did you include the fact that this use of
valueDatedoesn't match what GoCardless says in their docs, and so they should really remove the field on their side if Bank Norwegian won't fix it within a reasonable timeframe?Either way, if you could provide the data from the log lines I mentioned above which appear when linking an account with the bank then I can see about adding normalization on the Actual server side. :)
@leikoilja commented on GitHub (Jul 31, 2023):
@kyrias, here is pretty formatted log spit from the actual server. Thanks for looking into it
@kyrias commented on GitHub (Jul 31, 2023):
Great, thank you. Any chance you could get a
Available account properties for new institution integrationline as well? They're printed when you go through the linking process, though you don't have to finish any new linking on the Actual side once you're redirected back from the bank/GoCardless.Also, of the three balances (
closingBooked,expected,interimAvailable) which one corresponds to your current running balance that your bank reported at the time, including any uncleared transactions? Normally Actual would preferclosingBookedbut since they have a strange use ofvalueDateI guess they might have a strange use of theclosingBookedbalance as well.In particular what Actual uses this for is to calculate starting balances when setting up a new account. What we do is take the correct "current balance" and then we subtract all of the known transactions to then get the starting balance amount.
@leikoilja commented on GitHub (Aug 1, 2023):
Absolutely, sorry, missed where to find it first.
expectedstands for how much is actually been spent (the running balance)interimAvailablestands for the remaining credit limitclosingBooked- not really sure what this represent, but i'd guess it might to do with something how credit card works and is representing some kind of balance that needs to be payed before the interest is applied?@kyrias commented on GitHub (Aug 1, 2023):
I'd appreciate it if one or both of you would be able to help test out my changes in actualbudget/actual-server#237.
@Inrego commented on GitHub (Aug 8, 2023):
Here's the account properties for my danish branch account:
@LudvigHz commented on GitHub (Aug 9, 2023):
Hi!
I seem to have stumbled upon a similar issue with Danske Bank Norway. I have the same issue with pending transactions having a
valueDatein the future (1st of next month usually). This also seems to go for booked transactions though. ThevalueDateis still the 1st the month after the transaction occurred. I'll attach some example transactions from GoCardless here:Some transactions from June: (all are booked)
Note that some of the transactions have a
bookingDatein June andvalueDatein early July. While others have a valueDate in August??? And why there is a transaction from July in there I don't know (probably because they sort byvalueDate?(Ignore my really funky transactions here, I use Curve which adds the
CRV*to all transactions and Danske Bank seems to fuck up even more with the random\nEndToEndID: NOTPROVIDEDin there.And some transactions from August: (also booked)
I skimmed through https://github.com/actualbudget/actual-server/pull/237 and looked at the fix there. But it seems you are still using the
valueDatefor booked transactions? Sadly it doesn't seem like there is much more information I can use here.I could reach out to Danske Bank and ask them, but in my experience they are pretty useless. And it doesn't help that the Norway branch just got shut down and sold off (in effect in 2-3 years) so I highly doubt they'll care to do anything about it.
Is it an option to use the
bookingDatefor this bank in a similar solution like in https://github.com/actualbudget/actual-server/pull/237? If so, I'd be happy to submit a PR :) Since I'm not too familiar in banking and actual I thought I'd hear to see if anyone here has any thoughts on this.@kyrias commented on GitHub (Aug 9, 2023):
No,
bookingDateis used for booked transactions.valueDateis only used for pending transactions which at least for the Swedish branch apparently do not have abookingDate. Please give an example of a pending transaction, including the expected actual date of the transaction.@LudvigHz commented on GitHub (Aug 9, 2023):
Aah, I'm blind. I see it now.
I haven't read trough the whole discussion in https://github.com/actualbudget/actual-server/pull/237 though, so I don't have the full context of the issue for Bank Norwegian as implemented there (with the pending transactions and whatnot). But at least in this issue the only problem mentioned is with the
valueDatenot being the expected value for credit cards? Which seems to align with the behavior I'm seeing with Danske Bank.I don't know if Danske Bank shows the same behavior with pending transactions (I don't have any atm so I can't check. I'll make sure to validate that before I make a PR though).
I guess my question here is that it is correct for me to assume that the right path forward would be to implement a similar bank integration as in https://github.com/actualbudget/actual-server/pull/237, at least for the booked transactions (starting balance seems to be the same as well)?
@kyrias commented on GitHub (Aug 9, 2023):
Correct. :)