Skip to main content
Use the Reports endpoints to power integrator dashboards: user and card counts, treasury position, card spend, and cashflow over time. Business KYB must be approved before these endpoints are available (same gate as treasury and cards). All monetary amounts are integer USDC cents unless noted otherwise.

Business overview

GET /reports/overview returns a single snapshot for your dashboard header. Pass optional from / to (same UTC rules as spend reports) to scope the spend totals; omit them to default to the last 30 days.
GET /reports/overview
Response

User and card breakdowns

Group end users by KYC status or cards by lifecycle status.
GET /reports/users
User breakdown response
GET /reports/cards
Card breakdown response

Card spend over time

GET /reports/spend returns completed card transaction totals grouped by hour, day, week, or month. Leave out from to use the last 30 days. Leave out to to use now. Optional filters:
  • cardId - Nest card id (rainCards._id); scopes to that card’s completed transactions
  • userId - end-user id; scopes to that user’s cards
How date filters work (all times are UTC):
  • Pass a date like 2026-07-08 to cover that whole day. from starts at the beginning of the day, and to includes the whole end day.
  • Pass a full timestamp like 2026-07-08T10:00:00.000Z when you need an exact window. Activity at from is included; activity at to is not. That keeps back-to-back ranges from counting the same moment twice.
  • groupBy must be hour, day, week, or month. Anything else returns 400.
When groupBy=hour, each bucket uses the start of that hour, for example 2026-07-08T14:00:00.000Z.
GET /reports/spend
For usage against a card limit window, pass cardId plus from / to matching the limit frequency (or read periodSpendCents on GET /cards/{cardId}).
GET /reports/spend?cardId=
Spend report response

Cashflow over time

GET /reports/cashflow tracks cashflow in USD cents: funded (treasury → cards), spent (completed card spend), and returned (cards → treasury). For spend breakdowns by user, merchant, MCC, or city, use the spend report endpoints.
GET /reports/cashflow
Cashflow response

Spend by cardholder

GET /reports/spend-by-user ranks completed card spend by end user for the period. Optional filters: userId, cardId, limit (default 50).
GET /reports/spend-by-user
Spend by user response

Spend by merchant

GET /reports/spend-by-merchant ranks by normalized merchant name (Unknown when blank). Pass page (1-based) and limit to page results; response includes totalRows / totalPages.
GET /reports/spend-by-merchant
Spend by merchant response

Spend by category

GET /reports/spend-by-mcc ranks by merchantCategory label only (MCC code is not shown). Same page / limit paging as other breakdowns.
GET /reports/spend-by-mcc
Spend by category response

Spend by city

GET /reports/spend-by-city ranks by merchant city (Unknown when blank).
GET /reports/spend-by-city
Spend by city response

CSV export

GET /reports/spend-export returns a CSV attachment. Pass dimension=user|merchant|mcc|city (default user).
GET /reports/spend-export

Metric rules

  • Only completed card transactions are included
  • Amounts are integer USDC cents
  • Date filters match Card spend over time (UTC)