I've never seen anywhere that it says the card# expires the next day. Besides, that's not possible for several reasons, mainly because of the expiration date it generates is usually 30-60 days from the day it is generated, so it is still valid for that long. Once the expiration date has passed, THEN the card# is no longer valid.
It's also not possible because many merchants just do an Authorization to verify the card is valid. Then a day or two later they put the charge through.
Sorry you had a bad experience, but the expiration date it generated should have been an indication that it was valid for at least 30 days.
Why did that company get funds from your account 30 days after the transaction? That sounds like the real problem and even if you didn't use a virtual card you'd still have that problem.
William Eaton, MCSE
iTech Computer Solutions, LLC
www.itechcs.com