I built my billing system on top of Django and it's used in 2 online services for a few thousand users and hundreds of invoices a month.
You have to be mindful of some edge cases, but if the scope is kept narrow, it's doable. The added benefit is the flexibility to fit it to your use case. And with Python, you get many high-level libraries, e.g. for decimal calculations and PDF generation.
Well, you can - you can have a policy that forces payments from a select group. Some users will complain when "No, you cant pay with 2 chickens every 3rd full moon", but that is too bad.
Of course you then have to be willing to turn down money/customers. As someone who has worked for quite large traditional companies, we've ended up not buying from certain companies because they couldn't invoice us like we wanted to be invoiced.
I built a billing system for a web hosting company in PHP, almost 20 years ago. This was for a few hundred users. There were a couple of edge cases, but nothing incredibly challenging.
Basic subscription and it was 20 years ago. There was some grandfathering but that was pretty simple to solve with a status column on a plan table, etc.
The use case is tiny at the beginning but the complexity increases over time to be honest. The scope is never as narrow as you think at the beginning of the project. Libraries are great, they can help you implement faster, but if the company grows, you will need an entire team to build and maintain it
You have to be mindful of some edge cases, but if the scope is kept narrow, it's doable. The added benefit is the flexibility to fit it to your use case. And with Python, you get many high-level libraries, e.g. for decimal calculations and PDF generation.