#famicom0
1 messages ยท Page 1 of 1 (latest)
Hello famicom0, we'll be with you shortly! 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.
โข https://discord.com/channels/841573134531821608/1163891930703339611, 0 days ago, 2 messages
Nothing has changed, my original thread was locked ๐
My last question was:
The docs mention this:
If you want to complete the payment with the partially applied funds, you can update the amount and confirm the PaymentIntent again.
Did you try that already?
Can you share the example payment intent ID you tried this with?
I tried with these 2 payment intents: pi_3O2GdeKvO0GKmvAM0Uxnbr5h and pi_3O2GkKKvO0GKmvAM0brI5JaY
They did succeed, so what do you mean:
https://dashboard.stripe.com/test/events/evt_3O2GkKKvO0GKmvAM0BBdjXCy
https://dashboard.stripe.com/test/events/evt_3O2GdeKvO0GKmvAM0mtKEqQg
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.
Yeap... I was the one who pushed them to success. I had to simulate funding again, after updating the amount to be less than the original, and then confirming the payment intent again. One might assume, perhaps naively, that if the payment was partially funded, and then the payment amount was updated to the partially funded amount, re-confirming said payment intent would automatically move the payment to success.
My question is: is this a quirk of the simulate funding option within test mode? Or is this something our customers will see in production? If the payment has already been partially funded, but updating the payment requires me to send the funding for the new amount, where did the old money go?
I don't think this adjustment amount flow works the way to expect updating the PI before applying
There was no match at the time of funding
You should try manually applying the 1000 balance to the PI: https://stripe.com/docs/payments/customer-balance/reconciliation#cash-manual-reconciliation
then updating and confirming the PI
You're saying Stripe did not automatically reconcile the partial funds to the payment?
I see this event that was generated by Stripe; this looks like automatic reconciliation to me?
evt_3O2GkKKvO0GKmvAM0wVT6jOZ
Here is a payment intent where I partially funded: pi_3O2JD1KvO0GKmvAM2vD4sZfr
I then updated the payment amount to the partially funded amount, and re-confirmed. I then tried manual reconciliation and got an error:
{
"error": {
"message": "The amount provided exceeds the customer's available cash.",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_O7NGZ71bkIO4Pd?t=1697572090",
"type": "invalid_request_error"
}
}
๐ Taking over and catching up
this seems like a long running thread, can you give me a few sentence summary of what's going on while I read up on the previous messages?
The event here
https://dashboard.stripe.com/test/events/evt_3O2GkKKvO0GKmvAM0wVT6jOZ
Was generated by this funding action
https://dashboard.stripe.com/test/logs/req_TvJGj3rIAzQVJd
We matched reference: CT237ZY5JMZ5 in the funding action to the PaymentIntent next action
Hi Hanzo, sure. I'm concerned about the customer experience when a payment is partially funded for customer_balance payments. I updated the payment amount to reflect the partially funded amount, and confirmed, but Stripe requires the customer to fund the entire payment amount again for the payment to succeed. I suspect this is an issue with your test mode simulate funding feature, but I wanted to know if this could happen in production.
So just so that I am on the same page, for example
let's say you have a PaymentIntent for $100 and a customer partially paid $50
You're saying that they need to fund with $100 again to complete the payment?
My scenario:
- customer places an order for $10
- they wire over $10, but bank takes $1 processing fee
- Stripe receives $9, puts it into customer's cash balance
- Stripe recognizes the customer has an open payment for $10, partially funds $9 to this payment
- I choose to "eat" the $1 processing fee, I update the payment to $9 and confirm
- payment should
confirmsucceed?
This is what I see when using simulate funding. Is there a way to top up a customer's cash balance outside of simulate funding? This is all in the test mode environment.
I choose to "eat" the $1 processing fee, I update the payment to $9 and confirm
payment should confirm succeed?
Not sure about this part, let me check
The only way to top up cash balance is to simulate funding. Checking if you can just mark a partially funded PaymentIntent as funded manually
hey again, i kept digging into this to understand what happened
And now I see the missing piece
When you updated the payment intent amount: https://dashboard.stripe.com/test/logs/req_INh0W8GLdKJ5Oc
this also caused the pending customer balance amount partially funding it to be reversed/unapplied, and returned to the customer balance: https://dashboard.stripe.com/test/events/evt_1O2GmQKvO0GKmvAMdbDY5b1u
So you'd need to manually re-apply that balance to the payment intent after the update:
https://stripe.com/docs/api/payment_intents/apply_customer_balance
I can file some feedback internally to improve our docs about this, it does seem like what is written is misleading, since confirming the PI is not sufficient
this also caused the pending customer balance amount partially funding it to be reversed/unapplied, and returned to the customer balance
Hmmm... and I'm assuming that since I used simulate funding, there was no money to put back into the customer's balance, hence why it looked like that money had vanished? ๐ค
I'm assuming in real world use case, if the money is put back into customer's cash balance; Stripe sees open order, the cash balance is applied against the open order, and it succeeds because the customer balance amount and the new payment amount match?
Just to be clear; there is no way for me to manually re-apply the balance with simulate funding; but if we need to manually re-apply in real-world use case we can build that. I just wish there was a way to test my assumptions before deploying to prod
In fact that happened here too: https://dashboard.stripe.com/test/events/evt_1O2GmUKvO0GKmvAMHovRXKyy
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
You can do this, but you should create a "clean" customer for this flow I'd say
It's possible if there were no other PIs this balance would have been re-applied to the same PI again
partial payments without a match for reconciliation apply to the oldest payment intents first, so that old PI from june caught it here
Looks like it has a very large amount, and might sink a lot of unmatched partial payments
overall, i'd suggest creating a new test customer to test such flows precisely without the baggage of other tests
Thanks, that's very helpful
NP -- hope that helps clear up what happened here
It was pretty subtle, i missed it too
But glad we were able to figure out what happened!
Thanks again