mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-09 19:52:56 -05:00
[Feedback]: SimpleFIN Sync #891
Closed
opened 2026-02-28 19:23:14 -06:00 by GiteaMirror
·
203 comments
No Branch/Tag Specified
master
claude/fix-simplefin-batch-sync-O8LcD
matiss/modal-and-server-refactor
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
ai/custom-theme-dual-prefs
matiss/fix-6804
add-claude-github-actions-1772738270730
react-query-rules
react-query-useSchedules
matiss/separate-lint-format
dependabot/npm_and_yarn/ajv-6.14.0
cursor/sync-performance-notification-9899
react-query-prefs
matiss/chunked-sync-and-progress-ux
v26.2.1
copilot/sub-pr-6880
fix-react-query-clear-on-close-budget
copilot/sub-pr-6140
feat/auto-note
feat/scoped-bank-sync
cursor/desktop-transactions-react-table-1d0c
fix-exhaustive-deps-App
copilot/fix-find-replace-bug
release/v26.2.0-pre
matiss/browser-tests
mobile-fix-drag-and-drop-across-groups
budget-table-v2
PayeeAutocomplete2
pglite
bugfix/plugins/fix-plugins-sw
feat/plugins/plugins-core-package
prerelease
matiss/unicode-minus-fix
cursor/fix-actual-github-issue-6206-gemini-3-pro-preview-9c37
TransactionFormPage
cursor/implement-mortgage-and-loan-account-type-78ca
tests-update-fill-with-pressSequentially
mobile/link-modal
deps/25.11
cursor/fix-update-vrt-apply-ci-job-dispatch-b324
sync-server-plugins
cursor/propose-patch-for-github-issue-5680-2a18
fix/compiler-preserve-inner-dollar-escapes
cursor/analyze-actual-budget-issue-and-propose-fix-5b70
coderabbitai/docstrings/0c070e5
cursor/add-wip-prefix-and-comment-to-prs-d78d
jfdoming/08-21-auto-focus-on-navigate-in-all-browsers
show-totals-on-mobile-budget-banners
allow-child-transactions-make-transfer
mobile-calculator-keyboard
payee-geolocation
enhance/restore_scroll_position
dm-fix-second-click-on-mobile-new-transaction-2
scrollToLocationBudget
alert-autofix-38
tsconfig-composite
mobile-fix-uncategorized-transactions-on-tracking-budgets
server-budget-handlers
fix-sql-injection-in-cleanup-template
non-chrome-draggable-workaround
mobile-budget-page-swipe-navigation
ts-db-all
stable
dark-theme-with-brand-colors
fix-mobile-delete-group
ts-db-select
UnderKoen/reconcile-context-menu
master-before-server-merge
v25.2.1
ts-runQuery
rename-redux-hooks
UnderKoen/3557-persist-state-in-history
remove-redux-CLOSE_BUDGET
fix-exhaustive-deps-errors-FinancesApp
redux-toolkit-createSlice-backup
accounts-function-component
ts-useSplitsExpanded
loot-core-server-package
useTransactios-in-TransactionEdit
react-aria-input
move-redux-to-desktop-client
QueryState-type
fix-themes-applied-late
mobile-vrts
revert-3295-spendingCardFix
react-aria-button-4
split-payee-on-mobile
twk3/pin-apis-crdt
notes-tag-autocomplete
ts-LoadBackup
dnd-kit
package-upgrades
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#891
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @zachwhelchel on GitHub (Jan 22, 2024).
This issue is to track thoughts/bugs/concerns/ideas around the new SimpleFIN syncing which is an experimental feature.
@JMLegere commented on GitHub (Jan 23, 2024):
How do I use this?
@youngcw commented on GitHub (Jan 23, 2024):
@JMLegere Currently you have to be using the edge release, then enable the experimental feature for it
@sethgillett commented on GitHub (Jan 26, 2024):
Any concerns about how actively developed their bridge tool is? Their last blog post is from 2016 and their terms of use haven't been updated since 2020, and it doesn't seem like any banks have implemented the protocol themselves.
Edit: It looks like their privacy policy was updated last October.
@youngcw commented on GitHub (Jan 26, 2024):
@sethgillett SimpleFIN uses MX in the background and its primary role is to make bank sync accessable to individuals instead of having to use a large company service. So there likely isn't much that needs changed. From what I've heard the guy that runs it is very responsive and actively keeping it going.
@yoyotogblo commented on GitHub (Jan 29, 2024):
He's very responsive. Almost always responds within a few hours of issues being raised and escalates issues quickly also. I won't be concerned about it being active.
@joel-jeremy commented on GitHub (Feb 1, 2024):
We should add a new feature to "force match" an existing transaction to a newly imported one. This should basically just assign the
imported_idof the new imported transaction to an existing transaction. This way when the next sync runs, the existing transaction will be matched and will not be duplicated.@yoyotogblo commented on GitHub (Feb 1, 2024):
That's how it already works. If the imported_id exists, it auto-matches so doesn't dupe. If it doesn't exist, it uses fuzzy matching
(looks at transactions 4 days prior and 1 day after the imported transactions) and if it finds one, it assigns that existing the transaction the imported_id.
@joel-jeremy commented on GitHub (Feb 1, 2024):
I'm aware of that, and what I meant is for users to be able to do what the fuzzy matching is doing by manually selecting which transactions to "match". Because the fuzzy matching will not be able to catch all the cases - in my case, the bank seems to use the cleared date as the transaction date instead of the date the purchase was made and that varies between 1 day or sometimes a week.
Another thing I noticed is that the imported transactions doesn't seem to match split transactions.
@cmccambridge commented on GitHub (Feb 1, 2024):
The fuzzy logic (
-4 to +1days) makes sense when syncing of all accounts is happening on an on-going daily basis, and we hope that most transactions appear in chronological order across acounts. But, it's been a problem tonight as I'm trying out new SimpleFIN links to existing Actual accounts...Is there a reason to keep the match range asymmetric? Could it be updated to
-4 to +4, for example? Else definitely the "force match" concept that @joel-jeremy mentioned would resolve my case as well... I had gone looking for that exact feature at first, but couldn't find it.Here's the problematic scenario for my data:
I think the better workaround as I identify these date collisions is for me to go change the dates of the transfer to try and favor the earlier date?
But, the manual work to figure out which account I need to forcibly tweak is overhead that would be great to avoid if possible 😄
@yoyotogblo commented on GitHub (Feb 1, 2024):
Ah yeah, manually matching...
I wrote a lot of details about the ideal behavior in the issue below... Fully agree that we need a way to manually match.
https://github.com/actualbudget/actual/issues/669
Also, on the 1 day vs a week time difference, I have a PR.to change the fuzzy matching logic to 7 days prior and 7 days after. I use that in my instance and it works much better.
https://github.com/actualbudget/actual/pull/2300
@yoyotogblo commented on GitHub (Feb 1, 2024):
I have a PR to make it symmetrical and to use 7 days in both cases...
https://github.com/actualbudget/actual/issues/2300
I had the same issues as you with the Simplefin sync and this has solved it. BTW, currently, the Simplefin sync looks back 90 days. Most accounts don't provide that much history so you won't see as many breaks. But for the ones that do, it could break over a 90 day range everytime you sync.
@joel-jeremy commented on GitHub (Feb 1, 2024):
Another observation: This is not SimpleFIN specific but when you modify an imported transaction, it will still match the next time you sync even though the fields are no longer the same. I think we should treat imported transactions like we do reconciled transactions where a warning pops up when editing an imported transaction.
@cmccambridge commented on GitHub (Feb 1, 2024):
This one might be SimpleFIN specific, and might also not be fixable depending what data we have to work from, but I'll ask :)
Is there any additional metadata we can present on the
LinkUX flow to help clarify what's what in the available SimpleFIN connections? In my connections, some appear to use the "friendly name" i set through the bank UI, or a common name for the card, but others are very generic and I could only figure out which account it was through process of elimination. On one I even had to guess, realize it was wrong, delete the imported transactions, and try again :)Is there any connection name we could show? Or a partial account number to disambiguate multiple similar-named accounts?

