---
title: "K-Φ’s cash forecast as of today: bank balances (actual), the recurring movements history predicts (extrapolated, kept apart), open invoices at their due date and transfers in flight (committed), and t"
method: POST
path: "/api/v1/cash_forecast"
---

# K-Φ’s cash forecast as of today: bank balances (actual), the recurring movements history predicts (extrapolated, kept apart), open invoices at their due date and transfers in flight (committed), and t

`POST /api/v1/cash_forecast`

## Request

- Base URL: `https://k-phi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://k-phi.com/api/v1/cash_forecast`
- Auth: HTTP bearer

K-Φ’s cash forecast as of today: bank balances (actual), the recurring movements history predicts (extrapolated, kept apart), open invoices at their due date and transfers in flight (committed), and the FP&A projection by month (planned, net of the invoices due in the month). One line per movement with its source and certainty, a summary per currency (opening, low point and its date, closing, totals by layer), the consumption of the plan by invoices, and an inputs hash: the same data gives the same forecast. Use for "when do I go under", "a 90-day forecast per currency", "what is committed vs planned". Pass extra_lines to add the user’s own movements (a sheet, typed lines).

## Request body

- object
  - `horizon_days` number: 7 to 365, default 90
  - `sources` string[]: Default: all six (typed = the cash forecasts typed or pasted in Banking)
  - `extra_lines` object[]: The user’s own movements, added as committed unless a certainty is given
    - `value_date` string, required
    - `amount` number, required
    - `currency` string
    - `note` string
    - `certainty` 'committed' | 'planned' | 'extrapolated'
    - `account_name` string
    - `entity` string
    - `reference` string
  - `max_lines` number: Lines returned, 50 to 2000, default 400 (the summary always covers all lines)

## Response `200`

OK

- object
  - `data` object
  - `meta` object
    - `api` string
    - `capability` string
    - `at` string

## Other responses

- `401`: No or invalid credential
- `403`: Scope, extension or Builder Mode refused
- `422`: The capability refused the input
- `429`: Rate or daily quota reached

---

[API](https://skmtc.dev/k-phi/apis/k-api.md) · [All operations](https://skmtc.dev/k-phi/apis/k-api/llms.txt) · [OpenAPI document](https://skmtc.dev/k-phi/apis/k-api/revisions/60b28690ec35?raw)
