Affirm Canada
-
I thought that Affirm works with Canadian buyers but it doesn’t see as though I can select it in the payment options. Can you advise?
-
I realized I was on version 3.3.40. I upgraded to the latest version and cleared my cache yet I do not see Affirm show up when I put a Canadian address. On the cart the promotional messaging shows where you can click ‘learn more’ to estimate a payment but beyond that it does NOT show on the checkout itself. I have also made sure that Canada is selected under the payment options. The item that is in the cart is $3,600 USD. I checked and there aren’t any supposed limits with Affirm and Stripe.
Klarna is also not showing up either and according to the Stripe developer docs it can support up to “$5,000 or equivalent”.
I am seeing this error in the console: https://share.getcloudapp.com/z8ubYEYL
{"type":"invalid_request","code":"invalid-country-code-header","message":"A valid Country-Code header is required","status_code":400,"field":"country-code"}
Edit: Reading a few other support threads here I’m wondering if it has to do with the store not showing the pricing in CAD for the product. I read that Stripe automatically supports 135+ currencies so I shouldn’t have to do something different in my account I think, but for Affirm to show up, it seems as though it has to be in CAD. Would using something like a currency switcher plugin for Woocommerce possibly help with this?
Just wanted to provide another update. I found a currency switcher plugin and was able to switch the currency to CAD and then Klarna showed up but Affirm did not, so I guess I need another plugin that does switch the currency. I was still getting the error noted above about the ‘invalid country code’ header in the console so that possibly is the reason why Affirm is not showing up. It does show up fine though when I switch it back to the United States. So perhaps some issue with the plugin?
Hi @qwik3r
Affirm shows when the customer’s billing country matches the country that your Stripe account is registered in and the local currency. For example, if your Stripe account is registered in the U.S, then Affirm will show when the customer’s billing country is U.S and the store currency is USD.
In order to offer Affirm to Canadian users, you would need a Stripe account registered in Canada and the store currency would need to be CAD, along with the customer’s billing country being Canada.
These rules are in place because that is how Stripe’s API validations work. If the plugin didn’t have these conditional rules, you would just get an API validation error when trying to use Affirm for an unsupported condition.
Kind Regards
That isn’t accurate. It’s clearly stated by Stripe that you can use Affirm and offer it to Canadian buyers and your account DOES NOT have to be registered in Canada, I just spoke to them this morning to confirm. Stripe accepts 135+ different currencies. This is an issue with the plugin not my Stripe account.
- This reply was modified 1 year, 5 months ago by qwik3r.
That isn’t accurate.?
Then can you please explain why Stripe’s API is returning the following error message when using a US based Stripe account with Affirm and CAD as the currency?
The currency provided (cad) is invalid. Payments with affirm support the following currencies: usd.
It’s clearly stated by Stripe that you can use Affirm and offer it to Canadian buyers and your account DOES NOT have to be registered in Canada
Can you please provide a link to Stripe’s documentation where that’s stated?
?This is an issue with the plugin not my Stripe account.
Since you believe this is an issue with the Stripe plugin, I encourage you to add the following snippet of code that will force Affirm to show when the currency is CAD. That will allow you to test a live transaction. You can then report back if it failed or was successful.
add_filter('wc_stripe_local_payment_available', function($bool, $gateway){ if($gateway->id === 'stripe_affirm'){ $bool = true; } return $bool; }, 10, 2);
Kind Regards
I’m not trying to be difficult. I’m merely stating what Stripe told me.
Here’s their latest response: https://share.getcloudapp.com/7KuW8oln
@qwik3r What Stripe support is telling you is incorrect. Here is the API error returned by Stripe when the currency is USD, but the customer’s billing address is Canada.
payment_method_invalid_parameter - billing_details[address][country] Affirm payment does not support billing country as CA, it only supports 'US' and 'CA'.
That error message is confusing and appears contradictory but that’s what their API returns.
You can test all this by using the code snippet I provided in the previous reply. You can then direct Stripe support to the request logs and ask them how that’s possible.
Thanks
I’d rather not be the guinea pig and test something that can cause my customer’s orders to fail so I’m just going to relay the message to Stripe and see what they have to offer.
I’d rather not be the guinea pig and test something that can cause my customer’s orders to fail
You can test that on your staging site if you have one.
I understand, however the entire point of you telling me to implement that code is to see the error for myself, it isn’t actually presenting a solution, is it? Correct me if I’m wrong.
I understand, however the entire point of you telling me to implement that code is to see the error for myself,
It will inform on whether or not your account is subject to the same API error that I was able to trigger.
And as you stated in a previous reply:
This is an issue with the plugin not my Stripe account.
This will prove if it’s indeed a plugin issue that needs to be addressed or a validation that is imposed by Stripe’s API across all accounts. All of which will be valuable to provide to Stripe’s support team.
Thanks
Ok. I shall give it a try on my staging site then to see if it works. Thanks.
Latest response from them:
Do you have the request ID for the error? I checked this and confirmed that customers located in Canada can use Affirm with Stripe accounts located in the US.
- This reply was modified 1 year, 5 months ago by qwik3r.
Request ID: req_loNO4dqedSMoJ2
I think they’re looking for a specific transaction/request ID — which I told them doesn’t make sense because I don’t have a specific transaction. So I’m not sure exactly what they want.
—-
I’ve checked the request ID, but I can’t find it in your logs, and I get this information:
“The request does not belong to the attached merchant”.
Can you please confirm the Stripe account ID that they are using?
Is there a way that your developer can reach out to us directly?
- This reply was modified 1 year, 5 months ago by qwik3r.
- The topic ‘Affirm Canada’ is closed to new replies.