A script to synchronise Credit Card Transactions and Monzo, which can be setup to be run every 15 minutes via cron.
I haven't personally tested all of these but I don't see why it shouldn't work! The truelayer api is pretty straightforward
:exclamation: Attention :exclamation: |
---|
The issue with the refresh token I had highlighted was in fact a misconfiguration! When you are creating your Monzo 'client', make sure to make it 'Confidential"!
To run this project, you will need to add the following environment variables to your .env file. Duplicate the .env.example
file and rename to .env
, then fill out the details. The database can be whatever you want to call the database file.
truelayer_client_id
truelayer_client_secret
monzo_client_id
monzo_client_secret
pot_id
monzo_account_id
database_file
Clone the project into directory
git clone https://github.com/mtthidoteu/credit-monzo
.env
file/pots?current_account_id=$account_id
.env
.env
Redirect URL
set to http://127.0.0.1:5000/callback
and 'Confidentiality' set to 'Confindetial'!.env
pip install -r requirements.txt
python script.py auth
Once the setup has been completed. You should be able to run a synchronisation by running
python script.py run
This will download all your 'pending transactions' from your Credit Card account and add them to our database. It will then deposit that amount into a pot!
You will probably have noticed but this script doesn't monitor transactions it only checks the transactions once and exists. What I would recommend if having a cronjob or something similar have the script run every 15 minutes for instance.
For example:
*/15 * * * * /path/to/python/or/venv /path/to/cloned/repository/app.py run
Please upgrade to > Python3.9
Currently I haven't implemented a very good error notification system and the script won't really throw errors. It'll just keep trying. However, if you notice it stops working, re-run python script.py auth