Initial personal-loan origination + servicing service

Featurekamolos
Shipped
May 28, 2026 at 7:57 PM UTC
Author
Kamo
Commit
47f7f7a

New Spring Boot 3.1.5 / Java 21 microservice modeled on BillingService. Owns personal-loan domain end-to-end: - LoanProduct / LoanOffer / Loan CRUD with REST + DTO layer - LoanLifecycleService materializes Loan + commerce Engagement/Commitment on offer acceptance (one txn) - LoanPayment + LoanDraw + LoanStatement + LoanPaymentMethod + LoanRecurringPaymentPlan services + controllers - Math: AmortizationEngine (Reg Z Appendix J), InterestAccrualEngine (ACT_365 / ACT_360 + ADB), PaymentAllocator (fees→interest→principal) - StripeConnectService (Custom-account onboarding, ACH disbursement, ACH debit) + StripeWebhookService (idempotent via LoanStripeWebhookEvent) + connect-specific webhook endpoint - TilaRendererService renders Reg Z Schumer box (installment) / open-end disclosure (LOC) via PDFBox into MinIO - StateRuleSelfHealService boot-loads loan_state_rules.json (50-state registry + MLA cap + cooling-off) — reconcile pattern from rights - EsignClient + EsignSignController complete the missing member-facing signature submission path (writes EsignGenericEnvelope + EsignSignature in shared-lib) - NotificationDispatchService with dedup-keyed scheduling - Cron jobs: OfferExpiration, StatementGeneration, DelinquencySweep - k8s manifests (configmap / deployment / service), Dockerfile, Forgejo CI workflow (dual-cluster K1M1+K2M1) all aligned with BillingService conventions

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing