Best way to handle customer pre-payment of billable expenses?

Best way to handle customer pre-payment of billable expenses?

I run a web/IT consulting company and have billable expenses that my clients pre-pay for. This includes things like domain name registration/renewal, web hosting, cloud services (Google Workspace, Microsoft 365, etc). I would like to be able to send my clients an invoice (or similar) in January which will cover all the expenses for the following calendar year, and then be able to use that pre-payment to cover billable expenses as they come up during the year.

What is the best way to do this? I've looked at retainer invoices, credit notes, normal invoices, etc. but I am struggling to find something that covers the exact workflow I am looking for.