Home / Issuing / Control Authorizations

Spend Rule Remediation Guide

Decline Code to Root Cause Mapping

Decline CodeCommon Root CausesFixable with Spend Rules?Priority
RE_ENTER_TRANSACTION• AVS mismatch (street or postal)<br>• Merchant hardcoding address<br>• International format issues<br>• Missing apartment/suite✅ YES - Primary use caseHIGH
DO_NOT_HONOR• Generic decline (often AVS-related)<br>• Risk score threshold<br>• Velocity exceeded<br>• Suspicious pattern⚠️ PARTIAL - If AVS-relatedHIGH
RESTRICTED_LOCATION• Merchant country blocked<br>• Regional restrictions<br>• Sanctions compliance✅ YES - Country rulesHIGH
TRANSACTION_NOT_PERMITTED• MCC blocked<br>• POS type restricted<br>• Card input method blocked✅ YES - MCC/POS rulesMEDIUM
EXCEEDS_APPROVAL_AMOUNT_LIMIT• Single transaction limit<br>• Daily/monthly limit<br>• ATM withdrawal limit✅ YES - Amount rulesMEDIUM
EXCEEDS_WITHDRAWAL_FREQUENCY_LIMIT• Too many transactions<br>• Velocity control triggered✅ YES - Velocity rulesMEDIUM
BAD_CVV2• CVV mismatch<br>• CVV not provided✅ YES - CVV rulesLOW
INSUFFICIENT_FUNDS• Account balance issue❌ NO - Cardholder issueN/A
EXPIRED_CARD• Card expired❌ NO - Card issueN/A
CLOSED_ACCOUNT• Account closed❌ NO - Account issueN/A

AVS-Specific Decline Resolution Matrix

AVS ScenarioTypical MerchantsRoot CauseRisk LevelSpend Rule SolutionImplementation Pattern
Postal Code Hardcoding• French merchant (06000)<br>• International processors<br>• Legacy systemsMerchant sends fixed zip instead of customer'sMediumPostalCodeVerificationSpendRule with NO_MATCH allowed for specific MIDPattern A: MID Whitelist
International Format Mismatch• Cross-border merchants<br>• Global marketplaces<br>• Travel servicesAddress formats differ by countryMedium-HighBoth AVS rules with NOT_SUPPORTED allowedPattern B: Geographic Override
Apartment/Suite Variations• Delivery services<br>• Utilities<br>• Property management"Apt 2B" vs "#2B" vs "Unit 2B"Low-MediumStreetAddressSpendRule with partial matchPattern C: Fuzzy Matching
Gift Card/Prepaid Cards• Retail<br>• Gas stations<br>• Quick serviceNo address on fileLowAVS rules with UNAVAILABLE allowedPattern D: Card Type Override
PO Box Issues• Government services<br>• Subscriptions<br>• B2B suppliersPO Box vs physical addressLowStreetAddressSpendRule flexiblePattern E: Address Type Override
Billing vs Shipping Confusion• E-commerce<br>• MarketplacesCustomer enters wrong addressMediumEducational + flexible postalPattern F: Customer Education

Implementation Patterns

Pattern A: MID Whitelist

Best for: Known merchants with systematic AVS issues

Step 1: Create Allow-All Base Rules
├── StreetAddressSpendRule: [MATCH, NO_MATCH, NOT_SUPPORTED, UNAVAILABLE]
└── PostalCodeVerificationSpendRule: [MATCH, NO_MATCH, NOT_SUPPORTED, UNAVAILABLE]

Step 2: Create Restrictive Velocity Rules
├── VelocityRule 1 (PER_TRANSACTION)
│   ├── Condition: AVS_STREET = NO_MATCH
│   ├── Condition: MID NOT IN [whitelist]
│   └── Action: DECLINE
└── VelocityRule 2 (PER_TRANSACTION)
    ├── Condition: AVS_POSTAL = NO_MATCH
    ├── Condition: MID NOT IN [whitelist]
    └── Action: DECLINE

Pros: Flexible for trusted merchants Cons: Requires maintaining MID lists

Pattern B: Geographic Override

Best for: International transactions

Step 1: Detect International Transaction
├── MerchantCountrySpendRule: Check if international

Step 2: Apply Relaxed AVS for International
├── ConditionalRule
│   ├── IF merchant_country != USA
│   ├── THEN allow AVS codes [MATCH, NOT_SUPPORTED, UNAVAILABLE]
│   └── ELSE require [MATCH]

Pros: Automatic for international Cons: Higher fraud risk

Pattern C: Risk-Based Tiered Override

Best for: Dynamic risk management

Step 1: Calculate Risk Score
├── Low Risk: Amount < $50 AND recurring_merchant
├── Medium Risk: Amount $50-200 OR new_merchant  
├── High Risk: Amount > $200 AND first_transaction

Step 2: Apply Tiered AVS Requirements
├── Low Risk: Allow [MATCH, NO_MATCH, NOT_SUPPORTED]
├── Medium Risk: Allow [MATCH, NO_MATCH] for postal only
└── High Risk: Require [MATCH] for both

