Report an Outcome for a Payment Evaluation 

Fraud
Payment Evaluations
Report an Outcome for a Payment Evaluation

Update a Payment Evaluation with the outcome of the payment.

Parameters

  • occurred_attimestampRequired

    Timestamp the event occurred

  • payment_evaluationstringRequired

    Unique identifier for the payment evaluation to attach the events to.

  • typeenumRequired

    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.

  • eventsarray of objects

    Event information to associate with the payment evaluation such as refunds, dispute, early fraud warnings, or user interventions.

    • events.occurred_attimestampRequired

      Timestamp when the event occurred.

    • events.typeenumRequired

      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_openedobject

      Details about the dispute opened event.

      • events.dispute_opened.amountintegerRequired

        Amount to dispute for this payment. A positive integer representing how much to charge in the smallest currency unit (for example, 100 cents to charge 1.00 USD or 100 to charge 100 Yen, a zero-decimal currency).

      • events.dispute_opened.currencyenumRequired

        Three-letter ISO currency code, in lowercase. Must be a supported currency.

      • events.dispute_opened.reasonenumRequired

        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.

        Show 1 more
    • events.early_fraud_warning_receivedobject

      Details about the early fraud warning received event.

      • events.early_fraud_warning_received.fraud_typeenumRequired

        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.refundedobject

      Details about the refunded event.

      • events.refunded.amountintegerRequired

        Amount refunded for this payment. A positive integer representing how much to charge in the smallest currency unit (for example, 100 cents to charge 1.00 USD or 100 to charge 100 Yen, a zero-decimal currency).

      • events.refunded.currencyenumRequired

        Three-letter ISO currency code, in lowercase. Must be a supported currency.

      • events.refunded.reasonenumRequired

        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_raisedobject

      Details about the user intervention raised event.

      • events.user_intervention_raised.typeenumRequired

        Type of user intervention raised.

        Possible enum values
        3ds

        3DS Authentication

        captcha

        CAPTCHA Security Test

        custom

        Custom Intervention

      • events.user_intervention_raised.customobject

        Details for custom interventions.

        • events.user_intervention_raised.custom.typestringRequired

          Custom type of user intervention raised. The string must use a snake case description for the type of intervention performed.

    • events.user_intervention_resolvedobject

      Details about the user intervention resolved event.

      • events.user_intervention_resolved.keystringRequired

        Unique ID of the intervention.

      • events.user_intervention_resolved.outcomeenumRequired

        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_blockedobject

    Details of the merchant blocked outcome.

    • merchant_blocked.reasonenumRequired

      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.

  • metadataobject

    Set of key-value pairs 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_stripeobject

    Details of the processed on Stripe outcome.

    • processed_on_stripe.payment_intentstringRequired

      The PaymentIntent ID to associate with the payment evaluation.

  • rejectedobject

    Details of the rejected outcome.

    • rejected.cardobject

      Rejected card details to attach to this payment evaluation.

      • rejected.card.address_line1_checkenumRequired

        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_checkenumRequired

        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_checkenumRequired

        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.reasonenumRequired

        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.

        Show 3 more
  • succeededobject

    Details of the succeeded outcome.

    • succeeded.cardobject

      Succeeded card details to attach to this payment evaluation.

      • succeeded.card.address_line1_checkenumRequired

        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_checkenumRequired

        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_checkenumRequired

        Result of the CVC check.

        Possible enum values
        fail

        Check failed.

        pass

        Check was passed.

        unavailable

        Check was unavailable.

        unchecked

        Check not performed.

Returns

Returns the payment evaluation object.

POST /v1/payment_evaluations/:id/report_outcome
cURL
curl https://api.stripe.com/v1/payment_evaluations/peval_123456789/report_outcome \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-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
{
"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"
}