> This page is for API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.spreadspace.app/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.spreadspace.app/_mcp/server.

# The Bank Statement object

> The extracted bank statement record: accounts, transactions, and statement-level analytics for one statement.

An extracted business bank statement.

The retrieve endpoint returns this object on its own. The list endpoint
returns one per document, wrapped as
`{ "borrower_id": …, "statements": [ { "extracted_document_id", "report_data" } ] }`.

## Explore

[Retrieve a bank statement](/api/api-reference/bank-statements/get-bank-statement)

<path d="m9 18 6-6-6-6" />

GET`/api/borrowers/:borrower_id/extractions/:doc_id/bank-statement`

[List all bank statements](/api/api-reference/bank-statements/get-bank-statements)

<path d="m9 18 6-6-6-6" />

GET`/api/borrowers/:borrower_id/extractions/bank-statements`

`account` and `period` identify the statement, `metrics` carries its
statement-level figures, `dailyBalances` the daily ending-balance series and
`transactions` the statement's transactions in print order. Keys inside this
object are camelCase, as the wire carries them.

The documents behind this object carry `document_category` `bank_statement_business` or `bank_statement`. Money keys are JSON strings with exactly two decimals (`"9200000.00"`, `"-1250.50"`). Date keys are `YYYY-MM-DD`, as each key's Type column shows.

## Fields

| Key                 | Type                             | Present when                                                                                                               | Description                                                                                                                                                                                                                                                                            |
| ------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `document_type`     | always `bank_statement`          | Always                                                                                                                     | Which family of document this is.                                                                                                                                                                                                                                                      |
| `reportType`        | always `bank_statement_analysis` | Always                                                                                                                     | Always bank_statement_analysis.                                                                                                                                                                                                                                                        |
| `account`           | object                           | Always                                                                                                                     | The account the statement is for.                                                                                                                                                                                                                                                      |
| `period`            | object                           | Always                                                                                                                     | The statement period with its opening and closing balances.                                                                                                                                                                                                                            |
| `period_source`     | string                           | When the document states it                                                                                                | Whether the statement prints both ends of its period (`declared`) or at least one end is a date stated elsewhere in the statement's own text (`statement_text`); absent when the statement states no period.                                                                           |
| `balance_source`    | string                           | When the statement prints no period balances and the upload states the linked account's current balance; absent otherwise. | Where the period balances come from when the statement prints none: the linked account's current balance carried back through its own posted transactions, or the account's daily balances when the feed carries them (`feed_balance`); absent when the statement prints its balances. |
| `metrics`           | object                           | Always                                                                                                                     | Totals over the statement period.                                                                                                                                                                                                                                                      |
| `dailyBalances`     | array of objects                 | Always                                                                                                                     | One entry per day of the period.                                                                                                                                                                                                                                                       |
| `transactions`      | array of objects                 | Always                                                                                                                     | Every transaction, in statement order.                                                                                                                                                                                                                                                 |
| `underwritingFlags` | array of objects                 | When the document states it                                                                                                | Notes about fees, returned items and other events in the transactions, when any.                                                                                                                                                                                                       |

## `account`

The account the statement is for.

| Key                  | Type             | Present when                | Description                                                                                                                        |
| -------------------- | ---------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `holder`             | string, nullable | Always                      | Name of the account holder as printed.                                                                                             |
| `institution`        | string, nullable | Always                      | Name of the bank as printed.                                                                                                       |
| `accountNumberLast4` | string, nullable | Always                      | The last four digits of the account number.                                                                                        |
| `linkedAccountLast4` | array of string  | When the document states it | Last four digits of the other accounts that appear on a statement covering several accounts. Empty for a statement of one account. |
| `type`               | string, nullable | Always                      | The account type as printed, for example checking or savings.                                                                      |

## `period`

The statement period with its opening and closing balances.

| Key              | Type                          | Present when | Description                                                                                                                                                       |
| ---------------- | ----------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `start`          | string (YYYY-MM-DD), nullable | Always       | First day of the statement period.                                                                                                                                |
| `end`            | string (YYYY-MM-DD), nullable | Always       | Last day of the statement period.                                                                                                                                 |
| `openingBalance` | string (money), nullable      | Always       | Balance at the start of the period, as printed; for a statement that prints none, the linked account's current balance carried back through its own transactions. |
| `closingBalance` | string (money), nullable      | Always       | Balance at the end of the period, as printed; for a statement that prints none, the linked account's current balance carried back through its own transactions.   |

## `metrics`

