#rthella - payment manual review
1 messages · Page 1 of 1 (latest)
Hi 👋
I'm looking into this
can you share a request ID with me?
Here's how you can find a request ID: https://support.stripe.com/questions/finding-the-id-for-an-api-request
Okay so could you break down the flow that has you concerned?
Just to follow up and make sure you get an answer, I think this is what you are looking for: https://stripe.com/docs/api/charges/object#charge_object-outcome-type
This will indicate if the payment went through a manual review.
Hi..sorry stepped out. Yes, this payment went into the manual review queue and was approved.
A refund was requested by the cusotmer
The refund was processed successfully by stripe
Since this charge.refund has the "outcome" snippet we are handling it as the "charge.refunded" because of the maual review rejection
But you just said it was approved in the manual review queue. I'm confused. Do you have the event ID for this?
This was approved and was processed successfully. The refund also was successful, but in our codebase we have a check to determine if the refund was because of rejection or normal refund. outcome.get("type") == "manual_review"
Let try finding the event_id
yeah having a concrete charge id to look at and also your exact code would help
not sure I follow what you are describing and what the issue is
The issue is with this section: "outcome": {
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"risk_score": 36,
"seller_message": "Payment complete.",
"type": "authorized"
},
We see the same snippet for the refunds that were rejected on stripe dashboard
Can you provide an example of a refund that was confirmed by a person reviewing the charge?
For comparison
trying to get one..please wait
As we see here this has type:"maual_reivew" even though at this point of type it is a successful one
We have different workflows for the refunds that happened because of the manual review decline and regular refunds.
The one mentioned should be the regular refund for us
Okay so what information are you trying to get out of this process
Do you want the reason associated with the review?
We need to a way to identify this is a regular refund and not because manual review is declined.
Okay so what you want to look at is the review.closed event and specifically the review.reason property that is returned
Wait, hang on
I think we can make it easier
We have a proxy service that has no information on prior events. Is there a way using just this event to identify that
So, you are listening to the charge.refunded event and you get a charge object
This will include a review property that is either null or an ID
This property will indicate whether or not there was a review and from there you can get the review object, if there's an ID, and examine the reason on the review
Then you can get to the reason on the review object here: https://stripe.com/docs/api/radar/reviews/object#review_object-reason
So if the review is null, that means it is not because of manual review decline?
If the review property on the charge is null there was no review
Good, I'm glad it's helped 😃
Hi..
Hello!
Could you please this event, this payment has been manually declined, https://dashboard.stripe.com/test/events/evt_3JstJWJ3SR1GS5Bc1PJdEBxZ This looks exactly same as the normal refund
The "review" field is null here
Looking...
That looks like a refund on a Charge that did not go through manual review. Are you saying it did go through manual review?
This payment was placed in the manual review queue and was declined
hmm..let me try creating another one. Not able find that..as there are so many event
I'm only seeing one review in test mode on that account, and it was back in July.
How are you triggering the reviews?
check this one "prv_1JstJtJ3SR1GS5Bc04jbXJqS",
Looking...
That one is from November, is that expected?
And it's for a different payment than the one you shared above.
This is the dev set up, https://dashboard.stripe.com/test/webhooks/we_1HhJUZJ3SR1GS5BcLLTBtv0R
Let me give your original payment a closer look...
ok..
Still investigating, but my working theory at this point is that the review doesn't show up because it was created so long ago. While I continue to dig can you trigger or find a newer review (something in the last 30 days) and see if review is still null?
Another question: If you retrieve this Charge via the API is review set to null there?
ok, let me try creating a new charge and decline
In production we haven't declined any payments. Can only do it in dev
Actually, I don't think this is due to age.
I think our events are broken.
I'm able to reproduce the issue on my end.
Ah, okay, I think I found the issue, or at least a workaround.
This Charge was created by a Payment Intent, and the Payment Intent has a review property that looks like it should be populated.
If you get the payment_intent ID from the charge.refunded event and fetch that Payment Intent from the API do you see the review ID there?
I flagged this issue internally; as far as I can tell we should be populating the review property in the event and when you fetch the Charge from the API, but we only seem to be populating it on the Payment Intent. Hopefully we can get this fixed soon, but until then you should be able to get to the review ID via the Payment Intent.
I need to step away, but @mental storm can help further if you have any additional questions.
Thanks for looking into it.
Hi..We are trying to identify on identifying the charge.refunded event that was raised because of the manual refund
Hi @ashen cradle did you try Rubeus's earlier suggestion of retrieving the associated Payment Intent ID from the charge.refunded event? That would be the best workaround until a fix can be made
Thanks! unfortunately, this is just a proxy service that forwards these requests. Do you by any chance know the tentative timeline for the fix?
There isn't a specific timeline right now, but if you write into support and mentioned you talked to Rubeus and karbi on discord we can make sure to update you when this is fixed
This thread has been archived. If you need help with anything else please ask in #dev-help or contact Stripe Support: https://support.stripe.com/contact
Hi @ashen cradle, are you around?
If you want to receive updates about this bug please go to https://support.stripe.com/contact/email and fill out the form to create a support ticket. Provide details about your issue and mention me (Rubeus) in your message. Let me know when you've submitted the form so I can grab your ticket and follow up later.
Hello @raw mason I filled it up and put in you name there.
Could you please let me know if that is enough?
Yep, got it and replied!
thanks!
Happy to help! Is there anything else you need?
that's all for now