I know this is far from what you'd like to achieve, but I have a bit of a 'workaround' for my osTicket installation and it actually works quite well.
I basically invoice based on time spent on each ticket, so I added two fields to the 'Ticket Details' form.
One being 'Hours Spent', and the other was a checkbox to click saying 'Ready to Invoice'.
We don't do timesheets, so agents have no reason to lie about the hours spent, so that's not a concern in my case, but appreciate for some it may be.
And I have an install of MetaBase which I use for reporting on figures in osTicket. Our hourly rate is £31/hour, so if a agent puts 2 hours on a ticket and then clicks ready to invoice, it will appear on the dashboard. I then created an SQL Query on Metabase to say 31*hourslogged. This works really well for us. Screenshots below if you're interested:


I don't know if this helps at all... FYI Metabase is open source also!