Totals over the statement period.

| Key                | Type                     | Present when                | Description                                                                                        |
| ------------------ | ------------------------ | --------------------------- | -------------------------------------------------------------------------------------------------- |
| `totalDeposits`    | string (money), nullable | Always                      | Total deposits.                                                                                    |
| `totalWithdrawals` | string (money), nullable | Always                      | Total withdrawals.                                                                                 |
| `netCashFlow`      | string (money), nullable | Always                      | Deposits less withdrawals.                                                                         |
| `avgDailyBalance`  | string (money), nullable | When the document states it | Average of the daily closing balances; null when the period's opening balance is null.             |
| `minDailyBalance`  | string (money), nullable | When the document states it | Lowest daily closing balance; null when the period's opening balance is null.                      |
| `maxDailyBalance`  | string (money), nullable | When the document states it | Highest daily closing balance; null when the period's opening balance is null.                     |
| `daysNegative`     | integer, nullable        | When the document states it | Number of days the closing balance was below zero; null when the period's opening balance is null. |
| `transactionCount` | integer                  | Always                      | Number of transactions.                                                                            |

## `dailyBalances[]`

One day of the statement period.

| Key                | Type                     | Present when                | Description                                                                            |
| ------------------ | ------------------------ | --------------------------- | -------------------------------------------------------------------------------------- |
| `date`             | string (YYYY-MM-DD)      | Always                      | The day.                                                                               |
| `opening`          | string (money), nullable | When the document states it | Opening balance for the day; null when the period's opening balance is null.           |
| `deposits`         | string (money), nullable | When the document states it | Total deposits for the day.                                                            |
| `withdrawals`      | string (money), nullable | When the document states it | Total withdrawals for the day.                                                         |
| `closing`          | string (money), nullable | Always                      | Closing balance for the day; null when the period's opening balance is null.           |
| `transactionCount` | integer                  | When the document states it | Number of transactions posted that day.                                                |
| `low_cash`         | boolean                  | When the document states it | True when the day's closing balance is low relative to the statement's other balances. |

## `transactions[]`

One posted transaction.

| Key               | Type                | Present when                | Description                                                                                           |
| ----------------- | ------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------- |
| `date`            | string (YYYY-MM-DD) | Always                      | Posting date.                                                                                         |
| `description`     | string              | Always                      | The description as printed.                                                                           |
| `amount`          | string (money)      | Always                      | Signed amount: deposits positive, withdrawals negative.                                               |
| `checkNumber`     | string, nullable    | When the document states it | Check number, when the transaction is a check.                                                        |
| `transactionType` | string              | When the document states it | The transaction's kind: check, ach, wire, transfer, debit_card, fee, interest, atm, deposit or other. |
| `lineOrder`       | integer             | When the document states it | Position of the transaction on the statement, in posting order.                                       |
| `accountLast4`    | string              | When the document states it | Last four digits of the account the transaction posted to, on a feed that carries several accounts.   |

## `underwritingFlags[]`

A note about events in the transactions: fees, returned items, overdrafts.

| Key                | Type                                   | Present when                | Description                                          |
| ------------------ | -------------------------------------- | --------------------------- | ---------------------------------------------------- |
| `category`         | string                                 | Always                      | The note's category.                                 |
| `severity`         | string, one of `high`, `medium`, `low` | Always                      | One of high, medium or low.                          |
| `code`             | string                                 | Always                      | The note's identifier.                               |
| `message_customer` | string                                 | Always                      | The note in words.                                   |
| `field_ref`        | string, nullable                       | Always                      | The field the note refers to, when it refers to one. |
| `detail`           | object                                 | When the document states it | The transactions behind the note.                    |

### `underwritingFlags[].detail`

The transactions behind the note.

| Key            | Type             | Present when                | Description                      |
| -------------- | ---------------- | --------------------------- | -------------------------------- |
| `count`        | integer          | When the document states it | Number of matching transactions. |
| `total_amount` | string (money)   | When the document states it | Their amounts added together.    |
| `matches`      | array of objects | When the document states it | The matching transactions.       |

#### `underwritingFlags[].detail.matches[]`

One transaction behind a note.

| Key           | Type                | Present when | Description                                             |
| ------------- | ------------------- | ------------ | ------------------------------------------------------- |
| `date`        | string (YYYY-MM-DD) | Always       | Posting date.                                           |
| `description` | string              | Always       | The description as printed.                             |
| `amount`      | string (money)      | Always       | Signed amount: deposits positive, withdrawals negative. |