mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-25 15:52:59 -05:00
[Feedback] Nordigen bank-sync #286
Closed
opened 2026-02-28 18:55:53 -06:00 by GiteaMirror
·
82 comments
No Branch/Tag Specified
master
claude/browser-compatible-api-QbhHh
matiss/theme-catalog-responsive-layout
claude/improve-cli-transactions-waTUY
matiss/remove-browser-connection-extension
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.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
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#286
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 @MatissJanis on GitHub (Mar 4, 2023).
Nordigen bank sync is now available in the
v23.3.1+release as an experimental feature. This issue is to collect bug reports about the feature.If you have bug reports - feel free to post them as comments on this thread and I will aggregate them on this root-level message.
How to test
masterbranch foractualandactual-serverorv23.5.0actual-server:yarn startactual:yarn start:browserPriority issues
(we will launch Nordigen as an experimental feature; this list contains issues blocking the full first-party feature launch of the feature)
actual-server: (bug) Nordigen access token expiring after 24h: here - @fstybelactual-server: meaningful "default" bank integration: see more here - @MatissJanisactual-server: create a new endpoint that provides a list of the available banks; use this list in the frontend - @MatissJanisdocs: we need documentation about how to set-up banksync - how to get the Nordigen keys etc. - @tjfinlinsonactual: nitpicks in "link you account" modal: here - @MatissJanisactual: lack of visual hierarchy in "link accounts" modal: here - @MatissJanis [Feature] Group Level Budget (#792)actual: "pending" transactions not appearing in transaction table: here - [Feature] Open calculator for amount input boxes (#919)actual(bug): creating linked accounts for non-server installs should not work: here - @MatissJanis- no reliable solution for this is possible because each bank has its own expiry period and this is not easily accessible - however, if the bank-sync expires - we do have a friendly message allowing the user to easily re-link the accountactual: show expiration banner if bank-sync will soon expire: hereactual: allow to easily re-link accounts that have bank-sync expired: here - [Bug]: GoCardless syncing way more data then used to (730 days back) (#1133)- we recently added event-listener logic for updating secret values when the user provides new ones via the new API; given this - conditionally instatiating the class is going to add quite a lot of complexity that I don't think is worth it purely for the cleanliness factoractual-server: (tech debt) do not initialise the Nordigen class if the secrets have not been set: hereactual-server: (bug) missing/nordigen/linkpage: here - @MatissJanisactual-server: add currency to account names: here - @MatissJanisactual-server: fallback tobookingDateifvalueDateis not set: here - @MatissJanisactual: (bug) negative zero values: here - @Jackenmenactual: popup blockers: here - Estimate interest on savings (#950)actual: add warning about bank-sync privacy implications: here - @MatissJanis [Feature] Generic Migration Importer (#801)actual: (bug) missingvalueDatewhen syncing: here - @waseem-hactual-server: ability to set-up Nordigen credentials via the UI: here - [Feature] Allow to exclude selected imported accounts from accounting (#968)- not reproducableactual: (bug) unable to sync account with no transactions: hereOther issues
actual: improve error handling: hereactual-server: transactions with future date: hereactual: accounts with no changes get bolded in the UI: hereactual-server: transfers between accounts get imported incorrectly (as transactions instead of real transfers): here (might not be possible to do)actual/actual-server: (bug) incorrectly sorted transactions: here - explanation why this will be very complex to solve@MatissJanis commented on GitHub (Mar 4, 2023):
[RESOLVED]
Some design feedback
1.1. The dropdown UI could be improved
1.2. The "back" button can be removed as we already have a "x" at the top
2.1. the modal is lacking in visual hierarchy; possibly use a table there?
2.2. account for long account names
@MatissJanis commented on GitHub (Mar 4, 2023):
[RESOLVED]
One more big item (and IMO super important):
Currently we support only 2-3 banks. However, we should be able to support a much larger set of banks if we provide meaningful defaults. Some work on this: https://github.com/actualbudget/actual-server/pull/144
Basically, if we define a "default bank" integration, we should be able to support the majority of Nordigen supported banks out of the box.
Some might not fully work.. but that's fine - people can always report them as bugs. But at least it will give us like 90% coverage without having to build each bank integration separately.
@MatissJanis commented on GitHub (Mar 5, 2023):
Pending transactions are not added to the list.
The bank-sync API returns 2x transaction types: pending and complete. Handling of "complete" transactions works as expected. They are added to the transaction table as "cleared" transactions.
However, "pending" transactions do not show up. Ideally they should show up as "not-cleared".
@MatissJanis commented on GitHub (Mar 5, 2023):
[RESOLVED]
Bug: creating linked accounts should only be available if
actual-serveris being used. For local-only installs we shouldnot show the "link accounts" option as it will not workdisable the account linking button, but link to the docs.@j-f1 commented on GitHub (Mar 5, 2023):
[RESOLVED]
IMO we should show the button as disabled and link to docs (just like we do with e2ee)
@fstybel commented on GitHub (Mar 5, 2023):
Bug:
When we finish going through the wizard to add a new account and it disappeared we have a few seconds when nothing happens (in the background the app fetches transactions and processes them). But the user can be confused for a moment -- he should see some spinner or some loading screen with the information that synchronization happening.
@fstybel commented on GitHub (Mar 5, 2023):
Feature:
Display information when the requisition for the account will expire.
@fstybel commented on GitHub (Mar 6, 2023):
Bug:
Error handling is not sufficient.
For example:
@MatissJanis commented on GitHub (Mar 6, 2023):
Could you please expand on this one?
@fstybel commented on GitHub (Mar 7, 2023):
When we add an account from your bank to Actual we create the Requisition/Agreements on the backend side in Nordigen. This access is valid for 30 days (default). It would be nice to see that our requisition will expire soon and we can expect we will need to re-assign the accounts.
Additionally, if we exceeded this time we can just suggest to the user that he has to re-link his accounts linked with the requisition instead of the current behavior -> User clicks the sync button then he receives errors about sync failing, and finally, he can see to re-link button which gives him the possibility to link accounts again.
It's easy to reproduce it by changing passing
1as a value for accessValidForDays in create-web-token request. And try to sync account next day (after 24h)@fstybel commented on GitHub (Mar 7, 2023):
[RESOLVED]
Bug:
The NordigenAPI access token expires 24h after creation - we should regenerate the token if it's expired (I'm working on the fix).
The current workaround is to reset the server.
@rich-howell commented on GitHub (Mar 7, 2023):
[RESOLVED]
If you are not using a server, it seems that when you are asked for your country, the app has an internal error, a message is presented to the user saying we have been notified, which isn't true.
Maybe the link bank button should be disabled if there is no server configured?
@MatissJanis commented on GitHub (Mar 9, 2023):
[RESOLVED]
Bug:
Using it in fly.io doesn't seem to work. After confirming the Nordigen integration in my bank I was redirected to this page:
Update: bank-link worked in the end. One of the tabs was in my budget page. The other was in
/nordigen/link?ref=...and was showing the above error for some reason.Still need to figure out why.. and what can be done to fix this. But at least we're not fully blocked on setting bank-sync up.
@MatissJanis commented on GitHub (Mar 9, 2023):
[RESOLVED]
@rich-howell thanks!
We have this bullet for the issue:
@MatissJanis commented on GitHub (Mar 9, 2023):
----------- v23.3.0 --------------
@zr40 commented on GitHub (Mar 10, 2023):
Linking with Nordigen succeeds, but retrieving transactions fails with Nordigen returning a 400 Bad Request status. According to the logs, Actual requests the following:
/api/v2/accounts/.../transactions/?date_from=2024-01-28&date_to=2023-03-10. Note thatdate_fromis far in the future.Presumably this is caused by me having pre-entered transactions with a future date. 2024-01-28 is the date of the second most distant future transaction I've pre-entered.
@DistroByte commented on GitHub (Mar 11, 2023):
[RESOLVED]
also occurred for me, running my own sync instance. Account was linked, but threw error
@DistroByte commented on GitHub (Mar 11, 2023):
UI related issue, linked status indicator overlaps with currently active account

