whisper-money/resources/js/pages/settings
Toni Grunwald 1c5a76a3a4
feat: add Wise open banking integration with balance sync (#525)
## Summary
Adds **Wise** as an API-token banking provider — connect flow,
transaction sync, and per-wallet balance sync — and fixes two bugs that
kept business/extra profiles and balances from working.

## Changes
- **Balance sync** — new `WiseBalanceSyncService` pulls
borderless-account balances on every sync. Previously Wise balances were
never fetched, so the displayed balance went stale (frozen at the last
value).
- **Multi-profile connect** — `WiseController` now creates accounts for
**every** profile on the token (personal *and* business), not just one.
- **ID-format fix** — `external_account_id` is now
`"{profileId}:{currency}"`. The connect flow previously wrote the
**borderless-account id**, but both sync services parse the **profile
id** — so any UI-connected account (and every business profile) silently
failed to sync.
- **Tests** — `WiseBalanceSyncTest` (currency matching, idempotent
today-balance, skip-when-unmapped) and `WiseControllerTest`
(multi-profile pending accounts, onboarding auto-create, invalid token).

## Test plan
- [x] `php artisan test
tests/Feature/OpenBanking/WiseBalanceSyncTest.php
tests/Feature/OpenBanking/WiseControllerTest.php` — 6 passing / 28
assertions
- [x] `vendor/bin/pint` — clean
- [ ] CI (full pest + lint + build)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Víctor Falcón <victoor89@gmail.com>
2026-06-16 13:23:25 +00:00
..
account.tsx feat(auth): show/hide toggle on password fields (#499) 2026-06-06 11:42:20 +02:00
accounts.tsx feat(real-estate): auto-calculate revaluation % and generate historical balances (#253) 2026-04-15 12:18:33 +00:00
appearance.tsx feat(i18n): add localization test and fix missing Spanish translations (#174) 2026-03-01 12:32:39 +00:00
automation-rules.tsx feat(ai): share AI sparkle icon and mark AI-generated rules (#538) 2026-06-15 18:22:11 +02:00
billing.tsx fix(pricing): update final release prices (#288) 2026-04-15 14:49:02 +01:00
categories.tsx feat: parent/child category tree (#474) 2026-06-03 19:30:12 +02:00
connections.test.tsx fix(connections): show expired reconnect (#407) 2026-05-20 13:13:13 +01:00
connections.tsx feat: add Wise open banking integration with balance sync (#525) 2026-06-16 13:23:25 +00:00
delete-account.tsx fix(account): block deletion while subscription or trial is active (#531) 2026-06-14 20:46:44 +02:00
labels.tsx fix: Add gap between filter/create button on mobile settings pages (#115) 2026-02-12 20:50:05 +01:00
password.tsx feat(auth): show/hide toggle on password fields (#499) 2026-06-06 11:42:20 +02:00
two-factor.tsx feat: Spanish localization (#74) 2026-02-08 11:58:08 +01:00