Skip to content

v0.6.0: Authentication Fix & Community Enhancements

Choose a tag to compare

@keithah keithah released this 04 Sep 05:05
· 61 commits to main since this release

πŸŽ‰ Major Release: Authentication Fixed + Community Features

πŸ”§ CRITICAL AUTHENTICATION FIX

The library now works with real Monarch Money accounts!

Root Issue Resolved:

  • Fixed authentication to use JSON payloads instead of FormData
  • Added proper MFA detection for "MFA_REQUIRED" error code
  • Automatic TOTP generation and submission from MFA secrets
  • Enhanced session management and error handling

Before: {"You":"Shall Not Pass"} authentication failures
After: βœ… Successful login with MFA and session management


✨ NEW COMMUNITY FEATURES

Investment Management (PR hammem#151)

  • get_holding_by_ticker() - Find holdings by stock symbol
  • add_holding_by_ticker() - Add investments programmatically
  • remove_holding_by_ticker() - Remove holdings
  • update_holding_quantity() - Modify investment amounts

Enhanced Transaction Filtering (PR hammem#148)

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

Categories & Merchants APIs (PR hammem#128)

  • get_transaction_categories() - All transaction categories
  • get_merchants() - Search merchants with filtering
  • get_merchant_details() - Detailed merchant information
  • get_category_details() - Category metadata

Account Refresh Enhancement (PR hammem#102)

  • account_ids parameter for selective refresh monitoring
  • Check specific accounts instead of waiting for all

πŸš€ COMPREHENSIVE RECURRING TRANSACTIONS

Based on HAR file analysis, added 6 new methods:

  • get_recurring_streams() - All recurring transaction streams
  • get_aggregated_recurring_items() - Aggregated items by date range
  • review_recurring_stream() - Review and update stream status
  • mark_stream_as_not_recurring() - Disable recurring streams
  • get_recurring_merchant_search_status() - Track search operations
  • get_all_recurring_transaction_items() - Complete items with forecasts

🎨 CODE QUALITY & CI

  • βœ… GitHub Actions CI: All checks passing (Black, isort, tests)
  • βœ… Python Support: 3.8, 3.9, 3.10, 3.11, 3.12
  • 🧹 Clean Code: Proper formatting, import sorting, linting
  • πŸ“Š Enhanced Logging: Better debugging and error tracking
  • πŸ›‘οΈ Error Recovery: Robust error handling strategies

πŸ“¦ Installation

pip install monarchmoney-enhanced==0.6.0

πŸš€ Quick Start

from monarchmoney import MonarchMoney

mm = MonarchMoney()

# Now works with real accounts!
await mm.login(
    email="your-email@example.com",
    password="your-password",
    mfa_secret_key="YOUR_MFA_SECRET"  # TOTP secret
)

# Access all the new features
accounts = await mm.get_accounts()
holdings = await mm.get_holding_by_ticker("AAPL") 
recurring = await mm.get_recurring_streams()

πŸ™ Credits

This release incorporates features from multiple community pull requests and resolves the core authentication issue that prevented real-world usage. Thanks to all contributors and users who provided feedback!


Full Changelog: v0.5.0...v0.6.0