@DistroByte commented on GitHub (Mar 11, 2023):
[RESOLVED]
Certain accounts seem to work better than others, possibly a difference in how nordigen handles accounts.
One such error is this:

I looked for logs, no joy
@j-f1 commented on GitHub (Mar 11, 2023):
Is there any information in your browser’s console?
@DistroByte commented on GitHub (Mar 11, 2023):
[RESOLVED]
There is!
I forgot about checking the browser window 😅
When I initially add the accout this is the error
@DistroByte commented on GitHub (Mar 11, 2023):
After refreshing the page, the sync account button appears, and pressing it causes the same error to appear. I can try and paste it here for you but a cursory glance and my knowledge of js makes me thing it will be useless.
@Jackenmen commented on GitHub (Mar 11, 2023):
[RESOLVED]

Bug:
It's impossible to tell the difference between multiple accounts with different currencies when they share the same IBAN:
I'm not sure if the solution here should be to create a custom integration for Revolut or if this is not specific to Revolut and it may make sense to include the currency in the drop-down list.
Just to note, I checked the server logs to see the difference between the accounts and the only difference that is meaningful to a user is the currency (the other differences are
resourceId,id, andcreatedfields which wouldn't help the user to select the proper account).@Jackenmen commented on GitHub (Mar 11, 2023):
[RESOLVED]
Bug:
Transactions for
-0.00(common when the merchant tries to verify the card) do not properly import the Payee - Actual tries to usedebtorNamerather thancreditorName:0bae379c17/packages/loot-core/src/server/accounts/sync.js (L315-L349)Example transaction (I changed dates and IDs for privacy reasons):
Additionally, I think that the Payee and Notes logic should probably also try to use
remittanceInformationUnstructuredArraywhen theremittanceInformationUnstructuredfield isn't present.@Jackenmen commented on GitHub (Mar 11, 2023):
[RESOLVED]
Bug:
PayPal transactions cannot be imported due to an internal error in devtools console:
This appears to be caused by Actual only trying to use
valueDate(which, in general, does actually make more sense) while PayPal only providesbookingDate. I'm not sure if it generally makes sense to fall back tobookingDatewhenvalueDateis present or if this should be a PayPal-specific fix.Example transactions (I changed dates, IDs, and amounts for privacy reasons):
@Jackenmen commented on GitHub (Mar 11, 2023):
Bug:

When syncing all accounts (from the all accounts page), some accounts become bolded even though no new transactions or other changes to the balance were made (the image shows an example for sync that hasn't changed any of the 4 accounts that I linked but bolded Revolut and Nest Bank while it didn't bold either of ING Bank accounts):
(Balances were removed from the image for privacy reasons)
I'm not sure how the bold status is determined after sync so I can't really provide more useful information.
@Potjoe-97 commented on GitHub (Mar 12, 2023):
Some banks only show
bookingDate, and never providevalueDate. It could explain why @DistroByte and myself are having the same error "date is required when adding transactions". From docker log, I can seevalueDateis never provided.@j-f1 commented on GitHub (Mar 13, 2023):
In Safari, the attempt to open the page for linking the bank trips the popup blocker. This might be due to the
create-web-tokenrequest taking too long maybe? Either way we should add a prompt to “Waiting on Nordigen…” with options to reopen the link (synchronously) and/or check the browser UI for blocked popups.@Jackenmen commented on GitHub (Mar 13, 2023):
I think that 429 part of this issue should be moved to launch-blocking issues as not following rate limits is rather serious and is generally considered being a bad API user. It's probably unlikely that an individual user would run into these enough to be suspended for it (unless they spam the sync button for long time) but it still seems important to fix this. I think that ideally, rate limit being depleted would be tracked per account to avoid repeatedly running into 429s during sync request within the same day when it's already clear that the request can't succeed until the next day.
This documentation is quite informative: https://nordigen.zendesk.com/hc/en-gb/articles/6761006738717-Bank-API-Rate-Limits
@MatissJanis commented on GitHub (Mar 13, 2023):
----------- v23.3.2 --------------
@MatissJanis commented on GitHub (Mar 13, 2023):
Feature (kinda):
We need to add a very visible warning that by connecting your Actual account to Nordigen - Nordigen (a 3rd party) will get access to READ all your bank transactions.
@MatissJanis commented on GitHub (Mar 13, 2023):
[WONTFIX]
Bug:
remittanceInformationUnstructuredis used in the notes field. However, by default it's not an empty string. It's-value. So all notes fields get the "-" value which is a bit annoying.Fix: we should remove the default
-value fromremittanceInformationUnstructured(and the array equivalent)@Jackenmen commented on GitHub (Mar 13, 2023):
Are you sure this isn't bank-specific? I can't really test for this since all of the transactions returned by my banks seem to always have some value in there and I have yet to encounter a transaction with
"-"/["-"]or""/[]@MatissJanis commented on GitHub (Mar 13, 2023):
Interesting.. if this is bank-specific, then I'll just close this as a wont-fix as it can also be solved by creating a rule that removes these notes.
@MatissJanis commented on GitHub (Mar 13, 2023):
FYI:
This is how a transfer transaction looks like in Nordigen. Given this - it might not be possible to create a feature that automatically recognises transfers.
However: a workaround is possible. You can create a rule that matches the transaction name and then changes the payee to a transfer. That seems to be working for me.
@Jackenmen commented on GitHub (Mar 14, 2023):
It actually depends on the bank - some banks provide
creditor/debtorAccountfield while others don't. Sadly it doesn't appear to be consistent with Nordigen's spreadsheet though as out of 3 banks I can test from this list (ING, Nest Bank Private, Revolut) that supposedly provide it, only one actually does (though with Revolut its hard to tell since I don't make regular transfer to IBANs with it) - ING. It seems to provide these two fields for all transactions and these fields are in one of two formats:{"iban": "PLxxxxxxxxxxxxxxxxcxxxxxxxxx"}{"bban": "xxxxxxxx-xxxxxxx/xxxxx"}The second format always has the exact same bban number which I imagine is due to these being card transactions.
@ppmt commented on GitHub (Mar 14, 2023):
I have a Starling account and for the second time I noticed that the imported transaction gets the wrong payee field...
The Payee in Actual is filled in with the remittanceInformationUnstructured field rather than the creditorName field.
In the log from my browser I can see that both field are correctly populated by nordringen with the correct payee and information.
Let me know if you need more info as I am not sure what to provide.
Edit:
The amount being paid is a positive amount (a deposit) and here is a copy of the modified message received in the browser.
1 Object { transactionId: "yyyyyyy", bookingDate: "2023-03-13", valueDate: "2023-03-13", … }
transactionId "yyyyyy"
bookingDate "2023-03-13"
valueDate "2023-03-13"
bookingDateTime "2023-03-13T08:10:42Z"
valueDateTime "2023-03-13T08:10:42Z"
transactionAmount Object { amount: "17.00", currency: "GBP" }
creditorName "MR........"
remittanceInformationUnstructured "5 ......"
proprietaryBankTransactionCode "FASTER_PAYMENTS_IN"
internalTransactionId "zzzzzzz"
@TheiLLeniumStudios commented on GitHub (Mar 14, 2023):
Happens with using Wise sync
@Jackenmen commented on GitHub (Mar 14, 2023):
@TheiLLeniumStudios are you using an up-to-date version of Actual? There was a problem such as this one reported previously and fixed in release v23.3.2:
https://github.com/actualbudget/actual/issues/724#issuecomment-1464914546
If you are sure that you are using an up-to-date version of Actual, you should check server logs for the raw transaction data and post it here, after potentially stripping it from any private information you don't want to share.
@TheiLLeniumStudios commented on GitHub (Mar 14, 2023):
@Jackenmen I am using v23.3.2. Here's what it looks like:
@waseem-h commented on GitHub (Mar 14, 2023):
@Jackenmen this fixes the above issue https://github.com/actualbudget/actual/pull/754
@Jackenmen commented on GitHub (Mar 15, 2023):
@ppmt I asked Nordigen support about this and based on the latest response, it seems that you should expect this to get fixed upstream, hopefully in near future:

