#uesteibar - pending payments
1 messages ยท Page 1 of 1 (latest)
here's the invoice https://dashboard.stripe.com/invoices/in_1L699ZIYOry9WQXwvvPOUruH
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
here's the payment https://dashboard.stripe.com/payments/pi_3L699rIYOry9WQXw24ZRYAXg
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Thank you, checking in to those
Hi ๐ jumping in to assist. When a Payment Intent fails to collect a payment, it transitions into a state of requires_payment_method as shown in the diagram here that shows the lifecycle of a Payment Intent:
https://stripe.com/docs/payments/intents
this one isn't in that state right? this one has status requires_confirmation
however the stripe dashboard says "The bank returned the decline code transaction_not_allowed"
That's because additional requests have been made to update that Payment Intent since the decline was encountered. If a decline occurs, it occurs during the confirmation step of an intent's flow. If you review the response from a confirmation request for that intent that encountered the decline, you'll notice that in that response the Payment Intent had a status of requires_payment_method:
https://dashboard.stripe.com/logs/req_QD9E30Gp4tQgA2
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
that request is done from the Stripe's own "direct link payment" site tho, I have no control over it
That's because additional requests have been made to update that Payment Intent since the decline was encountered
which request are you referring to specifically? maybe that can help us pinpoint the problem
I'm seeing multiple requests like this one to alter the setup_future_usage parameter:
https://dashboard.stripe.com/logs/req_a9Z8bpOae8uwgt
And then this one that updated the payment method and attempted another confirmation:
https://dashboard.stripe.com/logs/req_8ne0sVxP1hujDW
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
the ones to alter setup_future_usage we do because you folks told us we needed to do that in order to handle indian payments iirc
I do see we're making a bunch of them tho, I think only the first one would suffice? Would that prevent these payments from getting stuck in "pending"?
Is the pending status that you're referring to something that you're seeing in the dashboard?
it says "incomplete" actually sorry
Gotcha, and apologies, we aren't as familiar with the dashboard side of things as we primarily focus on the API-side of things in this forum.
ah no worrries! same here, this was reported by the accountants in the team
So looking at this Payment Intent, it seems to be associated with an Invoice that was created for a Subscription, is that correct?
yes that's correct, however since those are indian customers that didn't manage to pay with their stored CCs, our account managers are sending "direct payment links" to them so they can pay there
and that last one is the payment that is ending up in "incomplete" status
there's no way we can move those "incomplete" ones to "failed" so that the customer can attempt to pay again?
I'm not familiar with the India-specific requirements, so please let me know if it feels like I'm overlooking a detail about those restrictions, but I believe you could use the Payment Intent to attempt another payment.
You won't be able to cancel the Payment Intent due to the it belonging to an open Invoice, you would have to void the Invoice instead, which I believe would impact the Subscription that generated the Invoice.
I think you can't attempt another payment with the same payment intent if it's in "incomplete"
that's actually what's blocking our account managers
apparently stripe support folks told them that we'd need to set error_on_requires_action: true on the payment intent, however that means that cards that require authentication wouldn't work, so it's a no-go for us
๐ stepping in here as Toby needs to step away. Let me catch up
thanks for your help @placid hornet! ๐
Okay so am I understanding correctly that you are seeing an issue with attempting to charge a PaymentIntent again that requires 3DS?
nope, our issue that those PaymentIntents get stuck in "incomplete" status after an attempted charge for which the bank returned transaction_not_allowed
and that blocks the customer from attempting paying again
The "incomplete" status is merely a Dashboard status though
That shouldn't stop a customer from paying. How is the payment being attempted?
Like when you say "it blocks the customer from paying"... where are they blocked exactly?
let me check with our account managers ๐
Sounds good! Let me know
apparently the problem is that the invoice is stuck in "pending", and they can't retry charge or anything else
Got it, and they are attempting to retry the charge via the Dashboard?
yes, but it doesn't show any option to do so in the pending invoice
Got it, yeah I don't think we allow you to attempt to trigger a new charge via the Dashboard if 3DS has been triggered since it would just hit the same state (requiring 3DS to be completed).
If an invoice's payment requires 3DS then the customer has to be brought on-session to complete 3DS.
how can we do that? we were advised to set "setup_future_usage: off_session"
Hmm no that won't make any difference for the payment once it requires 3DS. You would use that when collecting cards, however Indian cards have specific regulations where they need to complete 3DS each time. Have you given a read through https://stripe.com/docs/india-recurring-payments?
If not, recommend looking at that. However for this specific situation, the easiest way to fix this specific invoice is to send the Hosted Invoice Page to the customer for them to complete 3DS.
Ah you do already have your settings enabled to send emails to your customers when 3DS is required
So that is another way for this to be handled automatically.
yeah we do that already, but I think the issue in this case is that our account managers can't manually go and cancel that payment attempt (the one that is incomplete)
so the invoice is stuck in "pending" forever
in this case the UI says "The bank returned the decline code transaction_not_allowed", wouldn't it make sense in that case that the payment is deemed failed?
why does it stay in "incomplete"? I don't think the customer can take any action to complete the payment at this point
They can take action... you can bring them on-session and have them complete 3DS.
So for instance if you don't want to use the Hosted Invoice Page, you would give them a link to your website where you would use confirmCardPayment to use the Stripe.JS SDK to handle 3DS for that PaymentIntent
So the payment is still technically pending because it is waiting for 3DS
hosted invoice page is fine, that's where they attempted that payment from actually
however what they're trying to do is to mark the payment as failed so that the invoice goes to "unpaid"
Gotcha. Do you want to allow payment to be attempted again in the future? Or do you want to cancel the PaymentIntent?
trying to get hold of them, brb ๐
๐
I'll probably come back in the morning since everyone is off now, is it fine if I just bump this thread then?
We will archive the thread but someone will be around to help! Just mention the thread and that you would like to continue discussing.
will do that, thanks!
ah, managed to talk to someone
what they want at this point is to move the invoice back to "open", instead of "pending"
Why?
because sometimes they manage to charge the customer in a different way, so they want to then sometimes mark it as "paid outside of stripe"
other times, they'll want to mark the invoice as unpaid
Got it
Hmm okay yeah I don't think you can do this via the Dashboard. I believe this requires changing the status of the PaymentIntent (either canceling it or attempting to confirm it again which should move it back to requires_payment_method) which requires the API
This feels like a Dashboard gap to me at the moment so I'll follow up with a ticket internally about this.
To request we get that added.
But for now, I think you will need to action it via the API
hm, is there an API endpoint I can hit to cancel a payment intent?
Yes: https://stripe.com/docs/api/payment_intents/cancel. However I don't believe you will be able to attempt payment on the invoice again if you cancel the PaymentIntent
So you would only want to do that if you were going to mark it as paid out of band for instance
Yeah I believe if you confirm then the request should error and the PaymentIntent should move back to requires_payment_method. Not positive though. I will need to test this real quick to be sure.
let me also check if the "cancel" option works for us ๐
Hmm actually this is strange... your PaymentIntent should be in requires_action not requires_confirmation
I think this may just be an India-specific edge case here that throws it into a tricky state
oh, interesting
Checking with a colleague for the best way to handle this.
I'm taking off now, but I'll read the responses here ๐ thanks!
HI ๐ I stepped in for Bismark.
If you want to collect payment for this some Stripe support staff may be able to help you unblock this Invoice. If you do not mind, you can mark this invoice as void through the API.
https://support.stripe.com/contact/email
thanks!
I was wondering if we have any more info on this? #984461937838522390 message
Hi! I'm taking over this thread. Could you try to sumarize your question?
we have this invoice (https://dashboard.stripe.com/invoices/in_1L699ZIYOry9WQXwvvPOUruH) stuck in "pending" state and we can't do anything with it on the Stripe dashboard. How can we move it back to "open" for example?
We end up with invoices in this state sometimes when indian customers try to pay via the hosted invoice page. Your colleague was surprised that the payment intent was in requires_confirmation and not in requires_action
Thanks! Give me a few minutes to look into this.
Yes I confirm I see requires_confirmation for the payment intent. Did this always happen for indian customers?
it only happens sometimes
That's odd. Have you tried what my colleague suggested earlier:
If you want to collect payment for this some Stripe support staff may be able to help you unblock this Invoice. https://support.stripe.com/contact/email
I think they will be best equipped to help with this type of issue.
it's our policy to archive threads so the handover is smoother
I didn't even get a change to explain that we did try with Stripe support before coming to this chat, and they didn't provide any solution either. They said this: #984461937838522390 message
the thread was quite for some time before my colleague archived it
what can I do to help you now? could you please summarize the issue
I summarized the issue 6 messages ago ๐ #984461937838522390 message
I'm terribly sorry @lime cedar but I can't read two day's worth of messages in the thread. thank you for pointing me out to the summary I will take a look and try to bring you as much information as possible
yep I remember my colleague asking about this internally yesterday
we concluded there's likely something wrong with that invoice and you need to write in to our support team so they can escalate it to the product team since we have ways to manually update the invoice state to the correct one
unfortunately that might mean pushing through the first line of support to get escalated to the right people, let me see if I can help with that...
I'll reach out to them again then ๐
I can't find any support case from you since last week I'm afraid. If you write in an email on https://support.stripe.com/?contact=true and mention my name (karllekko) I'll find the email and move it around