Skip to main content
A settlement moves your available funds out of a Payments Account, either to one of your Treasury Accounts or to a named external bank account. Hello Clever reports on those settlements on a schedule: at each reporting frequency enabled on your account, it generates a settlement report covering the settlements in that period. This is the same report that was previously emailed to you, retrieved through the API instead. You list the reports generated in a period, and each entry hands you a link to the file. A file never changes once generated, so the number you reconciled last month is the same number you will read next year.

The reporting flow

1

Hello Clever generates the report

After the end-of-day settlement run, a report is generated at 09:00 in your account’s configured time zone — one per enabled frequency, per currency.
2

You list what was generated

Call Get Settlement Reports with from_date and to_date. This returns metadata only: file name, the period covered, a summary object with the period’s totals, and file_url. No file content is transferred.
3

You fetch the file from its link

file_url is the file. Issue a plain GET against it and the response is the CSV. The link is pre-signed, so it carries no app-id or secret-key, and there is no second API call to make.
Fetch a report file

Reporting frequencies

A report is generated for each frequency enabled on your account, in the time zone configured on your account: period_start and period_end on each entry give the exact window, so you never have to derive it.
Periods overlap across frequencies. With daily and monthly reporting both enabled, a settlement on 14 September appears in the daily report for 14 September and again in the monthly report generated on 1 October. Filter by report_frequency so your ledger posts each settlement once.
A daily report covers 09:00 to 09:00 in your account’s time zone, not midnight to midnight. If your accounting periods are calendar days, the last hours of each day fall into the next report.

File format

The file name contains spaces and parentheses, for example Daily Report (AUD) (Sep 06, 2026 - Sep 07, 2026).csv. URL-encode it if you use it in a path.

Columns

Each row is one settlement included in the period: A file looks like this:
Daily Report (AUD) (Sep 06, 2026 - Sep 07, 2026).csv
You do not have to open the file to total a period — the summary object on the list entry already carries these figures. Fetch the file when you need the settlement-by-settlement detail behind them.

The summary object

summary describes the period the report covers. Every figure is derived from the rows in the file, rounded to your currency’s precision the same way the file rounds them, so the two always agree: closing_balance is the ledger’s own running balance for the last settlement in the period, not a figure computed from the file.
closing_balance and closing_balance_at are null when no settlement in the period carries a ledger-stamped balance yet. The other three figures are always present.
For the live balance rather than a period-closing figure, call Get Balance Details V2. The Reporting API deliberately reports on closed periods only.
file_url is minted when you list the report and is valid for 3 minutes.
Do not store the link in your own database or hand it to a background job that runs later. Keep the report id, and list the report again to get a fresh link. Because a link is minted for every entry returned, request only the size you intend to fetch in that run.
Because the link carries its own signature, anyone holding it can read the file until it expires. Treat it like the file contents themselves, and never put it in a URL that gets logged or shared.

Reconciling a period

1

Pull the reports for the period

Call Get Settlement Reports for the window you are closing, filtering by report_frequency so overlapping frequencies do not double-post. Remember the range matches generation time, so widen it by one period to catch the report that covers your window’s start.
2

Fetch each file

GET the file_url on each entry, in the same run while the link is valid, and page until has_more is false.
3

Match deposits on your bank statement

Use Reference as the matching key against Amount less Fee amount. One reference corresponds to one deposit, and the period’s totals are summary.settled_amount and summary.settled_fee.
4

Trace anything that does not tie

Pass Balance ID to Get Balance History V2 to see the settlement in your balance timeline, alongside the payments, refunds, and fees that built the balance it drew from.
For a nightly job, query a fixed window (for example, the previous two full days in UTC, filtered to report_frequency=daily) rather than tracking cursors across runs, and deduplicate on report id so an overlapping window posts nothing twice.

Payments Accounts

A report covers the settlements for one currency, across the Payments Accounts that settled in the period. The file’s Account Nickname column tells you which account each settlement came from, so a report spanning several accounts can still be split per account on your side. There is currently no way to request reports for a single Payments Account. If you need that, talk to us — see Balance Models for how accounts hold balances under each model.