- Ya
- 17 Julai 2026, 07:11 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 2aeb5c1
Closes the terminal lifecycle seam: a fully executed/notarized/sealed eClose package emitted **************** but NOTHING consumed it, so the loan sat at CLEAR_TO_CLOSE until a human clicked. New internal server-to-server endpoint POST **************** (X-Internal-Auth, constant-time, mirrors LosInternalApplyController) resolves the loan's app and drives LoanPipelineService.transition CLEAR_TO_CLOSE -> CLOSED with a system actor granted exactly LOS_CLOSE_AND_FUND. Idempotent + at-least-once safe: already CLOSED/FUNDED -> 200 no-op; not-yet-CLEAR_TO_CLOSE -> logged skip (retry can't fix out-of-order); open blocking conditions -> held for the steward (a doc-completion event never auto-overrides a compliance blocker); only transient DB failures escape as 5xx to retry. Funding (CLOSED -> FUNDED) stays a separate money-disbursed fact for the capital-markets delivery desk.