Skip to content

v0.5.0: Complete recurring transactions and community features

Choose a tag to compare

@keithah keithah released this 04 Sep 03:39
· 72 commits to main since this release

πŸš€ Major Features

Complete Recurring Transactions Suite

Implemented comprehensive recurring transactions management with 6 new methods from HAR file analysis:

  • get_recurring_streams() - Stream management with status filtering and liability options
  • get_aggregated_recurring_items() - Date range aggregation with grouping by status/date
  • review_recurring_stream() - Approve/reject/modify recurring stream workflow
  • mark_stream_as_not_recurring() - Disable recurring predictions for specific streams
  • get_recurring_merchant_search_status() - Track merchant search operation status
  • get_all_recurring_transaction_items() - Complete item listing with forecast predictions

Community PR Features Implementation

Added valuable features from original monarchmoney repository:

πŸ“ˆ Investment Holdings by Ticker - Complete programmatic portfolio management

  • get_holding_by_ticker() - Find holdings by stock symbol
  • add_holding_by_ticker() - Add new holdings with basis tracking
  • remove_holding_by_ticker() - Remove holdings programmatically
  • update_holding_quantity() - Update share quantities and cost basis

πŸ” Enhanced Transaction Filtering - Advanced filtering capabilities

  • is_credit parameter for credit/debit transaction filtering
  • abs_amount_range parameter for amount range filtering

🏷️ Categories and Merchants API - Complete category management

  • get_transaction_categories() - Retrieve all transaction categories
  • get_merchants() - Search and retrieve merchant data
  • get_merchant_details() - Get detailed merchant information
  • get_category_details() - Get detailed category information

πŸ› Fixed

  • Error Recovery Strategy: Implemented missing abstract methods in ErrorRecoveryStrategy base class
    • Replaced NotImplementedError with proper default implementations
    • Added comprehensive docstrings and parameter descriptions
    • Provides safe fallbacks that prevent crashes while logging warnings

πŸ—οΈ Architecture Improvements

  • Service-Oriented Design: All new functionality follows established service patterns
  • Complete CRUD Operations: Full create, read, update, delete capabilities for recurring transactions
  • Future Cash Flow Forecasting: Advanced prediction capabilities for financial planning
  • HAR-Based Implementation: All methods extracted from real browser traffic analysis ensuring accuracy

πŸ“Š Technical Enhancements

  • GraphQL Integration: Full GraphQL queries with proper fragments and field selection
  • Input Validation: Comprehensive parameter validation and error handling
  • Comprehensive Demo: Complete demonstration script showcasing all recurring transactions functionality
  • Performance Optimizations: Efficient data fetching with minimal API calls

🎯 Status Summary

βœ… Complete recurring transactions management - Full CRUD operations with forecasting
βœ… Investment portfolio control - Programmatic holdings management by ticker
βœ… Advanced transaction filtering - Credit/debit and amount range filtering
βœ… Complete category/merchant APIs - Full category and merchant management
βœ… Error recovery framework - Robust error handling with recovery strategies
βœ… 100% implementation coverage - No incomplete or stub methods remaining

πŸ“¦ Installation

pip install monarchmoney-enhanced==0.5.0

πŸš€ Quick Start

from monarchmoney import MonarchMoney

mm = MonarchMoney()
await mm.interactive_login()

# Get recurring transaction streams
streams = await mm.get_recurring_streams(include_pending=True)
print(f"Found {len(streams['recurringStreams'])} recurring streams")

# Get investment holdings by ticker
holding = await mm.get_holding_by_ticker("AAPL")
if holding:
    print(f"AAPL holding: {holding['quantity']} shares")

# Enhanced transaction filtering
recent_credits = await mm.get_transactions(
    is_credit=True,
    abs_amount_range=[100.0, 1000.0]
)