# The Payment Evaluation object ## Attributes - `id` (string) Unique identifier for the object. - `object` (string) String representing the object’s type. Objects of the same type share the same value. - `client_device_metadata_details` (object, nullable, expandable (can be expanded into an object with the `expand` request parameter)) Details about the Client Device Metadata associated with the payment evaluation. - `client_device_metadata_details.radar_session` (string) ID for the Radar Session associated with the payment evaluation. A [Radar Session](https://docs.stripe.com/radar/radar-session.md) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. - `created_at` (timestamp) Time at which the object was created. Measured in seconds since the Unix epoch. - `customer_details` (object, expandable (can be expanded into an object with the `expand` request parameter)) Details about the customer associated with the payment evaluation. - `customer_details.customer` (string, nullable) The ID of the customer associated with the payment evaluation. - `customer_details.customer_account` (string, nullable) The ID of the Account representing the customer associated with the payment evaluation. - `customer_details.email` (string, nullable) The customer’s email address. - `customer_details.name` (string, nullable) The customer’s full name or business name. - `customer_details.phone` (string, nullable) The customer’s phone number. - `events` (array of objects, expandable (can be expanded into an object with the `expand` request parameter)) Event information associated with the payment evaluation, such as refunds, dispute, early fraud warnings, or user interventions. - `events.dispute_opened` (object, nullable) Details about the dispute opened event. - `events.dispute_opened.amount` (integer) 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) 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) 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, nullable) Details about the early fraud warning received event. - `events.early_fraud_warning_received.fraud_type` (enum) 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.occurred_at` (timestamp) Timestamp when the event occurred. - `events.refunded` (object, nullable) Details about the refunded event. - `events.refunded.amount` (integer) 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) 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) 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.type` (enum) 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.user_intervention_raised` (object, nullable) Details about the user intervention raised event. - `events.user_intervention_raised.custom` (object, nullable) Details for custom interventions. - `events.user_intervention_raised.custom.type` (string) Custom type of user intervention raised. The string must use a snake case description for the type of intervention performed. - `events.user_intervention_raised.key` (string) Unique identifier for the user intervention event. - `events.user_intervention_raised.type` (enum) Type of user intervention raised. Possible enum values: - `3ds` 3DS Authentication - `captcha` CAPTCHA Security Test - `custom` Custom Intervention - `events.user_intervention_resolved` (object, nullable) Details about the user intervention resolved event. - `events.user_intervention_resolved.key` (string) Unique ID of this intervention. Use this to provide the result. - `events.user_intervention_resolved.outcome` (enum, nullable) Result of the intervention if it has been completed. Possible enum values: - `abandoned` The customer abandoned the user intervention. - `failed` The customer failed the user intervention. - `passed` The customer passed the user intervention. - `insights` (object) Provides Stripe Radar’s evaluation of the risk level of the payment. - `insights.card_issuer_decline` (object, nullable) Stripe Radar’s evaluation of the likelihood of a card issuer decline on this payment. - `insights.card_issuer_decline.model_score` (float) Stripe Radar’s evaluation of the likelihood that the payment will be declined by the card issuer. Scores range from 0 to 100, with higher values indicating a higher likelihood of decline. - `insights.card_issuer_decline.recommended_action` (enum) Recommended action based on the model score. Possible values are `block` and `continue`. Possible enum values: - `block` The recommendation is to block the payment from proceeding. - `continue` The recommendation is to allow this payment to continue to processing. - `insights.evaluated_at` (timestamp) The timestamp when the evaluation was performed. - `insights.fraudulent_dispute` (object) The likelihood of a future fraudulent dispute claim (regardless of early fraud warning) for this `PaymentEvaluation`. - `insights.fraudulent_dispute.recommended_action` (enum) Recommended action based on the risk score. Possible values are `block` and `continue`. Possible enum values: - `block` The recommendation is to block the payment from proceeding. - `continue` The recommendation is to allow this payment to continue to processing. - `insights.fraudulent_dispute.risk_score` (integer) Stripe Radar’s evaluation of the risk level of the payment. Possible values for evaluated payments are between 0 and 100, with higher scores indicating higher risk. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `metadata` (object, nullable) 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. - `outcome` (object, nullable, expandable (can be expanded into an object with the `expand` request parameter)) Indicates the final outcome for the payment evaluation. - `outcome.merchant_blocked` (object, nullable) Details of the merchant blocked outcome. - `outcome.merchant_blocked.reason` (enum) 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. - `outcome.payment_intent_id` (string, nullable) The PaymentIntent ID associated with the payment evaluation. - `outcome.rejected` (object, nullable) Details of the rejected outcome. - `outcome.rejected.card` (object, nullable) Rejected card details attached to this payment evaluation. - `outcome.rejected.card.address_line1_check` (enum) 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. - `outcome.rejected.card.address_postal_code_check` (enum) 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. - `outcome.rejected.card.cvc_check` (enum) Result of the CVC check. Possible enum values: - `fail` Check failed. - `pass` Check was passed. - `unavailable` Check was unavailable. - `unchecked` Check not performed. - `outcome.rejected.card.reason` (enum) 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. - `outcome.succeeded` (object, nullable) Details of the succeeded outcome. - `outcome.succeeded.card` (object, nullable) Succeeded card details attached to this payment evaluation. - `outcome.succeeded.card.address_line1_check` (enum) 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. - `outcome.succeeded.card.address_postal_code_check` (enum) 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. - `outcome.succeeded.card.cvc_check` (enum) Result of the CVC check. Possible enum values: - `fail` Check failed. - `pass` Check was passed. - `unavailable` Check was unavailable. - `unchecked` Check not performed. - `outcome.type` (enum) Indicates the outcome of the payment evaluation. Possible enum values: - `failed` The payment failed. - `merchant_blocked` The payment wasn’t sent for processing. - `rejected` The payment was rejected by the issuer. - `succeeded` The payment succeeded. - `payment_details` (object, expandable (can be expanded into an object with the `expand` request parameter)) Details about the payment. - `payment_details.amount` (integer) Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://docs.stripe.com/docs/currencies.md#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://docs.stripe.com/docs/currencies.md#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). - `payment_details.currency` (enum) 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). - `payment_details.description` (string, nullable) An arbitrary string attached to the object. Often useful for displaying to users. - `payment_details.money_movement_details` (object, nullable) Details about the payment’s customer presence and type. - `payment_details.money_movement_details.card` (object, nullable) Describes card money movement details for the payment evaluation. - `payment_details.money_movement_details.card.customer_presence` (enum, nullable) Describes the presence of the customer during the payment. Possible enum values: - `off_session` Customer isn’t present because the payment was initiated automatically or by the merchant. - `on_session` Customer is present in the checkout flow. - `payment_details.money_movement_details.card.payment_type` (enum, nullable) Describes the type of payment. Possible enum values: - `one_off` Charge an on-session or off-session customer using a previously stored card. - `recurring` Charge an on-session or off-session customer using a previously stored card. - `setup_one_off` Charge an on-session customer and store their card for future unscheduled on-session or off-session usage. - `setup_recurring` Charge an on-session customer and store their card for future off-session usage on recurring payments. - `payment_details.money_movement_details.money_movement_type` (enum) Describes the type of money movement. Currently only `card` is supported. Possible enum values: - `card` The money movement details for a card payment. - `payment_details.payment_method_details` (object, nullable) Details about the payment method used for the payment. - `payment_details.payment_method_details.billing_details` (object, nullable) Billing information associated with the payment evaluation. - `payment_details.payment_method_details.billing_details.address` (object) Billing address. - `payment_details.payment_method_details.billing_details.address.city` (string, nullable) City, district, suburb, town, or village. - `payment_details.payment_method_details.billing_details.address.country` (string, nullable) Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). - `payment_details.payment_method_details.billing_details.address.line1` (string, nullable) Address line 1, such as the street, PO Box, or company name. - `payment_details.payment_method_details.billing_details.address.line2` (string, nullable) Address line 2, such as the apartment, suite, unit, or building. - `payment_details.payment_method_details.billing_details.address.postal_code` (string, nullable) ZIP or postal code. - `payment_details.payment_method_details.billing_details.address.state` (string, nullable) State, county, province, or region ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)). - `payment_details.payment_method_details.billing_details.email` (string, nullable) Email address. - `payment_details.payment_method_details.billing_details.name` (string, nullable) Full name. - `payment_details.payment_method_details.billing_details.phone` (string, nullable) Billing phone number (including extension). - `payment_details.payment_method_details.payment_method` (string, expandable (can be expanded into an object with the `expand` request parameter)) The payment method used in this payment evaluation. - `payment_details.shipping_details` (object, nullable) Shipping details for the payment evaluation. - `payment_details.shipping_details.address` (object) Shipping address. - `payment_details.shipping_details.address.city` (string, nullable) City, district, suburb, town, or village. - `payment_details.shipping_details.address.country` (string, nullable) Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). - `payment_details.shipping_details.address.line1` (string, nullable) Address line 1, such as the street, PO Box, or company name. - `payment_details.shipping_details.address.line2` (string, nullable) Address line 2, such as the apartment, suite, unit, or building. - `payment_details.shipping_details.address.postal_code` (string, nullable) ZIP or postal code. - `payment_details.shipping_details.address.state` (string, nullable) State, county, province, or region ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)). - `payment_details.shipping_details.name` (string, nullable) Shipping name. - `payment_details.shipping_details.phone` (string, nullable) Shipping phone number. - `payment_details.statement_descriptor` (string, nullable) Payment statement descriptor. ### The Payment Evaluation object ```json { "id": "peval_123456789", "created_at": 1704067200, "insights": { "evaluated_at": 1726181396, "fraudulent_dispute": { "recommended_action": "continue", "risk_score": 50 } }, "livemode": false, "metadata": {}, "status": "requires_action" } ```