#rthella - payment manual review

1 messages · Page 1 of 1 (latest)

pulsar frigate
#

Hi 👋

#

I'm looking into this

#

can you share a request ID with me?

#

Okay so could you break down the flow that has you concerned?

pulsar frigate
#

This will indicate if the payment went through a manual review.

ashen cradle
#

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

pulsar frigate
#

But you just said it was approved in the manual review queue. I'm confused. Do you have the event ID for this?

ashen cradle
#

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

tender oak
#

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

ashen cradle
#

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

pulsar frigate
#

Can you provide an example of a refund that was confirmed by a person reviewing the charge?

#

For comparison

ashen cradle
#

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

pulsar frigate
#

Okay so what information are you trying to get out of this process

#

Do you want the reason associated with the review?

ashen cradle
#

We need to a way to identify this is a regular refund and not because manual review is declined.

pulsar frigate
#

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

ashen cradle
#

We have a proxy service that has no information on prior events. Is there a way using just this event to identify that

pulsar frigate
#

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

ashen cradle
#

So if the review is null, that means it is not because of manual review decline?

pulsar frigate
#

If the review property on the charge is null there was no review

ashen cradle
#

Thanks a lot for your help.

#

This is really helpful👍

pulsar frigate
#

Good, I'm glad it's helped 😃

ashen cradle
#

Hi..

raw mason
#

Hello!

ashen cradle
#

The "review" field is null here

raw mason
#

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?

ashen cradle
#

This payment was placed in the manual review queue and was declined

raw mason
#

Can you give me the review ID for that review?

#

It's the ID starting with prv_

ashen cradle
#

hmm..let me try creating another one. Not able find that..as there are so many event

raw mason
#

I'm only seeing one review in test mode on that account, and it was back in July.

#

How are you triggering the reviews?

ashen cradle
#

check this one "prv_1JstJtJ3SR1GS5Bc04jbXJqS",

raw mason
#

Looking...

#

That one is from November, is that expected?

#

And it's for a different payment than the one you shared above.

ashen cradle
raw mason
#

Let me give your original payment a closer look...

ashen cradle
#

ok..

raw mason
#

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?

ashen cradle
#

ok, let me try creating a new charge and decline

#

In production we haven't declined any payments. Can only do it in dev

raw mason
#

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?

raw mason
#

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.

ashen cradle
#

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

mental storm
#

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

ashen cradle
#

Thanks! unfortunately, this is just a proxy service that forwards these requests. Do you by any chance know the tentative timeline for the fix?

mental storm
#

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

quiet sluiceBOT
raw mason
#

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.

ashen cradle
#

Hello @raw mason I filled it up and put in you name there.

ashen cradle
raw mason
#

Yep, got it and replied!

ashen cradle
raw mason
#

Happy to help! Is there anything else you need?

ashen cradle
#

that's all for now