As Hetzner and most of other cool providers do not provide an API to check the payments status, this script can help you to check it regularly, if you have a lot of accounts to check. Both providers and consumers (us) are interesed to pay in time, but for some reason they just don't. I even created a ticket to Hetzner to ask them to provide an API to check the payments status, they received it, but no updates yet.
So one can set up this script, check alerts in telegram chat, pay in time, and avoid suspensions.
The script uses playwright framework (headless browser).
Providers supported:
- Hetzner
- RedSwitches
- Virtual Systems
- Scaleway - they do provide API for billing ❤️
Requirements:
- A working directory to put screenshots to (helps to debug).
- Google Service Account to access Google Sheets API and a Sheet to put checked payments.
- Telegram Bot API token to send messages to Telegram and a chat ID to send messages to.
- Docker.
- Create
secret.jsonwith Google Service Account to access Google Sheets API to put checked payments in a Google Sheet. - Create
config.yaml, put working directory, google sheets, telegram setings there. - Define a list of provider accounts to check in
config.yaml. - Build and run the docker container:
docker build -t payment-checker . docker run -it --rm \ -v /home/user/payment-checker/secret.json:/app/secret.json \ -v /home/user/payment-checker/config.yaml:/app/config.yaml \ -v /home/user/payment-checker/screenshots:/app/screenshots payment-checker - Create a cron job like this to check the payments daily in the morning:
15 9 * * * docker run --rm -v /home/user/payment-checker/secret.json:/app/secret.json -v /home/user/payment-checker/config.yaml:/app/config.yaml -v /home/user/payment-checker/screenshots:/app/screenshots payment-checker > /home/user/payment-checker/cron.log 2>&1