whisper-money/app/Http/Controllers/OpenBanking
Cline Bot 30a79b6883 feat: add Plaid provider for US bank sync
Adds full Plaid integration as a new banking provider:

Backend:
- Add Plaid to BankingProvider enum (credential fields, account type, usesApiKey)
- Add Plaid to TransactionSource enum
- PlaidClient — wraps Plaid REST API (link/token/create,
  /item/public_token/exchange, /transactions/sync,
  /accounts/balance/get, /accounts/get)
- PlaidController — createLinkToken + store (exchange public_token
  for access_token, create connection with pending accounts)
- PlaidTransactionSyncService — sync via /transactions/sync endpoint
- PlaidBalanceSyncService — sync via /accounts/balance/get
- PlaidSyncer — orchestrator, registered in BankingConnectionSyncerFactory
- plaid config entry in config/services.php
- Routes for /open-banking/plaid/link-token and /open-banking/plaid/connect

Frontend:
- Plaid entry in CONNECT_PROVIDERS registry
- usesSdk flag on ConnectProvider type for SDK-based providers
- Plaid Link flow in useConnectFlow hook (CDN-based Plaid Link SDK)
- ProviderCredentialFields shows description text for SDK providers

Tests:
- PlaidControllerTest (link token, connect, invalid token, validation)
- BankingConnectionSyncerFactoryTest updated for PlaidSyncer
2026-07-07 13:36:28 -05:00
..
Concerns fix(open-banking): stop storing the XXX no-currency placeholder on accounts (#602) 2026-06-27 16:01:21 +00:00
AccountMappingController.php fix(open-banking): stop storing the XXX no-currency placeholder on accounts (#602) 2026-06-27 16:01:21 +00:00
AuthorizationController.php fix: address remaining security audit findings (round 2) (#628) 2026-07-03 15:04:03 +00:00
BinanceController.php refactor(open-banking): extract shared connect-controller flow into a base class (#639) 2026-07-04 20:24:54 +02:00
BitpandaController.php refactor(open-banking): extract shared connect-controller flow into a base class (#639) 2026-07-04 20:24:54 +02:00
CoinbaseController.php refactor(open-banking): extract shared connect-controller flow into a base class (#639) 2026-07-04 20:24:54 +02:00
ConnectionAccountController.php feat(open-banking): enable manage bank accounts for everyone (#572) 2026-06-20 17:35:43 +00:00
ConnectionController.php feat(banking): let Wise credentials be updated (#588) 2026-06-23 09:54:31 +00:00
CryptoPortfolioConnectController.php refactor(open-banking): extract shared connect-controller flow into a base class (#639) 2026-07-04 20:24:54 +02:00
IndexaCapitalController.php refactor(open-banking): extract shared connect-controller flow into a base class (#639) 2026-07-04 20:24:54 +02:00
InstitutionController.php feat: Integrate EnableBanking as open banking provider (#106) 2026-02-12 09:09:28 +01:00
InteractiveBrokersController.php refactor(open-banking): extract shared connect-controller flow into a base class (#639) 2026-07-04 20:24:54 +02:00
OpenBankingConnectController.php refactor(open-banking): extract shared connect-controller flow into a base class (#639) 2026-07-04 20:24:54 +02:00
PlaidController.php feat: add Plaid provider for US bank sync 2026-07-07 13:36:28 -05:00
WiseController.php feat(banking): add Interactive Brokers sync via Flex Web Service (#581) 2026-06-23 11:39:24 +02:00