#ndbtss_api
1 messages · Page 1 of 1 (latest)
đź‘‹ 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/1319231386812682271
📝 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.
- ndbtss_api, 1 day ago, 10 messages
Sure, that seems expected. The bank/issuer requested authentication for the payment so the customer needs to complete the challenge flow
In any case, the intent is in requires_payment_method state as you've not provided any payment information
You need to collect payment info from the customer and confirm the intent
Previously, I had already collected the payment method, and the customer had validated it by registering it via a setup_intent. I have indeed provided an existing payment method, which was saved earlier, with the off_session parameter after receiving the customer’s confirmation.
Despite this, I am still encountering the issue where the payment is failing and requiring authentication.
I have indeed provided an existing payment method, which was saved earlier, with the off_session parameter after receiving the customer’s confirmation.
I'm afraid I don't see thepayment_methodfield set on that parameter. If you've collected details previously, you need to provide them on intent creation, like this: https://docs.stripe.com/payments/save-and-reuse?platform=web&ui=stripe-hosted#charge-saved-payment-method
Despite this, I am still encountering the issue where the payment is failing and requiring authentication.
I don't see an intent where authentication was requested
i didnt sent the entire code
You don't need to I'm looking at the Payment Intent you shared: pi_3QWbclHagJ8u1cfk18KwAaWj
PaymentIntent paymentIntent = null;
PaymentIntentCreateParams params =
PaymentIntentCreateParams.builder()
.setCustomer(method.getCustomerId())
.setPaymentMethod(method.getDefaultPaymentMethodId())
.setAmount(netToPay.multiply(BigDecimal.valueOf(100)).longValue())
.setCurrency(PaymentProcessorEnum.STRIPE.getCurrency())
.putMetadata("subscriptionId", String.valueOf(subscriptionId))
.putMetadata("appPackId", appPackId != null ? String.valueOf(appPackId) : "")
.build();
paymentIntent = PaymentIntent.create(params, requestOptions);
sorry
its not the good one
a will send you the good one
OK, but pi_3QWbclHagJ8u1cfk18KwAaWj does not reflect that code. There's no customer or payment_method set on creation: https://dashboard.stripe.com/test/logs/req_lpQwIozge6irg6
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
I am following, having similar kind of issue related to subscription.
Please open a separate thread
To be clear, this can happen. Even if the card was previously saved/setup and we apply those exemptions, the bank still can request 3DS/auth for payments. Your integration needs to be able to handle that
That's all this looks like
how can i do? i cant make payment from backend so???
For pi_3QXau5HagJ8u1cfk0sMn2oFm is the customer off-session?
Or are they online/in your checkout flow?
yes, off_session
Because if they're off-session you didn't flag it as such (off_session: true). That will also reduce chances of auth/3DS as we can request exemptions
Set to true to indicate that the customer isn’t in your checkout flow during this payment attempt and can’t authenticate
https://docs.stripe.com/api/payment_intents/create#create_payment_intent-off_session
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
but why in dashboard i can make a payment to a customer, even if he's off session , and in my code, it doesnt work?
Because the Dashboard works separately. We apply those exemptions automatically
You need to explicitly pass that off_session: true param on your intent creation to denote that it is MIT and the customer is offline
It's noted in this guide: https://docs.stripe.com/payments/save-and-reuse?platform=web&ui=stripe-hosted#charge-saved-payment-method
Set off_session to true to indicate that the customer isn’t in your checkout flow during a payment attempt and can’t fulfill an authentication request made by a partner, such as a card issuer, bank, or other payment institution. If, during your checkout flow, a partner requests authentication, Stripe requests exemptions using customer information from a previous on-session transaction. If the conditions for exemption aren’t met, the PaymentIntent might throw an error.
What do you mean by 'always work'?
if i add off_session to true in payment intent, and the payment method can be used off session because my customer accepted that, payments off session wil always pass?
Not always no, as I previously stated and noted above – bank/issue may decline our exemption request and still require auth in which case the API request would error
can i make a special request to Stripe, with all my companies details, and confidentiality rules etc, to have no more issues with banks?
its very important to me
Nope
my customers dont want to validate their payments each time it an automatic one
it blocks them their systems because the payment cant pass
they want to have an automatic payment
Yep, I understand that. But ultimately nothing Stripe can do. It is the bank/issuer that determine whether they want to authenticate payments, not us. We just facilitate the auth challenge flow