What we haven't verified, hidden dependencies, and compliance risks
These are areas where the POC analysis is based on incomplete information. Each needs investigation before implementation begins.
ScaAchService handles both ACHC and ACHD and has a RulesService dependency that AvAchService doesn't. We only read ~200 of 566 lines.
| What we know | ScaAchService accepts ACHD TransactionType, calls RulesService for evaluation, has parallel fetch of holidays + beta instructions + lending details |
| What we don't | Does RulesService handle IRA/tax/PECO logic? Is SCA ACHD tested in production? Can AvAchService reuse this logic or is it SCA-specific (lending/loan validation)? |
| Action | Full code review of ScaAchService + RulesService. Determine reuse strategy for AV channel. |
We read the Refit interface (ICamMovemoneySystemClient.PostBetaTransactionAsync) but never the actual system-api implementation.
| What we know | Interface accepts CreateBetaAchTransactionRequest and returns AchTransactionResponse |
| What we don't | Does the request model include WithdrawalSourceCode / PECO fields? Is AchType hardcoded or configurable? What's the actual DB schema in BraveContext? |
| Action | Read cam-movemoney-system-api source: BETA request builder, CreateBetaAchTransactionRequest model, BraveContext entity definitions |
All shared models (TransactionRequest, TransactionResponse, TransactionStatus) live in this NuGet package. We haven't read any of them.
| What we know | Package is referenced by cam-process, cam-system, cam-background. Contains enums like OriginId, TransactionStatus, RttUpdate. |
| What we don't | Does TransactionRequest have IsRetirement, AmntNetOrGross, FedTaxIndicator, ExcessAmt, FrequencyCode, CycleBeginDate? If not, NuGet bump needed across all consumers. |
| Action | Read Movemoney.Commons.Core NuGet source. Identify field gaps. Plan coordinated NuGet version bump if needed. |
AvAchService calls IAccountDetailsClient.GetAccountDetailsAsync(). We saw the interface but not the response model.
| What we know | Returns AccountDetailsResponse with AcctClassCode (used by EligibilityService), AcctId, and nested AccountDetails |
| What we don't | Does it include IRAType, DateOfBirth, IRAMktValueYE (FMV), FeeSchedule, IRA history? OLZ got these from separate BetaAcctMaster + BetaAccountIraDetails + BetaCustomerRelationship calls. |
| Action | Read AccountDetailsResponse model. If IRA data is missing, identify the NLZ equivalent data source (cam-system-api? separate IRA service?). |
Retirement distributions must generate IRS Form 1099-R. No evidence of this in either OLZ or NLZ money movement codebase.
| What we know | OLZ CmRequest has FedTaxIndicator/StateTaxIndicator fields. NLZ cam-system-api persists transaction records. |
| What we don't | Is 1099-R handled by BETA downstream? By a separate tax reporting system? Does the MM system need to publish specific data for it? Is this a compliance blocker for go-live? |
| Action | Confirm with BETA team and Tax/Compliance team. This could delay retirement withdrawal support if not accounted for. |
OLZ delegated eligibility/compliance to FICO via external HTTP. We documented inline rules from what NLZ currently checks, but never saw the actual FICO rule definitions.
| What we know | NLZ EligibilityService checks: amount, account class (BBK/BFL/BMM only), BORD, house account, high-dollar. ComplianceService checks: registration type (1G), employee class code. |
| What we don't | Were there FICO rules for ACHD not reflected in code? State-specific withholding? IRA distribution exception codes (72t SEPP, disability, first-time home)? Age-based thresholds? |
| Action | Request FICO rule documentation from the Rules Engine team. Cross-reference with OLZ RulesRequestFactory field mapping to identify gaps. |
The bridge BFF (investor-cash-mgmt-process-api) currently routes /contributions and /instructions/search. New endpoints like /ach/periodic-instruction have no OLZ equivalent.
| What we know | BFF has MoveMoneyServiceClient with 4 methods (2 OLZ, 2 NLZ). NEW_MOVE_MONEY_API_ENABLE flag routes between them. |
| What we don't | Does the BFF need new routes for periodic endpoints? Or does the NLZ SPA call cam-process-api directly (bypassing BFF)? Who owns BFF changes — Investor team or Move Money team? |
| Action | Align with both teams. If periodic is NLZ-only (no OLZ fallback needed), direct routing from inex-cashmgmt-exp-api (future BFF) may be the right path. |
Adding periodic lifecycle events (Created, Executed, Canceled) to Kafka.
| What we know | Existing KafkaProducer publishes TransactionData events. SyDD governance requires Event Review approval. |
| What we don't | Schema registry enforcement? Downstream consumers that could break? New topic vs existing topic for periodic events? |
| Action | Check with Event team. Submit Event Review as part of SyDD governance. |
Some states require withholding on IRA distributions regardless of investor election. Rules vary by state and change annually.
| What we know | OLZ BetaAcctMaster had StateTaxWithholdingIndicator + StateTaxWithholdingPercentage on file. CmRequest has StateTaxIndicator/Percent/Amount fields. |
| What we don't | Which states are mandatory? Is there an existing LPL state tax rules engine? Does BETA handle state withholding downstream? Or must TaxWithholdingService implement all 50 states? |
| Action | Confirm with Tax/Compliance team whether BETA handles state tax or MM must enforce it. |
OLZ CmPeriodicInstruction table exists with stored procs. It may have records from the old Mulesoft/CW era.
| What we know | Schema exists in investor-movemoney-commons. CashManagementDbService reads them. No handler writes them. |
| What we don't | Are there existing records from legacy systems? If so, do they need migration to cam-system-api? Or is the table truly empty? |
| Action | Query CashManagement DB: SELECT COUNT(*) FROM CmPeriodicInstruction. If records exist, plan migration strategy. |
| Team / Repo | Role | Name | |
|---|---|---|---|
| cam-movemoney-process-api cam-movemoney-system-api Move Money NLZ | Tech Lead | Babujee Arumugam | Babujee.Arumugam@lplfinancial.com |
| Solution Lead | Michael Mcguire | michael.mcguire@lplfinancial.com | |
| Subdomain Lead | Suresh Thoutam | suresh.thoutam@lplfinancial.com | |
| cam-movemoney-process-api Developers | Developer | Nikhil Agrawal | nikhil.agrawal@lplfinancial.com |
| Developer | Nirmal Rajput | Nirmal.Rajput@lplfinancial.com | |
| Developer | Puneeth Rangaswamy | Puneeth.Rangaswamy@lplfinancial.com | |
| investor-cash-mgmt-process-api BFF Bridge | Tech Lead | Kaushik Sarkar | kaushik.sarkar@lplfinancial.com |
| Developer | Guruprasad Sreedhar | Guruprasad.Sreedhar@lplfinancial.com | |
| Developer | Somasundaram Appavu | Somasundaram.Appavu@lplfinancial.com | |
| investor-ach-api OLZ OnPrem | Tech Lead | Kaushik Sarkar | kaushik.sarkar@lplfinancial.com |
| INEX / Investor Team | Architect | Kaushik Sarkar | kaushik.sarkar@lplfinancial.com |
Jira: Long Term Cash Management (LTCM) • Domain: CCS • Subdomain: movemoney • AWS: lzp-portfolio-movemoney-dev
| # | Risk | Sev | Contact | Mitigation |
|---|---|---|---|---|
| 1 | AccountDetailsResponse may not include IRA data | High | Babujee A. | Read response model. Find alt IRA source if missing. |
| 2 | cam-system-api BETA request may not support ACHD PECO | High | Babujee A. + BETA team | Inspect CreateBetaAchTransactionRequest + BETA builder. |
| 3 | Commons NuGet may lack withdrawal/tax/periodic fields | High | Suresh T. | Read TransactionRequest. Plan NuGet version bump. |
| 4 | 1099-R tax reporting — no integration found | High | Michael M. + BETA team | Confirm with BETA + Tax/Compliance. Possible blocker. |
| 5 | ScaAchService ACHD may be SCA-specific | Med | Nikhil A. / Nirmal R. | Full code review. Determine AV reuse strategy. |
| 6 | FICO ACHD rules unknown — inline rules may be incomplete | Med | Suresh T. + FICO team | Request FICO rule docs. Cross-ref RulesRequestFactory. |
| 7 | BFF routing for periodic — no OLZ equivalent | Med | Kaushik S. + Babujee A. | Align BFF + cam-process routing strategy. |
| 8 | Periodic scheduler double-execution across pods | Med | Puneeth R. + Babujee A. | Add Redis/DB advisory lock. |
| 9 | State-specific mandatory tax withholding | Med | Michael M. | Confirm if BETA handles or MM must implement. |
| 10 | Kafka schema governance for periodic events | Low | Babujee A. + EA board | Submit Event Review early. |