I had to do this (2/3 years ago) for an Apple server, and I found success rate is a bit hit/miss. I tend to use temp phone number services. From memory, the last one I used (that worked) was with:
Just remember, privacy does not exist with this kind of (free) service. Everyone can read messages from this number. DO NOT create accounts that links to personally identifiable information. Just a tip, save that phone numbers URL. It’s very annoying trying to find that exact site and then the number (when it’s no long listed, but still active).
I’m not sure what is available in your region, but there are services like voip.ms which offer numbers for ~0.85 USD/mo. These are not temporary / throwaway numbers for account creation, its just a normal voip service, so the number you pay for is yours and only yours for as long as you pay for it.
I think two reasons you don’t see one time payments for phone numbers is that:
it encourages ‘hoarding’ of a limited resource
theremay be an ongoing cost to the carrier (I think) per #, so charging you a one time payment would have to be a pretty high one time payment if they have to cover ongoing costs for decades or the length of your lifetime.
The only option I am aware of is to use Google voice in a specific way. I believe if you port in a number to Google voice, you get that number for the life of your Google account (with a one time payment of $20). I’ve never actually done this, but I read it was possible. However you need to be aware that Google could change their terms whenever they want or terminate your account and there is pretty much no recourse.
You can make it with a US address, and a ZIP code. You can also add a US landline number.
However, the number that you give for 2FA can be your current number. You don’t need a US number for this. Just this much will give you access to the US App Store. You don’t need to buy any additional numbers.