Stripe tells you when something broke—salvio turns that into a controlled path: classify the decline, retry or message
in the right language, and measure what actually came back. Below is how the six pieces fit together for B2B teams on
subscriptions.
Intelligent retries
Not every failed charge should be hammered the same way. salvio maps Stripe decline codes to recoverable vs.
action-needed vs. lost, then schedules invoice retries with sensible spacing for soft declines. Hard cases skip
blind retries and go straight to the right customer message—so you neither waste API calls nor annoy people who
cannot pay today.
Multilingual dunning
Recovery emails only work if they read naturally. EN, DE, and FR templates ship on day one, with locale resolved
from customer metadata, billing country, or your workspace default—and we always store why that language was chosen.
Every mail includes a calm path to update the card and a visible link to your own cancellation flow, not a dead end.
Stripe Connect–native
Your customers keep billing in their Stripe account: salvio connects via standard Connect OAuth and listens to the
events that matter—invoice.payment_failed, invoice.paid, customer.source.expiring, and more. No duplicate product
catalogue and no parallel payment processor; it is automation on top of what you already trust.
Webhook idempotency
Stripe retries webhooks, networks hiccup, and the same event can arrive twice. salvio stores each stripeEventId
once, answers duplicates with HTTP 200, and never double-books a failure or sends a second dunning sequence for the
same incident. That is table stakes for money-moving software—and for sleep.
Honest recovery metrics
A 90% recovery rate is meaningless if it counts fraud or stolen cards. salvio’s smart filtering keeps
unrecoverable cases out of your active recovery rate and separates revenue actually saved from noise. Finance sees
the same story the product tells: what was recoverable, what you won back, and how long it took.
Pre-dunning alerts
Many churn events are predictable: expiring cards before the renewal fails. When Stripe emits customer.source.expiring,
salvio can prompt a light-touch card update (with portal links) before the invoice fails—fewer hard declines, fewer
emergency tickets, and a better experience for good-faith subscribers.