Commerce

Premium collection

How recurring premiums are charged, retried, and reconciled across payment methods.

On policy creation, a billing schedule is created from the plan's frequency (monthly, quarterly, annual). The collection engine handles everything from there.

Supported methods#

MethodGatewayStatus
Card (debit/credit)PaystackMVP
Bank transferPaystack / FlutterwaveMVP
Payroll deductionInternal scheduleMVP (HR channel only)
Direct debit mandatePaystack Dedicated NUBANPhase 2
WalletFlutterwave / MoniepointPhase 2
Mobile moneyMTN MoMo / Airtel MoneyPhase 2

Recurring logic#

A daily job identifies policies due. On success the premium ledger updates, premium.paid fires, and the member is notified. On failure the engine retries at 24h, 72h, and 7d.

Grace and lapse#

After three failed attempts the policy enters a 7-day grace period. If still unpaid, it lapses and a policy.lapsed event fires. Your UI can offer in-app re-collection at any point.

Use lapse_risk_score on the policy to drive proactive member outreach before the grace window even opens.