I'm a Stripe connect application provider, and I get hundreds if not thousands of "Zip code failed validation" decline errors - primarily affecting Canadian customers. The decline rate is too high in my opinion to be user-error.
When you have postal code check on, the cardholder's bank checks to see if the postal code you collect matches the one they have on file—these results are passed directly from the bank. While we can't control the bank's decision to decline a charge, we work hard to improve decline rates for both individual businesses and across Stripe—we'd be happy to take a look into your integration to see if there's anything amiss. Could you get in touch with me at edwin.wee@stripe.com?