Batch delete
Delete many transactions at once. `selection` takes either `mode: "ids"` with an explicit list, or `mode: "filter"` with the same filters `POST /transactions/search` accepts plus `excludedIds` for rows the user unticked, which is how "select all matching" works without sending every id. Selections over 10,000 rows are refused with 413. A selection containing integration-managed transactions is refused with 422 rather than partially applied.
Authentication
sf_… API key in the bearerAuth field below.A SaaSFlow API key (format sf_…) or an OAuth bearer token. Paste only the key — the proxy adds the Bearer prefix. Create an API key in Settings → Company settings → API keys — see API keys.
In: header
Path Parameters
1 <= lengthRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/companies/string/transactions/batch_delete" \ -H "Content-Type: application/json" \ -d '{ "selection": { "mode": "ids", "ids": [ "string" ] } }'{ "success": true, "affected": 0}Update transaction
Update a transaction, including replacing its categorizations. Only the fields you send change, but `categorizations` is replaced wholesale rather than merged, so send the complete set including the ones you are keeping. Accounts owned by an integration that does not allow manual edits reject this with 422.
Uncategorize
Strip the categorizations from a selection of transactions, leaving the transactions themselves untouched. Use it to undo a bad bulk categorization or a wrong vendor default before re-running it. The rows go back to open and disappear from the P&L until they are categorized again. Same `selection` shape and 10,000-row cap as the other bulk endpoints.