Pros: Balances risk and approval rates Cons: Complex to implement

Pattern D: Time-Limited Override

Best for: Temporary merchant issues

Step 1: Create Temporary Rule
├── StreetAddressSpendRule: [MATCH, NO_MATCH]
├── Valid for: 7 days
└── Auto-expire: TRUE

Step 2: Monitor and Extend if Needed
├── Track decline rate
├── Monitor fraud rate
└── Decision: Extend/Modify/Remove

Pros: Limits risk exposure Cons: Requires monitoring

Pattern E: Partial Match Tolerance

Best for: Address formatting issues

Step 1: Define Partial Match Logic
├── IF postal_code = MATCH AND street = NO_MATCH
│   └── Check if amount < $100 → ALLOW
├── IF postal_code = NO_MATCH AND street = MATCH
│   └── Check if MCC is low risk → ALLOW
└── IF both = NO_MATCH → DECLINE

Pros: Nuanced approach Cons: More complex rules

Decision Tree for Dashboard Implementation

Transaction Declined
├── Decline Code = RE_ENTER_TRANSACTION?
│   ├── Yes → Check AVS Response Codes
│   │   ├── Postal = NO_MATCH?
│   │   │   ├── Check if merchant is international
│   │   │   ├── Check transaction history with this MID
│   │   │   └── Suggest: Pattern A (MID Whitelist) or Pattern B (Geographic)
│   │   ├── Street = NO_MATCH?
│   │   │   ├── Check for apartment/suite in address
│   │   │   ├── Check if PO Box
│   │   │   └── Suggest: Pattern C (Risk-Based) or Pattern E (Partial Match)
│   │   └── Both = NO_MATCH?
│   │       ├── High risk - require manual review
│   │       └── Suggest: Pattern D (Time-Limited) if approved
│   └── No → Continue to next decline code
│
├── Decline Code = DO_NOT_HONOR?
│   ├── Request raw response codes from processor
│   ├── If AVS-related → Apply appropriate pattern
│   └── If not AVS → Check other rules
│
├── Decline Code = RESTRICTED_LOCATION?
│   ├── Review MerchantCountrySpendRule
│   └── Suggest: Add country to allowed list if appropriate
│
└── [Continue for other decline codes...]

Risk Assessment Matrix

Override TypeFraud RiskFalse Decline RiskRecommended MonitoringRollback Trigger
Full AVS Bypass (Both)🔴 HIGH🟢 LOW• Daily review<br>• All transactions>1% fraud rate
Postal Only Bypass🟡 MEDIUM🟡 MEDIUM• Weekly review<br>• Sample 10%>0.5% fraud rate
Street Only Bypass🟡 MEDIUM🟡 MEDIUM• Weekly review<br>• Amount >$100>0.5% fraud rate
MID-Specific Bypass🟢 LOW🟢 LOW• Monthly review<br>• New MIDs only>0.3% fraud rate
Time-Limited Bypass🟢 LOW🟢 LOW• At expiration<br>• High-value onlyAuto-expire
Amount-Limited Bypass🟢 LOW🟡 MEDIUM• Monthly review<br>• Aggregate analysisVelocity spike

Dashboard Implementation Specifications

User Journey Flow

  1. Merchant Views Decline

    Dashboard shows:
    - Transaction ID: txn_123
    - Decline Code: RE_ENTER_TRANSACTION  
    - AVS Detail: Postal NO_MATCH
    - Merchant: "Le Café Nice" (MID: 123456)
    
  2. System Analyzes Pattern

    Analysis Results:
    - Previous declines from this MID: 47
    - All with postal code: 06000
    - Success rate when bypassed: 99.2%
    - Diagnosis: Merchant hardcoding postal code
    
  3. System Recommends Solution

    Recommended Action:
    - Add MID 123456 to postal bypass whitelist
    - Risk Level: LOW
    - Estimated approval increase: 47 transactions/month
    - [One-Click Implement] [Customize] [Learn More]
    
  4. Merchant Implements

    Configuration Applied:
    - Rule Name: "AutoFix_Postal_MID123456"
    - Type: PostalCodeVerificationSpendRule
    - MID: 123456
    - Duration: Permanent (with monitoring)
    - [View Rule] [Set Alerts] [Undo]
    

Dashboard Metrics to Display

MetricDescriptionUpdate FrequencyAlert Threshold
Decline Rate by CodeBreakdown of decline reasonsReal-time>5% increase
AVS Override UsageTransactions using overridesReal-time>10% of volume
Override Success RateApproved after overrideHourly<95%
Fraud Rate on OverridesFraudulent overridden transactionsDaily>0.5%
MID PerformanceSuccess/fraud by merchantDailyVaries
Cost/Benefit AnalysisRevenue recovered vs fraud lossWeeklyNegative ROI

API Implementation Templates

Quick Implementation: Add MID to Postal Bypass

Monitoring Query: Check Override Performance

Provide Feedback

Was this content helpful?