#midnightcrow

1 messages · Page 1 of 1 (latest)

tough daggerBOT
tranquil inlet
#

Yeah could be the bank requiring 3ds authentication

#

It happens sometimes

#

Can you share the invoice id?

nimble compass
#

pi_3OebVNCPHmUYMa5N1eByVNfG

tranquil inlet
#

AH yeah that's what happened

#

There's no way around it if the bank wants auth again

#

You need to bring customer online to auth the payment

nimble compass
#

why would this happen after already invoicing the customer for months?

tranquil inlet
#

It's up to the bank

#

We can't say

#

Stripe doesn't mandate 3ds

#

That is up to the banks

#

But sometimes a bank will require it if they notice the billing date changing for example

#

But at the end of the day we don't know for certain. Your integration needs to be able to handle banks requiring 3ds later on

nimble compass
#

how would we do that

tranquil inlet
#

How does a customer currently checkout in your integration?

nimble compass
#

This isn't checking out, this customer has a subscription and was invoiced for months. Then on this invoice after unpausing we were reseting the billing anchor and it failed

#

We create a payment method via payment elements and save it to the customer settings, then give that customer a subscription

tranquil inlet
#

Trying to understand what you do in your integration

#

So you'd just use the client secret from the failed payment intent on your payment element page to complete payment and allow customer to auth the transaction

nimble compass
#

ok so you recommend we notify the user, send them a page with a single button to verify the charge amount? what does "auth the transaction" entail?

tranquil inlet
#

Complete 3ds authentication

#

Except no need to disable handling next actions if you just want 3ds to automatically show in the page

#

So ignore that section if you want to handle this automatically

#

Stripe.js collects basic device information during 3DS2 authentication and sends it to the issuing bank for their risk analysis.```
#

Sorry for the confusion with that first link. Basically the button would just need to call confirmPayment or confirmCardPayment and we'd display the 3ds modal

nimble compass
#

Going to set up a meeting with our stripe rep, to clarify things. We don't want the user to type in there payment info again. I don't see "confirmPayment" on the page, but we wouldn't want to use "confirmCardPayment" because that required there payment info again.

tranquil inlet
#

All you'd need to do is call confirmPayment with the payment intent's client secret

#

They wouldn't need to enter any new card info

#

Then the 3ds modal should appear

nimble compass
#

ok awesome, thanks for clarifying

#

Can we test this in test mode?

tranquil inlet
#

Yeah you can use this test card: 4000002760003184. From: https://docs.stripe.com/testing#authentication-and-setup

That'll require 3ds for all subscription payments. So, you'd create the subscription and the customer would be prompted for 3ds. Then each recurring payment will also require 3ds. You could use a test clock to advance time to that a future subscription payment requires 3ds and you can go back online and call confirmPayment with the failed payment intent's client secret. https://docs.stripe.com/billing/testing/test-clocks

Learn how to move Billing objects through time in test mode.

Use test cards to validate your Stripe integration without moving real money. Test a variety of international scenarios, including successful and declined payments, card errors, disputes, and bank authentication. You can also test non-card payment methods and redirects.

nimble compass
#

we would also need a webhook to detech when a payment fails, what field would let us know its because it needs 3ds?

tranquil inlet
#

payment_intent.requires_action

#

invoice.payment_action_required

#

Either works

#

Both indicate 3ds is required

nimble compass
#

ok ty I think this is enough to get started