This whole post is a false dichotomy, there are more options than "US only" and "Correct for the whole world + validation".
If I had mostly US customers, then I would make an address form that had the forms and the validation for US addresses, add a country dropdown, pre-select US in it, and if the user changed it just disable all validation and pass whatever the user enters on to the third parties. That way the international users won't have to try to guess how I want the addresses to validate, but they might run into errors from the third parties, and that validation might be slower, but at least we're down to a bare minimum of requirements.
You know how those credit card processors are picky with US addresses? Here's another hint: They can't do international validation either! Just pass in a different country and whatever garble the user entered and you're usually good to go, as long as the credit card number and cvc matches.
You know that CC billing address concept? That doesn't exist where I am. My credit cards don't have that. So when I'm asked to provide it, I enter complete garble, and it usually works every time. So don't worry about only giving well-formed data to the CC processors.
That's actually kind of what I was trying to say. Having people put in fake data to satisfy a validator isn't the worst problem in the world. There are probably much better things to be spending your time on.
And, yeah, in general, CC validation is a complete farce. Depending on how a vendor has set up their payment gateway, sometimes you don't even need a correct CVV or expiration date, much less a correct address...
Having people put in fake data to satisfy a validator isn't the worst problem in the world.
If you do have a country field, but still do validation according to US rules, then very few of your international customers will ever get through it. Most will just get frustrated after several tries and then leave. By not having a country field in the first place, you're telling these people that they needn't bother, you won't be wasting their time, and then everyone is happy and won't be writing angry blog posts about it.
It actually has less to do with the vendor, and more to do with the acquiring banks. I hate banks with a passion.
One time had a customer on the line with us asking why he no longer had access. We explained because he had chargedback the transaction. No, no he did not, he assured us.
We called the bank, and found out that he had asked for a chargeback, but it was for another transaction he had problems with, and wanted it corrected. So here we are, my customer service rep, the customer, and the bank on a 3-way call, and the customer is telling the bank to undo the chargeback and give us the money back, and to chargeback the other transaction. And they wouldn't do it. Oh, they applied the chargeback to the other transaction, but the penalty was still applied to us.
The customer apologized to us later, and wanted to pay again, and was even willing to pay the chargeback fee. He simply paid again the normal price, and we swallowed the cost.