[Feedback] Nordigen bank-sync #286

Closed
opened 2026-02-28 18:55:53 -06:00 by GiteaMirror · 82 comments
Owner

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

  1. Install the latest master branch for actual and actual-server or v23.5.0
  2. Launch actual-server: yarn start
  3. Launch actual: yarn start:browser
  4. Open the frontend (http://localhost:3001) and set the server to the running local backend (http://localhost:5006).
  5. Once logged in, go to settings → advanced → experimental features. Read the message and click “I understand.”
  6. Enable the Bank sync experimental feature
  7. Create a new Actual account and link your bank
  8. when prompted to set-up API keys - register to Nordigen and get them from there

Priority 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 - @fstybel
  • actual-server: meaningful "default" bank integration: see more here - @MatissJanis
  • actual-server: create a new endpoint that provides a list of the available banks; use this list in the frontend - @MatissJanis
  • docs: we need documentation about how to set-up banksync - how to get the Nordigen keys etc. - @tjfinlinson
  • actual: nitpicks in "link you account" modal: here - @MatissJanis
  • actual: 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
  • actual: show expiration banner if bank-sync will soon expire: here - 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 account
  • actual: 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)
  • actual-server: (tech debt) do not initialise the Nordigen class if the secrets have not been set: here - 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 factor
  • actual-server: (bug) missing /nordigen/link page: here - @MatissJanis
  • actual-server: add currency to account names: here - @MatissJanis
  • actual-server: fallback to bookingDate if valueDate is not set: here - @MatissJanis
  • actual: (bug) negative zero values: here - @Jackenmen
  • actual: 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) missing valueDate when syncing: here - @waseem-h
  • actual-server: ability to set-up Nordigen credentials via the UI: here - [Feature] Allow to exclude selected imported accounts from accounting (#968)
  • actual: (bug) unable to sync account with no transactions: here - not reproducable

Other issues

  • actual: improve error handling: here
  • actual-server: transactions with future date: here
  • actual: accounts with no changes get bolded in the UI: here
  • actual-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
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 1. Install the latest `master` branch for `actual` and `actual-server` or `v23.5.0` 2. Launch `actual-server`: `yarn start` 3. Launch `actual`: `yarn start:browser` 4. Open the frontend (http://localhost:3001) and set the server to the running local backend (http://localhost:5006). 5. Once logged in, go to settings → advanced → experimental features. Read the message and click “I understand.” 6. Enable the Bank sync experimental feature 7. Create a new Actual account and link your bank 8. when prompted to set-up API keys - register to [Nordigen](https://nordigen.com) and get them from there ## Priority issues (we will launch Nordigen as an experimental feature; this list contains issues blocking the full first-party feature launch of the feature) - [x] `actual-server`: (bug) Nordigen access token expiring after 24h: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1458378107) - @fstybel - [x] `actual-server`: meaningful "default" bank integration: see more [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1454797300) - @MatissJanis - [x] `actual-server`: create a new endpoint that provides a list of the available banks; use this list in the frontend - @MatissJanis - [x] `docs`: we need documentation about how to set-up banksync - how to get the Nordigen keys etc. - @tjfinlinson - [x] `actual`: nitpicks in "link you account" modal: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1454670886) - @MatissJanis - [x] `actual`: lack of visual hierarchy in "link accounts" modal: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1454670886) - @MatissJanis #792 - [x] `actual`: "pending" transactions not appearing in transaction table: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1455094840) - #919 - [x] `actual` (bug): creating linked accounts for non-server installs should not work: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1455160250) - @MatissJanis - [ ] ~`actual`: show expiration banner if bank-sync will soon expire: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1458166066)~ - 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 account - [x] `actual`: allow to easily re-link accounts that have bank-sync expired: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1458166066) - #1133 - [ ] ~`actual-server`: (tech debt) do not initialise the Nordigen class if the secrets have not been set: [here](https://github.com/actualbudget/actual-server/pull/155#discussion_r1131620392)~ - 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 factor - [x] `actual-server`: (bug) missing `/nordigen/link` page: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1462853590) - @MatissJanis - [x] `actual-server`: add currency to account names: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1464902166) - @MatissJanis - [x] `actual-server`: fallback to `bookingDate` if `valueDate` is not set: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1464914546) - @MatissJanis - [x] `actual`: (bug) negative zero values: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1464907064) - @Jackenmen - [x] `actual`: popup blockers: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1465501335) - #950 - [x] `actual`: add warning about bank-sync privacy implications: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1466924099) - @MatissJanis #801 - [x] `actual`: (bug) missing `valueDate` when syncing: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1468453526) - @waseem-h - [x] `actual-server`: ability to set-up Nordigen credentials via the UI: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1474879934) - #968 - [ ] ~`actual`: (bug) unable to sync account with no transactions: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1489271870)~ - not reproducable ## Other issues - [ ] `actual`: improve error handling: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1455595011) - [ ] `actual-server`: transactions with future date: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1464551960) - [ ] `actual`: accounts with no changes get bolded in the UI: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1464955406) - [ ] `actual-server`: transfers between accounts get imported incorrectly (as transactions instead of real transfers): [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1467035111) (might not be possible to do) - [ ] `actual`/`actual-server`: (bug) incorrectly sorted transactions: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1491152491) - [explanation why this will be very complex to solve](https://github.com/actualbudget/actual/issues/724#issuecomment-1529144125)
GiteaMirror added the bank syncuser interfacefeedback labels 2026-02-28 18:55:53 -06:00
Author
Owner

@MatissJanis commented on GitHub (Mar 4, 2023):

[RESOLVED]

Some design feedback

  1. "Link your account" modal - done
    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
    Screenshot 2023-03-04 at 09 00 24
  2. "Link accounts"

2.1. the modal is lacking in visual hierarchy; possibly use a table there?
2.2. account for long account names

Screenshot 2023-03-04 at 09 04 49
@MatissJanis commented on GitHub (Mar 4, 2023): **[RESOLVED]** Some design feedback 1. "Link your account" modal - **done** 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 <img width="571" alt="Screenshot 2023-03-04 at 09 00 24" src="https://user-images.githubusercontent.com/886567/222886883-cef05598-b561-438a-970d-e37ebd28700b.png"> 2. "Link accounts" 2.1. the modal is lacking in visual hierarchy; possibly use a table there? 2.2. account for long account names <img width="595" alt="Screenshot 2023-03-04 at 09 04 49" src="https://user-images.githubusercontent.com/886567/222887521-c31911ee-5d89-46a2-ac7e-bdb22fc48b7c.png">
Author
Owner

@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 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.
Author
Owner

@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): 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".
Author
Owner

@MatissJanis commented on GitHub (Mar 5, 2023):

[RESOLVED]

Bug: creating linked accounts should only be available if actual-server is being used. For local-only installs we should not show the "link accounts" option as it will not work disable the account linking button, but link to the docs.

@MatissJanis commented on GitHub (Mar 5, 2023): **[RESOLVED]** Bug: creating linked accounts should only be available if `actual-server` is being used. For local-only installs we should ~not show the "link accounts" option as it will not work~ disable the account linking button, but link to the docs.
Author
Owner

@j-f1 commented on GitHub (Mar 5, 2023):

[RESOLVED]

Bug: creating linked accounts should only be available if actual-server is being used. For local-only installs we should not show the "link accounts" option as it will not work.

IMO we should show the button as disabled and link to docs (just like we do with e2ee)

@j-f1 commented on GitHub (Mar 5, 2023): **[RESOLVED]** > Bug: creating linked accounts should only be available if actual-server is being used. For local-only installs we should not show the "link accounts" option as it will not work. IMO we should show the button as disabled and link to docs (just like we do with e2ee)
Author
Owner

@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): 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.
Author
Owner

