Design a backend system for a Money Automation Platform that helps users manage and automate financial transactions. The platform should allow users to define rules and create workflows for handling incoming and outgoing transactions automatically.
A user receives an invoice payment of €1,210 (which includes 21% VAT). The system should automatically detect the VAT and move €210 into a designated VAT reserve account. The remaining €1,000 goes into a General Business Account. Users may define additional rules for savings, investments, recurring payments, etc.
- Ingest incoming and outgoing transactions (from bank feeds, manual input, or APIs)
- Must support real-time transaction ingestion
- Initiate a new transaction via a third party API
Users can define rules with conditions and actions.
Example:
IF transaction tag = "invoice" AND amount > 100
THEN allocate 21% to "VAT Fund" AND 5% to "Savings" AND rest to "Main Account"
Bonus: Rules support:
- Fixed percentage splits
- Threshold-based logic
- Recurring schedules (e.g., move €X every week)
- Priorities or conflict resolution
- Rules can be edited, versioned, paused, or deleted
- Each user can create multiple virtual accounts/funds (e.g., VAT, Salary, Savings)
- Transfers between virtual accounts should be tracked and auditable
- System should simulate movement of funds without requiring real bank transfers