#dominik_api

1 messages ¡ Page 1 of 1 (latest)

ornate zenithBOT
#

👋 Welcome to your new thread!

⏲️ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.

⏱️ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.

🔗 This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1441051625920659500

📝 Have more to share? Add more details, code, screenshots, videos, etc. below.

Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.

sterile gust
#

hi there!

#

Changing the subscription now with proration "always_invoice" returns an error
can you share the failed request ID (req_xxx)?

acoustic pine
#

First, we make a setupIntent and the user confirms it which attaches the payment method to the customer and the checkout process continues

If everything is fine the user has his card added and gets another 3d secure for the payment. Everything is fully fine and the user purchased. for tests I am using stripe test cards, specifically this one 4000002500003155 which has the following specifications:

This card requires authentication for off-session payments unless you set it up for future payments. Once set up, off-session payments will no longer require authentication. However, on-session payments with this card must always be authenticated.

The user has now his subscription, however, when the user wants to upgrade (specifically) it does it with "always_invoice". Now the issue is that when using this card, I get the following issue:

Payment failed
Payment for this subscription requires additional user action before it can be completed successfully. Payment can be completed using the PaymentIntent associated with subscription.latest_invoice. Additional information is available here: https://stripe.com/docs/billing/subscriptions/overview#requires-action

But I wonder why because the test card specifications tell me that his is a card that only requires 3ds when not previously setup: Only authenticate if no setup exists

So I wonder what it needs to setup the payment for the user.

#

My question is: Is this just due to the card being a test card with this specific behaviour or do real world cards have the same thing?

sterile gust
#

can you share the failed request ID (req_xxx)?

acoustic pine
sterile gust
#

in this specific case, you could add off_session: true to your update call, and it should work with the test card you are using.

acoustic pine
#

I am wondering now cause I have used other software and in their update flow I never saw any additional 3ds required for updating an existing subscription

#

I just wonder if this is a real world issue and I need to handle this case or if its specifically due to this test card

sterile gust
#

with real cards, the bank can request 3DS at any time. so the error you see can happen with a real card yes.

acoustic pine
#

@sterile gust Even if the card in the setupIntent is correctly setup for off session payments?

#
    const setupIntent = await stripe.setupIntents.create({
        customer: customer.id,
        payment_method_types: ['card'],
        usage: 'off_session',
    });
sterile gust
#

correct. when you do off-session payments, Stripe will ask the bank for a 3DS exemptions. so in general you shouldn't get 3DS. but utiltmately it's up to the bank to decide if they want to show 3DS or not, so it can happen.

ornate zenithBOT