Requesting a statement
Call Request statement with a type and a period. The period is a range of calendar days in UTC, inclusive at both ends. Three limits apply to the period:- It covers at most 31 days, which is enough for one monthly billing cycle.
- It ends at least two days before today. Card transaction data takes up to 48 hours to settle, so a period ending more recently would still be moving.
- It starts no earlier than 1 June 2026.
fields to narrow it to the columns you want, in the order you want them. The response echoes your request as a statement resource with an id.
Waiting for the file
A statement starts asPENDING while Reap prepares it, then becomes GENERATED when the file is ready. Most statements are ready within a couple of minutes.
Subscribe to STATEMENT_STATUS_UPDATED rather than polling. The payload is the statement resource, so status tells you when to download. If you do poll, use Get statement.
A statement can also read FAILED, which means no file will arrive and you should request the period again.
Once generated, the resource also reports rowCount and byteSize, plus dataAsOf: how fresh the underlying records were when the file was produced.
Downloading
Call Download statement. It answers302 with a redirect to a short-lived URL that serves the file, so an HTTP client that follows redirects gets the file in one call. Fetch that URL without your API credentials, because it carries its own.
Send Accept: application/json instead and you get the URL and its expiry in the body, which suits a browser download or a signed link you pass to another system.
Download links last five minutes, but you can ask for a new one at any time. Files themselves stay available for 180 days from the day the statement was generated.
File format
Every statement follows the same dialect, whatever its type. Files are UTF-8 CSV with a header row, comma separated,\n line endings, and " quoting for values containing a comma, a quote, or a newline. Empty columns are written as an empty field rather than the word null.
Timestamps are ISO 8601 in UTC (2026-07-14T09:21:07Z) and dates are YYYY-MM-DD. Amounts are plain decimal strings with no thousands separator and no currency symbol. Rows arrive oldest first.
Each type documents the columns it carries and the scale of its amounts.
Available types
Card transaction fees
One row per fee event on a card transaction: purchases, ATM withdrawals,
refunds, wallet provisioning, and 3DS authentication.
Column stability
Columns are tied to the API version the statement was requested under, reported asversion on the resource. Within a version a column never changes name, type, or meaning, and columns are only ever added to the end of the file. Read columns by their header name rather than by position and an added column will not break your parser. See versioning for how versions work.