#Shmarti

1 messages · Page 1 of 1 (latest)

golden rampartBOT
sour rune
#

I believe that still holds true. There are regulations in many other countries that require 3DS authentication for transactions, but those don't exist in the US and Canada. I can't speak to individual banks though. There may be some banks that still require 3ds in the US (I just don't really know)

#

But yeah in general, you won't see 3ds required for cards in the us and canada

tepid plinth
#

ok - am I able to restrict my users to US or Canadian cards in anyway>

#

?

#

I just have no way to handle the 3DS authentication stuff as of now, i haven;t bothered to look into it

sour rune
#

I think you can do that through radar rules

#

What's your integration flow look like? Some of our integrations automatically handle 3ds

brave kettle
#

cc @tepid plinth

tepid plinth
#

Thanks @brave kettle

#

@sour rune I'm using stripe connect with custom-connected accounts. Similar to on-demand platforms. My users add thier payment card which i use to create customer accounts for them.

const customer = await stripe.customers.create({ name: data.name, phone: data.phone, payment_method: data.paymentMethod })

When its time to charge, I create a payment intent with manual capture for a fixed amount

const paymentIntent = await stripe.paymentIntents.create({ amount: data.amount, currency: data.currency,customer: data.customerId, capture_method: "manual", payment_method: data.paymentMethodId, application_fee_amount: data.applicationFee, transfer_data: { destination: data.destinationAccountId } })

Then presumably before I capture, I first have to confirm payment intent

awaitstripe.paymentIntents.confirm(data.paymentIntentId)

then finally capture it.
await stripe.paymentIntents.capture(data.paymentIntentId)

#

Apologies for ugly code formatting

brave kettle
#

Hi there, I am taking over

#

GImme sometime to catch up

#

Okie that looks good. Which question do you have from here?

#

The 3DS will happen on the confirm step

#

If you do that step client-side, using Stripe JS, it will handle the 3DS flow automatically for you

#

If you do that step server-side, it will return a PaymentIntent with status = require_actions and give you the next_action indicate what to do next

tepid plinth
#

What does it even look like, i dont know visually what happens here? eg: On iOS, it would pull up a web view for the user to authenticate before returning to the client code?

#

ok i saw a link explaining it. But i want to avoid it all together since I hear US & Canadian banks dont really require it.

brave kettle
#

It's not 100% true. Some US bank does require 3DS AFAIK

#

or they started require it recently

#

It would be safer if you can handle 3DS