@ppmt commented on GitHub (Mar 15, 2023):
Great news!
Thanks a lot for your help @Jackenmen
Will report when I see that it has been fixed!
@Kidglove57 commented on GitHub (Mar 16, 2023):
When choosing an "Actual Bank Account" in the Link Accounts screen, it is not currently possible to scroll the list. On a small screen, my list of accounts will not fit and I had to zoom out to select the correct account match. A small thing but scrolling would be a nice UI improvement.
@leikoilja commented on GitHub (Mar 16, 2023):
Can't seem to configure actual to use nordigen integration.
My first local actualbudget spin-up:
v23.3.2(via docker)v23.3.2(viayarn start:browser)config.jsonin the root of the server (next topackage.json) asidandkeyas env variablesregardless, i keep getting hit by the same

Do i miss smth obvious in my setup? 😅
Solved:
Not sure why
config.jsonis not loaded and picked up by docker container, but realised that since I am usingdockeri need to explore the env to the container. So on the server,docker-composeaddingfixed it for me
@DistroByte commented on GitHub (Mar 16, 2023):
Enable the flag in
Settings, it's an experimental feature. See step 6 in original message in this issue@leikoilja commented on GitHub (Mar 16, 2023):
Thanks @DistroByte.
Sorry, forgot to mention - "sync accounts" flag is enabled
@Jackenmen commented on GitHub (Mar 16, 2023):
@leikoilja did you actually restart the server after changing the configuration and/or env vars so it can start using it? In case of env vars you need to also make sure that the server is started in a context where those env vars set.
BTW, this is more of an issue for sending feedback about the feature than for support - I think it would be better to continue this conversation on Actual's Discord.
@leikoilja commented on GitHub (Mar 16, 2023):
@Jackenmen, thanks, figured out that i needed to expose env variable to the docker container (updated my message above).
Initially, thought the issue was related to the integration itself, but you re right, it's not the best place for it. (@MatissJanis, feel free to clean it up if you think it's unrelated)
@leikoilja commented on GitHub (Mar 16, 2023):
Awesome, now that it works, i have been able to add 3 different Swedish banks (7 accounts) with nearly no problem, thank you, gents!
Some minor UI feedback:
Real:
https://user-images.githubusercontent.com/10655107/225623487-a6562bb9-13f1-441f-a180-5fe04d19f3a8.jpeg
Actual:

