2026-11-09
Summary: Banking endpoints and events can be scoped to a cash account, and cash accounts expose an account number
Money + Positions
New Query Parameter: cash_account
cash_accountA customer account can hold more than one cash account. The following endpoints accept an optional cash_account query parameter taking a cash account identifier:
- GET /accounts/{account_id}/financials - Get financials. When supplied, the response contains the financials of that cash account only; when omitted, the financials are aggregated across all cash accounts of the customer account. Returns a 404 when the account does not exist, or when
cash_accountis supplied and the cash account does not exist or does not belong to the customer account. - GET /accounts/{account_id}/sweeps - List balance sweeps. When supplied, only balance sweeps of that cash account are returned. The pagination cursor retains the filter.
- GET /accounts/{account_id}/withdrawals - List withdrawals. When supplied, only withdrawals of that cash account are returned. The pagination cursor retains the filter.
Omitting the parameter preserves the previous behaviour.
New Field: cash_account
cash_accountSweepResponse and WithdrawalResponse now include cash_account, the identifier of the cash account associated with the sweep or withdrawal. The field is returned regardless of whether the request was filtered. This affects the following endpoints:
- GET /accounts/{account_id}/sweeps - List balance sweeps
- GET /accounts/{account_id}/sweeps/{sweep_id} - Get a balance sweep
- GET /accounts/{account_id}/withdrawals - List withdrawals
- POST /accounts/{account_id}/withdrawals - Create a withdrawal
- GET /accounts/{account_id}/withdrawals/{withdrawal_id} - Get a withdrawal
- POST /accounts/{account_id}/withdrawals/{withdrawal_id}/confirm - Confirm a withdrawal
New Request Field: cash_account
cash_accountPOST /accounts/{account_id}/withdrawals accepts an optional cash_account identifying the cash account to withdraw from:
- If the customer account has exactly one cash account,
cash_accountcan be omitted and that cash account is used. - If the customer account has more than one cash account,
cash_accountis required; omitting it is rejected with a 422. - A
cash_accountthat does not exist or does not belong to the customer account is rejected with a 404.
Confirming a withdrawal is unchanged; the withdrawal keeps the cash account it was created for.
Events
New Event Context Field: cash_account
cash_accountThe following event contexts now include a cash_account, the cash account associated with the event:
DepositEventContextandDepositTransactionEventContext-deposit.created,deposit.rejected,deposit.receivedWithdrawalEventContextandWithdrawalTransactionEventContext-withdrawal.created,withdrawal.confirmed,withdrawal.accepted,withdrawal.rejected,withdrawal.processed,withdrawal.canceledSweepEventContextandSweepTransactionEventContext-sweep.created,sweep.started,sweep.canceled,sweep.processed,sweep.rejected
GET /events accepts a new context.cash_account query parameter to restrict responses to events with a matching cash_account in their context.
New Event: cash_account.created
cash_account.createdThe cash_account.created event is now emitted whenever a new cash account is created. Its context is the CashAccountEventContext, containing the account and the cash_account the event relates to.
Cash Accounts
New Field: account_number
account_numberGET /accounts/{account_id}/cash_accounts/{cash_account_id} now returns the new CashAccountResponse schema. It contains the fields of BankAccountResponse plus account_number, a user-visible identifier for the cash account that equals the last 10 digits of its IBAN. Use the casha_… identifier, not account_number, for filtering and for referencing the cash account in the API.
Customer Accounts
Changed Field: cash_account
cash_accountCustomerAccountResponse.cash_account now uses the new CashAccountResponse schema, which contains the fields of BankAccountResponse plus account_number. The field is no longer always present: like securities_account, it is only set when the customer account has exactly one cash account, and it is not set when the customer account has several cash accounts or none. This affects the following endpoints:
- POST /accounts - Create an account
- GET /accounts - List accounts
- GET /accounts/{account_id} - Get an account
- POST /accounts/{account_id}/close - Close an account