Account statements
List the monthly statements for an internal account, read the entries on one, and download the PDF.
A statement is a monthly record of one internal account, such as your Wingspan Wallet. It lists the opening and ending balances and every entry in the period. Each statement also has a PDF.
Prerequisites
- A credential with
bookkeeping.business-banking-account:read. - The ID of the internal account. List accounts with
GET /v3/finance/internal-accounts. See Internal accounts and balances.
List statements
Call GET /v3/finance/internal-accounts/{internalAccountId}/statements. It takes page[size] and page[token]. Newest statements come first.
// 200 OK (trimmed)
{
"data": [
{
"id": "St5Rc9Tn3Wk8Lx2Bz7Mh4Q",
"accountType": "Banking",
"startDate": "2026-09-01",
"endDate": "2026-09-30",
"openingBalance": 3100.00,
"endingBalance": 4200.50,
"totalDeposits": 2500.00,
"totalWithdrawals": 1399.50,
"currency": "USD",
"fileId": "Fl8Qx5Rt2Kw7Lp3Zb6Hn9D"
}
],
"pagination": { "nextPageToken": "" }
}Read one statement
Call GET /v3/finance/internal-accounts/{internalAccountId}/statements/{statementId}. The response adds entries[]. Each entry has date, description, extendedDescription, amount, direction (Credit or Debit), a running balance, and transactionId.
Download the PDF
There are two ways to get the PDF.
GET .../statements/{statementId}/pdfanswers302and puts a signed link in theLocationheader. Use it from a server that follows redirects.GET .../statements/{statementId}/pdf-urlreturns the same link as JSON:{ "url": "...", "expiresAt": "..." }. Use it from a browser page that must navigate to the file and can't follow a redirect from script.
The link expires at expiresAt. Don't store it. Ask again when you need the file. If the files service can't produce a link, both calls return 503.
For other documents Wingspan stores for you, see Files and documents.
Errors
| Status | Meaning |
|---|---|
403 | Your credential is missing the scope |
404 | The internal account or statement doesn't exist, or isn't yours |
503 | The PDF link couldn't be created. Retry. |
Webhook events
Statement.Created and Statement.Updated are published. See Webhooks and events.
Updated about 1 hour ago