Banking
Connect bank accounts, sync transactions, and reconcile with invoices and expenses.
Connect your business bank accounts to sync transactions, reconcile with invoices and expenses, and track your cash position in real time.
Supported Providers
| Provider | Coverage | Connection |
|---|---|---|
| Plaid | US, Canada, UK, FR, ES, NL, IE | Link token + OAuth |
| Salt Edge | EU, UK, Global | Connect session |
| Tink | 18 EU countries, 6,300+ banks | OAuth2 |
| Ponto | Belgium / Benelux | OAuth2 |
Connecting a Bank Account
- Navigate to Finance → Banking
- Click Connect Bank
- Select your provider
- Authenticate with your bank via the secure OAuth flow
- Select the accounts to connect
- Transactions begin syncing automatically
Connected accounts appear as cards showing account name, institution, balance, and last sync time.
Bank Accounts View
The Banking page has two tabs:
Accounts Tab
- Account cards — Each connected account shows balance, institution, and account type
- Sync status — Last sync time per account
- Disconnect — Remove a bank connection
Transactions Tab
- Transaction list — All synced transactions across connected accounts
- Filters — Filter by date range, account, amount, category
- Search — Find transactions by description or reference
- Categorization — Assign categories to transactions for reporting
Transaction Reconciliation
Navigate to Finance → Banking → Reconciliation (/finance/banking/reconciliation) or click the Reconcile button on the Banking page.
Auto-Match
The reconciliation engine automatically matches bank transactions to invoices and expenses based on:
- Amount matching
- Date proximity
- Reference/description matching
- Client name matching
Manual Reconciliation
For transactions that aren't auto-matched:
- Open the reconciliation page
- Review unmatched transactions
- Use the Match to Invoice dialog to link a transaction to a specific invoice
- Or categorize as a standalone expense
Reconciliation Status
| Status | Description |
|---|---|
| Matched | Transaction linked to an invoice or expense |
| Unmatched | No match found — needs manual review |
| Excluded | Marked as not applicable (e.g., internal transfers) |
Cash Position
Your total cash position (sum of all connected account balances) appears on the Finance dashboard as one of the 4 KPI cards.
Real-Time Updates
Bank data updates via:
- Automatic sync — Periodic sync per provider schedule
- Manual sync — Click sync on any account
- Webhooks — Real-time updates from supported providers
- Real-time subscriptions — UI updates automatically when new transactions arrive
Security
- Bank credentials are handled entirely by the provider (Plaid, Tink, Salt Edge, Ponto) via OAuth — Workestra never sees your bank password
- Connection tokens are encrypted at rest with AES-256-GCM before they hit the database, and decrypted in-memory only at sync time
- Provider webhooks are signature-verified — Plaid uses JWKS (ES256 / RS256), so we cryptographically prove the webhook came from Plaid before acting on it
- Read-only access — Workestra cannot initiate payments or transfers
- Disconnect at any time from the Banking page; tokens are wiped on disconnect
Next Steps
- Invoicing — Create invoices to reconcile against
- Expenses — Match expenses to bank transactions
- Finance Settings — Configure banking connections