Skip to content

Credit servicing & collections

ID MOD-065
System SD05
Repo bank-credit
Build status Deployed
Deployed Yes
Last commit 19b0610

Credit servicing and collections covers the full post-origination lifecycle of a loan — from first repayment through to full settlement or, in adverse cases, default and write-off. This module fills the gap between loan approval (handled by MOD-029) and impairment provisioning (handled by MOD-031), managing the customer relationship and operational processes in between.

For customers in good standing, the module provides a repayment schedule view, payment date change capability, early repayment and settlement requests, and accurate running balance at any point in the loan term. For customers in arrears, it runs the collections workflow: automated reminders at configured intervals, escalation to the collections team, and hardship assessment when triggered.

The hardship flow is designed to meet regulatory obligations under the CCCFA (NZ) and NCCP (AU): customers can request relief through the app, the module evaluates eligibility against configured criteria, and approved restructures are journalled atomically so the loan balance and repayment schedule remain consistent with the ECL inputs in MOD-031.

v2 scope: hardship fee-waiver check endpoint

MOD-065 v2 will expose a synchronous fee-waiver check endpoint:

GET /hardship/fee-waiver-check?party_id=&fee_kind=
→ { waived: boolean, reason: string | null, arrangement_id: uuid | null }

This endpoint answers whether an active hardship arrangement covers a specific fee type for a given party. It will replace the v1 tactical bridge used by MOD-117 (overdraft) and any other fee-engine callers that currently read MOD-007's hardship flag directly.

v1 bridge (in force now): MOD-117 reads MOD-007's hardship-flag-read-url and waives all overdraft fees when the flag is set. This is the correct v1 behaviour — flagged = full waiver — because the v1 hardship arrangement does not have per-fee-kind terms. MOD-065 v2 adds the per-fee-kind granularity when product requirements call for it.

Trigger for v2: When a credit product is launched with a hardship arrangement that specifies fee-kind-level waiver conditions (e.g. "waive maintenance fees but not late payment fees"), the v2 endpoint becomes necessary. Until then, MOD-117's direct MOD-007 flag read is correct and sufficient.


Module dependencies

Depends on

Module Title Required? Contract Reason
MOD-007 Account state machine Required Loan stage transitions (arrears, default, written-off) are applied through the account state machine.
MOD-031 ECL calculation & GL posting Required Stage transitions trigger ECL impairment events that the ECL calculation module must process.
MOD-001 Double-entry posting engine Required Hardship restructure and payment reversal entries are posted through the posting engine.
MOD-104 AWS shared infrastructure bootstrap Required AWS shared infrastructure provisioned by MOD-104 (EventBridge buses, S3, KMS, Kinesis, Cognito) is required before this module can be deployed.
MOD-103 Neon database platform bootstrap Required Neon database and schema provisioned by MOD-103 must exist before this module can read or write Postgres.

Required by

Module Title As Contract
MOD-116 Mortgage servicing engine Hard dependency
MOD-117 Overdraft management engine Hard dependency
MOD-139 Financial hardship formal variation workflow Optional enhancement

Policies satisfied

Policy Title Mode How
CRE-006 Impairment & Provisioning Policy AUTO Tracks loan stage transitions (current → arrears → default) and triggers the impairment events that feed the ECL engine.
CON-003 Vulnerable Customer Policy AUTO Routes customers who meet hardship criteria into the hardship assessment workflow with appropriate communications triggered.
CRE-002 Responsible Lending Policy ALERT Alerts the collections team when a customer misses a payment and escalates according to the collections policy timeline.

Capabilities satisfied

Capability Title Mode How
CAP-097 Loan lifecycle state management AUTO Transitions loan accounts through the full state machine (current, arrears, hardship, default, written-off) and notifies downstream systems at each transition.
CAP-098 Arrears & collections logic ALERT Triggers the collections workflow when a payment is missed, escalating through configured steps (reminder, notice, referral) based on days past due.
CAP-099 Hardship & restructure handling AUTO Accepts hardship requests, applies the configured relief rules (payment pause, reduced amount, term extension), and journals the restructure to the loan account.

Part of SD05 — Credit Decisioning & Loan Platform Compiled 2026-05-22 from source/entities/modules/MOD-065.yaml