Closed culpeppers closed 1 year ago
I am still debating how I would like to implement Client ID and Secret. Previously I was setting these in the config files, but a more user-friendly solution is preferred.
Hereās the setup we have for Nordigen at the moment: https://actualbudget.github.io/docs/Installing/Configuration#nordigen
I think it would be nice to optionally load these secret values from the database and offer an option in the web app to set them, but that would be part of a different feature.
Great thanks! I'm happy to borrow as much from Nordigen as possible to get this out the door, and then work on refinements afterwards.
I think this is great. With Nordigen currently being the only option, our friends in both the United States and Canada are left out on the account syncing feature.
:sparkles: Thanks for sharing your idea! :sparkles:
This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open. This doesnāt mean we donāt accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).
The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+
Donāt forget to upvote the top comment with š!
Hey All! Is there any progress on this yet? I don't mind collaborating on this feature.
Nothing that I know of ā feel free to pick the work back up!
@jinB2021 https://github.com/actualbudget/actual-server/pull/191/files shows the status of the most recent Plaid work I've found so far. I'm stuck unable to use Actual without a Plaid integration given accounts I'm working with on my end, so I'm actively considering doing the Plaid integration work atm. If you're still interested in pairing up, let me know and we might be able to work on it together
@acorncom Yeah I would be down to pair up for the work. Would we be using that branch as the base or have you already started in a separate branch?
I'm also interested in helping with this feature, I'm still new to this codebase but would be willing to try to implement this or pair on this feature.
@seanculver / @jinB2021 I'm still on the fence on using Actual due to a few other items we need for our personal accounts (multi-currency is important on my end). Maybe the two of you could pair and I could keep an eye on things / drop in occasionally? I'm pretty new in the codebase myself, so not sure my involvement significantly alters how fast this work goes ... š
@acorncom Understandable, this is a trial for me, everything that I need besides the bank sync is here for the most part. I also would like multi-currency but I've just converted my foreign bank accounts into USD for now, not ideal but for me that works as it's not my main budget.
I'm digging into how Plaid works, I've never integrated it into an existing app but was always curious about it. Here's a useful video I found from the Plaid team. https://www.youtube.com/watch?v=sGBvKDGgPjc
@jinB2021 Let me know if you are interested in Pairing sometime.
Just curious as I am not in the US or Canada. But how would Plaid be paid for? I canāt see a facility on their website for users to pay on an individual basis and I donāt really understand how an open source project would bear the cost ? Hopefully there is an answer I have completely missed!
@Kidglove57 There is a free "developer" tier that, iirc, limits you to 100 synced accounts.
@youngcw Thanks! I did spot that on their pricing but, say, as an example each of our users has 3 accounts, I was thinking that would not get us very far? 30 or so users. The original dev of Actual used to talk about $500 per month minimum subscription needed for full use.
It would have to be like the current goCardless setup where you have to bring you own credentials. I setup a developer login but never got around to trying to figure it out.
@youngcw thanks, that's helpful. It just never occurred to me that it might be possible for say 250 individual Actual users to each set up their own Dev account.
I just wanted to be sure that the Actual team are protected from any monetary liabilities.
I just wanted to be sure that the Actual team are protected from any monetary liabilities.
@Kidglove57 Firefly-III has a secondary project and container that runs the plaid integration so its not part of the main project, probably for this reason. And the user has to provide their own login. Its seems to be working fine for them so I wouldn't expect much issue.
That's great! Thank you. I will take a other look at Firefly
@youngcw Thanks for the heads up on the firefly repositories. I see there are two repositories with connectors for Firefly.
https://gitlab.com/GeorgeHahn/firefly-plaid-connector https://github.com/dvankley/firefly-plaid-connector-2
They are both docker containers and are written in .net / java, but they might be useful as a reference.
So, now that I've started using Plaid, here's something else to think about: I watched this video earlier, and it seems you need to apply to switch your API to development mode. That's when you can start pulling real data from banks.
I've applied but I don't know how they feel about everyone applying.
I stumbled across this repo as well. https://github.com/infiniteluke/actualplaid
@seanculver Interesting. I never got very far, but everything I saw seemed like all you needed was to use the development key instead of the sandbox key and you were good to go.
I think there are a few old repos that connected old actual to plaid, but I didn't dig far enough to see what all needed updated. I think that one you linked was the best one.
Just to throw it in the mix, here's an interesting read on the security implications of using a service like Plaid. https://news.ycombinator.com/item?id=28228051
People in this thread certainly have strong opinions, I don't know how legitimate some of these claims are.
I stumbled across this repo as well. https://github.com/infiniteluke/actualplaid
I forked this repo and made "some" changes: https://github.com/Thiesjoo/actualplaid. It now works with the most recent version of Actual and Plaid! Hopefully you guys can implement this functionality inside Actual, as that would be way easier than using a CLI script.
I forked this repo and made "some" changes: https://github.com/Thiesjoo/actualplaid.
This looks pretty great so far, but it looks to be hard coded to be in the Netherlands. Could you add a env var to set the region?
@Thiesjoo Looks like you already had a env setup for the country, it just needed added to the env file. I did have to change the language, so that probably should also be an env var.
@Thiesjoo Looks like you already had a env setup for the country, it just needed added to the env file. I did have to change the language, so that probably should also be an env var.
Yep, repo is now updated, 2 env vars: 1 for which countries you should select your bank from, and 1 for the language of the plaid interface
@Thiesjoo Thanks for this! This is a great first step. I've got it working on my local machine, I've tried it with a development account and successfully synced transactions. I made a PR for a small breaking bug that I came across.
This would be a better experience as an actual integration into the project. If the project maintainers didn't want it in there, this would be an okay alternative for a basic solution. I would want to add a few more features to make it more robust.
This would be a better experience as an actual integration into the project. If the project maintainers didn't want it in there, this would be an okay alternative for a basic solution. I would want to add a few more features to make it more robust.
Of course! That would be the most optimal solution. It would also be better to use the new Plaid api's with webhooks (The repo is using a deprecated API now I think). This would mean that we do not have to make api calls every day, but can just update with transactions with webhooks!
What kind of features are you thinking about? I was thinking maybe category linking based on Plaid's suggestions, but maybe Actual rules would be better for that.
@Thiesjoo what version of actual-server and the api are you using with your plaid linking? Im getting all sorts of errors that seem to be on the Actual side.
@Thiesjoo what version of actual-server and the api are you using with your plaid linking? Im getting all sorts of errors that seem to be on the Actual side.
I'm using the most recent version of Actual v23.8.1
and the Actual api version is defined in package.json so 6.2.1
.
What kind of errors are you getting? Is your budget maybe encrypted? I have not included functionality for that.
I think my issue was that I couldn't pull the budget down via the api if I had a web page of the same budget open. If I closed the budget in any browser windows then it worked. Ill see over the next few days if things are working on the plaid side.
Yeah I keep wanting to work on this but life keeps getting in the way :(
I know how that goes.
@Thiesjoo I put in a PR that takes care of pending transactions instead of erroring out. Pending gets marked as uncleared, then once no longer pending, cleared.
As an end user who has a BofA account I would looove to see this feature implemented. Would be a total game changer and finally let me switch from Mint.
Aren't there some privacy concerns with Plaid?
Is nobody worried about that?
I think the privacy concerns would be true for all banking API aggregators. It would make a lot more sense for bank APIs to work directly with anyone having business with the bank, but doesn't sound practical according to this other comment https://github.com/actualbudget/actual/issues/1661#issuecomment-1710678465 :(
I think the privacy concerns would be true for all banking API aggregators. It would make a lot more sense for bank APIs to work directly with anyone having business with the bank, but doesn't sound practical according to this other comment #1661 (comment) :(
IDK, I think adding one of the most egregious offenders of consumer privacy to an open source project of this nature is a bad idea. Just because we can, doesn't mean we should.
The financial data company Plaid must pay $58 million and remove large amounts of consumer data in a class action settlement after harvesting and selling users' data
As far as the Plaid privacy concerns go, I don't think a project should make a value judgement on behalf of its users. It seems like there is enough support for this, especially now that the Mint refugees like myself are on the hunt for a replacement.
If it's an issue for someone, they can always choose to keep the feature off.
I am looking for an alternative to Mint and hoping to use Actual. I have installed the ActualServer on my SynologyNAS in Docker for my wife and I to use. The NAS is not exposed to the internet, only accessible from LAN. I don't have a lot of experience with this stuff and was hoping somebody could help a bit.
I don't really understand the setup instructions for the Plaid integration. Since I am using Docker, actualserver was installed using container manager and the docker-compose text which I edited to my specific needs. The location of data is stored at /volume1/docker/actualbudget/actual-data:/data.
Perhaps I am too out of my element to do this?
@policeshootout if you are just starting I recommend you try using csv/ofx import or manual entry to start. It does take at least a few days to get plaid syncing setup since you need to get approved by plaid for developer access. Once you have access it's not too bad to setup, but you have to manually setup connections and accounts.
Discord channel for plaid sync https://discord.com/channels/937901803608096828/1171096337111064626
I was looking at the Plaid docs because I was thinking of writing my own program to fetch data from Plaid and I noticed an interesting API called enhance that can take some basic info about a transaction (most of which Actual stores), and get back data that is cleaned up a lot from the usually messy payee that banks provide: https://plaid.com/docs/enrich/ Since Plaid's transaction sync only allows a maximum of 24 months of history, this might be useful to people like myself who are interested in historical data. I'll make a follow-up if I end up using it
In order to use it even in the development environment, you must sign up for production access. In the development environment you only get 1000 transactions total. For production, the cost is $4 per 1000 transactions.
None of the Discord links posted on any of these issue threads have worked for me (says no text channel or I don't have access), so I haven't been able to follow all the discussion but do have a question. @Bryce-MW pointed out that Plaid requires payment for the "enrich" feature. However, for normal transaction syncing into Actual, am I right that this could be done for free up to 100 financial institutions (each user generates their own tokens)?
(Also, @youngcw @tjfinlinson, any way for me to get access to follow the Discord conversation since the link is posted publicly, or no?)
@aescgar The Discord is public but maybe you have to join before it works. Link should be https://discord.gg/pRYNYr4W5A
Yes you can get data through Plaid for free. It requires a bit of setup and Actual doesn't support it yet (there's some code in there that could be used as a starting point if anyone actually wants to implement it). I think an easier temporary solution would be to use a Python program that connects to Plaid and outputs an OFX.
I did try that but I found out that it didn't really do what I had hoped and I can't even test Enrich on real data without signing an agreement which I don't want to do right now. I have learned many interesting and many frustrating things about getting the best quality data. I even tried using ChatGPT to improve the quality of my data (which sort of worked but not well). I have a few more things that I want to try but my life has been busy. For now, I just have a lot of rulesā¦
FYI there is no longer a free option for Plaid as of June 20 2024. It may still be worth setting up a Plaid integration for those that prefer Plaid over simplefin.
SaltEdge offers a "test" status tier to Firefly III users which allows up to 10 accounts connections, but has absolutely no support from them - users just have to sign up then request it. I don't know nothing about coding or integrations but just throwing that into the mix, as neither Plaid, GoCardless or SimpleFin support the banks what I am.
Verified feature request does not already exist?
š»
Pitch: what problem are you trying to solve?
Integrate Plaid Account Linking into Actual. This feature would, at a minimum, pull transactions into linked accounts.
Describe your ideal solution to this problem
I was the originator of the previous Plaid integration PR. As a lot has changed with Actual since that work, I plan on starting from scratch to ensure compatibility and close integration with other development work.
I am still debating how I would like to implement Client ID and Secret. Previously I was setting these in the config files, but a more user-friendly solution is preferred.
Teaching and learning
The biggest issue with Plaid sync is back-end setup. Making sure Client ID and Secret are set appropriately. Each user would need to have a specific Plaid account. Documentation on how that is done would go a long way for users.