# GET /api/v1/businesses/{business_id}/cfo-portal/cash-forecast

> Get CFO 13-week cash forecast

- **Tag:** cfo-portal
- **Operation ID:** `cfo_portal_get_cash_forecast_api_v1_businesses__business_id__cfo_portal_cash_forecast_get`

## Description

Get the cash forecast section with optional budget selection.

## Authentication

Bearer token in `Authorization` header.
Required header: `x-business-id: <business uuid>`.

## Parameters

- `business_id` (path, string, required)
- `budget_id` (query, string, optional)
- `apply_overrides` (query, boolean, optional) — When true, the working override scope is folded into the computed cell values. Used by the Demand Planner tab. The live Cash Flow Forecast tab leaves this off so unsaved what-if values don't bleed across views.
- `include_projected_replenishment` (query, boolean, optional) — When true, projected (not-yet-placed) replenishment POs from the SKU demand-forecast engine are added to a separate Projected Inventory row so operators see the cash impact of reorders they'll need to make. Off by default to keep the live Forecast tab byte-identical.

## Responses

### 200 — Successful Response

Schema: `SuccessEnvelope_CfoPortalSectionResponse_`

- `success` (boolean)
- `message` (string)
- `code` (string)
- `data` (CfoPortalSectionResponse)

### 401 — Unauthorized - Authentication required

### 403 — Forbidden - Insufficient permissions

### 404 — Not Found - Resource does not exist

### 422 — Validation Error

Schema: `HTTPValidationError`

- `detail` (array · ValidationError) → `ValidationError`
  - `loc` (array · string | integer · required)
  - `msg` (string · required)
  - `type` (string · required)
  - `input` (object)
  - `ctx` (object)

## Code samples

### cURL

```bash
curl -X GET 'https://api.ondayzero.com/api/v1/businesses/{business_id}/cfo-portal/cash-forecast' \
  -H 'Authorization: Bearer dz_your_token' \
  -H 'x-business-id: YOUR_BUSINESS_ID'
```

### JavaScript

```javascript
const response = await fetch('https://api.ondayzero.com/api/v1/businesses/{business_id}/cfo-portal/cash-forecast', {
  method: 'GET',
  headers: {
    Authorization: 'Bearer dz_your_token',
    'x-business-id': 'YOUR_BUSINESS_ID',
  },
});
const data = await response.json();
```

### Python

```python
import httpx

headers = {
    "Authorization": "Bearer dz_your_token",
    "x-business-id": "YOUR_BUSINESS_ID",
}

response = httpx.get("https://api.ondayzero.com/api/v1/businesses/{business_id}/cfo-portal/cash-forecast", headers=headers)
data = response.json()
```

## See also

- HTML version: https://www.ondayzero.com/docs/reference/cfo-portal/cfo-portal-get-cash-forecast
- OpenAPI slice: https://www.ondayzero.com/docs/reference/cfo-portal/cfo-portal-get-cash-forecast/openapi.json
- Other endpoints in **cfo-portal**: https://www.ondayzero.com/docs/reference/cfo-portal