@fstybel commented on GitHub (Mar 5, 2023):

Feature:
Display information when the requisition for the account will expire.

@fstybel commented on GitHub (Mar 5, 2023): Feature: Display information when the requisition for the account will expire.
Author
Owner

@fstybel commented on GitHub (Mar 6, 2023):

Bug:
Error handling is not sufficient.
For example:

  • sometimes Institution service is not available and Nordigen API returns a 503 error but it's presented as Internal Error in the UI
  • each institution has a limit of requests per day. When we exceed it then Nordigen API returns the 429 error but on the UI it presented as InternalError
@fstybel commented on GitHub (Mar 6, 2023): Bug: Error handling is not sufficient. For example: - sometimes Institution service is not available and Nordigen API returns a 503 error but it's presented as Internal Error in the UI - each institution has a limit of requests per day. When we exceed it then Nordigen API returns the 429 error but on the UI it presented as InternalError
Author
Owner

@MatissJanis commented on GitHub (Mar 6, 2023):

Feature: Display information when the requisition for the account will expire.

Could you please expand on this one?

@MatissJanis commented on GitHub (Mar 6, 2023): > Feature: Display information when the requisition for the account will expire. Could you please expand on this one?
Author
Owner

@fstybel commented on GitHub (Mar 7, 2023):

Feature: Display information when the requisition for the account will expire.