Edit: new separate issue ticket for point 2:
https://github.com/actualbudget/actual/issues/761
@Jackenmen commented on GitHub (Mar 16, 2023):
You can find information about that here: https://github.com/actualbudget/actual-server/tree/master/src/app-nordigen
You might also want to consider posting example transactions from server logs here as maybe there's something that can be improved in the default integration to accommodate it.
Same as for point 2, posting example transactions from logs would allow us to figure out whether custom integration is needed or if the default one just needs to be improved.
@MatissJanis commented on GitHub (Mar 18, 2023):
Feature:
Ability to configure Nordigen secrets from the UI instead of via env vars/config file. A lot of people are struggling to do this with the config file.. we should provide an easier way to set-up Nordigen credentials.
@jordyarm commented on GitHub (Mar 29, 2023):
Bug:
It would appear that you cannot sync a linked account with an account that has no records. This stumped me when I was adding my linked accounts, but managed to overcome by adding a single transaction manually and then syncing where the sync processed correctly.
@Jackenmen commented on GitHub (Mar 31, 2023):
Bug:
It seems that transactions are imported in an incorrect order when it comes to transactions that happen on the same day. I've been seeing this problem with one of the banks that have a dedicated integration (
ing-pl-ingbplpw) so it's not related tosortTransactionsnot sorting properly due to not knowing about how the bank's data looks.Based on all existing integrations,
sortTransactionsis supposed to return transactions in the order from newest to oldest and that's in fact what happens. However once the client receives it, it doesn't add those transactions in the proper order.At first, I thought it was in the exact reverse order which would make some amount of sense since the client does NOT iterate on those transactions in reverse order, therefore probably adding the transactions from newest to oldest. However, when I tried syncing more than once (deleting transactions after each sync to try reproducing), I managed to get 2 different transaction orders:
Neither of these is the proper order which is what the
sortTransactions(and the endpoint) returns:I can also reproduce this on the "DEMO bank (used for testing bank-sync)":
For the above reproduction, the endpoint returns transactions in this order:
But Actual showed them to me in this order (note that it's not consistent since it probably depends on some race or some other criteria that DB decides the order):
In the case of DEMO bank, all of the transactions ended up with the same value of
sort_orderfield which suggests that they were all added at the same time and the database just orders it however it wants to. However, in the case of my bank, the transactions ended up with differentsort_ordervalues (at least in the case where they showed in the reverse order; sadly I didn't export the account when I saw them in random order).@MatissJanis commented on GitHub (Apr 6, 2023):
---------- v23.4.0 ----------
@rich-howell commented on GitHub (Apr 7, 2023):
Today I decided to give the Bank Sync a try. I use Starling Bank in the UK, my configuration is like this
Main Bank Account
Savings Pot
House Deposit Pot
Children's Kite Card
The pot & kite card are basically sub folders of my main bank account but inside Starling they are handled in such a way that the money is seperate.
The Kite card is different again, this is a children's card where I load money into the "space" and my daughter can spend using her own card.
The above is important. Please bare with me.
When I hooked up my Starling account today Nordigen bought all of them pots and kite cards over as one and plonked it all into the account I was syncing in Actual, this isn't how I use Actual, each pot has it's own account as that is how I use the pots within Starling.
Luckily I had a backup from a few days back but the entire budget was a write off after the import as there was all sorts of things imported that had nothing to do with that account context.
@MatissJanis commented on GitHub (Apr 7, 2023):
@rich-howell that sounds like a Nordigen bug. Would you mind sending them a support ticket/email? Sound like they are not handling accounts correctly for this bank.
I use N26 in a somewhat similar fashion: one main account and many smaller "savings" accounts. When I imported N26 - each individual account imported as it's own thing. Which is how it should work for your bank too.
@rich-howell commented on GitHub (Apr 14, 2023):
Opened a ticket, Nordigen contacted Starling, the open banking API they have doesn't support pots as separate accounts.
Which basically means, bank sync is useless from that bank when using their features 😒
@ppmt commented on GitHub (Apr 14, 2023):
I know it is not a solution but I am with Starling and I created non budgeted account for my spaces. I then create the transfer manually or using schedule.
So far it seems to work well for me. But it is true that as far as Nordigen is concerned the balance of my account includes the spaces.
@MatissJanis commented on GitHub (Apr 23, 2023):
@jordyarm would you mind testing this in the newest version of Actual (v23.4.2)? I think this has been fixed as I'm no longer able to reproduce it.
If it still is breaking for you: could you provide a bit more detailed instructions? I.e. - step by step guide on what you're doing. Including the name of the bank you're using.
That would really help! Thanks!
@kamsz commented on GitHub (Apr 27, 2023):
Any chance of incorporating a multiplier feature to Nordigen as well?
@Meganitrospeed commented on GitHub (Apr 29, 2023):
Im having a small issues with Bizum transactions not being added to Actual, they appears on the logs though, so not sure why its not adding them.
New to Actual, how can I debug that a bit?
@MatissJanis commented on GitHub (Apr 30, 2023):
Re: incorrect ordering of synced transactions
I looked into this more. Here's an explanation of the current state.
TLDR: sort by
date.In the frontend we have a transaction ledger. It's basically a table with a few columns. One of those columns is
date. We use this column for sorting transactions. If multiple transactions have the same date - we fall back to a secondary "sorter". The secondary sorter sorts by insertion date.For example: if there are 3x transactions with the date
02-02-2023, then they will be sorted accordion to their insertion date/time with the last inserted transaction on top. After these 3x transactions you get other, older transactions. For example:01-01-2023. These transactions will appear at the bottom of the transaction table even if they were inserted last.Now lets talk about
actual-server. We pull in bank-sync transactions from there in the correct order. However, they have only the booked/value dates. For example:03-03-2023. They do not have the TIME for each transaction. Nordigen does not provide this.So when we get these transactions in the frontend, we insert them in the ledger according to the dates we get from Nordigen.
But lets say there are 5x transactions. All with the date
03-03-2023. Initially we will insert them and things might be looking good. But then - for whatever reason - you decide to delete the 2nd transaction. And after a while - you decide to re-sync. Now you will still have the same 5x transactions, but the order will be messed. This is because the deleted transaction was re-added back, but it was inserted at the top of the ledger.--
So that's the state we are currently in. If we could get the transaction date+time from Nordigen (
03-03-2023T12:34:11.000Z), then the problem would get auto-solved. But we can't get that sadly.The other potential solution would be to add another field to the transaction ledger - the
transaction_index- which we might set only for imported transactions. But things get really complex with this solution..--
Given all of the additional complexity it would take to implement a solution for this and the very little real benefit we get from it - I'm moving this from "necessary" to "nice-to-have".
If anyone wants to implement a solution for this - go ahead. But this won't be blocking the full release of Nordigen.
Sorry for the long post 😅
@MatissJanis commented on GitHub (May 4, 2023):
------ v23.5.0 ------
@SplinterHead commented on GitHub (May 19, 2023):
Feature Request: Allow me to choose how far back to pull transactions
A lot of Nordigen accounts allow 90 days of history, some 2 years. This would allow me to get set up with some historical budgeting information for past complete months
@GitTimeraider commented on GitHub (May 22, 2023):
The Nordigen sync didnt do anything for 2-3 days and then threw when it worked again this morning it threw all transactions done over the last few days on the date of today instead of on the date of transactions.

@ppmt commented on GitHub (May 22, 2023):
Pending transaction are not reported so won't appear in the app. Also I noticed that at the week-end some bank simply don't process transaction (especially if it is a credit card transaction).
I guess even computers need to rest :)
@GitTimeraider commented on GitHub (May 22, 2023):
Honestly didnt even think about it like that.
Simply assumed that the way it shows in the bank app is also the way its processed in the back but it sort of makes sense (a lot of western countries atm just getting spiled by everything being available 24/7 and being processed in a few secs :P ).
Ill just assume during the weekend nothing is getting processed so it wont surprise me anymore :D
I can at least live with it.
@dan-r commented on GitHub (Jun 2, 2023):
Just tested this today and the balance reporting is a bit quirky with me for my credit card (UK - Nationwide Building Society).
The balance shown in Actual is positive (the amount remaining of my credit limit), which erroneously shows the credit card with a positive balance rather than a negative.
Looking at the nordigen json, there are two balances, but its not using the right one. Not sure how this translates to other credit card providers...?
Maybe its worth taking the lowest balance to be conservative?
@MatissJanis commented on GitHub (Jun 4, 2023):
------- v23.6.0 -------
@Inrego commented on GitHub (Jun 5, 2023):
Been using this for a few weeks now. One of my banks are not working properly (Bank Norwegian). What I experience:
Transactions aren't added until the 1st of the next month. Then all transactions are added with the 1st of that month as the date.
Except for pending transactions, they're added right away with the correct date.
What I see looking at the data:
bookingDateis the 1st of next month (the date that's being used in Actual), whilevalueDateis showing the correct date for the transaction.Pending transactions show up with only
valueDate, and that's why they seem to be imported correctly (after the fix related to paypal here: https://github.com/actualbudget/actual/issues/724#issuecomment-1464914546)So for this account, I would like to exclusively use
valueDate.However, the above doesn't explain why the transactions aren't showing up until the 1st.
Is there a way I can manually test the api calls to Nordigen and see the results, so I can poke around to find the cause?
I've checked the logs of Actual, and I do no see any transactions from this month logged there (except for the pending one). So I'm guessing maybe some parameters sent to Nordigen are causing the transactions to be filtered out?
@Inrego commented on GitHub (Jun 5, 2023):
And another question: When adding the bank integrations, I was unable to choose Account Type for the accounts created (or to mark it as off-budget). So my savings account is currently included in the budget, which is not desirable. What is the recommeded procedure here? I tried creating the account first, and then linking after. But that gave me other problems. I don't remember exactly what, but I think it was something along the lines that not all transactions were imported, and/or starting balance was not set automatically.
@Jackenmen commented on GitHub (Jun 5, 2023):
Nordigen has a dashboard where you can connect your bank account and download a file with transactions. If the data quality is bad, you should consider contacting Nordigen support (also available through dashboard), they respond pretty quickly and can take further actions with your bank.
@Inrego commented on GitHub (Jun 5, 2023):
Thanks. That helped in further finding the cause for my issues. The problem is that
valueDateis being set to the 1st of next month. And this is the first choice of field that Actual is looking for when determining date. I assume that transactions withvalueDatein the future are being filtered off, which is why they're only being added on the 1st.The api returns them just fine.
Here's an example of a transaction, which is not being imported into Actual:
May I suggest being able to override whether
bookingDateorvalueDateshould be used for a given account (unless usingbookingDateinstead is the most sensible choice in all cases)?@Jackenmen commented on GitHub (Jun 5, 2023):
I would suggest contacting Nordigen about it, to my knowledge (and based on transaction data I've encountered) bookingDate should not be set to a date before valueDate.
@dan-r commented on GitHub (Jun 5, 2023):
Before I contact nordigen, can anyone share what the convention should be on a credit card for interimAvailable and closingAvailable to get the correct (negative) account balance into Actual? I've only got a card with one provider so have no comparison :)
@Inrego commented on GitHub (Jun 5, 2023):
I think you're right. I found this article which clearly explains what the values should be:
https://nordigen.zendesk.com/hc/en-gb/articles/7899367372829?input_string=bookingdate+and+val
I've submitted a ticket to Nordigen.
@Inrego commented on GitHub (Jun 5, 2023):
While we're at it. A feature request:
Being able to use
additionalInformationin rules. I'm not sure if it holds true for banks across the world, but where I'm from, it generally contain information about what category a store is (Supermarket, Restaurant etc).Being able to use it in rules would help greatly in automatically tagging the correct categories for most of payment card transactions.
@FlorianFritz commented on GitHub (Jun 7, 2023):
Hi, I'm unsure if I shoud open a new issue, but this might be interesting here as well: In March I got an email from Nordigen that they have been acquired by GoCardless Ltd. Yesterday they announced that the Nordigen service is now called 'GoCardless Bank Account Data' and that it is accessible here: bankaccountdata.gocardless.com
Therefore the API endpoint has changed to: https://bankaccountdata.gocardless.com/api/v2 and should be updated in your codebase.
See documentaion on the gocardless site:
@j-f1 commented on GitHub (Jun 8, 2023):
If you have not yet set up your Nordigen ID/key, clicking on “Link account” reports that “Nordigen integration has not been configured so linking accounts is not available. Learn more.” There is no way to set up the integration.
@MatissJanis commented on GitHub (Jun 10, 2023):
FYI: https://github.com/nordigen/nordigen-node/issues/49
@MatissJanis commented on GitHub (Jun 20, 2023):
Nordigen will be released as a stable feature in v23.7.0.
If there are any subsequent bug reports or feature requests that have not yet been addressed - please open a new issue.
Big thanks to everyone involved in bringing this feature to Actual!