Documentation
Decline rule policy

Decline Rule Policy — Virtual Cards

Overview

To protect card programs from misuse and excessive declines, we enforce a Decline Rule Policy on virtual cards. When a card repeatedly triggers declined transactions, escalating fees are applied to your USD wallet, and the card may ultimately be terminated.

What Triggers a Violation

A decline rule violation is recorded when a card transaction is declined for one of the following reasons:

  • Insufficient funds — the card does not have enough balance to cover the transaction.
  • Card not active — a transaction is attempted on a frozen card.
  • Authorization reversal settled — a previously authorized transaction is reversed by the merchant/network.

Each qualifying decline increments the card's violation counter by one.

Fee Schedule

Violation #Fee ChargedNotes
1stNo feeNo fee charged
2nd$1.00fee charged
3rd$0.80fee charged
4th–10th$0.50 eachfee charged
11thNo feeCard terminated

Fees are debited from your company's USD wallet and recorded as a Decline rule violation fee transaction. A webhook notification (virtualcard.transaction.declined.charge) is sent for each fee charge.

Card Termination

A card is automatically terminated under two conditions:

  1. 11 violations reached — On the 11th decline rule violation, the card is permanently terminated. No additional fee is charged at this stage.

  2. Negative wallet balance after fee debit — If a fee debit causes your company's USD wallet balance to go negative, the card is immediately terminated.

How to Avoid Violations

  • Fund your cards adequately before use to prevent insufficient-funds declines.
  • Do not attempt transactions on frozen cards. Unfreeze a card before authorizing payments.
  • Track violation counts via the decline charge webhook events to take corrective action before reaching the termination threshold.

Webhook Events

EventDescription
virtualcard.transaction.declined.chargeSent when a decline fee is charged or when a card is terminated due to violations

The webhook payload includes: cardId, amount (fee in cents), reference, status, and violationCount.