---
title: "Cash flow features"
method: GET
path: "/v2/book/{book_uuid}/cash_flow_features"
tags: ["Cash Flow Analytics"]
---

# Cash flow features

`GET /v2/book/{book_uuid}/cash_flow_features`

This API retrieves pre-engineered analytics on a series of bank statements within a <<glossary:Book>> with an object structure that’s suitable for modeling applications.
> 📘 Note 
  > ***Min_days_to_include**: Minimum number of days required for the most recent calendar month to be included in monthly cash flow calculations. The default value is `0`. If the value is set to **32**, only fully completed months are included.

---
### Async processing 
This API supports asynchronous processing. To get the asynchronous result, add `async=true` in the query parameter to run the request as a background job and receive a `job_id` immediately instead of waiting for the full response inline. When `async=true`, the endpoint returns `202 Accepted` with a `job_id` instead of the analytics payload.
  
Async mode is required for Books with more than 100,000 transactions. Books exceeding 1,000,000 transactions are rejected with `422` (error code `1100`). Once submitted, poll [Async job status](https://docs.ocrolus.com/reference/async-job-status) API to retrieve the result when the job is complete.

## Path parameters

- `book_uuid` string, uuid, required

## Query parameters

- `async` boolean

## Response `200`

Success

- SuccessCashFlowFeaturesSchema — A detailed analysis of inflows and outflows of money to a bank account.
  - `book_uuid` string, uuid, required — The unique identifier of the <<glossary:Book>> that was analyzed.
  - `book_start_month` string, date, required — The first day of the first month included by this book's bank statements. Will be in standard `YYYY-MM-DD` format, where `DD` is always `01`.
  - `book_end_month` string, date, required — The first day of the last month included by this book's bank statements. Will be in standard `YYYY-MM-DD` format, where `DD` is always `01`.
  - `num_of_months` number, required — The length of time spanned by the analyzed bank statements, in months.
  - `cash_flow_features` unknown[], required — A feature vector that describes the cash flow within the specified <<glossary:Book>>. Suitable for use in popular data science libraries such as Pandas, although it can be used anywhere.
    - unknown
  - `number_of_docs_in_book` integer — The total count of <<glossary:Document>>s uploaded to this <<glossary:Book>>.
  - `number_of_docs_processed` integer — The total count of <<glossary:Document>>s in this <<glossary:Book>> that completed verification.
  - `uploaded_docs` object[] — An array of objects containing information on the <<glossary:Document>>s uploaded to this <<glossary:Book>>.
    - `pk` integer — Unique personal key for the <<glossary:Document>>.
    - `uuid` string — Universal unique identifier for the <<glossary:Document>>.
    - `status` string — Processing status of the <<glossary:Document>>.
    - `pages` integer — The total number of pages present in the <<glossary:Document>>.
    - `mixed_uploaded_doc_pk` integer — Unique personal key for the uploaded Mixed Document associated with this Document. A Mixed Document is a single or multipage PDF that contains more than one doc type.
    - `mixed_uploaded_doc_uuid` string — Universal unique identifier for the uploaded Mixed Document associated with this Document. A Mixed Document is a single or multipage PDF that contains more than one doc type.
    - `rejection_reason` string — An optional attribute that briefly explains why a Document was rejected.

## Other responses

- `202` — Accepted
- `403` — Permission Errors
- `404` — Data Not Found Error
- `422` — Book Contains More Than 100k Transactions
- `425` — Analytics Still Processing

---

[API](https://skmtc.net/ocrolus/apis/user-management.md) · [All operations](https://skmtc.net/ocrolus/apis/user-management/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ocrolus/user-management/revisions/3571ef602d13/schema)
