Integrating Visa CE 3.0 & Mastercard Fraud Protection
This guide shows how to implement automated fraud chargeback protection with Visa 3.0, Mastercard FTP, and Amex rules. By matching past transaction data, you can deflect fraudulent disputes, reduce liability, and protect revenue.
What This Guide Covers
This guide helps you implement automated fraud chargeback protection through Visa Compelling Evidence 3.0 Mastercard Fraud Protection & American Express's equivalent programs. When properly configured, these programs can reduce your liability for fraudulent chargebacks by automatically proving legitimate cardholder usage patterns.
Links to Card Scheme compelling evidence rules:
How It Works
When a cardholder disputes a card-not-present transaction as fraud these programs allow merchants to submit a "purchase history" - namely two previous, undisputed transactions made with the same card - to prove the customer really made the purchase. If a match can be shown between core data points detailed below, the dispute can be stopped before it turns into a chargeback.
Key Requirement
You need at least 2 related transactions from the same cardholder (within a specific timeframe) to qualify for protection.
Step-by-Step Implementation
Step 1: Identify Qualifying Chargebacks
Your chargeback must have one of these reason codes to be eligible:
Card Network | Reason Code | Description |
---|---|---|
Visa | 10.4 (or 1040) | Fraud - Card Absent Environment |
Mastercard | 4837 | No Cardholder Authorization |
American Express | 4540 or F29 | Fraudulent Transaction |
Step 2: Find Related Transactions
To prove cardholder legitimacy, find transactions that match these criteria:
2A. Card Matching (All Must Match)
- Last 4 digits of the card number
- Card network (Visa, Mastercard, etc.)
- Bank identification number (first 6 digits) - when available
- Billing descriptor (how the charge appears on statements)
- OR unique card identifier (if your system generates card fingerprints)
2B. Time Window
- Transactions must be 120-365 days before the disputed transaction
- Use your transaction timestamp to calculate this range
2C. Transaction Status
β Qualifying transactions:
- No disputes filed
- Only non-fraud chargebacks (if any)
β Disqualifying transactions:
- Any fraud disputes filed
- Active fraud reports on file
Step 3: Verify Cardholder Patterns
For each qualifying transaction, you must have at least one match from each category:
Device Evidence (Choose 1+)
- IP Address - Same internet connection
- Device ID - Same device/browser identifier
- User Agent - Same browser/device signature
Delivery Evidence (Choose 1+)
- Email address - Same account email
- Shipping address - Same delivery location
- Account ID - Same user account
- Subscription ID - Same recurring service
Additional Evidence (Include all available)
- Phone number - Same contact number
- Billing address - Same payment address
- Product details - Same or similar items purchased
Data Requirements
Required Transaction Information
For each qualifying transaction, collect the below data points and share with Justt. Additional information is detailed here.
interface TransactionData {
// Card Information
cardLast4: string; // Last 4 digits (e.g., "1234")
cardScheme: string; // "VISA", "MASTERCARD", "AMEX"
bankId?: string; // First 6 digits (optional)
billingDescriptor: string; // Merchant name on statement
cardFingerprint?: string; // Unique card ID (if available)
// Transaction Details
timestamp: Date; // When transaction occurred
transactionId: string; // Your internal transaction ID
status: string; // "completed", "failed", etc.
amount: number; // Transaction amount
// Dispute Information
reasonCode?: string; // If previously disputed
reasonDescription?: string; // Dispute reason details
fraudReportActive: boolean; // Any active fraud flags
acquirerRefNumber?: string; // Network reference number
}
Required Cardholder Information
interface CardholderData {
// Device Evidence (need at least 1)
ipAddress?: string; // IP address used
deviceId?: string; // Device identifier
userAgent?: string; // Browser/app signature
// Delivery Evidence (need at least 1)
email?: string; // Account email
accountId?: string; // User account ID
subscriptionId?: string; // Subscription identifier
// Shipping Details
shippingAddress?: {
street: string;
city: string;
state: string;
zipCode: string;
country: string;
};
// Additional Evidence (optional but recommended)
phoneNumber?: string; // Contact phone
billingAddress?: Address; // Billing address
productName?: string; // Product purchased
productDescription?: string; // Product details
}
Updated 16 days ago