Bank of America calls it "ShopSafe"; you can generate a number for one-time or recurring payment with an associated limit and expiration date.
Citi calls it Virtual Account Numbers. Theirs don't have a limit by default (but you can create one that does).
Unfortunately, both systems use archaic Flash applets to generate and manage the numbers... I hate the Citi one in particular because it has sound effects when you press buttons.
link: https://privacy.com
However I would suggest a temporary card that only lasts for 2 transactions.
- the authorization charge (e.g. $1 on amazon.com) [1]
- the actual amount of the purchase
Too many times I have been caught out by the authorization charge, only to have the actual purchase fail.
[1] https://aws.amazon.com/premiumsupport/knowledge-center/aws-a...
Paypal had a firefox extension that did this about 10 years ago.
https://getfinal.com/ was fantastic and I used it for about 2 years. I was one of the first 700 applicants. It worked exactly as you described and you could even set dollar limits for monthly recurring charges. They folded earlier this year and I was sad to see my CC cancelled. :(
I do wonder if I'm getting flagged as a higher fraud risk when I use it, though.
* Flash app means that in newer versions of Android (edit: 6+ IME), even with an old Adobe Flash for Android apk loaded and with Firefox, the functionality no longer works in mobile (input functionality is broken.)
* Cards used for time-limited recurring expenses (subscriptions that I intend to end in 1 year, for example) would arbitrarily fail transactions resulting in hassle. Since each number was locked to the processor who requested the first transaction, I suppose one reason this happened was if a business switched processors mid-stream.
I have always wondered why no one has created a nice mobile solution for this very useful feature. It seems that credit cards want each customer to just use one number and trust that their risk department will stop data leaks - seems like a bad solution.