Billing
Recurring revenue that actually recurs
Subscription businesses lose more money to failed renewals than to churn they can name. Pyncht Billing treats every failed charge as recoverable until proven otherwise.
Billing
Subscription businesses lose more money to failed renewals than to churn they can name. Pyncht Billing treats every failed charge as recoverable until proven otherwise.
Expired and reissued cards refresh before the renewal is attempted, not after it fails.
Retry schedules derived from the decline reason and the issuer, not a fixed three-attempt cadence.
Metered usage, seat counts, tiers, and one-off charges settle into a single invoice.
Mid-cycle changes compute to the cent and show their working on the invoice.
Deferred and recognised revenue schedules generated from the subscription, exportable to your ledger.
Hosted invoices, PDF, and email with payment links that carry the customer straight to a saved method.
Clean, versioned, and idiomatic. The same call works whether Pyncht is analysing your existing processor or moving the money itself.
Read the API referenceconst sub = await pyncht.subscriptions.create({
customer: 'cus_QjR2mK',
items: [{ price: 'price_pro_annual', quantity: 12 }],
recovery: {
account_updater: true,
retries: 'issuer_aware',
},
});
It depends entirely on your decline mix. Expired cards recover around 88% and issuer-unavailable around 94%; suspected fraud recovers around 12%. Your analysis breaks this out by reason code.
Only if you turn it on. Account updater and silent retries run first, so most recoveries never involve the customer at all.
Connect a processor read-only and get a full cost breakdown. Nothing moves until you decide it should.