Your postal code is invalid
-
We only ask for billing country. I have a customer who for some reason is getting requested for Postal code and it keeps saying Your postal code is invalid. She is travelling overseas in UK and is entering the US zip code registered with her card. She has tried several times now.
Can you help?
-
I can actually replicate the issue by using a VPN located in UK… it then requires a UK postal code, even if in the billing field I have US selected.
Hi @mbv,
Thanks for the clarification. I completely understand how frustrating this can be, especially when it impacts your sales and customer’s experience.
To make sure I fully understand what you’re experiencing, could you please share your System Status Report from WooCommerce > Status > Get system report > Copy for support? You can paste it at gist.github.com and share the link here. Kindly ensure your site URL is visible (not redacted), as I’d like to test it directly as well.
It happens because I only ask for billing country in the checkout fields. You can simply replicate it by add this to child theme and testing with a virtual product using VPN location. in. UK:
add_filter( 'woocommerce_checkout_fields', 'bbloomer_simplify_checkout_virtual' );
function bbloomer_simplify_checkout_virtual( $fields ) {
if (is_checkout()){
$only_virtual = true;
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
// Check if there are non-virtual products
if ( ! $cart_item['data']->is_virtual() ) $only_virtual = false;
}
if ( $only_virtual ) {
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
// unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_phone']);
add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );
}
return $fields;}
}Hi @mbv,
Thanks for the clarification and for sharing the code snippet — that’s very helpful.
What you’re seeing is expected behavior based on how Stripe handles fraud prevention and address verification. Even if the billing postal code field is removed from the checkout form, Stripe may still require it based on the customer’s location or card issuer policies. In this case, users accessing the checkout from the UK may be required to enter a UK-format postal code, which causes issues when they provide a US zip code instead.
Since Stripe relies on address verification (AVS) for fraud checks, omitting key fields like the postal code can result in failed validations or unexpected prompts during checkout.
If you’re customizing the checkout for virtual products, one option would be to leave the billing_postcode field visible and pre-fill it with the correct value if available — rather than removing it entirely.
If that what you are saying were true, why does switching to another stripe woocommerce integration plugin not replicate the issue?
Hi @mbv,
Thanks for following up. I understand your point, and it’s definitely worth exploring further if another Stripe integration plugin doesn’t replicate the issue.
Just to help us compare, could you let us know which other Stripe plugin you tested with where this behavior didn’t occur?
Also, going back a bit, has this simplified checkout setup (with the billing_postcode removed) ever worked correctly with the current Stripe plugin, or is this the first time you’re noticing the issue?
To take a closer look at your site setup and test further, could you please share your System Status Report if you haven’t already? You can get it from: WooCommerce > Status > Get system report > Copy for support. Then paste it at https://gist.github.com or https://pastebin.com and share the link here.
Looking forward to digging into this with you!
Hi there,
We haven’t heard back for a little while, so we’ll mark this as resolved for now. If you still need help or have more questions, we’d be more than happy to continue from where we left off. Just let us know.
If you found our support helpful, we’d be really thankful if you could leave us a review. It would mean a lot to us:
https://wordpress.org/support/plugin/woocommerce-gateway-stripe/reviews/#new-postHi, we’re facing the exact same issue with your plugin.
One of our customers from an EU country tried to place an order from the UK and was requested to enter his postal code (all his previous orders from his home country no postal code was asked). He entered it but it is not accepted as it’s not a UK postal code.
This results in him not being able to place this order.
This needs to be addressed very urgently as this is costing many e-commerce website their income without them even knowing it since not every customer contacts the support team!Hi @juliusjaspers,
Thank you for reaching out. I want to understand if you’re experiencing the same issue as mentioned previously. Since every website’s setup can be quite unique, the best approach is for you to create your own topic in our support forums. This way, we can look at your specific site configuration and assist you more effectively.
Start your own topic here: https://wordpress.org/support/plugin/woocommerce-gateway-stripe/#new-topic-0
Hi, thanks for your reply.
It is exactly the same as the original post and all the next posts, so I’m not sure what benefit a new topic would be.
Please provide the steps so we can resolve this issue for me and for all other users.
Hi @juliusjaspers,
I understand why you’d want to continue in this thread since the issue looks identical, but the WordPress.org forums require each user to open their own topic rather than adding “me too” replies. This ensures that every case gets proper attention, as site setups and configurations can vary widely even when the symptoms seem the same. You can read more about this policy here: https://wordpress.org/support/forum-user-guide/faq/#i-have-the-same-problem-can-i-just-reply-to-someone-elses-post-with-me-too
Please go ahead and start a new topic here: https://wordpress.org/support/plugin/woocommerce-gateway-stripe/#new-topic-0. In your post, include details about what you’re seeing, the steps you’ve taken so far, and any screenshots (you can upload them to https://snipboard.io and share the link). This will let us look into your specific case and work toward a solution for your store.
@juliusjaspers I switched from this plugin to a different plugin, Payment Plugins for Stripe WooCommerce, you can give that a try, it seems to have fixed the issue. But you have to have this plugin active, but not enabled as a payment option, in order to be able to do refunds if you need to from the order page if the order was processed with this plugin. If you don’t need to do refunds you can just disconnect it from Stripe and disable it.
I think if the authors of this plugin were serious about fixing this issue they would have done it by now without having to ask so many questions.-
This reply was modified 2 months, 2 weeks ago by
MBV.
PS. @juliusjaspers Alternatively you can just add the postal code field as well just to save the bother of changing plugins.
Thanks for sharing your workaround, @mbv. Just to clarify for others who may come across this thread, the behavior with postal codes isn’t actually a bug in the WooCommerce Stripe plugin itself. It’s related to how Stripe’s fraud prevention (AVS) works: in some cases, Stripe may require a postal code based on the customer’s card issuer or their location.
Different integrations may handle this differently, which is why you might see different results across plugins. Plugins that circumvent the requirement might bypass AVS, but that could increase the risk of fraud or chargebacks.
If you’d prefer to stick with this plugin, one option is to leave the billing_postcode field enabled (or make it optional via code), so Stripe’s verification can run smoothly.
Here are two practical paths forward:
- Add the postal code field back into the checkout form (at least for virtual products). You can pre-fill it with the card’s billing zip if you have that, reducing friction while ensuring Stripe’s verification passes smoothly.
- Use code to make it optional, but still present, this way Stripe still receives an input and avoids rejecting the charge:
add_filter( 'woocommerce_default_address_fields', 'override_postcode_validation' ); function override_postcode_validation( $fields ) { $fields['postcode']['required'] = false; return $fields; }If anyone else runs into the same issue, I’d recommend either keeping the postcode field enabled or using the optional-field workaround above. This will keep your store aligned with Stripe’s requirements while minimizing checkout friction.
If anyone else runs into a similar issue, please open a new thread with your site’s details so we can look into your specific setup. That way, we can give you more tailored help.
Thanks again for raising this and sharing your findings, @mbv
If our support here was helpful, we’d really appreciate it if you could leave us a review: https://wordpress.org/support/plugin/woocommerce-gateway-stripe/reviews/#new-post
Thanks @mbv for returning back to this topic and for sharing your information, much appreciated!
@saivutukuru thanks for your input, will have a look into it.
-
This reply was modified 2 months, 2 weeks ago by
You must be logged in to reply to this topic.