Service: Investment Process Management
The Investment Process Management engine coordinates an Investment from eligibility checks through document signing, funding, token distribution, and post-investment status tracking. It connects the onboarding, compliance, payment, and custody services used by that workflow.
The engine provides:
For Investors: A single workflow for eligibility checks, agreements, funding, portfolio status, and payouts.
For Issuers: Investment records, compliance handoffs, funding status, and closing operations.
For Operators: Multi-issuer records, configured rules, and an audit history for each Investment.
Core Technical Components & APIs
The engine coordinates the models, state machines, and service calls used by an Investment.
Primary Models:
Investment Model: The central record this engine creates and manages through its lifecycle.
Fund Model: The source of truth for the terms, status, and funding goals this engine works towards.
Profile Model: The source of truth for investor identity and compliance status.
Governing Logic:
Investment Status Lifecycle: The strict state machine that this engine enforces.
Funding Status Lifecycle: The granular payment status this engine monitors.
Primary APIs:
investment-api: Used by the Investor Portal to create and manage individual investments.
Fund records: Used to manage the subscription mechanism and trigger the closing of a fund.
evm-api: Called by the engine to issue tokens to an investor.
e-signature-api: Called by the engine to orchestrate the signing of legal agreements.
payment-api: Called by the engine to initiate payment transfers.
Process Lifecycle
The engine processes an Investment through five phases.
Phase 1: Onboarding & Verification
While primarily handled by the Regulatory Compliance Engine, this engine acts as the trigger and consumer of verification results.
Eligibility Check: Before allowing an investment flow to start, it calls the kyc-api and profile-api to confirm the investor Profile meets all KYC, AML, Accreditation, and regulation-specific (e.g., Reg CF limits, MiFID II) requirements for the target Fund.
Share Availability Check: It calls the RWA Tokenization Engine to validate that enough shares are available before allowing the investor to proceed.
Phase 2: Investment Commitment & Documentation
Orchestrates the user's journey through the multi-step application.
Application Flow: Guides the Investor through amount selection, profile selection, and funding method selection in the Investor Portal. It validates share availability against the Fund ledger managed by the RWA Tokenization Engine.
Automated Document Generation & Signing: Dynamically generates subscription agreements using Fund and Profile data. The engine guides the user through the steps, calling the Electronic Signature Service to present and execute legal agreements.
Record Creation: Upon successful submission of the final "Review" step, the engine creates the Investment record with a CONFIRMED/LEGALLY CONFIRMED status.
Phase 3: Funding & Escrow
Collects and reconciles investment funds across the supported payment rails.
Payment Orchestration: The engine performs a final check with the Regulatory Compliance Engine. Upon LEGALLY CONFIRMED status (post-compliance checks), it calls the payment-api or wallet-api to initiate the appropriate fund transfer (ACH, wire, wallet balance, stablecoin via evm-api) to the designated regulated smart escrow account.
Real-time Status Tracking: Monitors webhooks and API responses from payment providers to update the Investment's funding_status using the wire values
new,initialize,in_progress,received,settled,failed,canceled,sent_back_pending, andsent_back_settled.Automated Reconciliation: Matches incoming funds in escrow to pending investments, reducing manual effort and errors.
Phase 4: Fund Closing, Settlement & Token Issuance
Manages the successful closing of the Fund and the final steps of the investment.
Condition Monitoring & Enforcement: Continuously tracks each investment's funding status according to its payment rail, the subscription percentage, and compliance verification across all Investments linked to an Offer. It prevents premature closing without applying the escrow transition to every rail.
Fund Release After Close: For the escrow rail, after administrator confirmation of an offer
closed_successfully, orchestrates the release of funds from escrow to the issuer via the payment-api.receivedmeans that funds arrived in escrow; only the confirmed post-close release changes that rail'sfunding_statustosettled. The wallet API separately records lowercasesettledwhen its investment transfer completes, without an Offer-close check, as defined by the funding status lifecycle.On-Chain Token Distribution: Triggers the final token distribution by calling the evm-api to transfer the correct number of tokens from the fund treasury wallet to each investor's Crypto Wallet, creating EVM Transfer records.
Status Finalization: Cascades the final Offer status (
closed_successfullyorclosed_unsuccessfully) down to all associated Investment records. Offer status remains separate from the Investment status andfunding_status.
Phase 5: Post-Investment Management
Provides data and triggers for ongoing investor relations and servicing.
Cap Table Synchronization: Ensures the final list of CLOSED_SUCCESSFULLY investments provides accurate data for cap table management (potentially syncing with Transfer Agents or EVM Contract, holder lists).
Distribution Trigger: Provides the necessary data (investor, holding amount) to the Smart Disctribution Service when returns are to be paid.
Investor Reporting Data: Makes investment status, transaction history, and document links available via the investment-api for display in the Investor Portal.
Exceptions and Recovery
Investment Cancellation: The engine manages the full cancellation workflow, from an investor's request and an admin's approval to triggering the correct refund logic based on the investment's current status and payment method.
Fund Failure: If a Fund is closed unsuccessfully, the engine orchestrates the bulk refund process via the payment-api or wallet-api, creating all necessary Transaction records to refund capital to investors.
Payment Failures: When a payment provider returns a FAILED funding_status, the engine updates the Investment's investment status lifecycle, notifies the user and administrators, and allows retries where the failure reason permits them.
Audit History: Records every status change, payment attempt, signature, and cancellation action related to an Investment. Where applicable, the record can reference the corresponding blockchain transaction.