Skip to content

Statements

The Statements API exposes the finalized, period-end documents Rho issues for the accounts your business holds - the same statements you can download from the dashboard. Use it to automate month-end reconciliation, archive PDFs alongside your books, and pull opening/closing balances without scraping the web app.

Stable contract

The Statements API is part of the stable v1 contract: additive-only, with breaking changes reserved for a new API version. See Versioning and compatibility.

What a statement represents

A single statement record covers one statement period for one statement type. Its top-level fields describe the period; the per-account figures live in an accounts array.

FieldWhat it tells you
idA stable global identifier for the statement. Not the internal row ID.
period_start, period_endThe inclusive boundaries of the statement period.
available_atWhen the finalized statement became available for retrieval.
pdf_urlA short-lived signed download URL for the PDF, valid for up to 15 minutes, or null when the document cannot be linked. If the link lapses, re-fetch the statement with GET /statements/{id} for a fresh URL.
accountsThe per-account figures (see below). Account and treasury statements may span multiple checking/savings accounts; credit statements carry a single entry.

Per-account figures

Each entry in accounts carries the figures for one account over the period:

FieldWhat it tells you
account_idThe account the figures belong to, or null for credit statements, which are not tied to a deposit account.
account_typeOne of checking, savings, credit, or treasury.
opening_balance, closing_balanceBalance at the start of the period and at its close. closing_balance is the reconciliation anchor.
total_credits, total_debits, total_feesSums of credits, debits, and fees posted in the period, in minor units (cents for USD).
repayment_date, spending, repayments, cashbackCredit statements only; null for deposit accounts.

Common workflows

Archiving month-end PDFs

List statements as they become available and download each PDF for your records:

curl 'https://rhoapi.rho.co/api/v1/statements?period_end_after=2026-05-01&period_end_before=2026-06-01&page_size=100' \
  -H "Authorization: Bearer $RHO_API_TOKEN"

Follow the cursor (see Pagination) until next_page_token is null, then download each pdf_url promptly. A pdf_url is a signed link valid for up to 15 minutes. For a long-running archive job, download each PDF soon after you read it rather than collecting URLs up front. If a link lapses mid-run, re-fetch the single statement with GET /statements/{id} to get a fresh pdf_url:

curl 'https://rhoapi.rho.co/api/v1/statements/{id}' \
  -H "Authorization: Bearer $RHO_API_TOKEN"

Reconciling balances

For each statement, read the closing_balance of the relevant accounts entry as the anchor for that account's period, and compare against your ledger. Credit statements expose spending, repayments, and cashback to reconcile the card line.

Reference

Full endpoint catalogue - paths, parameters, response shapes, and required scopes - lives in the API Reference.