Visa Compelling Evidence 3.0 disputes
Use the API and Visa's Compelling Evidence 3.0 to respond to qualifying disputes.
Visa Compelling Evidence 3.0 (CE 3.0) has new qualifying criteria allowing businesses to demonstrate a non-fraudulent history with cardholders to fight friendly fraud. Submitting qualifying evidence for Visa CE 3.0 eligible disputes can increase the chance of an issuer reversing friendly fraud disputes in favor of the business.
Visa CE 3.0 qualifying disputes
To respond to a dispute using Visa CE 3.0, the dispute must meet the following criteria:
- The disputed transaction must be a Visa transaction with network reason code 10.4.
- There must be at least two previous transactions that weren’t disputed, using the same payment method as the disputed transaction.
- The previous non-disputed transactions must be within 120-365 days of the disputed transaction.
- The previous non-disputed transactions must be paid, undisputed, and can’t be validation charges.
- You must provide descriptions for the disputed transaction’s product description and past undisputed transactions’ product descriptions.
- You must categorize the disputed transaction as either
merchandise
orservices
in the merchandise_or_services field. - The disputed transaction and both past undisputed transactions must match either:
- Two main evidence elements (for example, Customer Purchase IP and Customer Device Fingerprint).
- One main evidence element and one secondary evidence element (for example, Customer Device ID and Customer Account ID).
Main evidence elements | Secondary evidence elements |
---|---|
Customer purchase IP | Shipping address |
Customer device fingerprint or customer device ID | Customer email address |
Customer Account ID |
Note
Customer Device Fingerprint and Customer Device ID isn’t a valid evidence combination.
The enhanced evidence object
To submit evidence using Visa CE 3.0, use the enhanced evidence object. This exists within the dispute evidence object. The enhanced eligibility types array contains a list of eligibility types in enhanced evidence.
{ "id": "du_TFCU9xJ2Gsj7BAiAoQok8Icp", "charge": "ch_vEUUPELhHVkPbMN1md3B0vG7", "enhanced_eligibility_types": ["visa_compelling_evidence_3"], "evidence": { "enhanced_evidence": { "visa_compelling_evidence_3": { "disputed_transaction": { "customer_email_address": "test@example.com", "customer_purchase_ip": "123.123.123.123", "merchandise_or_services": "merchandise", "product_description": "Widget ABC, color: green", }, "prior_undisputed_transactions": [ { "charge": "ch_nE8T8mUOoy9zkkOQLHuLsr3Z", "customer_email_address": "test@example.com", "customer_purchase_ip": "123.123.123.123", "product_description": "Widget DEF, color: blue" }, { "charge": "ch_PcE97JB902XNTc1JpyBFmMTF", "customer_email_address": "test@example.com", "customer_purchase_ip": "123.123.123.123", "product_description": "Widget XYZ, color: yellow" } ] } }, } ... }
The enhanced eligibility object
The enhanced eligibility object shows the status of your Visa CE 3.0 submission. This exists within the evidence details object and provides detailed information on the steps required to ensure evidence is submitted to Visa as CE 3.0.
{ "enhanced_eligibility_types": ["visa_compelling_evidence_3"], "evidence_details": { "due_by": 1708387199, "enhanced_eligibility": { "visa_compelling_evidence_3": { "partner_rejected_details": null, "required_actions": [ "missing_merchandise_or_services", "missing_disputed_transaction_description" ], "status": "requires_action" } }, "has_evidence": false, "past_due": false, "submission_count": 0 }, "payment_method_details": { "card": { "brand": "visa", "network_reason_code": "10.4" }, "type": "card" }, "reason": "fraudulent", "status": "needs_response" }
Autofilled evidence
When Stripe identifies a disputed transaction as eligible for Visa CE 3.0, Stripe attempts to autofill the disputed transaction and evidence from previous undisputed transactions. You have the option to manually add Visa CE 3.0 evidence if you believe the disputed transaction qualifies.
Note
Stripe must have processed all past undisputed transactions.
Submission lifecycle
The Visa CE 3.0 status becomes qualified
or requires_
when a dispute has the Visa Compelling Evidence 3 object filled within the enhanced evidence object.
- If the status is
requires_
, use the required_actions array to figure out the extra evidence needed.action - If the status is
qualified
, you’re ready to submit Visa CE 3.0 evidence.
You can submit evidence using the Update dispute API. To update evidence without submitting it, make sure the submit parameter is set to false
.
After submitting evidence, the status changes to not_
if the evidence is ineligible for Visa CE 3.0. Evidence is still submitted, but not using Visa CE 3.0.
If you have submitted qualifying evidence, track the status of the dispute in the dispute status field to see if you’ve won or lost.
Note
To increase your chances of winning a dispute, fill out the dispute evidence object (not just the enhanced evidence object). This evidence is used in case your Visa CE 3.0 submission is disapproved, and your dispute is submitted through the standard evidence submission flow.
Testing
To test your Visa CE 3.0 integration, use the following test card, which creates a Visa CE 3.0 eligible dispute:
Testing Method | Token |
---|---|
Card Number | |
PaymentMethod | pm_ |
Token | tok_ |
When providing evidence for this dispute, you can submit any two test mode transactions in the prior_undisputed_transactions.charge field.
Note
When in test mode, you can use any two test mode transactions as prior_
. Stripe doesn’t validate the prior transactions’ payment method or transaction date in test mode.
We’ll validate primary and secondary evidence elements according Visa CE 3.0 rules.
The Visa CE 3.0 status properly reflects qualified
or requires_
based on the evidence provided.
After you submit evidence, the Visa CE 3.0 status is:
not_
: The evidence doesn’t qualify for Visa CE 3.0.qualified qualified
: The evidence qualifies for Visa CE 3.0.
Note
The Visa CE 3.0 status doesn’t impact the dispute status.
To simulate a won
or lost
state for the overall dispute, set uncategorized_text to winning_
or losing_
as outlined in Testing.