@MatissJanis commented on GitHub (Feb 1, 2024):
👋 I tried setting up simplefin to run some tests. Here are some issues I encountered:
/accountsrequest to load forever without any way to replace this invalid token with something else); -- maybe there actually is a way to update the token.. but I'm not able to get to itEverything else seems to be working good so far. Great job!
@swelborn commented on GitHub (Feb 1, 2024):
Hello! It may be good to have a marker to designate transactions that were imported through syncing with simplefin. I may be missing this if it is there. Ideally, one could toggle that marker off/on depending on if they wanted it there or not.
all around awesome and seamless. Need to do a bit of rule updating, but other than that all of my accounts are synced up. great work.
@joel-jeremy commented on GitHub (Feb 1, 2024):
This is a good idea. We mark linked/imported accounts in the UI and we should do the same with imported transactions (gocardless/simplefin) IMO. This + warn users if an imported transaction is being modified. If modified, it should then be converted to a regular transaction (we remove it's
imported_id).@yoyotogblo commented on GitHub (Feb 2, 2024):
This is how I'd expect it to work though. It matches the imported id and since it recognizes that you've already imported that transaction and edited it, it shouldn't try to change it and should just match it. Not sure of the benefit of a warning pop up in this instance.
@yoyotogblo commented on GitHub (Feb 2, 2024):
There's definitely more info that can be shown... If you use the external test script that Dup created, that has more info. I ran into the same thing and played the same guessing game and deleting transactions. Good thing is you only have to do it one time :)!
@yoyotogblo commented on GitHub (Feb 2, 2024):
Definitely don't think we should ever be removing the imported_id. Based off your proposal, if it imports a transaction and I need to change the payee, then that's now modified. Remove the imported_id and the transaction gets duped. Not sure I see any benefit to what you're proposing.
@swelborn commented on GitHub (Feb 2, 2024):
In terms of the marker, I was only thinking of a label like your green dots next to the linked accounts. I don't think this would involve removing a uid as suggested above, but adding a tag... but I'm not familiar with source so I'm not sure how difficult this would be.
I am checking actual from mobile now and there is no sync button. I understand that the mobile version is not as fully featured as desktop, but a sync button would be good for mobile.
@joel-jeremy commented on GitHub (Feb 2, 2024):
I am referring to user-made edits not edits made by the importer if that's what your thinking.
The warning popup can be limited to
amountuser edits or possibly even the date. It doesn't make sense to have an imported transaction's amount be different from the amount that came from the bank. It can also introduce confusion when users need to reconcile old transactions.@joel-jeremy commented on GitHub (Feb 2, 2024):
You should be able to pull down on the account page to sync.
@yoyotogblo commented on GitHub (Feb 2, 2024):
I make user edits all the time. Quite often, I'm changing the notes. At times, I'm creating split transactions. Or manually editing the payee. I don't see a scenario where I'd have edited an imported transaction, and would then want the same transaction imported again with the original details (which is what would happen if the imported ID is removed).
Can you explain what goal you're trying to accomplish?
@joel-jeremy commented on GitHub (Feb 2, 2024):
Notes and payees are fine. It's just the amount (or possibly even the date) that need to be kept consistent with the original imported data that came from the bank. Changing the amount essentially makes it a totally different transaction and could introduce confusion when needing to reconcile down the line.
Essentially what I am getting at it to make imported transactions as reconciled transactions but only warn when editing the amount. This is to make it clear that you are overriding the data that came from your bank. However, the warning popup should still allow the user to choose whether to retain the imported status of the transaction or remove it IMO.
@yoyotogblo commented on GitHub (Feb 2, 2024):
Definitely not the date. That would create a disaster when there are transfers. Pretty much always, a payment to a credit card or transfer between bank accounts would have different dates. So the already imported transaction could end up with a different date than the new imported transaction and you still would want them to match.
So that leaves only amount as the use-case. I agree people shouldn't be modifying amounts on transactions. That's really the only scenario I see a warning being useful. But if a person modifies the amount on an imported transaction, not sure reimporting the transaction is the way to go. But I can see that argument though. A warning though would be useful.
@crobibero commented on GitHub (Feb 2, 2024):
I linked my checking, savings, and credit card successfully. My checking and saving came in fine but my credit card has the transactions inverted. Maybe we need a way to designate an account as inverted? I don't see anything in the SimpleFin response that would indicate whether an account is a credit card.
@prizmpaladin commented on GitHub (Feb 3, 2024):
Beginner here. I'm running Actual on Unraid using a docker from https://hub.docker.com/r/actualbudget/actual-server. How would I go about getting the edge release to use this feature?
@yoyotogblo commented on GitHub (Feb 3, 2024):
It's in the latest release so you don't need edge. Use these instructions to update to the most recent version of Actual (https://actualbudget.org/docs/install/docker/).
Once you're up to date, you need to enable it under Settings -> Experimental Features
@prizmpaladin commented on GitHub (Feb 3, 2024):
Slick, just got this working. Thanks for pointing me in the right direction.
@culpeppers commented on GitHub (Feb 3, 2024):
I appreciate the work on this!
Is anyone else having an issue with their Discover accounts not showing in Actual? It is linked fine in SimpleFIN, and the rest of my linked accounts are showing but not Discover.
@prizmpaladin commented on GitHub (Feb 3, 2024):
I just added my discover accounts and am seeing the same behavior.
@newmanwj commented on GitHub (Feb 3, 2024):
Same here with Discover. Thought it wouldn't pick up any new accounts, but AmEx cards showed up fine.
@culpeppers commented on GitHub (Feb 3, 2024):
I stood up a local copy and tested it out. It looks like it's SimpleFIN that is not returning the accounts and nothing to do with the implementation on Actual.
I submitted a report to SimpleFIN about this, will update when I hear back.
@kwispykweems2 commented on GitHub (Feb 5, 2024):
I have two Discover CC accounts, and I setup the first just fine. When I setup the second in SimpleFIN, Actual sync UI doesn't even see the second one. My first is called "Account", quite descriptive. ;)
@cgiacofei commented on GitHub (Feb 5, 2024):
Syncing is great so far. One thing I miss from the standalone script is the option to have it modify the account notes with current balance given by the bank. I find that really useful for doing a quick reconciliation check.
@latetedemelon commented on GitHub (Feb 5, 2024):
@duplaja has an alert script about the sync status of the accounts you've added to your simplefin account. Incorporating something like this would be nice in a future version
https://github.com/duplaja/simplefin-alerts
(Overall apprise integration in general would be great too).
@culpeppers commented on GitHub (Feb 5, 2024):
I heard back from SimpleFIN that they submitted tickets with MX and will let me know once they've heard back.
@latetedemelon commented on GitHub (Feb 5, 2024):
I believe @iffy accepts issues via the github repo for his website:
https://github.com/simplefin/simplefin.github.com
@culpeppers commented on GitHub (Feb 5, 2024):
Regarding matching transactions, I encountered a use case that probably needs its own special handling
When a transfer transaction is imported, it arrived as two distinct transactions. Since, at least in my budget, it doesn't automatically know to turn them into a single transfer. So when I add one side, it creates a transfer transaction. However, the other end of the imported transaction cannot be matched. If I delete it, it comes back since it's not added. If I turn that into a transfer and delete the other one, that transaction returns.
@youngcw commented on GitHub (Feb 5, 2024):
@culpeppers Have you made rules for both sides of the transfer? The Docs give an example of using rules to dedup imported transfers.
@karmanbadhesha commented on GitHub (Feb 6, 2024):
This window should definitely show the financial institution and the balances. For example, if you have multiple mastercards it's very difficult to tell which one it is
@faultoverload commented on GitHub (Feb 6, 2024):
Just a small issue I noticed with the Link Accounts page. No scroll bar is created for the drop down with "Account in Actual" so you cant scroll through the list since it scrolls the whole page. Not a breaking issue since you can just search for the account you want.
I also noticed that when first going through the linking process it would forget my Simplefin token after opening and closing the link accounts menu a few times. Im not sure if this is some rate limiting thats my fault or something else since like many others I was linking accounts one at a time to figure out which one was which.
@blampe commented on GitHub (Feb 6, 2024):
I set this up last night and the experience so far has been good! US bank sync was the biggest blocker preventing me from using Actual and I'm very happy to see it working now. Below are some first impressions / wishlist items -- none of these are showstoppers.
I'd like to add my partner's Venmo account to make it easier to categorize some withdrawals from checking (the Venmo transactions include more helpful notes), but I don't want to have to categorize or deal with transfers to the Venmo.
Some payments can take a few days to settle and these don't always get correctly matched as transfers. I think #2300 addresses this but I haven't tested it.
I gather from https://github.com/actualbudget/actual-server/pull/296 that this will only sync transactions when the client initiates. I have a lot of accounts, and I don't want to have to wait for things to sync when I'm trying to quickly categorize weekly spending.
SimpleFin enabled me to add all of my accounts for an awesome birds-eye view of everything. I've resorted to naming accounts with emojis to better differentiate them in the sidebar 😆
@youngcw commented on GitHub (Feb 6, 2024):
@blampe A few of the things you listed can be handled quite well using the Rules engine along with #2300 like you mentioned. The docs say how to handle synced transfers with Rules.
You should be able to like off budget accounts. You need to manually link an account that already exists in Actual using the "Link Account" option in the account menu.
I believe you can sync all your accounts by using the sync button in the all accounts view.
@Amolith commented on GitHub (Feb 6, 2024):
I deleted the app from SimpleFIN's side and generated a new token without realising there's currently no way to change it from Actual's side.
I do see a
secretstable in the database (server-files/account.sqlite) withsimplefin_tokenandsimplefin_accessKey, but I don't know whether deleting those rows or changingsimplefin_tokenwould break other things.@duplaja commented on GitHub (Feb 6, 2024):
@Amolith
This is the way to do it for now. Stop Actual Server, delete just those two rows from account.sqlite in the secrets table, and then can start Actual Server back up again.
@LinuxTeamster commented on GitHub (Feb 7, 2024):
I just saw this as an option and set it up, it was pretty easy and straightforward with the documentation. I use two small Credit Unions and they were both supported and imported with no problems. I love it, great work
@duplaja commented on GitHub (Feb 7, 2024):
Once this moves out of experimental, it might be worth seeing about getting Actual added to SimpleFIN's Apps / integrations page: https://www.simplefin.org/ecosystem.html
@Amolith commented on GitHub (Feb 8, 2024):
@duplaja I mistakenly read this as "delete those two rows from account.sqlite, [delete the] secrets table, and then...". My secrets table is now gone and I'm not familiar enough with actual's codebase to figure out what the schema is to recreate it.
Would someone with a working setup mind pasting the table schema here?
@duplaja commented on GitHub (Feb 8, 2024):
@Amolith
I'll edit the original instructions to make more clear.
@prizmpaladin commented on GitHub (Feb 10, 2024):
I'm seeing that the sync button at the top of the application does not trigger syncing of any accounts. The icon does a little half spin but no syncing occurs. I can sync each account individually.
@matthewkdies commented on GitHub (Feb 10, 2024):
Which sync button are you hitting? Just making sure it isn't this (as I thought the same thing initially). The one under your accounts total is what does the actual syncing.
@ther3zz commented on GitHub (Feb 10, 2024):
Not sure if this belongs here, but I'm wondering if it's possible to have simplefin pull in pending transaction?
Seems like it only pulls transactions which have been posted.
@duplaja commented on GitHub (Feb 10, 2024):
@ther3zz
SimpleFIN itself (currently) only provides transactions that have been posted. If you haven't yet, it's certainly worth reaching out to them via email and asking if something like that is on the roadmap. I've found them very responsive.
@jfdoming commented on GitHub (Feb 10, 2024):
+1, the extra unfortunate thing here is that it uses the POSTED date as the transaction date once the transaction posts, even though for something like a credit card this is horribly off. 😞
@ChevySSinSD commented on GitHub (Feb 11, 2024):
I previously used actual-simplefin-sync in a separate docker container. I updated to actual-server edge-alpine and I get the following error in the log after enabling the experimental features and attempting to link an account:
"Something internally went wrong. You may want to restart the app if anything looks wrong. Please report this as a new issue on Github."
I have restarted the server container multiple times.
Here's what appears in the log:
undefined:1
Node.js v18.18.2
<!doctype html>
^
SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse ()
at IncomingMessage. (file:///app/src/app-simplefin/app-simplefin.js:218:24)
at IncomingMessage.emit (node:events:529:35)
at endReadableNT (node:internal/streams/readable:1368:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
@dotfortun3-code commented on GitHub (Feb 15, 2024):
I added this and set it up. First day, it synced fine, today when I try to sync, it says there was a sync error and the browser logs are throwing
[Exception] Error: database disk image is malformedI checked with SimpleFIN and everything looks fine there.
@matthewkdies commented on GitHub (Feb 15, 2024):
I too am having trouble initiating syncing. When trying to sync my accounts, I'm using the sync button as shown in the below image. I've tried clicking this per account, for budgeted/non-budgeted accounts, and for all accounts. The issue is that it doesn't seem to initiate any syncing.
Below is an image of my SimpleFIN Bridge account, with each of the accounts blocked out. Note that shown in blue at the bottom is the time of the last sync initiated by Actual. Every time I click one of the sync buttons, this time does update. I've confirmed it with all of the above mentioned syncing methods. However, none of the accounts are accessed, as shown above in blue. I'm unclear whether this is an error with Actual or SimpleFIN Bridge itself, but if someone could point me in the right direction I can write an issue appropriately, if needed.
@matthewkdies commented on GitHub (Feb 16, 2024):
I'm now realizing that the
Last Data Synccolumn probably is from the SimpleFIN sync side, but not the Actual side. Would there be any way to trigger a Data Sync daily from the server-side?@cjfagerstrom commented on GitHub (Feb 17, 2024):
I set up SimpleFIN sync on 2/15. It pulled down data to two different Actual Budget files I have on my server that day. Since then it's been crickets. When I login to the SimpleFIN site it shows it is updating daily on all accounts, but nothing shows up in either of my Actual Budget files.

@youngcw commented on GitHub (Feb 17, 2024):
@cjfagerstrom looks like actual hasn't accessed simplefin since you set it up. Are you telling actual to sync when you are using it?
@newmanwj commented on GitHub (Feb 17, 2024):
@matthewkdies @cjfagerstrom - I've been having a similar problem where the sync doesn't seem to happen if I initiate from Actual. I've found if I log into simplefin then click Adjust on any one of my connections, then simplefin tells me I'm connected without me changing anything. If I then initiate the sync from actual, it does sync.
I'm running my server on fly.io and not locally.
@matthewkdies commented on GitHub (Feb 19, 2024):
I can confirm this works for me too. I've reached out to SimpleFIN Bridge support regarding how to enable the account data syncs and will comment here if I get a response.
@duplaja commented on GitHub (Feb 19, 2024):
@ther3zz
Just a follow up, but it does look like SimpleFIN can pull pending transactions (did some more digging in the API docs), for some if not all accounts (haven't tested extensively). It just doesn't send those over by default.
As long as IDs are preserved in the change from pending to posted, then I don't see why we couldn't do something similar to GoCardless, where pending transactions import as uncleared, and then are marked as cleared when they post. There was a brief initial discussion of this in the project bank sync channel on Discord tonight.
@latetedemelon commented on GitHub (Feb 19, 2024):
Good find.
https://www.simplefin.org/protocol.html#transaction
Looks like this came out less than two weeks ago.
@cjfagerstrom commented on GitHub (Feb 19, 2024):
As there is limited documentation on the proper procedure, my assumption was some sort of auto-sync would take place. However - out of an abundance of impatience, I've clicked both sync buttons on multiple accounts in both budget files and nothing has happened.
I've managed to get my personal accounts to sync by unlinking and relinking the accounts to SimpleFIN. As an experiment, I've left the company accounts in the second budget file (which are at the same bank) untouched so I can pin down if linking up the second account broke the syncing for the first, or something to that effect.
@duplaja commented on GitHub (Feb 19, 2024):
For anyone having trouble syncing on a particular account, I've put together a quick python script to print recent transactions to terminal. This pulls directly from SimpleFIN, so you should be able to see if the issue is SimpleFIN not getting the transactions yet, or if there's an issue with the mapping or anything else on Actual's side.
https://gist.github.com/duplaja/4df7e47230566894b7ee2a7e45ac2f50
You can edit the date range, and if you want it to show pending transactions or not (see the comment on the gist)
@kwispykweems2 commented on GitHub (Feb 19, 2024):
This is great, thanks @duplaja! I've been having issues with duplicate +/- transactions on my Discover CC, figured out it isn't Actual but the data coming from SimpleFIN.
@priteshypatil commented on GitHub (Feb 20, 2024):
I've been having issues with sync too. I tried this and it did not work for me. I'm running actual server in a docker container.
I tried to unlink my account and link it back up but I can't even link it back up. I restarted the docker container and then it works but this has broken for the third time.
Here's the error code from the logs.
Rejection: Error: getaddrinfo EAI_AGAIN beta-bridge.simplefin.org at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) { errno: -3001, code: 'EAI_AGAIN', syscall: 'getaddrinfo', hostname: 'beta-bridge.simplefin.org' } [Function: sendErrorResponse]@latetedemelon commented on GitHub (Feb 20, 2024):
For the people having issues, I kindly suggest heading over to the discord for support. It will probably be easier to determine bug versus service issue versus configuration error, etc., on that medium.
@matthewkdies commented on GitHub (Feb 21, 2024):
FWIW, here's the response I got from asking SimpleFIN:
Sounds like it's an unfortunate side effect of how SimpleFIN Bridge is supported from the bank side. Probably just requires the "adjustment" to trigger the syncing, as well as some pressure from users towards the banks to support SimpleFIN more.
@brum74 commented on GitHub (Feb 22, 2024):
I just linked my accounts from SimpleFIN and didn't realize they would all be created for budget. There is no way to switch the incorrect accounts to off budget. Would it be possible to have the dropdown for "Account in Actual" have 2 entries instead of the current one, "Create new for budget account" and "Create new off budget account"? This would save the hassle of having to create the accounts manually beforehand.
@duplaja commented on GitHub (Feb 22, 2024):
@brum74
You can also pre-create the accounts (where you want them), and then link. I usually do it this way.
@brum74 commented on GitHub (Feb 22, 2024):
Yes, I did that after the fact but the user experience I think can be enhanced. Since it offers an option to create the account there then allow creating the account with the different options, especially if it cannot be changed after the fact. If the preferred way is to create the accounts beforehand then remove the option from the dropdown entirely.
@GoogleBot42 commented on GitHub (Feb 27, 2024):
One idea for an enhancement would be to load simplefin updates for all accounts using a single request for a much quicker sync. I understand that the sync all button exists but it triggers sequential requests for each simplefin account. I have a lot of accounts so this takes a long time. Playing with the API via python, I believe fetching all simplefin account updates could be fetched in one go and it would be many times faster.
In my case, syncing takes ~60 seconds.
@jhoward321 commented on GitHub (Mar 1, 2024):
Not sure if this is related to the sync feature or if I'm categorizing transactions incorrectly but I've got 2 synced accounts - a brokerage and a checking account. I classified the the checking account as an on-budget account and the brokerage as off-budget. When moving funds between the 2 accounts I marked the transaction as a transfer in the checking account and now I have duplicate transactions appearing in the brokerage account. If I delete the non-transfer duplicate it comes back during a sync.
Ideally when I mark the transaction from one account as a transfer it should find the matching transaction instead of creating a duplicate - anyone know how to resolve this issue?
@youngcw commented on GitHub (Mar 1, 2024):
@jhoward321 This is how you fix that
https://actualbudget.org/docs/budgeting/rules/custom#q-i-use-bank-sync--how-do-i-create-transfers-and-not-make-duplicates
@jhoward321 commented on GitHub (Mar 1, 2024):
What if I actually have more synced accounts? The issue I have is that I have different fidelity accounts. Roth IRA, Taxable etc. On the same day I have automatic withdrawls with the same amount to the Roth and Taxable accounts. Fidelity transactions come through with imported payees like 'MONEYLINE FID BKG SVC LLC MLLX J' where the piece after MLLX J changes between every transaction. I guess I can change the scheduled amounts or dates to not match but is there a manual way to clean these up? I typically just choose one as a transfer to roth, one as a transfer to taxable since the dates/amounts are the same. But if I do a manual transfer I get the duplicates issue.
I think there should be a way to merge duplicate transactions
@youngcw commented on GitHub (Mar 1, 2024):
@jhoward321 If the imported payee is different from all the sources then you are fine, just set the rule accordingly. If they all look the same to Actual you will have to do something else to differentiate like date or amount.
@joewashear007 commented on GitHub (Mar 1, 2024):
I have been using this for a few weeks now and it seems to be working nicely. A couple of thoughts and observations
@duplaja commented on GitHub (Mar 1, 2024):
@joewashear007 To your first bullet point, there's a pull request that was merged in recently, that should do what you're looking for (pending transactions imported as not cleared). PR 315 on Actual Server
Edit: Live now in latest release
@conspiracyx commented on GitHub (Mar 4, 2024):
I keep deleting a transaction from 1/2/2024 that keeps getting reimported on each sync. Any way to deal with this?
@youngcw commented on GitHub (Mar 4, 2024):
@conspiracyx Why do you not want that transaction?
@conspiracyx commented on GitHub (Mar 4, 2024):
@youngcw for context, this is a fresh budget file where I am starting my budgeting from 1/1/2024. While the problem transaction does import as 1/2/2024, it actually pertains to something that was authorized in 2023, which is why I don't want it.
I probably should have said more in my original post, but this "issue" I have made me wonder two things in terms of actual functionality of the feature:
@jwjenkin commented on GitHub (Mar 6, 2024):
Either this, or async calls batched together.
@conspiracyx commented on GitHub (Mar 7, 2024):
Still getting the errant transactions now 90+ days out.
@latetedemelon commented on GitHub (Mar 7, 2024):
I just ran a sync on my accounts and these are the date ranges it searched for:
actual-server | 2023-12-12 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2024-02-02 - 2024-04-01
actual-server | 2024-02-02 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
actual-server | 2024-01-02 - 2024-04-01
actual-server | 2024-02-21 - 2024-04-01
actual-server | 2023-12-07 - 2024-04-01
I'm not clear for the reason on the variablity but it may be a while before you stop seeing this. If you're interested you could do a PR to make this configurable going forward.
@matthewkdies commented on GitHub (Mar 12, 2024):
Anyone know/have a script for how to "adjust" a singular account in SimpleFIN Bridge that could be run once daily from client side maybe? Just responding to my earlier comments, getting information up-to-date on the SimpleFIN side requires an "adjustment" of an account to sync all of the information. If this could be run from the client-side for now (and even more ideally, from the server-side when syncing/as a scheduled task), this would really elevate the syncing IMO.
@jwjenkin commented on GitHub (Mar 12, 2024):
Without looking too deep:
5bcfc71be6/packages/loot-core/src/server/accounts/sync.ts (L817)This appears to be where the sync actually occurs programmatically?
So looking for it in code actually being used, I find:
https://github.com/actualbudget/actual/blob/master/packages/loot-core/src/server/accounts/link.ts#L101
Which seems easy enough to replicate into a script server side in a cron. You would probably just need to start with static params and go from there.
This is all me just going by look, haven't tried it. Though might give it a go after work tonight
@psybers commented on GitHub (Mar 16, 2024):
It was mentioned in Discord that the status indicator never turns red if a specific account failed to sync. I can confirm that behavior.
Ideally, SImpleFIN should behave like GoCardless does where it turns red to show the account was not sync'd. Then we would know to go log in and hit the button on the SImpleFIN website.
@psybers commented on GitHub (Mar 17, 2024):
@youngcw said:
I also have a use case where I keep deleting something and it keeps coming back. I think the sync should look for tombstones on matching transactions and avoid importing if one exists.
My use case is I am tracking a mortgage account. They post escrow-related things as transactions, but those do not actually affect my account balance. So it throws the balance off if I leave it.
My other option is to make my own transaction that undoes the ones I keep deleting. But then I have two transactions that I don't care about in my transaction list, not one.
@latetedemelon commented on GitHub (Mar 17, 2024):
Does actual currently track transactions it does not display / process? If it doesn’t then I think adding this feature is a big lift. Alternatively the imported transactions could be tracked but again that’s a pretty large effort.
I’d suggest breaking it out of this thread as a feature request and see how interested everyone is.
From: Robert Dyer @.>
Sent: Sunday, March 17, 2024 2:40:33 PM
To: actualbudget/actual @.>
Cc: Rob @.>; Comment @.>
Subject: Re: [actualbudget/actual] [Feedback]: SimpleFIN Sync (Issue #2272)
@conspiracyxhttps://github.com/conspiracyx Why do you not want that transaction?
I also have a use case where I keep deleting something and it keeps coming back. I think the sync should look for tombstones on matching transactions and avoid importing if one exists.
My use case is I am tracking a mortgage account. They post escrow-related things as transactions, but those do not actually affect my account balance. So it throws the balance off if I leave it.
My other option is to make my own transaction that undoes the ones I keep deleting. But then I have two transactions that I don't care about in my transaction list, not one.
—
Reply to this email directly, view it on GitHubhttps://github.com/actualbudget/actual/issues/2272#issuecomment-2002626233, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACDYM2OH5EDJVHAAKTSHPE3YYYEVDAVCNFSM6AAAAABCFZKYYGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBSGYZDMMRTGM.
You are receiving this because you commented.Message ID: @.***>
@psybers commented on GitHub (Mar 17, 2024):
I'm not sure what you are referring to with "does not display / process"?
I am talking about transactions that appear in Actual and are then deleted by the user. Actual keeps those in the database but sets a tombstone on them (to mark them deleted). So they are there the next time a sync occurs and it could match against it. Currently, that matching process does not look at tombstoned data.
@latetedemelon commented on GitHub (Mar 18, 2024):
I guess my question is, if I user deleted the transaction, even in error,
How would they ever be able to import their transaction again?
Additionally, the matching is a little bit fuzzy, as it has to be by
nature. What about synchronized data that matches against the “wrong”
transaction?
Don’t get me wrong, I agree something needs to be done. I just think there
are a few items to consider.
On Sun, Mar 17, 2024 at 15:08 Robert Dyer @.***> wrote:
@psybers commented on GitHub (Mar 18, 2024):
If you accidentally deleted, you can
CTRL-zto undo that. If you don't realize it in time to do that, you can always manually add it back in.@yoyotogblo commented on GitHub (Mar 18, 2024):
Ynab4 doesn't reimport deleted transactions. You'd have to manually add it. I imagine they track the imported IDs of deleted transactions and if a new transaction matches that imported id, they ignore it
@AevumDecessus commented on GitHub (Mar 19, 2024):
If you're bad at importing transactions and it's been more than 3 months since you imported your last statement export, you no longer have the option to import them in order to match transactions that are more than 3 months old
Unlinking account allows import of missing transactions, and linking again has all transactions
@chriskol commented on GitHub (Mar 21, 2024):
As someone who just had a SimpleFin integration get added for an institution he was manually tracking, I'd love this. I just picked February as a start date and used reconciliations to start from there and accept everything prior as a wash. Now I have transactions from Jan and Dec popping up and it's messing with a lot of the 'clean slate' I had established.
I guess it's not the biggest thing and I can live with it for another 2 months until the transactions drop off and everything gets back to 'normal' but it would be a great quality of life enhancement to just be able to say "I only care about transactions after this date" when syncing (especially for the first time).
@Fiercefish1 commented on GitHub (Mar 26, 2024):
The sync is working great, nice job!
Feature request: Allow user to review and modify data transform template for each account before starting sync. e.g. Pop up the import wizard (modified for data received from API) on first pull to allow for custom mapping.
*Could be considered a bug, as it's not accurately parsing original payee names from source as it is now, which breaks existing rules.
Currently, location information (city and state) is being appended to the payee name for all my CC transactions, as there is no Actual field for location. The existing import wizard solves this if I import manually today.
@advaitkunte commented on GitHub (Mar 27, 2024):
My bank is being annoying and returning the same names for multiple accounts. Would it be possible to add balance in brackets in the "Link Accounts" model pane, it would make it easier to identify and map the simpleFIN accounts to actual account
@StripedBees commented on GitHub (Mar 29, 2024):
EDIT: Created a separate ISSUE for this
I think I found a bug relating to the simplefin authentication. I had an unrelated issue and I ended up deleting my simplefin API key and creating a new one. After a relogin to actualbudget I went to go add a new account with simplefin. The GUI shows an error
Something internally went wrong. You may want to restart the app if anything looks wrong. Please report this as a new issue on Github.and the docker logs show the below.From the GUI, the loading icon just spins, but I'm not ever able to update/fix my simplefin API key.
Is there anyway to update/fix the simplefin API key manually in a sqlite backup?
@faultoverload commented on GitHub (Apr 3, 2024):
[Bug]
Steps to reproduce:
This bug will cause the overall budget number to grow or shrink by the value returned but it will not show up in your available budget menu. When you goto all accounts you can delete the entry and it will be fixed.
https://media.discordapp.net/attachments/940290142579605514/1224911450833686548/image.png?ex=661f36af&is=660cc1af&hm=67b6684df7f880dcd6cc210985100b0441484e51e0f432c50b6aeb0b175d5ea9&
@ctrlaltd1337ed commented on GitHub (Apr 3, 2024):
Bug: Transactions are being pulled from before my set Starting Balances
Steps to reproduce:
@psybers commented on GitHub (Apr 3, 2024):
This doesn't seem like a bug to me. It should pull whatever the sync provides.
What is a bug, in my opinion, is when you delete something previously pulled and it adds it back in on the next pull. If this issue was fixed, it would also fix your issue as you could just delete any older transactions you do not want.
@MotafokaBR commented on GitHub (Apr 16, 2024):
As a feed back, during my tests I noticed a couple of things that bothered me:
When linking an account, it would be great to have the bank name as a prefix for the account name
It would be nice to have the option to clear SimpleFIN credentials using the UI! (I've used the test connection from their demo and had to manually delete the secrets directly from the SQLlite database.
@armanckeser commented on GitHub (Apr 22, 2024):
Maybe this is me, but I couldn't find a way to import from SimpleFIN to Off Budget accounts. Would be nice to be able to do that.
@AevumDecessus commented on GitHub (Apr 22, 2024):
Should be in the 3 dot menu on the right, this is an off-budget account, when you click link it should give you a list of SimpleFIN accounts that are not already linked to other accounts in your budget

@armanckeser commented on GitHub (Apr 22, 2024):
Ah gotcha! First create the account and then link. So, not a high priority ask, but maybe adding a
Create a new off-budget accountselection to the linking menu (next toCreate a new account) might make sense. Thanks for the reply!@psybers commented on GitHub (Apr 22, 2024):
I would say this is not a SimpleFin-specific issue, but the local account creation dialog:
has a check box for "Off-budget". Probably this dialog:
should do something similar. A simple solution would be two buttons, one for linking on-budget and one for linking off-budget.
I don't have GoCardless but I assume the dialog is similar there.
@joelspiers15 commented on GitHub (Apr 26, 2024):
Not sure if this is just simplefin or the way sync is intended to be used, but I was hoping my partner could use simplefin on their own budget separately from mine. When they went to add a linked account from their budget it comes up with my simplefin data. Clearly this means the access token is shared across budgets.
So I'm wondering, is there a way to separate the simplefin accounts by budget, or is this just not how sync is intended to be used?
@Teprifer commented on GitHub (Apr 26, 2024):
Are you using HTTPS for accessing actual budget? If not then that is likely the issue and what you need to fix.
@duplaja commented on GitHub (Apr 26, 2024):
SimpleFIN Sync is set up on a per-server instance. You'd need a separate instance, if you wanted separate SimpleFIN links. Otherwise, you could set up a joint SimpleFIN account that links to both of your accounts, but that's more of a personal preferences approach.
@joelspiers15 commented on GitHub (Apr 26, 2024):
I am using HTTPS so no issue there.
Good to know, I figured that was probably the answer. Thanks for the quick response!
@armanckeser commented on GitHub (Apr 27, 2024):
A suggestion: could we allow the syncs to run in parallel and/or in the background (when using the mobile interface)
@tinng81 commented on GitHub (May 4, 2024):
@RandomSwiss7983242 were you able to find a workaround? I'm also having to replace the token for simplefin but it seems the only way is to directly change it in the account db.
@larizzo commented on GitHub (May 8, 2024):
I’m importing transaction from RBC using the Simplefin Sync. The Payee ends up being cut off and I only see “Contactless Interact purchase - 6900” I think the “CYCLE PAUL” part is potentially on a new line. Would there be a way to get the full transaction name?
May 6, 2024 | Contactless Interac purchase - 6900 CYCLE PAUL | -$6.88 |
I can gather an logs if you let me know what would be useful.
@youngcw commented on GitHub (May 8, 2024):
@larizzo If you can get a sample of your simplefin data that would help.
@esimkowitz commented on GitHub (May 10, 2024):
I am having an issue where after setting up my setup token and going to the Actual "Add Account" flow to start importing my accounts, the loading spinner is just going on endlessly:

Has anyone else seen this?
Here's my logs:
SimpleFIN is showing that Actual hasn't claimed the token yet, is there a way to reset the sync and try pairing again?
@larizzo commented on GitHub (May 11, 2024):
I definitely can do that but I’m not sure how to get that data.
@mattpetters commented on GitHub (May 11, 2024):
Hey guys, just now becoming familiar with Actual and loving it. Thought about building something like this/wondering why there wasn't a cheaper/free alternative to YNAB for a long time. Anyways, I made a small fix PR for the issue described here. I set up a local instance, exported my budget, created an instance on fly.io and tried to import and found that 1) my setup token for SimpleFIN was wrong, and 2) my accessKey kept coming back as forbidden. I believe this is because the access key was valid for my first instance and not for my new instance on fly.io. The above URL error occurs because it is trying to parse the base64 encoded
accessKey(which is just a URL in the successful case). However, when the setup token isn't valid, SimpleFIN gives back just the word "Forbidden" and that gets saved as the access key in the Actual DB. So obviously that string cannot be parsed like a URL.This PR is a quick and dirty UI fix to let the user get out of that state without having to manually clear rows in their SQLite DB.
https://github.com/actualbudget/actual/pull/2739
@ahandlen commented on GitHub (May 14, 2024):
Experiencing this issue as well, would be great to not have to manage db to fix, thank you
@cliffjao commented on GitHub (May 19, 2024):
The balance in my brokerage account is always out of sync. It seems to take in the balance of my initial sync and only change the balance depending on transactions but not market value changes. I've tried to put the brokerage account as both budgeted and non-budgeted without any difference. Is this a known issue, or am I doing something wrong?
@psybers commented on GitHub (May 19, 2024):
@cliffjao Actual is not designed for this kind of use case. Actual relies on transactions. So unless your brokerage account posts periodic "transactions" to indicate gains/losses, Actual will not directly support it. The sync does not alter the balance, it only finds and inserts transactions.
Some people simulate it manually by doing a reconciliation with the brokerage account's current balance and inserting reconciled transactions to update the balance.
@psybers commented on GitHub (May 21, 2024):
Here is a fun bug. What happens when SimpleFIN deletes one of your banks (note: not me, they did it as part of fixing something on their end)?
It appears that on a sync, Actual just keeps going and trying to sync that one:

I let it run for a few minutes and I do not think it was going to time out. So the other 12 accounts were not sync'd because it was stuck on this missing one.
This probably will also cause the same issue if you log in and remove the bank yourself, but I did not test that.
@psybers commented on GitHub (May 21, 2024):
The second issue might not be SimpleFIN-specific, but I think it definitely triggers it.
I took my unlinked account and wanted to link it. I went through the dialog, selected everything, and hit the button. The UI did not indicate anything was happening, there was no sync button, no linked account indicator next to the name, and the dropdown menu still said 'Link account'. It took it about a full minute (I think SimpleFIN is slow, for me, right now) before it suddenly re-rendered and looked like it was properly linked.
@prizmpaladin commented on GitHub (May 28, 2024):
Was using simplefin sync for a few months and everything was fine. I have multiple accounts at Huntington bank. At some point in late April/early May I started to have an issue when syncing that transactions from one account would come into Actual under a different account. I have tried creating new files, redoing the connection on SimpleFIN side, with no luck. Not sure if the issue is on the Actual side or the SimpleFIN side, and I am not sure how to troubleshoot further. I am running Actual via docker on an unraid system. Any suggestions would be appreciated.
@psybers commented on GitHub (May 28, 2024):
@prizmpaladin Run a script like this: https://gist.github.com/psybers/60e7332f93dc59f3ac5f636827921e17
And then see what the raw data coming from SimpleFIN looks like. If that data is bad, then it is on their end. If that data looks good, then it is a bug in Actual.
@esimkowitz commented on GitHub (May 28, 2024):
New to Actual, which DB entry do I have to delete in order to manually resolve this? Looking forward to the PR getting merged to resolve this for good!
@psybers commented on GitHub (May 28, 2024):
@esimkowitz We have docs for that now! :) https://actualbudget.org/docs/experimental/simplefin-sync#resetting-the-setup-token
@armanckeser commented on GitHub (Jun 8, 2024):
How hard would it be to create an automatic reconciliation behavior (optional)? In each pull, I believe the actual value of the account is returned from the simplefin API, would it be too hard to add an option to the account that it should sync its balance repeatedly (monthly, biweekly, on each pull, etc.) by adding a reconciliation transaction? That way the accounts always reflect the actual balance in the account instead of having discrepancies.
@psybers commented on GitHub (Jun 8, 2024):
@armanckeser
Not hard. But then the UI has an option exposed somewhere. So the question is if that is something Actual wants.
@grosejon commented on GitHub (Jun 19, 2024):
SimpleFIN worked great for the initial import after setup, but since then it has only occasionally imported any new transactions. It's been maybe 2 weeks for me and it's imported about 10% of new transactions across all accounts. Is there a trick to it?
@ctrlaltd1337ed commented on GitHub (Jun 19, 2024):
Not sure if it is proper practice, but I log transactions once a week in Actual. So before I do that, I log back into SimpleFIN and check if any connections are broken. If the connection is broken, click Click to fix it. If the status is OK, just click Adjust on one of them and they should all update. Then run a sync in Actual and it should be good.
@duplaja commented on GitHub (Jun 20, 2024):
@grosejon
There's a couple things you can do.
Check and make sure that none of your accounts need to be adjusted, by logging in to the SimpleFIN console. You can also use a python script to alert you / check programatically, found here. There's a fix in the works for this, that will notify you when you attempt to sync, from within Actual itself. (still in progress)
Check your raw data, from SimpleFIN. (you can use this python script , but be sure to modify start dates), to dump to terminal. One thing you are looking for are is blank org domain (causes issues on current stable, although there's a merged pull request ). If you are using edge that should fix that issue. Also, make sure it's pulling the transactions correctly.
If you're still having trouble, ping me on the Discord server (same name), and I can work with you on any further troubleshooting.
@Medic97 commented on GitHub (Jul 5, 2024):
Has anyone else noticed this bug. After a transaction is imported I categories it and I usually delete the note. However next time I sync it will bring the note back.
Also, If I manually put in a transaction uncleared I would expect on the next sync for it to recognize it and clear it. Instead I noticed it just skips it. Can we get that added as a feature?
@jacmei commented on GitHub (Jul 5, 2024):
Agreed, I would rerun bank sync and the notes that came with the transactions the first time around would come back.
The second point should also be looked into
@duplaja commented on GitHub (Jul 6, 2024):
@Medic97
I think you and I spoke on Discord, about the second point. For anyone else who comes across: it does recognize and clear, but with SimpleFIN updating every 24 hours, the time frames might be a little odd. The one exception to this, is if the amount changes from the original pending amount, such as you leave a tip at a restaurant. This is because a new transaction is generated on the bank's side, so a new transaction ID is generated and sent.
I'm able to recreate the second. It looks like it only does it when the note is completely blank. If you modify the note, but don't blank it out, then it is left as the user set it. There was some discussion around notes and syncing today in #project-bank-sync, as far as the option to not import notes when using bank sync, and some other special handling.
@armanckeser commented on GitHub (Jul 6, 2024):
Fwiw, I don't know if this counts as unintended but say you remove the category from an imported transaction (leaving it blank to not show it in the budget) next sync will rerun the rule on that transaction overwriting your custom change.
@psybers commented on GitHub (Jul 7, 2024):
That to me sounds like a bug in the way rules/deduplication is applied. We definitely want bank sync to run the rules, but if it deduplicated the transaction first it probably should not re-run the rules.
@ther3zz commented on GitHub (Jul 8, 2024):
I'm noticing that income recorded by the simplefin integration isnt being counted on the budget page...
If I look at my transactions, I can clearly see them categorized as Income but this is not shown in the budget page at all...
@youngcw commented on GitHub (Jul 8, 2024):
chances are that you have something misconfigured on your end. Do you have any screenshots of whats happening?
@tinng81 commented on GitHub (Jul 9, 2024):
I know that there is a flip amount option when imported manually, is there any similar option or approach when sync it with Simplefin?
Background: My prepaid credit card is currently being reported as debit by Simplefin but all imported spending are inflow (positive) and the reloaded cash is in the outflow column. It should be the other way around to really reflect the actual balance (positive means money left in the card, similar to a debit card).
@ther3zz commented on GitHub (Jul 9, 2024):
So it looks like the simplefin integration with my bank was having issues... I logged into the simplefin portal and relinked everything and it's good to go now!
@psybers commented on GitHub (Jul 9, 2024):
No. I think there are three possible options here. One is to mirror what we do with GoCardless and provide custom importers for specific (known bad) banks. Then that could just flip the amounts and it would fix it for anyone using that bank moving forward.
The other option is to contact SimpleFIN/MX for that specific bank and see if they can flip it on their end moving forward, which also fixes it for everyone (even those not using Actual).
The third is to have a checkbox when setting up the bank import that would flip the amounts for that specific bank.
@latetedemelon commented on GitHub (Jul 9, 2024):
Based on the fact we’ve seen this issue across multiple providers I think
#3 provides the best future proofing and least customization (which tends
to be fragile).
On Tue, Jul 9, 2024 at 10:24 Robert Dyer @.***> wrote:
@wdpk commented on GitHub (Jul 12, 2024):
i like the checkbox option personally. someone on discord (which i'm now that i'm checking my references, i am seeing it was you, @psybers ) said that getting it fixed upstream was a tall order.
@armanckeser commented on GitHub (Jul 13, 2024):
It seems that the sync is broken on 'edge' release. Imported payees are all Empty. Switching to
latestbroke actual for me withError: ENOENT: no such file or directory, stat '/public/index.html'not sure what to do here tbh@jeffjose commented on GitHub (Jul 13, 2024):
Yup, seeing the same thing as well. I can reproduce this with the existing budget (all new transactions have empty payee) or a brand new budget file (where every transaction, including previously OK recognized payees come out empty)
@duplaja commented on GitHub (Jul 13, 2024):
@armanckeser @jeffjose Trying to get a bit more data on this:
@armanckeser commented on GitHub (Jul 13, 2024):
I have the container on auto update and did not realize it was on edge. So you can assume I was always upto date with the edge pushes. The empty problem has been happening since yesterday I believe.
@jeffjose commented on GitHub (Jul 13, 2024):
Same setup. Mine probably auto updated as well
On Sat, Jul 13, 2024, 12:22 PM Armanc Keser @.***>
wrote:
@duplaja commented on GitHub (Jul 13, 2024):
I've recreated this, and believe I've found the issue. Thank you.
@gabeklavans commented on GitHub (Jul 14, 2024):
Does adding a built-in "recently imported transactions" filter sound useful to augment this feature?
In other budgeting apps I've used that have transaction importing functionality, they usually let the user triage all newly imported transactions with some sort of "review" view or filter. I think having a filter that just shows all the transactions imported in the last sync would be great for any extra manual work that needs to be done (e.g. categorization). It would be even better if the transaction itself maintained a "reviewed" status, but that could get confusing with the already existing "cleared" checkmark, so that might require more thought.
@psybers commented on GitHub (Jul 14, 2024):
@gabeklavans new transactions are bolded. In the current release it only unbolds the account as it syncs the next one, so you wind up with the last account bolded only. But in the next release it will leave them all bolded.
@duplaja commented on GitHub (Jul 14, 2024):
@jeffjose @armanckeser This PR should fix the issue: https://github.com/actualbudget/actual-server/pull/397
I think it's waiting on a second confirmation that it fixes the issue, before merging, so if either of you wish to try it, feel free. I'm using it right now on my copy. (and if you do, feel free to comment on the PR)
@remd commented on GitHub (Jul 21, 2024):
Could someone answer this question from @MatissJanis? I am using my real credentials and would prefer notes to be left empty so that I don't have to fix it afterward.
@jbelluch commented on GitHub (Jul 23, 2024):
My integration is working well - but is there a way to mark the imported accounts as for/off budget? Seems they all import in as for budget, but I have some that are off budget. Thanks!
@psybers commented on GitHub (Jul 23, 2024):
If you are using the latest release, you can select if it is on or off budget when you link:
@Towerism commented on GitHub (Jul 24, 2024):
I can't get past the setup token part of this. The app keeps asking me to re-enter the setup token. I checked the network tab in the dev tools, and found that the /accounts endpoint always returns
Edit: when I check my simplefin account, the app status is still unclaimed.
@Avi-Lance commented on GitHub (Jul 27, 2024):
Thank you folks for all of the work on this feature! It has been working very well. There have been a couple of hiccups, but solutions have already been mentioned or implemented.
Something I have considered doing is having multiple people use different encrypted budgets within a single instance to save on compute costs. The issue is that the SimpleFIN setup key is shared across all budgets. It would be nice if you could set an individual SimpleFIN key for each budget.
@jpetso commented on GitHub (Aug 2, 2024):
I just tried out Actual because it has SimpleFIN support. Initial import could be better.
My SimpleFIN Bridge account has data older than just 90 days (I started tracking around the start of the year thanks to Mint) and I can see that in my SimpleFIN JSON downloads. However, Actual never tries to download the entire thing, it always sticks to the last little bit. What it should do is leave out the
start-dateparameter when initially importing the transactions, and only add it for subsequent syncs.@psybers commented on GitHub (Aug 2, 2024):
I'm not sure I agree with that. When starting to use Actual for the first time, lots of historical data is actually quite annoying. You really want to start fresh, more or less.
@jeffjose commented on GitHub (Aug 2, 2024):
Is the 90 day restriction imposed by Actual or SimpleFIN? I naively took that to be a SimpleFIN restriction, but if it is Actual imposing it - it does make sense to give users the option to customize it.
I very much like to import the whole history, if it is available.
@psybers commented on GitHub (Aug 2, 2024):
My understanding is it is more the banks themselves with the limit. Either way, if you find more history and want to import it you can do so. You can always write a script that grabs older data from SimpleFIN and imports it.
@gabeklavans commented on GitHub (Aug 3, 2024):
It's kinda hard to use this to argue against simply giving the user the option to attempt to import more than 90 days of data; in fact I don't see an issue with letting the user specify whatever number of days they want for Actual to attempt to import. It can default to 90 and there can be a blurb about potential annoyance with importing more than that, but I'd imagine it's just one number somewhere that can be specified. Why take away the option for people who want their complete history easily imported?
@MatissJanis commented on GitHub (Aug 3, 2024):
With Gocardless we import as much data as we possibly can. For some banks it's 180 days, for some more and for some less.
IMO SimpleFin should follow the same logic: import as much as possible.
If the user wants to import less - they can always create the "starting transaction" which should set the lower limit for the import.
Just my 2cents :)
Edit: these are just my initial thoughts without spending any time to look at SimpleFin APIs or the implementation. Maybe there is a good technical reason to limit to 90 that I'm missing.
@grosejon commented on GitHub (Aug 4, 2024):
Did anything change with Simplefin after the 24.8.0 update? Since updating my docker container, it now throws an error when I attempt to sync.
@palmergw commented on GitHub (Aug 4, 2024):
I'm also running into a sync error, though it happened prior to updating my docker image to latest (v24.8.0), and has continued since grabbing latest.
It seems that something about the /simplefin/transactions request is getting a 502 error from simplefin right now that causes the server to fail and restart.
This appears not to be an issue with Actual Budget, apart from gracefully handling the error. Simplefin just seems to be down right now.
@grosejon commented on GitHub (Aug 4, 2024):
Yes, this is also what I'm seeing. If it's simply a Simplefin error, then I will just retry tomorrow.
@captainR0bbo commented on GitHub (Aug 4, 2024):
I am also getting this same error.
Before this started, I have a period of time in at least one of my accounts where transactions are missing, back in April. I am not sure how to recover them. But it has my balances all messed up.
@nikolarobottesla commented on GitHub (Aug 4, 2024):
Looks like something is wrong with the simplefin bridge server.
https://beta-bridge.simplefin.org/
@duplaja
I just emailed info@simplefin.org
@psybers commented on GitHub (Aug 4, 2024):
From Actual's side, there is only one issue, which I have two PRs to fix. That issue is the fact that Actual server crashes due to SimpleFIN being down. After those two PRs, it will not crash and simply indicate a connection problem.
There is no need for further reports, as the problem is that SimpleFIN is just down. It will come back eventually, but until then Actual obviously can't use it.
@wrycu commented on GitHub (Aug 6, 2024):
@psybers any chance you can link the PRs so those of us following along at home can see their status?
@psybers commented on GitHub (Aug 6, 2024):
@wrycu:
https://github.com/actualbudget/actual-server/pull/409
https://github.com/actualbudget/actual-server/pull/410
@Towerism commented on GitHub (Aug 7, 2024):
I'm still getting this error using the actual-server edge docker image. My specific scenario is this:
at this point, I'm confused because it continues to ask me to enter a setup token.
actual server is rejecting as "invalid access token". Which is funny because I can demonstrate that actual didn't even successfully generate the access token, as the setup token is still shown as unclaimed at this point.
If I check simplefin, the simplefin app connection is still unclaimed. And I am actually able to claim the setup token manually via the CLI, so I know something is wrong with actual server.
here is how I can verify that simplefin is working:
at this point the simplefin app connection is now active because I performed the setup via the CLI, so something is going wrong with actual server.
if I check actual server logs, I find:
@psybers commented on GitHub (Aug 7, 2024):
That log is unrelated. It shows in every server's log at startup now, for some reason.
One thing you can do is check the server database to see if it has anything stored for simplefin credentials. Look in your server-files folder for an accounts.sqlite file and see if it stored anything.
@Towerism commented on GitHub (Aug 7, 2024):
@psybers the simplefin_token is saved correctly. simplefin_accessKey is NULL.
@captainR0bbo commented on GitHub (Aug 7, 2024):
At least one of my accounts is missing transactions from more than 90 days ago. It is missing a period of time - about 15 days. How can I go about trying to sync them?
@latetedemelon commented on GitHub (Aug 7, 2024):
If you really want to do this I found the fastest way was to unlink, upload
the transactions via ofx manually and relink.
On Wed, Aug 7, 2024 at 15:51 captainR0bbo @.***> wrote:
@jrgiacone commented on GitHub (Aug 10, 2024):
When using tracking accounts for investments, is there a way to have the sync just update the total balance as a reconcile? Also does anyone have any issues getting capitol one to sink?
@psybers commented on GitHub (Aug 10, 2024):
No. But I have a helper script that does this. https://github.com/psybers/actual-helpers
@jrgiacone commented on GitHub (Aug 10, 2024):
I tried it but I'm getting stuck somewhere I made an issue, but it is probably user error
@endigma commented on GitHub (Aug 11, 2024):
I think SimpleFIN has some sort of rate limit that Actual doesn't obey when there's many accounts.
Their API starts returning 429 after some requests but doesn't have a Retry-After header which complicates things.
This consistently makes syncing on some of my accounts fail as when doing "sync all" they are ordered after the rate limiting starts.
@duplaja commented on GitHub (Aug 11, 2024):
There's a WIP pull request to sync multiple SimpleFIN accounts in a single API call. I believe it still has the front-end part to do, but that should help take care of the issue. https://github.com/actualbudget/actual-server/pull/384
@jrgiacone commented on GitHub (Aug 11, 2024):
Curious if there’s any way to have an approval tag or for approval on simplefin imported transactions for review to know what is imported
@psybers commented on GitHub (Aug 11, 2024):
Reconcile those accounts periodically. Then anything imported is not reconciled and you can check them.
@Towerism commented on GitHub (Aug 16, 2024):
@psybers I finally got around to trying a fresh install of actual. I was able to get the simplefin accesskey working on the fresh install. However, if I imported my actual data from my main instance, now I have the issue that I described before. I'm not sure where to go from here in terms of troubleshooting. If you could tell me where I can go from here it would be much appreciated.
@psybers commented on GitHub (Aug 16, 2024):
@Towerism You should click on add account, then next to the simple fin button there is a button with 3 dots. Click that and reset your credentials.
Then go back in and use a brand new setup token and things should start working.
@Towerism commented on GitHub (Aug 16, 2024):
Sadly this did not work. It's the same outcome as before. There's gotta be something about my actual data on the server that is screwing this up. I just don't know what it is.
@csobrinho commented on GitHub (Aug 19, 2024):
Hi folks, trying to run the SimpleFIN integration. I've noticed that sometimes I can't sync or see the accounts and if I wait a few minutes then I can see the account list again but sync is still broken. It was working great but then it stopped. Not sure if I have too many accounts (12 banks, +-20 accounts) or running into some sort of rate limit or caching?
Also, shouldn't the SimpleFIN token (inside
server-files/account.sqlite) be encrypted? Thanks!!@csobrinho commented on GitHub (Aug 19, 2024):
Sent the request manually and got:
This kinda breaks the model in case you add an account and trigger a sync each time :(
@Towerism commented on GitHub (Aug 20, 2024):
@psybers I finally found the issue. My docker network was ipv6 enabled, but at some point I intentionally disabled ipv6 on my router. Funny thing was that I had no idea this was this issue, because there was nothing in the logs to indicate this until I tried manually set the accesstoken in the database. And then the logs were finally able to indicate that it was trying to reach an ipv6 address and failing. So I deleted and recreated my docker network without ipv6 and now it works!
@beatgammit commented on GitHub (Aug 31, 2024):
I've set it up and so far, I'm liking it! Here are some thoughts.
I can't seem to move an account from "For budget" to "Off budget." The advice I found is to create a new account and move transactions, but it's not obvious how this works with the sync.
If I add a new account, I need to click through a few times to find it (e.g. add account, link account w/ SimpleFIN, select category, etc). It would be nice to have the bank sync prompt me to add (most likely) or explicitly ignore (very unlikely) accounts, and then remember that setting.
When there's a network, there are a ton of messages popping up all over the screen. Perhaps further errors should be ignored if there's already an error on screen instead of just stacking up.
But honestly, it's been pretty smooth! I set it up a couple weeks ago, and then got around to categorizing my transactions, so I haven't had a lot of experience "living" with the sync, but I haven't had any major issues.
@kjohnsen commented on GitHub (Sep 4, 2024):
I got this set up a few days ago; it's working so far mostly, except a few institutions supposedly supported aren't working (annoying since my main checking account and savings accounts are in one of them). The developer responded and will hopefully get the connections fixed soon
@muammar commented on GitHub (Sep 4, 2024):
Since last actual budget update, SimpleFIN stopped working for me. Any idea on how to debug this?
@ncsusix commented on GitHub (Sep 5, 2024):
Is it possible to have a setting to not download pending transactions. I'm having issues with transactions at restaurants that include a tip. Actual will import the initial pending transaction which will not include the tip value. When the transaction does finally post, the value does not get updated in Actual. I have to manually update the transaction to include the tip value.
@Karthik7417 commented on GitHub (Sep 5, 2024):
Hi,
I just setup actual budget from scratch with actual-server edge docker image. I'm getting the same error that @Towerism posted last month.
Also, SimpleFIN shows my token as unclaimed. I'm confused about how to solve.
@shanep2300 commented on GitHub (Sep 14, 2024):
I had one issue fixed on SimpleFINs side with an account another one I think it’s ActualBudget.
FidelityRewards keeps trying to sync 2 monthly balance payments as payments and not deposits. Also those 2 transactions are from 2 months ago and still appears today even though they already exist. No other bank has this issue. Tried removing and recreating the link from scratch multiple times.
Adjusting the auto transactions to the appropriate deposit amount still brings in the wrong transactions when I do a sync. It’s stuck in a loop. No matter what I do to try and or even those 2 transactions they come back.
@psybers commented on GitHub (Sep 14, 2024):
@shanep2300 You should use a script like this to verify the data coming from SimpleFIN: https://gist.github.com/psybers/60e7332f93dc59f3ac5f636827921e17
What you describe sounds like bad data coming from SimpleFIN. Actual only adds transactions it gets from that API.
@latetedemelon commented on GitHub (Sep 14, 2024):
Try this if you want to see the data in Gsheets.
https://github.com/latetedemelon/simplefin-to-gsheets
On Sat, Sep 14, 2024 at 08:34 Robert Dyer @.***> wrote:
@shanep2300 commented on GitHub (Sep 14, 2024):
Alright so I assume it's bad data. One of the transactions is showing up twice when I ran the script as a positive and negative amount, which the sync keeps trying to add the positive one when it should just be the negative. The other transaction that shows in AB is not showing from the script as it's older but I'm assuming it's the same issue.
This should be rerouted back to simplefin?
@psybers commented on GitHub (Sep 14, 2024):
@shanep2300 Yes, and give those two transactions from the script when you report it. Copy paste the fun transaction data so they can send it upstream to Mx.
@MatissJanis commented on GitHub (Sep 18, 2024):
SimpleFIN has been released as a first-party issues. If there are further issues - please open individual Github Issues.
The feedback thread is now closed.