Skip to main content
Managed Payments generates reports through the core Circle Reports API (/v1/reports). The following report types cover Managed Payments activity only. They’re separate from the Circle Mint camt053 daily statement, which isn’t available on Managed Payments keys.

Report types

Use camt_managed for CAMT.053 statements on Managed Payments. The Circle Mint camt053 type isn’t valid on Managed Payments keys. It covers Circle Mint accounts, not Managed Payments. See CAMT.053 daily statements for the ISO 20022 XML structure, which camt_managed shares.

Request and download a report

  1. Request the report with POST /v1/reports, passing reportType, timeframe where the type supports it, and date. Format date to match the timeframe: daily reports use YYYY-MM-DD (for example, 2026-06-30), and the monthly managed_payin_transactions and managed_payout_transactions reports use YYYY-MM (for example, 2026-06). Passing a full date for a monthly report returns 400. Circle interprets date in your entity’s reporting timezone, not UTC. For example, a Circle SG entity uses Singapore Time (SGT). Circle generates Managed Payments reports on a schedule:
    • If the report is available, the response is 200 OK with the report id and a pre-signed downloadUrl.
    • If the report is still being generated, the response is 202 Accepted with a report id and no downloadUrl.
  2. If the response was 202 Accepted, poll GET /v1/reports/{id} until status is ready and a downloadUrl is present.
  3. Download the report. Either fetch the file from downloadUrl before the time given by expiresAt, or stream it directly from GET /v1/reports/{id}/content, which returns the raw file and responds with 409 if the report isn’t ready. After a downloadUrl expires, call GET /v1/reports/{id} for a fresh URL. You can also request the report again. Requests are idempotent, so the same parameters return the same report.
expiresAt uses different formats across endpoints. Create (POST /v1/reports) and get-by-ID (GET /v1/reports/{id}) responses return it as an ISO 8601 timestamp, as in the preceding example. The list endpoint (GET /v1/reports) returns it as epoch milliseconds.

List generated reports

To find reports you’ve already generated, use GET /v1/reports with a reportType and a date range. Each report in the response carries its own pre-signed downloadUrl. The list endpoint doesn’t return the Circle Mint camt053 statement. Request that report with POST /v1/reports instead.
The id returned by GET /v1/reports is a storage object key (for example, managed_payout_transactions/{UUID}/{date}/report.csv), not the deterministic report UUID. You can’t pass it to GET /v1/reports/{id} or GET /v1/reports/ {id}/content. Download a listed report from its own downloadUrl.