List planned transaction occurrences
List individual dated occurrences of planned transactions within a date range, expanded from recurrence rules. Each item represents one expected cash event on a specific date. Amount semantics: `amount.value` is the **net** amount excluding pass-through taxes (e.g. VAT). When the underlying planned transaction has VAT, the tax portion is returned **separately** as `passThroughTaxAmount` and is **not** included in `amount.value`. To compute the total gross cash inflow / outflow for a period (e.g. for a cash flow forecast that matches what hits the bank account), sum `amount.value + (passThroughTaxAmount?.value ?? 0)` over all items. To compute net planned revenue / cost (excluding VAT, matching P&L), sum only `amount.value`. Use pagination (`limit`, `offset`) to fetch all items; `totalCount` is the unpaginated total.
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 <= lengthQuery Parameters
1 <= length1 <= length1 <= value <= 5001000 <= value0Value in
- "0"
- "1"
- "true"
- "false"
Value in
- "0"
- "1"
- "true"
- "false"
When true, only occurrences backed by an issued invoice are returned (those with a non-null invoice), skipping predicted occurrences. Useful for listing overdue invoices in a past date range without dragging in stale predictions.
Value in
- "0"
- "1"
- "true"
- "false"
Response Body
application/json
curl -X GET "https://example.com/companies/string/planned_transaction_occurrences?startDate=string&endDate=string"{ "items": [ { "id": "string", "plannedTransactionId": "string", "date": "string", "computedStartDate": "string", "computedEndDate": "string", "usingPeriodDays": 0, "amount": { "value": 0, "currency": "string" }, "passThroughTaxAmount": { "value": 0, "currency": "string" }, "accountId": "string", "categoryId": "string", "counterparty": { "type": "customer", "id": "string" }, "counterpartyName": "string", "counterpartyLogoUrl": "string", "name": "string", "startDate": "string", "recurrence": null, "overrides": { "property1": null, "property2": null }, "source": "string", "invoice": { "date": "string", "externalId": "string", "number": "string", "url": "string", "collectionStalled": "string" } } ], "totalCount": 0}Update planned transaction
Update a planned transaction. Only the fields you send change. Edits apply to the whole rule, so changing the amount or the recurrence rewrites every future occurrence rather than just the next one, and moving `startDate` shifts the entire series. Returns 404 if it does not exist or belongs to another company.
Recurring transactions
Detect recurring spend across the whole transaction history and return the series grouped by vendor id. Recurrence is inferred from the transactions themselves, not from anything the user declared: a series needs enough successive intervals at a roughly stable amount before it counts. Use this to find subscriptions a company is paying for, including ones nobody remembers signing up to. Unrelated to planned transactions, which are rules a user entered by hand.