Declined.io

Payment recovery infrastructure

Turn declined charges into recovered revenue

Declined.io orchestrates dunning, incentives, and customer outreach when cards fail, so your team sees exactly what was saved and why.

Stripe, Chargebee, Paddle, Recurly
Sandbox before you touch live billing
Recovery attribution down to the attempt

Recovery overview

$18,420

+12.4% vs last month

Attempts

142

Save rate

34%

Recent recoveriesStatus

Northwind Labs

$249.00

Recovered

Harbor Analytics

$89.00

In sequence

Studio Meridian

$1,120.00

Recovered

Sequence "Card retry + email" saved $4.2k this week

Connects to the billing stack you already run

  • Stripe
  • Chargebee
  • Paddle
  • Recurly
  • Braintree

Platform

Everything between a decline and a saved subscription

Declined.io is not another dunning template. It is operational infrastructure with analytics, incentives, and APIs your engineering team can ship against.

Recovery sequences

Multi-step dunning with retries, email, and SMS timed to card network behavior.

Incentive offers

Deploy credits and discounts only when recovery probability justifies the margin hit.

Revenue attribution

Every recovered charge ties back to sequence, channel, and attempt.

Provider health

Monitor webhook delivery and sync status across Stripe, Chargebee, and Paddle.

Customer comms

Branded recovery pages and transactional messages your team controls.

Event ingestion

REST API and webhooks for payment_failed, payment_recovered, and custom billing signals.

Workflow

Live in an afternoon, not a quarter

Most teams connect a provider, clone a proven sequence, and validate recovery in sandbox before touching production billing.

01

Connect billing

OAuth into Stripe or configure Chargebee, Paddle, or Recurly. Webhooks start flowing in minutes.

02

Design sequences

Define retry timing, channels, and incentive rules. Test in sandbox with synthetic declines.

03

Recover and measure

Live attempts run automatically. Finance sees recovered MRR; engineering gets structured events.

Developers

SDKs and REST APIs your team will actually adopt

Six official SDKs, sandbox keys, and typed endpoints for events, recoveries, sequences, and webhooks. Ship custom recovery flows without reverse-engineering billing webhooks.

  • Node.js
  • Python
  • Ruby
  • PHP
  • Go
  • Java
Read the docs
recover.ts
import Declined from "declined";

const client = new Declined({
  apiKey: process.env.DECLINED_API_KEY,
});

await client.events.create({
  type: "payment_failed",
  customer_id: "cus_123",
  invoice_id: "inv_456",
});

await client.recoveries.markRecovered("ra_789");

Stop treating declines as write-offs

Create a sandbox workspace, connect your billing provider, and see recovery metrics before you flip the switch on live traffic.

Create your workspace