Get a single payment report
Current status of one report. EXPIRED is derived from expires_at at read time. A cross-merchant id returns the same 404 body as a genuine miss, so the API never confirms another merchant’s report id. On FAILED the response carries error_code and a caller-safe error_message; MAX_ROWS_EXCEEDED is the designed rejection path, not a system error.
Authorizations
API key for service-to-service or merchant authentication.
Headers
Unique identifier for request tracing. Generated by the client or server if not provided.
"550e8400-e29b-41d4-a716-446655440000"
Path Parameters
Unique identifier of the report (UUID v4)
"3f1c0b2a-0e5d-4a1b-9c2f-6a7b8c9d0e1f"
Response
The report
Report identifier
"3f1c0b2a-0e5d-4a1b-9c2f-6a7b8c9d0e1f"
Derived status. A COMPLETED report whose retention window (expires_at) has passed reports as EXPIRED.
QUEUED, RUNNING, COMPLETED, FAILED, EXPIRED "COMPLETED"
CSV, XLSX "CSV"
The materialized filter set used for this report. The upper date bound is always concrete.
"2026-09-06T12:00:00.000Z"
Exact row count. Present once the report is COMPLETED.
1284
"2026-09-06T12:03:11.000Z"
Informational retention boundary. Past this instant the report is EXPIRED.
"2026-12-05T12:03:11.000Z"
Stable failure code the caller can branch on. Present only when status is FAILED.
"MAX_ROWS_EXCEEDED"
Caller-safe failure message. Present only when status is FAILED.
"This report matched too many payments. Narrow your filters and try again."