mintable
mintable copied to clipboard
Teller import integration
This PR adds support for using the Teller service for importing transactions from bank accounts.
When I tried using Mintable with the Plaid integration, I was only able to connect with accounts at one financial institution that I use. With the Teller integration, I'm able to connect to all of the accounts I wanted. So far I have been able to sign up and use Teller on a small scale for free.
See the account linking interface in Teller:
I've included documentation below, but the set up process is very similar to Plaid. First run mintable teller-setup
to provide the account ID and credentials (for Teller, certificate files). Then run mintable teller-account-setup
to link your accounts. Finally run mintable fetch
to import the transactions.
The Teller and Plaid integrations can both be used for importing from different accounts.
Nice. No issues so far that aren't of my own creation. Wish Teller supported more banks, especially Schwab.
Doesn't support github actions due to needing the files. Tried getting github actions to turn a secret into a file, but I think I was having issues with multilines. An alternative is having the cert/key as a string with \n for newlines.
Will be messing with it more.
@ericcater Thanks for the review!
One approach that might help with the storing the certificate files in secrets for GitHub Actions is to encode the certificate file as a Base64 string. See: https://stackoverflow.com/a/66603047
Thanks for this PR @arithmetric 🥰
@ericcater - we just added support for hundreds more FIs recently. We're working hard to get the total number closer to that of Plaid and others over the next few months. Schwab is coming soon!
this worked great for me, awesome job @arithmetric. I hope this gets merged asap!
Great idea; love the integration. This worked for me, up until adding an account. Clicking "Link an account" seems to have no effect.
How do I run this? I cloned the branch from arithmetric's repo. Thanks.
How do I run this? I cloned the branch from arithmetric's repo. Thanks.
Normally, these are the steps you'd take:
- Make sure you have
npm
,nodejs
, andtypescript
(I usenvm
to manage these for me, but you can search online for how to install these for your OS) - cd into the cloned branch
- run
npm install
-- this installs the dependencies for the project - run
npm run build
-- this builds your project - run
npm link
so you can use themintable
command in the Terminal - Follow the directions above for setting up Teller accounts or the instructions in the original repo for setting up Plaid, google sheets integration, etc.
To remove, you would follow these steps:
- run
npm unlink mintable -g
-- this removes themintable
command from your environment (i.e. removes the ability to runmintable
in your Terminal) - delete the cloned branch (i.e. in Debian/Ubuntu you'd run
sudo rm -r /path/to/your/cloned/branch
(-r
says to remove directories, not just files)
I've had my own issues getting this to run the Teller integration after installation, but I'll post a solution if I have time to work through the code.
I've had my own issues getting this to run the Teller integration after installation, but I'll post a solution if I have time to work through the code.
Thanks for explaining! I was missing typescript
. Do you know how I would run mintable without having to use the link
command? I tried npm run build
but it did not run anything.
I was able to connect to Teller, and went through the account enrollment process, but like your issue, I was not able to fully complete account linking.
(node:5935) UnhandledPromiseRejectionWarning: Error: EISDIR: illegal operation on a directory, read
at Object.readSync (fs.js:592:3)
at tryReadSync (fs.js:366:20)
at Object.readFileSync (fs.js:403:19)
at /home/user/Downloads/mintable-teller/mintable/lib/integrations/teller/tellerIntegration.js:61:32
at new Promise (<anonymous>)
at TellerIntegration.tellerApi (/home/user/Downloads/mintable-teller/mintable/lib/integrations/teller/tellerIntegration.js:57:20)
at TellerIntegration.<anonymous> (/home/user/Downloads/mintable-teller/mintable/lib/integrations/teller/tellerIntegration.js:109:59)
at step (/home/user/Downloads/mintable-teller/mintable/lib/integrations/teller/tellerIntegration.js:33:23)
at Object.next (/home/user/Downloads/mintable-teller/mintable/lib/integrations/teller/tellerIntegration.js:14:53)
at /home/user/Downloads/mintable-teller/mintable/lib/integrations/teller/tellerIntegration.js:8:71
at new Promise (<anonymous>)
at __awaiter (/home/user/Downloads/mintable-teller/mintable/lib/integrations/teller/tellerIntegration.js:4:12)
at /home/user/Downloads/mintable-teller/mintable/lib/integrations/teller/tellerIntegration.js:99:83
at Layer.handle [as handle_request] (/home/user/Downloads/mintable-teller/mintable/node_modules/express/lib/router/layer.js:95:5)
at next (/home/user/Downloads/mintable-teller/mintable/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/user/Downloads/mintable-teller/mintable/node_modules/express/lib/router/route.js:112:3)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:5935) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:5935) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Copying over my comment from the associated issue:
Thanks @arithmetric! I just got this setup and it was very simple, worked very easily!
When I ran fetch, the initial transactions failed due to timeout. But after I re-ran mintable fetch 3 times, it finally worked for all my accounts!
Thanks for adding this!
Do you have guidance on safely adding the certificate to Github actions?
@ericcater - we just added support for hundreds more FIs recently. We're working hard to get the total number closer to that of Plaid and others over the next few months. Schwab is coming soon!
Curious what this comment meant last year. When I try to link Schwab or Chase using Plaid, I get an immediate "Something went wrong".
This is amazing! Great work @arithmetric 🎉