Could you please expand on this one?

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 1 as 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): > > Feature: Display information when the requisition for the account will expire. > > Could you please expand on this one? When we add an account from your bank to Actual we create the [Requisition/Agreements](https://nordigen.com/en/docs/account-information/integration/parameters-and-responses/#/agreements/retrieve%20EUA%20by%20id%20v2) 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 `1` as a value for [accessValidForDays in create-web-token request](https://github.com/actualbudget/actual-server/blob/fa0c91b22c7c3e66ec2f5cc0461520ed6b3ceba8/src/app-nordigen/app-nordigen.js#L30). And try to sync account next day (after 24h)
Author
Owner

@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.

@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.
Author
Owner

@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.

image

Maybe the link bank button should be disabled if there is no server configured?

@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. ![image](https://user-images.githubusercontent.com/22135084/223570139-6d639daa-babc-4213-a633-1d9373e708ba.png) Maybe the link bank button should be disabled if there is no server configured?
Author
Owner

@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:

Screenshot 2023-03-09 at 21 31 53

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]** 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: <img width="341" alt="Screenshot 2023-03-09 at 21 31 53" src="https://user-images.githubusercontent.com/886567/224164578-430af781-35c4-4f94-ba98-3c9e52d9764b.png"> 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.
Author
Owner

@MatissJanis commented on GitHub (Mar 9, 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.

image

Maybe the link bank button should be disabled if there is no server configured?

@rich-howell thanks!

We have this bullet for the issue:

  • actual (bug): creating linked accounts for non-server installs should not work
@MatissJanis commented on GitHub (Mar 9, 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. > > ![image](https://user-images.githubusercontent.com/22135084/223570139-6d639daa-babc-4213-a633-1d9373e708ba.png) > > Maybe the link bank button should be disabled if there is no server configured? @rich-howell thanks! We have this bullet for the issue: - actual (bug): creating linked accounts for non-server installs should not work
Author
Owner

@MatissJanis commented on GitHub (Mar 9, 2023):

----------- v23.3.0 --------------

@MatissJanis commented on GitHub (Mar 9, 2023): ----------- v23.3.0 --------------
Author
Owner

@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 that date_from is 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.

@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 that `date_from` is 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.
Author
Owner

@DistroByte commented on GitHub (Mar 11, 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.
image
Maybe the link bank button should be disabled if there is no server configured?

@rich-howell thanks!

We have this bullet for the issue:

* actual (bug): creating linked accounts for non-server installs should not work

also occurred for me, running my own sync instance. Account was linked, but threw error

@DistroByte commented on GitHub (Mar 11, 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. > > ![image](https://user-images.githubusercontent.com/22135084/223570139-6d639daa-babc-4213-a633-1d9373e708ba.png) > > Maybe the link bank button should be disabled if there is no server configured? > > @rich-howell thanks! > > We have this bullet for the issue: > > * actual (bug): creating linked accounts for non-server installs should not work also occurred for me, running my own sync instance. Account was linked, but threw error
Author
Owner

@DistroByte commented on GitHub (Mar 11, 2023):

UI related issue, linked status indicator overlaps with currently active account
image

@DistroByte commented on GitHub (Mar 11, 2023): UI related issue, linked status indicator overlaps with currently active account ![image](https://user-images.githubusercontent.com/58866873/224462613-d1b78288-6006-436b-8d3f-c95e0586d80e.png)
Author
Owner

@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:
image

I looked for logs, no joy

image

@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: ![image](https://user-images.githubusercontent.com/58866873/224464914-11459e81-8728-4a57-a819-9a22a273c105.png) I looked for logs, no joy ![image](https://user-images.githubusercontent.com/58866873/224464903-26704fe8-c74d-468c-9fb9-0e9f29caf3f6.png)
Author
Owner

@j-f1 commented on GitHub (Mar 11, 2023):

Is there any information in your browser’s console?

@j-f1 commented on GitHub (Mar 11, 2023): Is there any information in your browser’s console?
Author
Owner

@DistroByte commented on GitHub (Mar 11, 2023):

[RESOLVED]

There is!

image

I forgot about checking the browser window 😅

When I initially add the accout this is the error

@DistroByte commented on GitHub (Mar 11, 2023): **[RESOLVED]** There is! ![image](https://user-images.githubusercontent.com/58866873/224465544-2ac191e0-3a65-4654-98fd-d1d719bd38dd.png) I forgot about checking the browser window 😅 When I initially add the accout this is the error
Author
Owner

@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.

@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.
Author
Owner

@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:
image

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, and created fields which wouldn't help the user to select the proper account).

@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: ![image](https://user-images.githubusercontent.com/6032823/224484442-ef48bab7-b524-4bd2-b97a-1f2210cce5c3.png) 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`, and `created` fields which wouldn't help the user to select the proper account).
Author
Owner

@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 use debtorName rather than creditorName:
0bae379c17/packages/loot-core/src/server/accounts/sync.js (L315-L349)

Example transaction (I changed dates and IDs for privacy reasons):

{
    "transactionId": "8ae8eec6-565b-e854-cf6b-c6759028107d",
    "bookingDate": "2023-03-11",
    "valueDate": "2023-03-11",
    "bookingDateTime": "2023-03-11T13:54:07.123456Z",
    "valueDateTime": "2023-03-11T13:54:07.300108Z",
    "transactionAmount":
    {
        "amount": "-0.00",
        "currency": "PLN"
    },
    "creditorName": "Paypal",
    "remittanceInformationUnstructuredArray":
    [
        "Paypal"
    ],
    "proprietaryBankTransactionCode": "CARD_PAYMENT",
    "internalTransactionId": "a64d3c736cb6aef7c879da860181c419"
}

Additionally, I think that the Payee and Notes logic should probably also try to use remittanceInformationUnstructuredArray when the remittanceInformationUnstructured field isn't present.

@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 use `debtorName` rather than `creditorName`: https://github.com/actualbudget/actual/blob/0bae379c17cdfe997ab30a33f78ea2a42315e859/packages/loot-core/src/server/accounts/sync.js#L315-L349 Example transaction (I changed dates and IDs for privacy reasons): ```json { "transactionId": "8ae8eec6-565b-e854-cf6b-c6759028107d", "bookingDate": "2023-03-11", "valueDate": "2023-03-11", "bookingDateTime": "2023-03-11T13:54:07.123456Z", "valueDateTime": "2023-03-11T13:54:07.300108Z", "transactionAmount": { "amount": "-0.00", "currency": "PLN" }, "creditorName": "Paypal", "remittanceInformationUnstructuredArray": [ "Paypal" ], "proprietaryBankTransactionCode": "CARD_PAYMENT", "internalTransactionId": "a64d3c736cb6aef7c879da860181c419" } ``` Additionally, I think that the Payee and Notes logic should probably also try to use `remittanceInformationUnstructuredArray` when the `remittanceInformationUnstructured` field isn't present.
Author
Owner

@Jackenmen commented on GitHub (Mar 11, 2023):

[RESOLVED]
Bug:
PayPal transactions cannot be imported due to an internal error in devtools console:

Notifications.js:76 Internal error: Error: `date` is required when adding a transaction
    at https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:106995
    at f (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:92890)
    at Generator.<anonymous> (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:94227)
    at Generator.next (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:93253)
    at E (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:98880)
    at a (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:99083)
    at https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:99142
    at new Promise (<anonymous>)
    at https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:99023
    at Q (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:108151)

This appears to be caused by Actual only trying to use valueDate (which, in general, does actually make more sense) while PayPal only provides bookingDate. I'm not sure if it generally makes sense to fall back to bookingDate when valueDate is present or if this should be a PayPal-specific fix.

Example transactions (I changed dates, IDs, and amounts for privacy reasons):

[
    {
        "transactionId": "CJ7SSK007TVCA16XI",
        "bookingDate": "2023-03-11",
        "bookingDateTime": "2023-03-11T14:33:05.920799",
        "transactionAmount":
        {
            "amount": "-1.23",
            "currency": "PLN"
        },
        "creditorName": "[CREDITOR NAME HERE]",
        "debtorName": "Jakub Kuczys",
        "remittanceInformationUnstructured": "billing_agreement_id: B-QN38FJ8VSJ99TV4F6, invoice_number: 9682055026172410815",
        "additionalInformation": "PAYMENT",
        "internalTransactionId": "d28e4dc9c5ce980d1827c85f2b4c6e29"
    },
    {
        "transactionId": "S8RYLWLBA4QLIXUD9",
        "bookingDate": "2023-03-10",
        "bookingDateTime": "2023-03-10T14:39:59.127797",
        "transactionAmount":
        {
            "amount": "3.21",
            "currency": "USD"
        },
        "creditorName": "Jakub Kuczys",
        "debtorName": "[DEBTOR NAME HERE]",
        "additionalInformation": "PAYMENT",
        "internalTransactionId": "8675e80448ba62cfcb32379b43054c41"
    }
]
@Jackenmen commented on GitHub (Mar 11, 2023): **[RESOLVED]** Bug: PayPal transactions cannot be imported due to an internal error in devtools console: ``` Notifications.js:76 Internal error: Error: `date` is required when adding a transaction at https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:106995 at f (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:92890) at Generator.<anonymous> (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:94227) at Generator.next (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:93253) at E (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:98880) at a (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:99083) at https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:99142 at new Promise (<anonymous>) at https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:99023 at Q (https://my-url.fly.dev/kcab/kcab.worker.88611b7e16db2b62f64b.js:10:108151) ``` This appears to be caused by Actual only trying to use `valueDate` (which, in general, does actually make more sense) while PayPal only provides `bookingDate`. I'm not sure if it generally makes sense to fall back to `bookingDate` when `valueDate` is present or if this should be a PayPal-specific fix. Example transactions (I changed dates, IDs, and amounts for privacy reasons): ```json [ { "transactionId": "CJ7SSK007TVCA16XI", "bookingDate": "2023-03-11", "bookingDateTime": "2023-03-11T14:33:05.920799", "transactionAmount": { "amount": "-1.23", "currency": "PLN" }, "creditorName": "[CREDITOR NAME HERE]", "debtorName": "Jakub Kuczys", "remittanceInformationUnstructured": "billing_agreement_id: B-QN38FJ8VSJ99TV4F6, invoice_number: 9682055026172410815", "additionalInformation": "PAYMENT", "internalTransactionId": "d28e4dc9c5ce980d1827c85f2b4c6e29" }, { "transactionId": "S8RYLWLBA4QLIXUD9", "bookingDate": "2023-03-10", "bookingDateTime": "2023-03-10T14:39:59.127797", "transactionAmount": { "amount": "3.21", "currency": "USD" }, "creditorName": "Jakub Kuczys", "debtorName": "[DEBTOR NAME HERE]", "additionalInformation": "PAYMENT", "internalTransactionId": "8675e80448ba62cfcb32379b43054c41" } ] ```
Author
Owner

@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):
image

(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.

@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): ![image](https://user-images.githubusercontent.com/6032823/224501472-de6b9374-85f9-4617-972c-a3cde74d1b9d.png) (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.
Author
Owner

@Potjoe-97 commented on GitHub (Mar 12, 2023):

I'm not sure if it generally makes sense to fall back to bookingDate when valueDate is present or if this should be a PayPal-specific fix.

Some banks only show bookingDate, and never provide valueDate. It could explain why @DistroByte and myself are having the same error "date is required when adding transactions". From docker log, I can see valueDate is never provided.

@Potjoe-97 commented on GitHub (Mar 12, 2023): > I'm not sure if it generally makes sense to fall back to `bookingDate `when `valueDate` is present or if this should be a PayPal-specific fix. Some banks only show `bookingDate`, and never provide `valueDate`. It could explain why @DistroByte and myself are having the same error "date is required when adding transactions". From docker log, I can see `valueDate` is never provided.
Author
Owner

@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-token request 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.

@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-token` request 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.
Author
Owner

@Jackenmen commented on GitHub (Mar 13, 2023):

Other issues

  • actual: improve error handling: here

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

@Jackenmen commented on GitHub (Mar 13, 2023): > ## Other issues > * [ ] `actual`: improve error handling: [here](https://github.com/actualbudget/actual/issues/724#issuecomment-1455595011) 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
Author
Owner

@MatissJanis commented on GitHub (Mar 13, 2023):

----------- v23.3.2 --------------

@MatissJanis commented on GitHub (Mar 13, 2023): ----------- v23.3.2 --------------
Author
Owner

@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): 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.
Author
Owner

@MatissJanis commented on GitHub (Mar 13, 2023):

[WONTFIX]

Bug:

remittanceInformationUnstructured is 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 from remittanceInformationUnstructured (and the array equivalent)

remittanceInformationUnstructured":"-","remittanceInformationUnstructuredArray":["-"]
@MatissJanis commented on GitHub (Mar 13, 2023): **[WONTFIX]** Bug: `remittanceInformationUnstructured` is 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 from `remittanceInformationUnstructured` (and the array equivalent) ``` remittanceInformationUnstructured":"-","remittanceInformationUnstructuredArray":["-"] ```
Author
Owner

@Jackenmen commented on GitHub (Mar 13, 2023):

remittanceInformationUnstructured is 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.

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 ""/[]

@Jackenmen commented on GitHub (Mar 13, 2023): > `remittanceInformationUnstructured` is 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. 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 `""`/`[]`
Author
Owner

@MatissJanis commented on GitHub (Mar 13, 2023):

remittanceInformationUnstructured is 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.

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 ""/[]

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): > > `remittanceInformationUnstructured` is 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. > > 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 `""`/`[]` 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.
Author
Owner

@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.

{
    "transactionId": "xxxxxxxxxxx",
    "bookingDate": "2023-03-13",
    "valueDate": "2023-03-13",
    "transactionAmount": {
        "amount": "100.0",
        "currency": "EUR"
    },
    "debtorName": "From Other account to Main Account",
    "remittanceInformationUnstructured": "From Other account to Main Account",
    "remittanceInformationUnstructuredArray": [
        "From Other account to Main Account"
    ],
    "bankTransactionCode": "PMNT-RCDT-ESCT",
    "internalTransactionId": "xxxxxxxxxxx"
}
@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. ``` { "transactionId": "xxxxxxxxxxx", "bookingDate": "2023-03-13", "valueDate": "2023-03-13", "transactionAmount": { "amount": "100.0", "currency": "EUR" }, "debtorName": "From Other account to Main Account", "remittanceInformationUnstructured": "From Other account to Main Account", "remittanceInformationUnstructuredArray": [ "From Other account to Main Account" ], "bankTransactionCode": "PMNT-RCDT-ESCT", "internalTransactionId": "xxxxxxxxxxx" } ```
Author
Owner

@Jackenmen commented on GitHub (Mar 14, 2023):

This is how a transfer transaction looks like in Nordigen

It actually depends on the bank - some banks provide creditor/debtorAccount field 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.
@Jackenmen commented on GitHub (Mar 14, 2023): > This is how a transfer transaction looks like in Nordigen It actually depends on the bank - some banks provide `creditor/debtorAccount` field while others don't. Sadly it doesn't appear to be consistent with [Nordigen's spreadsheet](https://docs.google.com/spreadsheets/d/1ogpzydzotOltbssrc3IQ8rhBLlIZbQgm5QCiiNJrkyA/) 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.
Author
Owner

@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"

@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"
Author
Owner

@TheiLLeniumStudios commented on GitHub (Mar 14, 2023):

image

Happens with using Wise sync

@TheiLLeniumStudios commented on GitHub (Mar 14, 2023): <img width="559" alt="image" src="https://user-images.githubusercontent.com/104288623/225076275-eb33d86e-939b-47a6-a2bc-09793369939e.png"> Happens with using Wise sync
Author
Owner

@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.

@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.
Author
Owner

@TheiLLeniumStudios commented on GitHub (Mar 14, 2023):

@Jackenmen I am using v23.3.2. Here's what it looks like:

[{"transactionId":"redacted","bookingDate":"2023-03-13","bookingDateTime":"2023-03-13T09:06:35.071Z","transactionAmount":{"amount":"485.00","currency":"EUR"},"debtorName":"STRIPE","debtorAccount":{"bban":"redacted"},"remittanceInformationUnstructured":"redacted","additionalInformation":"redacted","proprietaryBankTransactionCode":"TRANSFER","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-03-08","bookingDateTime":"2023-03-08T16:38:02Z","transactionAmount":{"amount":"-297.42","currency":"EUR"},"currencyExchange":{"sourceCurrency":"EUR","exchangeRate":"1.0553","targetCurrency":"USD"},"creditorName":"redacted","remittanceInformationUnstructured":"Spent redacted","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-03-06","bookingDateTime":"2023-03-06T11:12:19.391Z","transactionAmount":{"amount":"202.26","currency":"EUR"},"debtorName":"redacted","debtorAccount":{"bban":"redacted"},"remittanceInformationUnstructured":"redacted","additionalInformation":"redacted","proprietaryBankTransactionCode":"TRANSFER","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-03-02","bookingDateTime":"2023-03-02T13:43:46.551Z","transactionAmount":{"amount":"0.56","currency":"EUR"},"debtorName":"TransferWise","debtorAccount":{},"remittanceInformationUnstructured":"Received Balance cashback","additionalInformation":"BALANCE CASHBACK","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-27","bookingDateTime":"2023-02-27T11:32:08.674Z","transactionAmount":{"amount":"83.05","currency":"EUR"},"debtorName":"STRIPE","debtorAccount":{"bban":"redacted"},"remittanceInformationUnstructured":"Received STRIPE","additionalInformation":"redacted","proprietaryBankTransactionCode":"TRANSFER","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-24","bookingDateTime":"2023-02-24T08:02:48Z","transactionAmount":{"amount":"-3.35","currency":"EUR"},"creditorName":"Steam","remittanceInformationUnstructured":"Spent Steam","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-23","bookingDateTime":"2023-02-23T10:19:17Z","transactionAmount":{"amount":"-40.00","currency":"EUR"},"creditorName":"redacted","remittanceInformationUnstructured":"redacted","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-20","bookingDateTime":"2023-02-20T08:59:32Z","transactionAmount":{"amount":"-5.00","currency":"EUR"},"creditorName":"redacted","remittanceInformationUnstructured":"redacted","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-20","bookingDateTime":"2023-02-20T08:49:42.461Z","transactionAmount":{"amount":"303.56","currency":"EUR"},"debtorName":"STRIPE","debtorAccount":{"bban":"redacted"},"remittanceInformationUnstructured":"Received STRIPE","additionalInformation":"redacted","proprietaryBankTransactionCode":"TRANSFER","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-19","bookingDateTime":"2023-02-19T06:33:01Z","transactionAmount":{"amount":"-81.09","currency":"EUR"},"creditorName":"redacted","remittanceInformationUnstructured":"redacted","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"}]
@TheiLLeniumStudios commented on GitHub (Mar 14, 2023): @Jackenmen I am using v23.3.2. Here's what it looks like: ```json [{"transactionId":"redacted","bookingDate":"2023-03-13","bookingDateTime":"2023-03-13T09:06:35.071Z","transactionAmount":{"amount":"485.00","currency":"EUR"},"debtorName":"STRIPE","debtorAccount":{"bban":"redacted"},"remittanceInformationUnstructured":"redacted","additionalInformation":"redacted","proprietaryBankTransactionCode":"TRANSFER","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-03-08","bookingDateTime":"2023-03-08T16:38:02Z","transactionAmount":{"amount":"-297.42","currency":"EUR"},"currencyExchange":{"sourceCurrency":"EUR","exchangeRate":"1.0553","targetCurrency":"USD"},"creditorName":"redacted","remittanceInformationUnstructured":"Spent redacted","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-03-06","bookingDateTime":"2023-03-06T11:12:19.391Z","transactionAmount":{"amount":"202.26","currency":"EUR"},"debtorName":"redacted","debtorAccount":{"bban":"redacted"},"remittanceInformationUnstructured":"redacted","additionalInformation":"redacted","proprietaryBankTransactionCode":"TRANSFER","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-03-02","bookingDateTime":"2023-03-02T13:43:46.551Z","transactionAmount":{"amount":"0.56","currency":"EUR"},"debtorName":"TransferWise","debtorAccount":{},"remittanceInformationUnstructured":"Received Balance cashback","additionalInformation":"BALANCE CASHBACK","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-27","bookingDateTime":"2023-02-27T11:32:08.674Z","transactionAmount":{"amount":"83.05","currency":"EUR"},"debtorName":"STRIPE","debtorAccount":{"bban":"redacted"},"remittanceInformationUnstructured":"Received STRIPE","additionalInformation":"redacted","proprietaryBankTransactionCode":"TRANSFER","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-24","bookingDateTime":"2023-02-24T08:02:48Z","transactionAmount":{"amount":"-3.35","currency":"EUR"},"creditorName":"Steam","remittanceInformationUnstructured":"Spent Steam","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-23","bookingDateTime":"2023-02-23T10:19:17Z","transactionAmount":{"amount":"-40.00","currency":"EUR"},"creditorName":"redacted","remittanceInformationUnstructured":"redacted","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-20","bookingDateTime":"2023-02-20T08:59:32Z","transactionAmount":{"amount":"-5.00","currency":"EUR"},"creditorName":"redacted","remittanceInformationUnstructured":"redacted","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-20","bookingDateTime":"2023-02-20T08:49:42.461Z","transactionAmount":{"amount":"303.56","currency":"EUR"},"debtorName":"STRIPE","debtorAccount":{"bban":"redacted"},"remittanceInformationUnstructured":"Received STRIPE","additionalInformation":"redacted","proprietaryBankTransactionCode":"TRANSFER","internalTransactionId":"redacted"},{"transactionId":"redacted","bookingDate":"2023-02-19","bookingDateTime":"2023-02-19T06:33:01Z","transactionAmount":{"amount":"-81.09","currency":"EUR"},"creditorName":"redacted","remittanceInformationUnstructured":"redacted","proprietaryBankTransactionCode":"CARD_TRANSACTION","internalTransactionId":"redacted"}] ```
Author
Owner

@waseem-h commented on GitHub (Mar 14, 2023):

@Jackenmen this fixes the above issue https://github.com/actualbudget/actual/pull/754

@waseem-h commented on GitHub (Mar 14, 2023): @Jackenmen this fixes the above issue https://github.com/actualbudget/actual/pull/754
Author
Owner

@Jackenmen commented on GitHub (Mar 15, 2023):

I have a Starling account and for the second time I noticed that the imported transaction gets the wrong payee field...

@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:
Screenshot_20230315_131726_Gmail

@Jackenmen commented on GitHub (Mar 15, 2023): > I have a Starling account and for the second time I noticed that the imported transaction gets the wrong payee field... @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: ![Screenshot_20230315_131726_Gmail](https://user-images.githubusercontent.com/6032823/225306983-16d10c5d-e283-45ab-8f3a-098db83f53df.jpg)
Author
Owner

@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!

@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!
Author
Owner

@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.

@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.
Author
Owner

@leikoilja commented on GitHub (Mar 16, 2023):

Can't seem to configure actual to use nordigen integration.
My first local actualbudget spin-up:

  • server is on the latest v23.3.2 (via docker)
  • actual v23.3.2 (via yarn start:browser)
  • "sync accounts" flag is enabled in settings, experimental feature
  • tried adding config.json in the root of the server (next to package.json) as
{
  "nordigen": {
    "secretId": "...",
    "secretKey": "..."
  }
}
  • tried adding both id and key as env variables
$ printenv | grep ACTUAL
ACTUAL_NORDIGEN_SECRET_ID=...
ACTUAL_NORDIGEN_SECRET_KEY=...
  • twice tried re-generating nordigen secret id and key (in case i failed to copy-paste 😅 )

regardless, i keep getting hit by the same
image

Do i miss smth obvious in my setup? 😅

Solved:
Not sure why config.json is not loaded and picked up by docker container, but realised that since I am using docker i need to explore the env to the container. So on the server, docker-compose adding

    ...
    restart: unless-stopped
    environment:
      ACTUAL_NORDIGEN_SECRET_ID: ...
      ACTUAL_NORDIGEN_SECRET_KEY: ...

fixed it for me

@leikoilja commented on GitHub (Mar 16, 2023): Can't seem to configure actual to use nordigen integration. My first local actualbudget spin-up: - server is on the latest `v23.3.2` (via docker) - actual `v23.3.2` (via `yarn start:browser`) - "sync accounts" flag is enabled in settings, experimental feature - tried adding `config.json` in the root of the server (next to `package.json`) as ```json { "nordigen": { "secretId": "...", "secretKey": "..." } } ``` - tried adding both `id` and `key` as env variables ```bash $ printenv | grep ACTUAL ACTUAL_NORDIGEN_SECRET_ID=... ACTUAL_NORDIGEN_SECRET_KEY=... ``` - twice tried re-generating nordigen secret id and key (in case i failed to copy-paste 😅 ) regardless, i keep getting hit by the same ![image](https://user-images.githubusercontent.com/10655107/225592931-6e7ebaa0-73a8-4b19-bd44-11ec8c6032d4.png) Do i miss smth obvious in my setup? 😅 **Solved**: Not sure why `config.json` is not loaded and picked up by docker container, but realised that since I am using `docker` i need to explore the env to the container. So on the server, `docker-compose` adding ```yaml ... restart: unless-stopped environment: ACTUAL_NORDIGEN_SECRET_ID: ... ACTUAL_NORDIGEN_SECRET_KEY: ... ``` fixed it for me
Author
Owner

@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

@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
Author
Owner

@leikoilja commented on GitHub (Mar 16, 2023):

Thanks @DistroByte.
Sorry, forgot to mention - "sync accounts" flag is enabled

@leikoilja commented on GitHub (Mar 16, 2023): Thanks @DistroByte. Sorry, forgot to mention - "sync accounts" flag is enabled
Author
Owner

@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.

@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.
Author
Owner

@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): @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)
Author
Owner

@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:

  1. When connecting multiple accounts, the UI get's a bit messy with overflows and alignment
    image
  2. 2/3 banks failed to correctly parse the transactions (payee and notes are missing). Supposedly after adding defaults? If so, any reference how I can help to implement those specific bank renderers/integrations?
    Screenshot 2023-03-16 at 13 32 16
  3. One of the banks pulled data quite sporadically... There was at least 1 transaction per day during the past month in the bank statement. However, syncing via nordigen on 16.03.22, i get 1 transaction dated as 02/22/2023, 1 transaction on 02/24/2023 and about 20 other transactions all dated on 02/28/2023... What's weirder is that some actual transaction that happen in January is important as happening on 02/28/2023, which is incorrect. I guess that bank also calls for unique bank integration/rendeder, as point 2?

Real:
https://user-images.githubusercontent.com/10655107/225623487-a6562bb9-13f1-441f-a180-5fe04d19f3a8.jpeg

Actual:
image

Edit: new separate issue ticket for point 2:
https://github.com/actualbudget/actual/issues/761

@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: 1. When connecting multiple accounts, the UI get's a bit messy with overflows and alignment <img width="534" alt="image" src="https://user-images.githubusercontent.com/10655107/225619806-b4be9d99-efb9-4d92-a1c8-b5f059a14b71.png"> 2. 2/3 banks failed to correctly parse the transactions (payee and notes are missing). Supposedly after adding [defaults](https://github.com/actualbudget/actual/issues/724#issuecomment-1454797300)? If so, any reference how I can help to implement those specific bank renderers/integrations? <img width="841" alt="Screenshot 2023-03-16 at 13 32 16" src="https://user-images.githubusercontent.com/10655107/225619958-bb9eecd7-22b6-48b2-af1c-07e49c97bbbe.png"> 3. One of the banks pulled data quite sporadically... There was at least 1 transaction per day during the past month in the bank statement. However, syncing via nordigen on 16.03.22, i get 1 transaction dated as 02/22/2023, 1 transaction on 02/24/2023 and about 20 other transactions all dated on 02/28/2023... What's weirder is that some actual transaction that happen in January is important as happening on 02/28/2023, which is incorrect. I guess that bank also calls for unique bank integration/rendeder, as point 2? Real: https://user-images.githubusercontent.com/10655107/225623487-a6562bb9-13f1-441f-a180-5fe04d19f3a8.jpeg Actual: <img width="846" alt="image" src="https://user-images.githubusercontent.com/10655107/225623627-6b10fe21-bccc-46e8-bc84-3de3c91d212a.png"> Edit: new separate issue ticket for point 2: https://github.com/actualbudget/actual/issues/761
Author
Owner

@Jackenmen commented on GitHub (Mar 16, 2023):

2/3 banks failed to correctly parse the transactions (payee and notes are missing). Supposedly after adding defaults? If so, any reference how I can help to implement those specific bank renderers/integrations?

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.

One of the banks pulled data quite sporadically... There was at least 1 transaction per day during the past month in the bank statement. However, syncing via nordigen on 16.03.22, i get 1 transaction dated as 02/22/2023, 1 transaction on 02/24/2023 and about 20 other transactions all dated on 02/28/2023... What's weirder is that some actual transaction that happen in January is important as happening on 02/28/2023, which is incorrect. I guess that bank also calls for unique bank integration/rendeder, as point 2?

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.

@Jackenmen commented on GitHub (Mar 16, 2023): > 2/3 banks failed to correctly parse the transactions (payee and notes are missing). Supposedly after adding [defaults](https://github.com/[/issues/724](https://github.com/actualbudget/actual/issues/724)#issuecomment-1454797300)? If so, any reference how I can help to implement those specific bank renderers/integrations? 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. > One of the banks pulled data quite sporadically... There was at least 1 transaction per day during the past month in the bank statement. However, syncing via nordigen on 16.03.22, i get 1 transaction dated as 02/22/2023, 1 transaction on 02/24/2023 and about 20 other transactions all dated on 02/28/2023... What's weirder is that some actual transaction that happen in January is important as happening on 02/28/2023, which is incorrect. I guess that bank also calls for unique bank integration/rendeder, as point 2? 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.
Author
Owner

@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.

@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.
Author
Owner

@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.

@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.
Author
Owner

@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 to sortTransactions not sorting properly due to not knowing about how the bank's data looks.

Based on all existing integrations, sortTransactions is 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:

  • Initial state: I only have transactions before 2023-03-26
  • After sync, new transactions were added (this shows the order according to what is the newest/at the top in Actual client):
    • D202303300000001
    • D202303300000002
    • D202303300000003
    • D202303260000001
  • I deleted all 2023-03-30 transactions
  • After another sync, new transactions were added:
    • D202303300000001
    • D202303300000003
    • D202303300000002

Neither of these is the proper order which is what the sortTransactions (and the endpoint) returns:

  • D202303300000003
  • D202303300000002
  • D202303300000001
  • D202303260000001

I can also reproduce this on the "DEMO bank (used for testing bank-sync)":

  1. Add both of the DEMO bank accounts through Nordigen.
  2. Wait for them to add with all transactions fully.
  3. See wrong order.
  4. If you're not satisfied, remove all transactions except for "Starting Balance"
  5. Trigger sync.
  6. See wrong order again.

For the above reproduction, the endpoint returns transactions in this order:

  • 2023033001927908-1
  • 2023033001927907-1
  • 2023033001927905-1
  • 2023033001927904-1
  • 2023033001927902-1
  • 2023033001927901-1

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):

  • 2023033001927904-1
  • 2023033001927902-1
  • 2023033001927908-1
  • 2023033001927907-1
  • 2023033001927905-1
  • 2023033001927901-1

In the case of DEMO bank, all of the transactions ended up with the same value of sort_order field 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 different sort_order values (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).

@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 to `sortTransactions` not sorting properly due to not knowing about how the bank's data looks. Based on all existing integrations, `sortTransactions` is 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: - Initial state: I only have transactions before 2023-03-26 - After sync, new transactions were added (this shows the order according to what is the newest/at the top in Actual client): - D202303300000001 - D202303300000002 - D202303300000003 - D202303260000001 - I deleted all 2023-03-30 transactions - After another sync, new transactions were added: - D202303300000001 - D202303300000003 - D202303300000002 Neither of these is the proper order which is what the `sortTransactions` (and the endpoint) returns: - D202303300000003 - D202303300000002 - D202303300000001 - D202303260000001 --- I can also reproduce this on the "DEMO bank (used for testing bank-sync)": 1. Add both of the DEMO bank accounts through Nordigen. 2. Wait for them to add with all transactions fully. 3. See wrong order. 4. If you're not satisfied, remove all transactions except for "Starting Balance" 5. Trigger sync. 6. See wrong order again. For the above reproduction, the endpoint returns transactions in this order: - 2023033001927908-1 - 2023033001927907-1 - 2023033001927905-1 - 2023033001927904-1 - 2023033001927902-1 - 2023033001927901-1 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): - 2023033001927904-1 - 2023033001927902-1 - 2023033001927908-1 - 2023033001927907-1 - 2023033001927905-1 - 2023033001927901-1 In the case of DEMO bank, all of the transactions ended up with the same value of `sort_order` field 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 different `sort_order` values (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).
Author
Owner

@MatissJanis commented on GitHub (Apr 6, 2023):

---------- v23.4.0 ----------

@MatissJanis commented on GitHub (Apr 6, 2023): ---------- v23.4.0 ----------
Author
Owner

@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.

@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.
Author
Owner

@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.

@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.
Author
Owner

@rich-howell commented on GitHub (Apr 14, 2023):

savings

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 😒

@rich-howell commented on GitHub (Apr 14, 2023): > savings 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 😒
Author
Owner

@ppmt commented on GitHub (Apr 14, 2023):

savings

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 unamused

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.

@ppmt commented on GitHub (Apr 14, 2023): > > savings > > 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 unamused 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.
Author
Owner

@MatissJanis commented on GitHub (Apr 23, 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.

@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!

@MatissJanis commented on GitHub (Apr 23, 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. @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!
Author
Owner

@kamsz commented on GitHub (Apr 27, 2023):

Any chance of incorporating a multiplier feature to Nordigen as well?

@kamsz commented on GitHub (Apr 27, 2023): Any chance of incorporating a multiplier feature to Nordigen as well?
Author
Owner

@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?

@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?
Author
Owner

@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 (Apr 30, 2023): Re: [incorrect ordering of synced transactions](https://github.com/actualbudget/actual/issues/724#issuecomment-1491152491) 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 😅
Author
Owner

@MatissJanis commented on GitHub (May 4, 2023):

------ v23.5.0 ------

@MatissJanis commented on GitHub (May 4, 2023): ------ v23.5.0 ------
Author
Owner

@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

@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
Author
Owner

@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.
2023-05-22 09_39_23-Window

@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. ![2023-05-22 09_39_23-Window](https://github.com/actualbudget/actual/assets/57343973/060aaf88-544c-4650-9d18-ba8fe5cd8aa5)
Author
Owner

@ppmt 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. 2023-05-22 09_39_23-Window

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 :)

@ppmt 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. ![2023-05-22 09_39_23-Window](https://user-images.githubusercontent.com/57343973/239837697-060aaf88-544c-4650-9d18-ba8fe5cd8aa5.png) 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 :)
Author
Owner

@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.

@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.
Author
Owner

@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?

image
@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? <img width="661" alt="image" src="https://github.com/actualbudget/actual/assets/1384852/1abed651-9cfd-4012-8112-a8f38f6e9e57">
Author
Owner

@MatissJanis commented on GitHub (Jun 4, 2023):

------- v23.6.0 -------

@MatissJanis commented on GitHub (Jun 4, 2023): ------- v23.6.0 -------
Author
Owner

@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: bookingDate is the 1st of next month (the date that's being used in Actual), while valueDate is 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): 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: `bookingDate` is the 1st of next month (the date that's being used in Actual), while `valueDate` is 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?
Author
Owner

@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.

@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.
Author
Owner

@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.

@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.
Author
Owner

@Inrego commented on GitHub (Jun 5, 2023):

Thanks. That helped in further finding the cause for my issues. The problem is that valueDate is 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 with valueDate in 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:

        {
            "transactionId": "269392245",
            "bookingDate": "2023-06-04",
            "valueDate": "2023-07-01",
            "transactionAmount": {
                "amount": "-340.8",
                "currency": "DKK"
            },
            "currencyExchange": [
                {
                    "sourceCurrency": "DKK",
                    "exchangeRate": "1.00",
                    "targetCurrency": "DKK",
                    "quotationDate": "2023-06-03T00:00:00.0000000"
                }
            ],
            "creditorName": "COOP APP                 ",
            "remittanceInformationUnstructured": "COOP APP                  ALBERTSLUND   DK ",
            "additionalInformation": "Grocery Stores, Supermarkets        ",
            "proprietaryBankTransactionCode": "Køb",
            "internalTransactionId": "85bff9c6b5d71a422045a41373faf42b"
        },

May I suggest being able to override whether bookingDate or valueDate should be used for a given account (unless using bookingDate instead is the most sensible choice in all cases)?

@Inrego commented on GitHub (Jun 5, 2023): Thanks. That helped in further finding the cause for my issues. The problem is that `valueDate` is 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 with `valueDate` in 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: { "transactionId": "269392245", "bookingDate": "2023-06-04", "valueDate": "2023-07-01", "transactionAmount": { "amount": "-340.8", "currency": "DKK" }, "currencyExchange": [ { "sourceCurrency": "DKK", "exchangeRate": "1.00", "targetCurrency": "DKK", "quotationDate": "2023-06-03T00:00:00.0000000" } ], "creditorName": "COOP APP ", "remittanceInformationUnstructured": "COOP APP ALBERTSLUND DK ", "additionalInformation": "Grocery Stores, Supermarkets ", "proprietaryBankTransactionCode": "Køb", "internalTransactionId": "85bff9c6b5d71a422045a41373faf42b" }, May I suggest being able to override whether `bookingDate` or `valueDate` should be used for a given account (unless using `bookingDate` instead is the most sensible choice in all cases)?
Author
Owner

@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.

@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.
Author
Owner

@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 :)

@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 :)
Author
Owner

@Inrego 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.

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): > 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. 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.
Author
Owner

@Inrego commented on GitHub (Jun 5, 2023):

While we're at it. A feature request:

Being able to use additionalInformation in 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.

@Inrego commented on GitHub (Jun 5, 2023): While we're at it. A feature request: Being able to use `additionalInformation` in 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.
Author
Owner

@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:

curl -X POST "https://bankaccountdata.gocardless.com/api/v2/token/new/" \
  -H "accept: application/json" \
  -H  "Content-Type: application/json" \
  -d "{\"secret_id\":\"string\", \"secret_key\":\"string\"}"
@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](https://gocardless.com). Yesterday they announced that the Nordigen service is now called 'GoCardless Bank Account Data' and that it is accessible here: [bankaccountdata.gocardless.com](https://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](https://developer.gocardless.com/bank-account-data/quick-start-guide): ```bash curl -X POST "https://bankaccountdata.gocardless.com/api/v2/token/new/" \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -d "{\"secret_id\":\"string\", \"secret_key\":\"string\"}" ```
Author
Owner

@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.

@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.](https://actualbudget.github.io/docs/Accounts/connecting-your-bank/)” There is no way to set up the integration.
Author
Owner

@MatissJanis commented on GitHub (Jun 10, 2023):

FYI: https://github.com/nordigen/nordigen-node/issues/49

@MatissJanis commented on GitHub (Jun 10, 2023): FYI: https://github.com/nordigen/nordigen-node/issues/49
Author
Owner

@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!

@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!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#286