Request a payment report
Accepts the full payment-list filter set by composition, so a report and the payments list can never diverge. Freezes the upper date bound to the request time, dedupes identical requests on a canonical hash of merchant + format + filters, then runs generation asynchronously. There is no request-time row cap: an over-large request is accepted and later fails as MAX_ROWS_EXCEEDED, visible on the report row.
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"
Body
Request a payment report
Report file format. Only CSV is supported in v1.
CSV "CSV"
Email address notified once the report completes.
"finance@merchant.example"
Same filter set accepted by GET /payments. Omit entirely to include every payment for the merchant in the report (still bounded by the frozen upper date and the row ceiling).
Response
Deduped to an existing report matching the same merchant, format, and filters. Adds row_count / completed_at / expires_at when that report is already COMPLETED.
Report identifier
"3f1c0b2a-0e5d-4a1b-9c2f-6a7b8c9d0e1f"
QUEUED, RUNNING, COMPLETED, FAILED "QUEUED"
"2026-09-06T12:00:00.000Z"
Exact row count. Present when a deduped report is already COMPLETED.
1284
"2026-09-06T12:03:11.000Z"
"2026-12-05T12:03:11.000Z"