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.
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
application/json
curl -X POST "https://example.com/companies/string/transactions/unlink_transfer" \ -H "Content-Type: application/json" \ -d '{ "transactionId": "string", "categorizationId": "string" }'{ "success": true}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.
Create counter transaction
Book the missing other half of a transfer. When money left one account and the matching arrival was never imported, for example on a cash or wallet account nobody feeds, this creates the opposing transaction on `targetAccountId` and links the two. Use `link_transfer` instead when both sides already exist. Returns 409 if the source is already linked or was changed concurrently.