Import
Bulk-import transactions, which is the endpoint behind CSV upload and any backfill of history. Amounts follow the same convention as single creation: signed decimal strings, negative for money out. Transit accounts are system-managed and cannot be imported into (422). Only a count comes back, so keep your own idempotency key if the import may be retried.
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
curl -X POST "https://example.com/companies/string/transactions/import" \ -H "Content-Type: application/json" \ -d '{ "transactions": [ { "accountId": "string", "date": "string", "fromTo": "string", "description": "string", "amountValue": "string", "amountCurrency": "string" } ] }'{ "success": true, "count": 0}Categorization status
Given up to 10,000 transaction ids, return which of them are still open and the amount of each. Built for review tooling that produced suggestions a while ago and needs to know what is still worth applying before showing it. "Open" is broader than uncategorized: it also covers rows whose categorizations do not sum to the amount, and incomplete transfers. `amountsById` covers every id that exists in this company, so a cluster total can be computed here rather than trusted from the caller.
Unlink transfer
Break a transfer link. How much comes apart depends on `link`: `path` dissolves the whole transfer and removes the transit bookings SaaSFlow created, `counter` (the default) detaches only this transaction from its transit booking, and `transit` reopens a closed path by unlinking the two transit positions. For a directly linked transfer with no transit hop, `link` is ignored. A 409 means someone else changed the link first, so reload and retry rather than forcing it.