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

# v1.6.6

Happy fall from the ModernFi team! See below for our latest API changes. This release adds **batch account lookup** by your own account numbers, lets **Get File** download institution statement files with an `institution_id`, and widens the **transaction backdating window** to 7 days. It also applies statement date ranges to every statement type and adds a few validation limits. We recommend reviewing this page closely before beginning development or upgrading to a new API version.

## Updated Endpoints

* **`GET /digital-banking/v1/accounts`** (List Accounts)
  * Added `institution_account_ids` query parameter (string array, optional, up to 1000 values of 1–64 characters each). Returns only accounts whose `institution_sweep_account_id` or `institution_return_account_id` matches one of the values, so you can look up many accounts in one call. Repeat the parameter for each value. Closed accounts are included unless you also pass `statuses`.

* **`POST /digital-banking/v1/accounts/{account_id}/transactions`** (Create Transaction)
  * `transacted_at` can now be backdated up to 7 days, and it must still be within the current calendar month. Before this release, it could not precede the most recent allocation cutoff (2:00 PM ET on the last business day).
  * ⚠️ The `idempotency-key` header must be 1–64 characters. Requests with a longer or empty key are rejected.
  * Added `submitted_by` (string, nullable, optional): the user who initiated the transaction. The endpoint already accepted this field, and it is now documented.

* **`POST /digital-banking/v1/accounts`** (Create Account) and **`PATCH /digital-banking/v1/accounts/{account_id}`** (Update Account)
  * ⚠️ `cost_center_id` must be a current cost center that belongs to your institution. Other values return `400`.

* **`POST /digital-banking/v1/accounts`** (Create Account)
  * Institutions enrolled in intraday liquidity can now include `shadow_account` even when their core does not require a shadow account.
  * ⚠️ `shadow_account.account_number` cannot be left empty.

* **`POST /digital-banking/v1/accounts`** (Create Account) and **`POST /digital-banking/v1/depositors`** (Create Depositor)
  * When two requests with the same idempotency key arrive at the same time, the second request returns the resource that the first one created, the same as any idempotent replay.

* **`GET /digital-banking/v1/files/{file_id}`** (Get File)
  * Added `institution_id` query parameter (uuid, optional): your institution's ModernFi ID. Use it to download institution statement files, such as trial balances, by the `file_id` that `GET /digital-banking/v1/files/statements` returns.
  * `account_id` is now optional. Provide exactly one of `account_id` or `institution_id`. Otherwise the request returns `400`.
  * The `id_type` description is clearer: set it to `INSTITUTION` only when `account_id` holds your bank's own account number (the sweep or return account number). It never accepts an institution ID. *No functional change expected — spec documentation updated.*

* **`GET /digital-banking/v1/files/statements`** (Get Statements)
  * `start_date` and `end_date` now filter every statement type as an inclusive range, including daily, weekly (FR 2900), and quarterly institution statements. Requests that pass a date range may return more files than before.

* **`GET /digital-banking/v1/accounts/{account_id}/allocation`** (Get Account Allocation)
  * The documentation now states that allocations exist only for business days, so a weekend or holiday `run_date` returns an empty `allocations` list. To get the latest allocations, omit `run_date`. The most recent approved allocation run is then used. *No functional change expected — spec documentation updated.*

## Schema Changes

* **`CreateTransactionRequest`**
  * Added `submitted_by` (string, nullable), and `transacted_at` follows the new 7-day backdating window described above.

* **`ShadowAccountRequest`**
  * `account_number` cannot be left empty.