hard decline
Non-recoverable failure type.
A soft decline is a payment failure suggesting a temporary issue — insufficient funds, do_not_honor, processor temporarily down. The card itself is valid and the customer still wants to pay; the payment can typically be recovered via Stripe's retry plus a friendly email a few hours later. Recovers at ~50% on average.
Porchops treats soft declines as the bread-and-butter recovery surface. Stripe Smart Retries handles the retry cadence; Lou drafts a low-pressure email a few hours after the second retry: "Your card got declined for insufficient funds; we'll retry in 24 hours, no action needed unless you want to update."
The tone matters. Soft declines often resolve on their own (customer gets paid, balance clears, retry succeeds). The email exists to inform, not to demand action.
insufficient_funds — most common soft decline. Customer's bank balance was low at retry time; usually resolves within 24 hours.
do_not_honor — bank's catch-all decline. Sometimes a fraud signal, sometimes a balance issue, sometimes a temporary system issue. Stripe retries.
processing_error — Stripe's processor had a temporary issue. Auto-retries; rarely surfaces to the customer.
~50% on average across $5K-$500K ARR SaaS. Stripe Smart Retries does most of the heavy lifting; the email layer adds ~5-10 percentage points by surfacing the issue to the customer.
Low-pressure, informational. "Your card got declined for {reason}; we'll retry in 24 hours." Don't demand action; Stripe will retry. The email exists to keep the customer informed.
Soft = temporary, recoverable via retry. Hard = non-recoverable; customer must update card or relationship ends. Different recovery strategies; different email copy; different recovery rates.