Automattic / woocommerce-payments

Accept payments via credit card. Manage transactions within WordPress.
https://wordpress.org/plugins/woocommerce-payments/
Other
171 stars 69 forks source link

Make it possible to disable filter APM by country #8235

Closed morepurplemorebetter closed 4 months ago

morepurplemorebetter commented 6 months ago

Description

Since commit #8082 not all my customers can use their preferred payment method, because it is being filtered out based on their country.

I would like to disable this filtering, or be able to set which countries they are filtered for.

In my case, it is for people who live in the Netherlands and Belgium and often have a bank in one or both of the countries. They used to be able to use both countries preferred payment methods (iDeal and BanContact), but now they only get offered one of those, depending on the country of their IP address.

Acceptance criteria

A toggle to disable APM country filtering.

htdat commented 6 months ago

Thanks @morepurplemorebetter for creating this issue.

@gpressutto5 @frosso @csmcneill - could you have a look and provide feedback on this issue?

frosso commented 6 months ago

Hey @morepurplemorebetter ! 👋 Thanks for reaching out!

The country-based filtering is based on the customer's billing address. Your customers can provide any shipping address (if your store serves physical products), but the billing address needs to match one of the allowed countries for the payment method. You customer can change the billing address to another country, and the payment method will appear.

2024-02-21 09 54 22

In our internal testing for production sites, when a customer attempted to pay with (for example) P24 and provided a non-Polish address, the payment processor would reject the payment (and the customer would be presented with an error).

Did you experience iDeal working for German billing addresses? Stripe seems to outline that iDeal only works for the Netherlands: https://docs.stripe.com/payments/ideal lCPPZt.png

morepurplemorebetter commented 6 months ago

Thank you for your thorough response.

The payment options iDeal, Bancontact, and giropay require you to have a bank account that supports the payment method. Generally, only Dutch banks support iDeal, only Belgian banks support Bancontact, and only German banks support giropay. However, it is common for people to work in one country and live in the other (like myself) or spend time in the other country for studies (40% of first-year students in the Netherlands are foreign and Germans and Belgians are in the top 3). As a result, the person might have a bank account in another country than where they live.

I just want all three payment methods to always be selectable, regardless of (IP based) customer location. I already have my own function to change the order of the payment methods to have the most-used one at the top, depending on the billing country. I now "fixed" this issue for my website by adding forcing all payment methods to have display : block through CSS.

 

You customer can change the billing address to another country, and the payment method will appear.

I understand, but unfortunately this is not communicated to the customer, so I think it is unlikely that they will try to change their billing address if they don't see their preferred payment method listed but will instead not buy anything.

 

Did you experience iDeal working for German billing addresses?

Yes. On my staging site, I successfully "paid" (in test mode) using iDeal, BanContact, and Giropay with a billing address in the Netherlands, Belgium, Germany, and Hungary. I didn't test any other countries or payment methods, but included the random selected Hungary as a way to test it outside of the SEPA.

There seems to be no restrictions on the billing address. Which makes sense, because these payment methods require you to have a bank that supports it and you can maintain a bank account in one country while living in another. Especially within the SEPA zone, you don't really need a bank account in the country you live in, just one that is also in the SEPA.

frosso commented 6 months ago

Thank you for the additional context, @morepurplemorebetter ! I understand the situation of having multiple bank accounts in different countries and living elsewhere! Hopefully, the customer should understand that the "billing" address to be entered should match the address associated with the card or bank account they intend to use.

Did you experience iDeal working for German billing addresses? Yes. On my staging site, I successfully "paid" (in test mode) using iDeal, BanContact, and Giropay with a billing address in the Netherlands, Belgium, Germany, and Hungary.

Indeed, the test mode provided by the payment processor provided by Stripe doesn't seem to abide by some of the laws (including fraud protection) that the production environment seems to be configured with.

You customer can change the billing address to another country, and the payment method will appear. I understand, but unfortunately this is not communicated to the customer, so I think it is unlikely that they will try to change their billing address if they don't see their preferred payment method listed but will instead not buy anything.

I can understand this point of view, and customers abandon the cart if they do not see their preferred payment method. I'll get back to you on this to discuss alternative solutions internally!

gpressutto5 commented 4 months ago

p1713194875784269-slack-CU6SYV31A

pierorocca commented 4 months ago

@morepurplemorebetter thanks for sharing your needs. It appears that you have found a workaround that meets your goals. To close this ticket I want to provide feedback taking into account the needs of the broader merchant and shopper community: