Money Manager API
https://github.com/halemiles/moneyman-apiWhen are my bills due?
Over the years, all of my bills come out on different days and sometimes it can be hard to remember what comes out next. Some of these bills can be incredibly hard to change. So I over-engineered an API to track them all and let me know what is due by the next payday.
Following the rules
The great thing about most of my bills is that they are predictable. Direct debits in particular have certain rules they follow depending on when they are due. Weekends and bank holidays can affect when money comes out of your bank account.
The general rule of thumb with Direct Debits is if they are due on a weekend or bank holiday are then processed on the next day which is not a bank holiday or weekend. There may be other rules for other recurring bills.
Examples
- Direct Debit is due on a Tuesday and it is not a bank holiday. It will then be processed on that day.
- Direct Debit is due on a Saturday and there is no bank holiday Monday. It will be processed on Monday
- Direct Debit is due on a bank holiday Monday. It will be processed on Tuesday unless that is also a bank holiday then it will be the Wednesday
Planning ahead
The API has the concept of a recurring transaction and a start date. Because we can guess roughly when bills are supposed to come out, we can plot out one or more years with records called “plan dates”. All we then need to do is ask out API to get any plan dates between a start and an end date.
Wheels within wheels
There are also calculations for when the next and previous paydays are. So we can just query an endpoint like api/dtp/current
and it will automatically get plan dates between now and the next calculated pay date. Why not get the API to think for you, right?