# Report an Outcome for a Payment Evaluation Update a Payment Evaluation with the outcome of the payment. ## Returns Returns the payment evaluation object. ## Parameters - `occurred_at` (timestamp, required) Timestamp the event occurred - `payment_evaluation` (string, required) Unique identifier for the payment evaluation to attach the events to. - `type` (enum, required) Indicates the outcome of the payment evaluation. Possible enum values: - `failed` The payment failed. - `merchant_blocked` The payment wasn’t sent for processing. - `processed_on_stripe` The payment was processed on Stripe. - `rejected` The payment was rejected by the issuer. - `succeeded` The payment succeeded. - `events` (array of objects, optional) Event information to associate with the payment evaluation such as refunds, dispute, early fraud warnings, or user interventions. - `events.occurred_at` (timestamp, required) Timestamp when the event occurred. - `events.type` (enum, required) Indicates the type of event attached to the payment evaluation. Possible enum values: - `dispute_opened` Event type for when a dispute is opened. - `early_fraud_warning_received` Event type for when an early fraud warning is received. - `refunded` Event type for when a payment is refunded. - `user_intervention_raised` Event type for when a user intervention is raised. - `user_intervention_resolved` Event type for when a user intervention is resolved. - `events.dispute_opened` (object, optional) Details about the dispute opened event. - `events.dispute_opened.amount` (integer, required) Amount to dispute for this payment. A positive integer representing how much to charge in [the smallest currency unit](https://docs.stripe.com/currencies.md#zero-decimal) (for example, 100 cents to charge 1.00 USD or 100 to charge 100 Yen, a zero-decimal currency). - `events.dispute_opened.currency` (enum, required) Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). - `events.dispute_opened.reason` (enum, required) Reason given by cardholder for dispute. Possible enum values: - `account_not_available` The account isn’t available. - `credit_not_processed` The cardholder claims they should have received a refund or credit but haven’t. - `customer_initiated` The cardholder disputed the transaction. - `duplicate` The cardholder claims they were incorrectly charged multiple times for the same products or services. - `fraudulent` The cardholder claims that a payment was unauthorized and that they didn’t initiate it or give permission for it to happen. - `general` The reason doesn’t match any of the other dispute reasons. - `noncompliant` The transaction is noncompliant. - `product_not_received` The cardholder claims they didn’t receive the products or services they purchased. - `product_unacceptable` The cardholder claims a product they received is defective, damaged, or not as described. This includes issues with the product itself or how it was represented on the seller’s site. - `subscription_canceled` The cardholder claims that a business continued to charge them after their subscription was canceled. - `unrecognized` The cardholder doesn’t recognize the transaction. - `events.early_fraud_warning_received` (object, optional) Details about the early fraud warning received event. - `events.early_fraud_warning_received.fraud_type` (enum, required) The type of fraud labeled by the issuer. Possible enum values: - `made_with_lost_card` The payment might be fraudulent because the card was reported lost. - `made_with_stolen_card` The payment might be fraudulent because the card was reported stolen. - `other` The reason doesn’t match any of the other reasons. - `unauthorized_use_of_card` The payment might be fraudulent because the card was used without the cardholder’s permission. - `events.refunded` (object, optional) Details about the refunded event. - `events.refunded.amount` (integer, required) Amount refunded for this payment. A positive integer representing how much to charge in [the smallest currency unit](https://docs.stripe.com/currencies.md#zero-decimal) (for example, 100 cents to charge 1.00 USD or 100 to charge 100 Yen, a zero-decimal currency). - `events.refunded.currency` (enum, required) Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). - `events.refunded.reason` (enum, required) Indicates the reason for the refund. Possible enum values: - `duplicate` The merchant has indicated the refund is because of a duplicate payment. - `fraudulent` The merchant has indicated the refund is because of fraud. - `other` The reason doesn’t match any of the other refund reasons. - `requested_by_customer` The merchant has indicated the refund was requested by the customer. - `events.user_intervention_raised` (object, optional) Details about the user intervention raised event. - `events.user_intervention_raised.type` (enum, required) Type of user intervention raised. Possible enum values: - `3ds` 3DS Authentication - `captcha` CAPTCHA Security Test - `custom` Custom Intervention - `events.user_intervention_raised.custom` (object, optional) Details for custom interventions. - `events.user_intervention_raised.custom.type` (string, required) Custom type of user intervention raised. The string must use a snake case description for the type of intervention performed. - `events.user_intervention_resolved` (object, optional) Details about the user intervention resolved event. - `events.user_intervention_resolved.key` (string, required) Unique ID of the intervention. - `events.user_intervention_resolved.outcome` (enum, required) Result of the intervention. Possible enum values: - `abandoned` The customer abandoned the user intervention. - `failed` The customer failed the user intervention. - `passed` The customer passed the user intervention. - `merchant_blocked` (object, optional) Details of the merchant blocked outcome. - `merchant_blocked.reason` (enum, required) The reason the payment was blocked by the merchant. Possible enum values: - `authentication_required` The issuer requested (3DS) authentication to proceed with the payment, but the merchant chose to block the transaction instead. - `blocked_for_fraud` The merchant or PSP fraud system blocked the payment for suspected fraud. - `invalid_payment` Payment was rejected for a non-fraud reason. For example, the customer forgot to supply a date in the future for their card’s expiration date. - `other` A non-system failure reason for why the merchant blocked the transaction. If the system failed (for example, because of infrastructure failure), use `outcome.failed` instead. - `metadata` (object, optional) Set of [key-value pairs](https://docs.stripe.com/docs/api/metadata.md) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. - `processed_on_stripe` (object, optional) Details of the processed on Stripe outcome. - `processed_on_stripe.payment_intent` (string, required) The PaymentIntent ID to associate with the payment evaluation. - `rejected` (object, optional) Details of the rejected outcome. - `rejected.card` (object, optional) Rejected card details to attach to this payment evaluation. - `rejected.card.address_line1_check` (enum, required) Result of the address line 1 check. Possible enum values: - `fail` Check failed. - `pass` Check was passed. - `unavailable` Check was unavailable. - `unchecked` Check not performed. - `rejected.card.address_postal_code_check` (enum, required) Indicates whether the cardholder provided a postal code and if it matched the cardholder’s billing address. Possible enum values: - `fail` Check failed. - `pass` Check was passed. - `unavailable` Check was unavailable. - `unchecked` Check not performed. - `rejected.card.cvc_check` (enum, required) Result of the CVC check. Possible enum values: - `fail` Check failed. - `pass` Check was passed. - `unavailable` Check was unavailable. - `unchecked` Check not performed. - `rejected.card.reason` (enum, required) Card issuer’s reason for the network decline. Possible enum values: - `authentication_failed` The payment method was declined because the transaction failed to pass authentication (3DS). - `do_not_honor` The payment method was declined for an unknown reason. - `expired` The card has expired. - `incorrect_cvc` The CVC number is incorrect. - `incorrect_number` The payment method information is incorrect. - `incorrect_postal_code` The postal code or ZIP code is incorrect. - `insufficient_funds` The payment method has insufficient funds to complete the purchase. - `invalid_account` The card, or account the card is connected to, is invalid. - `lost_card` The payment was declined because the card is reported lost. - `other` The reason doesn’t match any other network decline reasons. - `processing_error` An error occurred while processing the payment method. - `reported_stolen` The payment was declined because the card is reported stolen. - `try_again_later` The payment method was declined for an unknown reason and the network indicated to try the payment again at a later time. - `succeeded` (object, optional) Details of the succeeded outcome. - `succeeded.card` (object, optional) Succeeded card details to attach to this payment evaluation. - `succeeded.card.address_line1_check` (enum, required) Result of the address line 1 check. Possible enum values: - `fail` Check failed. - `pass` Check was passed. - `unavailable` Check was unavailable. - `unchecked` Check not performed. - `succeeded.card.address_postal_code_check` (enum, required) Indicates whether the cardholder provided a postal code and if it matched the cardholder’s billing address. Possible enum values: - `fail` Check failed. - `pass` Check was passed. - `unavailable` Check was unavailable. - `unchecked` Check not performed. - `succeeded.card.cvc_check` (enum, required) Result of the CVC check. Possible enum values: - `fail` Check failed. - `pass` Check was passed. - `unavailable` Check was unavailable. - `unchecked` Check not performed. ```curl curl https://api.stripe.com/v1/payment_evaluations/peval_123456789/report_outcome \ -u "<>" \ -H "Stripe-Version: 2026-01-28.preview; payment_evaluations_beta=v1" \ -d occurred_at=123456789 \ -d type=succeeded \ -d "succeeded[card][address_line1_check]"=pass \ -d "succeeded[card][address_postal_code_check]"=pass \ -d "succeeded[card][cvc_check]"=pass ``` ### Response ```json { "id": "peval_123456789", "object": "payment_evaluation", "created_at": 1704067200, "insights": { "evaluated_at": 1726181396, "fraudulent_dispute": { "recommended_action": "continue", "risk_score": 50 } }, "livemode": false, "metadata": {}, "status": "evaluation_completed" } ```