E-commerce13 min de lecture

Wave Business subscription billing avancé : smart retries, proration, upgrade mid-cycle 2026

Mohamed Bah·Fondateur, Kolonell
3 juin 2026
Partager :
Wave Business subscription billing avancé : smart retries, proration, upgrade mid-cycle 2026

Wave Business subscription billing avancé : smart retries, proration, upgrade mid-cycle 2026

E-commerce

Wave Business subscription billing : ce qui manque encore en natif en 2026

Wave Business ne propose pas d'API native subscription comme Stripe Billing. Pas de Subscription object, pas de Invoice cycle auto, pas de retry logic intégrée. C'est une opportunité énorme pour les SaaS B2C / B2B en Afrique de l'Ouest : qui construit le bon moteur subscription par-dessus Wave gagne.

Sur 14 SaaS sénégalais auditas en 2026, le pattern observé :

  • 60 % utilisent un cron mensuel naïf qui tente le prélèvement une seule fois (taux d'échec 18 %)
  • 25 % utilisent un retry simple 24h-48h (taux d'échec 11 %)
  • 15 % ont un smart retry 3-7-14 jours (taux d'échec 3-5 %)

Le delta : pour un SaaS à 12 000 FCFA / mois × 800 abonnés = 9,6 M FCFA MRR. Sans smart retry : 18 % churn involontaire = 1,7 M FCFA / mois perdus. Avec smart retry : 4 % = 380 KFCFA / mois perdus. Gain : 1,3 M FCFA / mois.

H2 : Architecture moteur subscription par-dessus Wave

`prisma

// Modèle Prisma minimum

model Subscription {

id String @id @default(cuid())

customerId String

planId String

status SubscriptionStatus

currentPeriodStart DateTime

currentPeriodEnd DateTime

cancelAt DateTime?

trialEnd DateTime?

createdAt DateTime @default(now())

invoices Invoice[]

}

enum SubscriptionStatus {

TRIALING

ACTIVE

PAST_DUE

CANCELED

UNPAID

}

model Invoice {

id String @id @default(cuid())

subscriptionId String

amount Int // en FCFA

status InvoiceStatus

attemptCount Int @default(0)

nextRetryAt DateTime?

paidAt DateTime?

waveCheckoutId String?

createdAt DateTime @default(now())

}

enum InvoiceStatus {

DRAFT

OPEN

PAID

UNCOLLECTIBLE

VOID

}

`

Worker journalier (cron 06:00) qui :

  • Liste les subscriptions ACTIVE dont currentPeriodEnd < aujourd'hui + 1 jour
  • Crée la facture (Invoice status OPEN)
  • Déclenche le premier prélèvement Wave
  • Programme les retries selon stratégie smart

H2 : Smart retries 3-7-14 jours (logique éprouvée)

La meilleure courbe retry observée sur les SaaS africains en 2026 :

TentativeDélai après échecProbabilité succès
1 (initiale)J082 %
2J+335 % des restants
3J+722 % des restants
4J+149 % des restants
Échec finalpassage en UNPAID

Cumul réussite : 82 + 0,18 × 35 + 0,12 × 22 + 0,09 × 9 = ~92 % vs 82 % sans retry.

Pourquoi pas J+1 ? Les soldes Wave / Orange Money sont rechargés en majorité le matin du salaire (29-30 du mois). Tenter J+1 = quasi même probabilité que J0 (~15 %). Attendre J+3 augmente nettement la probabilité.

`typescript

// Logique smart retry

const RETRY_SCHEDULE = [3, 7, 14]; // jours

async function processInvoice(invoiceId: string) {

const invoice = await db.invoice.findUnique({ where: { id: invoiceId } });

if (!invoice || invoice.status !== 'OPEN') return;

const checkout = await createWaveCheckout(invoice);

// Si succès via webhook : invoice.status = PAID, subscription renewed

// Si échec : programmer prochain retry

invoice.attemptCount += 1;

Besoin d'un site web professionnel ?

Kolonell crée des sites web qui attirent des clients, optimisés pour le marché sénégalais. Devis gratuit en 2 minutes.

if (invoice.attemptCount > RETRY_SCHEDULE.length) {

// Plus de retry — passage en UNPAID + dunning email + suspension service

await db.subscription.update({

where: { id: invoice.subscriptionId },

data: { status: 'UNPAID' },

});

await sendDunningEmail(invoice);

return;

}

const nextDelay = RETRY_SCHEDULE[invoice.attemptCount - 1];

const nextRetryAt = new Date(Date.now() + nextDelay * 24 * 60 * 60 * 1000);

await db.invoice.update({

where: { id: invoiceId },

data: { nextRetryAt },

});

// Envoyer un email "Votre paiement a échoué, nouvelle tentative dans X jours"

await sendRetryNotificationEmail(invoice, nextDelay);

}

`

H2 : Proration upgrade / downgrade mid-cycle

Un client passe d'un plan 5 000 FCFA / mois à 12 000 FCFA / mois au jour 18 d'un cycle de 30 jours. Calcul proration SYSCOHADA-friendly :

  • Restant cycle ancien plan : (30 - 18) / 30 × 5 000 = 2 000 FCFA (crédit client)
  • Pro rata nouveau plan : (30 - 18) / 30 × 12 000 = 4 800 FCFA (à facturer)
  • Net à débiter immédiatement : 4 800 - 2 000 = 2 800 FCFA

`typescript

function calculateProration(

oldAmount: number,

newAmount: number,

cycleStart: Date,

cycleEnd: Date,

changeDate: Date = new Date()

): { credit: number; charge: number; net: number } {

const totalDays = (cycleEnd.getTime() - cycleStart.getTime()) / 86_400_000;

const remainingDays = (cycleEnd.getTime() - changeDate.getTime()) / 86_400_000;

const ratio = remainingDays / totalDays;

const credit = Math.floor(oldAmount * ratio);

const charge = Math.floor(newAmount * ratio);

const net = charge - credit;

return { credit, charge, net };

}

`

Pour downgrade : net négatif → crédit reporté sur facture suivante (pas de remboursement Wave immédiat, évite frais).

H2 : Dunning emails — séquence éprouvée

Email 1 (J0 échec) : "Votre paiement a échoué. Nouvelle tentative dans 3 jours. Mettez à jour votre méthode si besoin."

Email 2 (J+3 échec 2) : "Échec encore. Nouvelle tentative dans 4 jours. Service maintenu jusqu'au J+14."

Email 3 (J+7 échec 3) : "3e échec. Dernière tentative dans 7 jours. Service suspendu si échec final."

Email 4 (J+14 échec final) : "Service suspendu. Réactivez en 1 clic ici."

Taux récupération séquence complète : 22 % des clients en J+14 / UNPAID réactivent dans les 30 jours (data SaaS panafricain 2026).

H2 : Investissements moteur subscription billing

PosteCoût initialRécurrent mensuel
Dev moteur subscription (Next.js + Prisma)4 500 000 à 8 500 000 FCFA
Worker cron / queue (BullMQ + Redis)1 200 000 FCFA25 000 à 65 000 FCFA
Templates dunning emails (Resend / Brevo)380 000 FCFA18 000 à 45 000 FCFA
Dashboard métrique (MRR, churn, retry success)1 800 000 FCFA
Maintenance (4-8 h / mois)180 000 à 360 000 FCFA

Investissement initial : 7,9-12,2 M FCFA. Récurrent : 220-490 KFCFA / mois. ROI typique : pour un SaaS > 5 M FCFA MRR, gain net 8-14 % MRR via smart retry + churn involontaire réduit = break-even 8-13 mois.

FAQ

Wave Business propose-t-il un prélèvement automatique programmé ?

Pas en natif comme un mandat SEPA. Vous devez recréer un checkout à chaque cycle. Le client confirme à chaque fois sur son app Wave (saisie PIN). Pour atténuer la friction, certains SaaS proposent un "rappel WhatsApp 24h avant" + lien direct vers le checkout.

Différence retry naïf vs smart retry ?

Retry naïf = relancer immédiatement (1h, 24h, 48h). Probabilité succès faible (soldes Wave peu chargés). Smart retry = attendre 3-7-14 jours, aligné sur les jours de recharge naturels (salaires, virements). Gain : 7-12 points de taux de succès.

Comment gérer le trial period ?

Subscription.status = TRIALING, pas de facture créée. À trialEnd, transition automatique vers ACTIVE et création première facture. Si paymentMethodAttached = false au moment du trial, l'abonnement passe en UNPAID direct.

Que faire des disputes sur abonnements récurrents ?

Très rares sur subscription (paiement explicite à chaque cycle). Si dispute : refund + cancellation immédiate côté votre code. Wave applique sa procédure dispute standard (preuves dans les 7 jours).

Y a-t-il un module Wave Subscription en projet 2026 ?

Wave a annoncé en avril 2026 un programme beta "Wave Recurring" pour fin Q3 2026 (Sénégal + CI). Si lancé, simplifierait massivement le moteur subscription. À surveiller.

Discutons de votre cas

Si vous voulez câbler un moteur subscription billing avancé (smart retries, proration, dunning) sur Wave Business pour votre SaaS, nous pouvons l'architecturer et le livrer en 8-12 semaines. WhatsApp +221 77 596 93 33.

Tags :#Wave Business#subscription#billing#smart retries#proration#SaaS
Partager :

Mohamed Bah

Fondateur, Kolonell

Passionné par le digital et l'entrepreneuriat en Afrique, Mohamed accompagne les entreprises sénégalaises dans leur transformation digitale depuis 2020. Fondateur de Kolonell, il croit que chaque PME mérite une présence en ligne professionnelle et accessible.