Upgrade for real bank connections
Real bank connections come with the Growth plan, switched on for your workspace by Sahl. Until then the sandbox simulates them. See plans and talk to Sales.
What is available today
- Console, sandbox: a signed-in member creates a simulated connection and sees fake transactions and an analysis at once. The routes are in the Console API reference.
- Production: no bank data provider is wired into the API. Create, refresh, transactions and analysis answer
409with the codebank_connect_unavailable. - Partner API with a key:
/v1/partner/bank-connections, with the scopesbank:readandbank:write. Growth plan, switched on per workspace by Sahl. Until Sahl enables your workspace, a call answers403bank_scope_not_allowed, and once enabled production still answers409as above. Same sandbox simulation as the console. To get it enabled, write to contact@sahlfinancial.com.
How a connection works
- A member of your workspace picks a bank (
bank_code,bank_name) and, if wanted, a case (case_id). - In a real connection the customer would follow a link, sign in at their own bank and choose what to share. Credentials stay with the bank. The model carries a
link_tokenand anexpires_atfor that step. - Once the bank confirms, the connection is
connectedand carries the holder name, the last four digits of the account, the transaction count and the averages. - You read the transactions and the analysis, and attach the result to a case.
connected as soon as it is created, and the figures are generated from its id. They are the same every time for the same connection.
Statuses
GET /v1/bank-connections/stats counts them: total, connected, pending, expired, failed. The list takes a status filter.
Transactions and analysis
The transactions list returns each movement with its category, plus the total, the account holder and the bank name. The analysis returns:
In the sandbox these values are invented. Do not read them as a real customer.
The production rule
The simulation runs only when the request says it is a sandbox request, with the headerX-Sahl-Environment: sandbox or environment=sandbox, and the server has simulation on. Anything else is refused:
409.
Partner API (API key)
Workspaces on the Growth plan that Sahl has enabled can call the same operations with an API key:POST /v1/partner/bank-connections (bank:write), GET /v1/partner/bank-connections, /stats, /{connection_id}, /{connection_id}/transactions and /{connection_id}/analysis (bank:read), and POST /v1/partner/bank-connections/{connection_id}/refresh (bank:write). They return the same objects as the console routes, for your workspace only. The production rule above applies unchanged: no live bank data provider, so 409 bank_connect_unavailable in production. See the Partner API reference.
Next
- Bank coverage
- Bank connection routes: console and partner API
- Console API reference
- Read documents, when the bank is not connectable and you have statements