feat: Implement IBAN-based account linking for Firefly III transactions

This enhancement improves transaction synchronization by
automatically linking counterparty IBANs from GoCardless to
existing Firefly III accounts, ensuring more accurate
reconciliation and better data integrity. Users benefit from
reduced manual effort in matching transactions, fewer duplicate
payees, and cleaner financial records that reflect real-world
banking relationships. The implementation caches all account
types during discovery, adds IBAN lookup logic with fallback to
payee creation, and filters CLI account lists to focus on
user-managed asset and liability accounts while maintaining
full backward compatibility.
This commit is contained in:
2025-12-07 23:42:56 +01:00
parent 82197d414d
commit d9a3ea4e94
2 changed files with 117 additions and 84 deletions

View File

@@ -43,9 +43,8 @@ impl FireflyClient {
}
#[instrument(skip(self))]
pub async fn get_accounts(&self, _iban: &str) -> Result<AccountArray, FireflyError> {
let mut url = self.base_url.join("/api/v1/accounts")?;
url.query_pairs_mut().append_pair("type", "asset");
pub async fn get_accounts(&self) -> Result<AccountArray, FireflyError> {
let url = self.base_url.join("/api/v1/accounts")?;
self.get_authenticated(url).await
}