Stripe declines virtual cards (often referred to as Virtual Credit Cards or VCCs) for a variety of reasons, ranging from strict activation windows set by travel agencies to minor rounding errors in the transaction amount.
In the context of hospitality and property management, here is a broad breakdown of why these declines happen and how they are typically resolved.
1. Activation & Expiry Windows (The "When")
Virtual cards issued by OTAs (like Expedia or Booking.com) are highly restricted.
Activation Date: Most VCCs are "locked" until a specific date—usually the day of check-in or the day the booking becomes non-refundable. If you attempt to charge or even authorize the card a day early, Stripe will return a decline.
Balance Depletion: Once the check-out date passes, these cards are often deactivated or the balance is wiped, meaning any post-stay charges (like damages) will be declined.
2. Rounding & Currency Discrepancies (The "Math")
Virtual cards are often loaded with the exact amount of the reservation. Even a one-cent difference can trigger a decline.
The 1-Cent Error: Minor discrepancies caused by currency conversion or tax rounding can cause the transaction to exceed the card's limit.
ChargeAutomation Solution: To combat this, ChargeAutomation uses a "Rounding Error Logic" where it automatically retries a failed VCC transaction up to three times, reducing the amount by $0.01 each time (up to $0.03 total) to find the successful balance. Virtual Card Transaction Optimization (Rounding Error Logic)
3. Security & Authentication (The "Who")
3D Secure (3DS) Requirements: Many virtual cards do not support 3D Secure authentication. If your Stripe account or the guest's bank requires 3DS for the transaction to proceed, the VCC will likely fail because there is no "real" human to receive the SMS code or approve the app notification.
Regional Mandates: Cards issued in certain regions (like India) may require specific e-mandates or additional authentication steps that virtual cards are not equipped to handle.
4. Integration & Identification Failures (The "How")
Incorrect Card Identification: If a PMS (Property Management System) sends a VCC to Stripe but doesn't flag it as a virtual card, ChargeAutomation might treat it as a standard guest card. This can lead to the system attempting to run a security deposit hold, which VCCs almost always decline.
Syncing Rules: To prevent fraud or the use of stale data, systems may block the syncing of payment methods created more than 5 minutes before the booking time if they aren't clearly identified as VCCs.
5. Stripe Radar & Custom Block Rules
Radar Risk Scores: Stripe’s AI (Radar) may flag VCCs as "High Risk" because they lack a consistent billing address or cardholder name, leading to an automatic block.
Double-Charge Prevention: Many hosts set up custom "Block Rules" in Stripe to prevent their PMS (like Guesty or Hostfully) from auto-charging a card when they want ChargeAutomation to handle it. If these rules are too broad, they might inadvertently block legitimate VCC charges.
✅Summary Checklist for Hosts:
Check the Activation Date: Ensure you aren't charging before the OTA's allowed window.
Verify the Amount: Ensure the total (including taxes/fees) matches the OTA's expected total exactly.
Check Metadata: Look at the Stripe dashboard for the specific decline code (e.g., insufficient_funds often means a rounding error).

