---
title: "Request bank account statement"
method: POST
path: "/v0/bank/accounts/{bank-account-id}/statements"
tags: ["Statements"]
---

# Request bank account statement

`POST /v0/bank/accounts/{bank-account-id}/statements`

## Request

- Base URL: `https://api.griffin.com`
- URL: `https://api.griffin.com/v0/bank/accounts/{bank-account-id}/statements`
- Auth: API key in header `Authorization`

Requests a statement of the bank account's transactions from
`start-date` to `end-date`, both inclusive. The `end-date` can't be before the
`start-date`, and the period must have ended: the `end-date` must be before
today in UK time (`Europe/London`).

Sandbox bank accounts can't have `griffin-pdf` statements. A `griffin-pdf`
statement carries Griffin's branding, and sandbox activity is simulated, so we
don't produce one that could be taken for a genuine bank statement. Sandbox
accounts can request any other format, such as `xero-csv`.

The statement is created `pending`, and its document is generated in the
background. Fetch the statement to see when it is ready to download.

## Path parameters

- `bank-account-id` string, required

## Request body

- object: The statement to generate: its format, start date and end date.
  - `format` 'xero-csv' | 'griffin-pdf', required: The format of the statement's document.
  - `start-date` string, date, required: The first day covered by the statement, inclusive.
  - `end-date` string, date, required: The last day covered by the statement, inclusive.

## Response `201`

Created

- object: A bank account statement: its start date, end date and format.
  - `statement-url` union, required: Link to this statement.
    - string
    - string
  - `account-url` union, required: Link to the bank account resource.
    - string
    - string
  - `format` 'xero-csv' | 'griffin-pdf', required: The format of the statement's document.
  - `start-date` string, date, required: The first day covered by the statement, inclusive.
  - `end-date` string, date, required: The last day covered by the statement, inclusive.
  - `status` 'pending' | 'generated' | 'failed', required: `pending` while the document is being generated, then `generated` when it is ready to download.
  - `created-at` string, date-time, required: When the statement was requested.
  - `statement-download-url` union: Link to download the statement's document, once its `status` is `generated`. The response is the document itself, not JSON, in the statement's format.
    - string
    - string

## Other responses

- `400`: Bad Request
- `401`: Requires an API key to continue
- `404`: Not Found
- `422`: Unprocessable Entity
- `500`: Internal Server Error

## Changes

- **2026-10-01** `4ffbc4f3e4b6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/griffin/apis/the-griffin-api/changes/v0/bank/accounts/:bank-account-id/statements/post.md)

---

[API](https://skmtc.dev/griffin/apis/the-griffin-api.md) - [All operations](https://skmtc.dev/griffin/apis/the-griffin-api/llms.txt) - [OpenAPI document](https://skmtc.dev/griffin/apis/the-griffin-api/revisions/9e4c303c70a5?raw)
