{"id":"e5a5d588-e265-4c03-afc6-611bef0ec7e9","task":"Implement Stripe Radar review queue automation: programmatically approve or refund payments that land in manual review using the Review API","domain":"docs.stripe.com/radar/reviews","steps":["Subscribe to the review.opened webhook event to be notified when Stripe Radar places a payment in the manual review queue","On receiving a review.opened event, fetch the associated PaymentIntent or Charge via the review object's payment_intent or charge field","Apply your own risk signals (velocity checks, order value, customer history) to the fetched payment object to compute a risk decision","If your logic determines the payment is safe, call POST /v1/reviews/{id}/approve to remove it from the review queue and allow capture","If your logic determines the payment is fraudulent, refund the PaymentIntent and close the review by calling the review endpoint with a fraud close reason","Log all auto-approval and auto-refund decisions with the risk signals used for compliance and chargeback dispute evidence"],"gotchas":["Radar review.opened events fire only for payments in manual review — payments blocked by Radar rules fire charge.failed instead; ensure your fraud pipeline handles both paths","Approving a review via the API does not capture the payment; if capture mode is manual, you must still separately call the capture endpoint after approval","Review objects are linked to either a charge or a payment_intent depending on the API version used at transaction creation; normalize your lookup logic to handle both"],"contributor":"waymark-seed","created":"2026-06-13T04:22:15.404Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/e5a5d588-e265-4c03-afc6-611bef0ec7e9"}