# Create Other Operations report Requests the manual generation of an Other Operations report of the type specified by `reportId`, using the date range and filters sent in the request body. Generation is asynchronous: the response returns a `record_id`, which you must use as the `uid` to check the report status with [GET /statements/{uid}](/developers/en/reference/reports/get-activity-report-status/get). In case of success, the request returns a response with status 200. **POST** `/v1/reporting/operations/{reportId}/statements` ## Request parameters ### Path - `reportId` (string, required) Other Operations report type. - `filters` (object, optional) Groups the criteria used to select the account operations that will be included in the generated report. - `filters.creation_date` (object, optional) Filters account operations according to their creation date and time. - `filters.creation_date.range` (object, optional) Defines the start and end of the period covered by the report. Send both limits in ISO 8601 format with a UTC offset; the period cannot exceed one year. - `filters.creation_date.range.gte` (string, optional) Start date and time of the report period. Operations created at or after this value are included. Use ISO 8601 format with a UTC offset, and make sure the value is earlier than or equal to `lte`. - `filters.creation_date.range.lte` (string, optional) End date and time of the report period. Operations created up to this value are included. Use ISO 8601 format with a UTC offset; the period between `gte` and `lte` cannot exceed one year. - `filters.status` (array, optional) Operation statuses to include in the report. This filter applies to collection, withdrawal, and voucher reports. It does not apply to post-collection reports (`activities_after_collection`). - `filters.channels` (array, optional) Sales channels to include in the report. This filter applies only to collection reports. The possible values are: - `filters.operations_type` (array, optional) Post-collection operation types to include in the report. This filter applies only to post-collection reports. The possible values are: - `filters.status_refund` (array, optional) Refund statuses to include in the report. This filter applies only to post-collection reports (`activities_after_collection`). - `filters.status_claim` (array, optional) Claim statuses to include in the report. This filter applies only to post-collection reports (`activities_after_collection`). - `filters.status_chargeback` (array, optional) Chargeback statuses to include in the report. This filter applies only to post-collection reports (`activities_after_collection`). Rows whose chargeback status is not included are discarded. If no chargeback matches, the report is generated with the `empty` status. The possible values are: - `file_format` (string, optional) Format of the generated report file. For example, `application/csv`. ## Response parameters - `result` (string, optional) Result of the report generation request. The value `ok` indicates that the request was accepted successfully. - `record_id` (string, optional) Unique identifier (UUID) of the report generation task. Use this value as the `uid` to [check the report status](/developers/en/reference/reports/get-activity-report-status/get) and download the file when it is available. ## Errors | Status | Error | Description | | ------- | ------- | ----------- | | 400 | invalid_date_range | The requested date range is incomplete or invalid. Send both `gte` and `lte` in ISO 8601 format with a UTC offset, make sure that `gte` is earlier than or equal to `lte`, and use a period of no more than one year. Then submit the request again. | | 409 | export_already_requested | An equivalent report is already being generated for the same user, `reportId`, date range, and filters. Do not submit a duplicate request. List or search the reports to retrieve the existing report identifier and check its status until processing finishes. | ## Request example ### cURL ```bash curl -X POST \ 'https://api.mercadopago.com/v1/reporting/operations/{reportId}/statements' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "filters": { "creation_date": { "range": { "gte": "2026-03-01T00:00:00.000-03:00", "lte": "2026-03-31T23:59:59.999-03:00" } }, "status": [ "approved" ], "channels": [ "qr" ], "operations_type": [ "refund_operations" ], "status_refund": [ "string" ], "status_claim": [ "string" ], "status_chargeback": [ "opened" ] }, "file_format": "application/csv" }' ``` ## Response example ```json { "result": "ok", "record_id": "6d17e034-6eb3-48fc-a6fa-461e886fa406" } ```