# List & Download Reports

The **Reporting API** exposes two operations for working with reports: a list endpoint to search and paginate available reports, and a download endpoint to retrieve the report file itself. These are used in sequence — list first to find the `reportUid`, then download to fetch the file.

## How It Works

{% stepper %}
{% step %}

## Search for reports

Call `GET /reports` with optional RSQL `search` filters to narrow results by report type, date range, entity, or clearing parameters. The response returns a paginated list of report records, each containing a `reportUid`.
{% endstep %}

{% step %}

## Identify the target report

Locate the report you want from the results array. Note the `reportUid` — this is the unique identifier you'll pass to the download endpoint.

```
ReportsResponse
  └── reports[]
        └── reportUid   ← capture this
```

{% endstep %}

{% step %}

## Download the report file

Call `GET /reports/{reportUid}` with the captured UID. The response body is the report file in its native format (PDF, CSV, or plain text).
{% endstep %}
{% endstepper %}

***

## Step 1 — Get the list of all reports

## Get the list of all reports

> By passing in the appropriate options, you can search for reports in the system.

```json
{"openapi":"3.0.0","info":{"title":"Reporting API","version":"1.3.1+labels.2025.10.20-103330"},"tags":[{"name":"Reports"}],"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc/report-engine/api/v1","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc/report-engine/api/v1","description":"Americas Production"},{"url":"https://au.gsc.verifone.cloud/oidc/report-engine/api/v1","description":"Australia Production"},{"url":"https://nz.gsc.verifone.cloud/oidc/report-engine/api/v1","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc/report-engine/api/v1","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc/report-engine/api/v1","description":"Americas Sandbox"}],"security":[{"bearerAuth":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","description":"Bearer Authentication scheme.\n\nTo use this authentication method indicate <code>Authorization: Bearer &lt;JWT&gt;</code> in the header.\n\nPlease replace the value of &lt;JWT&gt; with the JWT generated for that user.\n\n<strong>Example</strong>\n\n<code>Authorization: Bearer eyJ0eX...</code>\n(please note that for security reasons the JWT in this example is limited to 6 characters)","scheme":"bearer","bearerFormat":"JWT"},"ApiKeyAuth":{"type":"http","description":"API Key Authentication scheme.\n\nTo use this authentication method indicate <code>Authorization: Basic &lt;UserUUID:APIKEY></code> in the header.\n\nPlease replace the value of &lt;UserUUID&gt; with the internal Verifone user ID for that user and &lt;APIKEY&gt; with the apikey issued for that user and encode the whole string in base64.\n\n<strong>Example</strong>\n\n<code>f8811dd2-3667-4a1e-be8b-b42b63743254:ABCheDEFBXUGHIDmVPPPFOLtLoEnWYJVHdZF</code>\nresults in a base64 string of <code>Zjg4MTFkZDItMzY2Ny00YTFlLWJlOGItYjQyYjYzNzQzMjU0OkFCQ2hlREVGQlhVR0hJRG1WUFBQRk9MdExvRW5XWUpWSGRaRg==</code>\n\nThis results in the following string to be used in the header:\n<code>Authorization: Basic Zjg4MTFkZDItMzY2Ny00YTFlLWJlOGItYjQyYjYzNzQzMjU0OkFCQ2hlREVGQlhVR0hJRG1WUFBQRk9MdExvRW5XWUpWSGRaRg==</code>,","scheme":"basic"}},"schemas":{"ReportsResponse":{"type":"object","properties":{"totals":{"type":"integer","description":"Total number of reports. The total number of reports matching the search criteria, which can be larger than the number of elements in the array \"reports\" (which is upper bound by the \"pageSize\" parameter from the query request)."},"reports":{"type":"array","items":{"$ref":"#/components/schemas/ReportRecord"}}}},"ReportRecord":{"allOf":[{"$ref":"#/components/schemas/Report"},{"type":"object","properties":{"reportUid":{"$ref":"#/components/schemas/ReportUid"},"createdOn":{"type":"string","description":"The date and time the report was created.","format":"date-time"},"modifiedOn":{"type":"string","description":"The date and time the report was last modified.","format":"date-time"},"status":{"$ref":"#/components/schemas/ReportStatusEnum"}}}]},"Report":{"title":"Base report details","required":["fileName","mimeType","reportEntityUid","reportType"],"type":"object","properties":{"reportType":{"$ref":"#/components/schemas/ReportTypeEnum"},"reportParameter":{"$ref":"#/components/schemas/ReportParameters"},"mimeType":{"$ref":"#/components/schemas/MimeType"},"reportEntityUid":{"type":"string","description":"The internally assigned identifier for the entity for which the report was generated.","format":"uuid"},"fileName":{"type":"string","description":"The filename of the report including extenstion (e.g. myfile.txt).\nPlease note that the file extenstion is validated based on the mimeType indicated in the request and\nthat the reportUid is concatenated to the filename (format: filename_reportUid.ext, e.g. myfile_cb941e2d-f446-413a-8c2b-28e26eb048fc.txt)"}}},"ReportTypeEnum":{"title":"Report type enumeration","type":"string","description":"The type of the report.\n\n|Value|Description|\n|--------|-----------|\n|ABS_SETTLEMENT_RESPONSE_REPORT|ABS settlement report (generated and returned by ABS during settlement as a ready-made file report)|\n|BBX_PARTNER_COMMISSION_REPORT|BBX commission report (generated by BBX as a ready-made file report)|\n|INTERCARD_COMMISSION_REPORT|InterCard commission report (generated by InterCard as a ready-made file report)|\n|DAILY_TRANSACTION_REPORT|The daily transactions report is generated for each payout to the clearing entity (which e.g. can be either a store, a merchant or even a franchisee level). The content therefore depends on the particular setup. <br/>Please see https://verifone.cloud/docs/in-store-payments/merchant-payout-reports#daily-transactions-report|\n|INTERCARD_INVOICE|InterCard invoice (generated by InterCard as a ready-made file report)|\n|MERCHANT_SETTLEMENT_REPORT|The merchant settlement report contains a total summary (TS) and summary (S) records for all payment types which contributed to a single payout to the merchant. <br/>Please see https://verifone.cloud/docs/in-store-payments/merchant-payout-reports#merchant-settlement-report|","enum":["ABS_SETTLEMENT_RESPONSE_REPORT","BBX_PARTNER_COMMISSION_REPORT","DAILY_TRANSACTION_REPORT","CUSTOM_PDSP_REPORT","INTERCARD_COMMISSION_REPORT","INTERCARD_INVOICE","MERCHANT_SETTLEMENT_REPORT"]},"ReportParameters":{"title":"Report Parameters","type":"object","properties":{"batchUUID":{"type":"string","description":"The unique identifier of the settlement batch this report is related to. Mapped to PDSP's `transaction.context.paymentContext.batchUUID`.","format":"uuid"},"settlementBatchFileNumber":{"type":"string","description":"The identifier of the settlement batch file this report is related to. Mapped to PDSP's `transaction.settlementContext.settlementBatchFileNumber`."},"correlationId":{"type":"string","description":"Correlation ID.","format":"uuid"},"clearingEntityUid":{"type":"string","description":"Clearing Entity UUID.","format":"uuid"},"clearingAccountUid":{"type":"string","description":"Clearing Account UUID.","format":"uuid"},"clearingDate":{"type":"string","description":"Date & Time.","format":"date-time"},"clearingMerchantName":{"type":"string","description":"Clearing merchant name."},"clearingUid":{"type":"string","description":"The clearing UUID.","format":"uuid"},"clearingBankAccount":{"type":"string","description":"The clearing bank account."},"bankingPartner":{"$ref":"#/components/schemas/BankingPartner"},"clearingBankCode":{"type":"string","description":"The clearing bank code."},"clearingMerchantId":{"type":"string","description":"The clearing merchant ID."},"clearingReference":{"type":"string","description":"The clearing reference."},"generatedOn":{"type":"string","description":"The timestamp when the original report was created.","format":"date-time","deprecated":true},"invoicePeriodFrom":{"type":"string","description":"The start date of the invoicing period.","format":"date"},"invoicePeriodTo":{"type":"string","description":"The end date of the invoicing period.","format":"date"},"invoiceNumber":{"type":"string","description":"Invoice number."},"reportDescription":{"type":"string","description":"Description of the report."},"reportableDay":{"type":"string","description":"The date the report was generated for.","format":"date"}},"description":"List of parameters which were basis for the generation of this report."},"BankingPartner":{"title":"Banking partner","type":"string","description":"The name of the banking partners.","enum":["DESJARDINS","IBC","INTERCARD"]},"MimeType":{"type":"string","description":"The MIME type of this report.","enum":["application/pdf","text/csv","text/plain"]},"ReportUid":{"title":"Report UID","type":"string","description":"The unique identifier of that specific report.","format":"uuid"},"ReportStatusEnum":{"title":"Report status enumeration","type":"string","description":"The status of the report will be in one of the following states.","enum":["INITIATED","INVALID_INPUT_PARAMETERS","PROCESSING_STARTED","FAILED","SUCCESSFUL"]},"genericError400":{"title":"HTTP 400 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["400"],"default":"400"},"title":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string","default":"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The request could not be understood by the server due to malformed syntax."},"genericError401":{"title":"HTTP 401 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["401"],"default":"401"},"title":{"type":"string","enum":["Unauthorised"],"default":"Unauthorised"},"message":{"type":"string","default":"The request requires client authentication."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The request must be authenticated to access the resource."},"genericError403":{"title":"HTTP 403 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["403"],"default":"403"},"title":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string","default":"The request requires client authorisation to access resource."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The request must be authorised to access the resource."},"genericError404":{"title":"HTTP 404 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["404"],"default":"404"},"title":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string","default":"The server cannot find the requested resource."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The server cannot find the requested resource."},"genericError429":{"title":"HTTP 429 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["429"],"default":"429"},"title":{"type":"string","enum":["Too Many Requests"],"default":"Too Many Requests"},"message":{"type":"string","default":"The number of requests from this client is restricted to a specified quota."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["RATE_LIMIT_ERROR"],"default":"RATE_LIMIT_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The resource exists the number of requests has exceeded the specified quota."},"genericError500":{"title":"HTTP 500 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["500"],"default":"500"},"title":{"type":"string","enum":["Internal Server Error"],"default":"Internal Server Error"},"message":{"type":"string","default":"The server encountered an unexpected condition which prevented it from fulfilling the request."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"Unexpected Server Error"},"genericError503":{"title":"HTTP 503 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["503"],"default":"503"},"title":{"type":"string","enum":["Service Unavailable"],"default":"Service Unavailable"},"message":{"type":"string","default":"The server is not ready to handle the request. If specified please check the <strong>Retry-After</strong> for the time period specified for recovery/re-attempt of request."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"Service Unavailable Error"},"genericError504":{"title":"HTTP 504 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["504"],"default":"504"},"title":{"type":"string","enum":["Gateway Timeout"],"default":"Gateway Timeout"},"message":{"type":"string","default":"The server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"Gateway Timeout Error"}}},"paths":{"/reports":{"get":{"tags":["Reports"],"summary":"Get the list of all reports","description":"By passing in the appropriate options, you can search for reports in the system.","operationId":"get_the_list_of_all_reports_get","parameters":[{"name":"pageNumber","in":"query","description":"Page number for records.","required":false,"style":"form","explode":true,"schema":{"minimum":1,"type":"integer","default":1}},{"name":"pageSize","in":"query","description":"Page size for returned records.","required":false,"style":"form","explode":true,"schema":{"maximum":1000,"minimum":1,"type":"integer","default":50}},{"name":"orderBy","in":"query","description":"The ordering sequence of the selected records.\nIf this parameter is not provided, descending order will be chosen.\n\n|Value|Description|\n|--------|-----------|\n|ASC|Ascending order|\n|DESC| Descending order|","required":false,"style":"form","explode":true,"schema":{"type":"string"}},{"name":"orderCriteria","in":"query","description":"The ordering criteria of the selected records.\n\nIf this parameter not provided, the result will be ordered by <b>createdOn</b>.\n\n|Value|Description|\n|--------|-----------|\n|createdOn|Date & Time|\n|modifiedOn| Date & Time|\n|status| Report status|\n|mimeType| Mime type|\n|reportType| Report type|\n|reportUid| Report identifier|","required":false,"style":"form","explode":true,"schema":{"type":"string"}},{"name":"search","in":"query","description":"<b>A filter query in RSQL format.</b>\n\nThe returned reports are limited to those that can be retrieved by the user. Please note that if\n`reportEntityUid` is not provided as a search criteria, only records will be returned for the current\n`reportEntityUid` assigend to that user (and does not include descendants).\n\n|Criteria|Description|Operator Used|\n|--------|-----------|-----------|\n|createdOn|The date and time the report was created (Date & Time)|==,=lt=,=le=,=gt=,=ge=,=in=,=out=|\n|modifiedOn|Date & Time|==,=lt=,=le=,=gt=,=ge=,=in=,=out=|\n|status|Report status|==,=in=,=out=|\n|mimeType|Mime type|==,=in=,=out=|\n|reportType|Report type|==,=in=,=out=|\n|reportUid|Report identifier|==,=regex=,=in=,=out=|\n|reportEntityUid|Report entity UUID|==,=in=|\n|reportParameter.batchUUID|The unique identifier of the settlement batch this report is related to. Mapped to PDSP's `transaction.context.paymentContext.batchUUID`.|==,=in=|\n|reportParameter.settlementBatchFileNumber|The identifier of the settlement batch file this report is related to. Mapped to PDSP's `transaction.settlementContext.settlementBatchFileNumber`.|==,=regex=,=in=,=out=|\n|reportParameter.clearingEntityUid|Clearing entity UUID|==,=in=|\n|reportParameter.clearingAccountUid|clearingAccountUid|==,=in=|\n|reportParameter.clearingDate|clearingDate (Date & Time)|==,=lt=,=le=,=gt=,=ge=,=in=,=out=|\n|reportParameter.clearingMerchantName|clearingMerchantName|==,=regex=,=in=,=out=|\n|reportParameter.clearingUid|clearingUid|==,=in=|\n|reportParameter.clearingBankAccount|clearingBankAccount|==,=in=|\n|reportParameter.bankingPartner|bankingPartner|==,=regex=,=in=,=out=|\n|reportParameter.clearingBankCode|clearingBankCode|==,=regex=,=in=,=out=|\n|reportParameter.clearingMerchantId|clearingMerchantId|==,=regex=,=in=,=out=|\n|reportParameter.clearingReference|clearingReference|==,=regex=,=in=,=out=|\n|reportParameter.generatedOn (deprecated)|generatedOn|==,=lt=,=le=,=gt=,=ge=,=in=,=out=|\n|reportParameter.invoicePeriodFrom|invoicePeriodFrom|==,=lt=,=le=,=gt=,=ge=,=in=,=out=|\n|reportParameter.invoicePeriodTo|invoicePeriodTo|==,=lt=,=le=,=gt=,=ge=,=in=,=out=|\n|reportParameter.invoiceNumber|invoiceNumber|==,=regex=,=in=,=out=|\n|reportParameter.reportDescription|reportDescription|==,=regex=,=in=,=out=|\n|reportParameter.reportableDay|reportableDay|==,=lt=,=le=,=gt=,=ge=,=in=,=out=|\n\n<b>RSQL Operators</b>\nRSQL Query is composed of one or more expressions, combined to each other with following logical operators:\n\n|Operator|Syntax|\n|--------|------|\n|Logical AND|<b>;</b> or <b>&</b>|\n|Logical OR|<b>,</b>|\n\n\n<b>RSQL Comparators</b>\n\n|Comparator|Description|\n|--------|-----------|\n|==|equal|\n|!=|not equal|\n|=lt=|less than|\n|=le=|less than and equal to|\n|=gt=|greater than|\n|=ge=|greater than and equal to |\n|=regex=|pattern matching|\n|=in=|multiple arguments search|\n|=out=|exclude|\n\n\n<b>Examples</b>\n\n* /reports?search=reportType=in=(MERCHANT_SETTLEMENT_REPORT,DAILY_TRANSACTION_REPORT);createdOn=gt=2020-09-20T00:00:00.000Z\n\n* /reports?search=reportEntityUid=in=(2cbc7ec7-49dd-4e70-be98-dd751cf8640b,0d7e19f7-94d5-49ad-890d-1ce636912fb7,a3ca2522-2810-4db1-b535-6e449c3cea6c)\n\n* /reports?search=reportParameter.clearingReference==12345","required":false,"style":"form","explode":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"search results matching criteria","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportsResponse"}}}},"400":{"description":"Bad Request. Unable to interpret the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError400"}}}},"401":{"description":"Unauthorized. Unable to authenticate client to allow request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError401"}}}},"403":{"description":"Forbidden. This Feature is not enabled. This feature has not been authorised for the client.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError403"}}}},"404":{"description":"Not found. The requested resource does not exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError404"}}}},"429":{"description":"Too many requests. Too many requests from the client hit the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError429"}}}},"500":{"description":"Internal error. There was an error processing the request; try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError500"}}}},"503":{"description":"Service Unavailable. Unable process requests at this time, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError503"}}}},"504":{"description":"Service Unavailable. Unable process requests at this time, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError504"}}}}}}}}}
```

### Pagination

{% columns %}
{% column %}

### Parameters

* `pageNumber` — 1-based page index (default: `1`)
* `pageSize` — records per page, max `1000` (default: `50`)
  {% endcolumn %}

{% column %}

### Ordering

* `orderBy` — `ASC` or `DESC` (default: `DESC`)
* `orderCriteria` — field to sort by (default: `createdOn`). Options: `createdOn`, `modifiedOn`, `status`, `mimeType`, `reportType`, `reportUid`
  {% endcolumn %}
  {% endcolumns %}

### RSQL Search Filter

The `search` parameter accepts a query in RSQL format. If `reportEntityUid` is not included, results are limited to the current user's entity (descendants are not included).

{% tabs %}
{% tab title="Searchable Criteria" %}

| Criteria                                    | Description                    | Operators                                             |
| ------------------------------------------- | ------------------------------ | ----------------------------------------------------- |
| `createdOn`                                 | Date & time report was created | `==`, `=lt=`, `=le=`, `=gt=`, `=ge=`, `=in=`, `=out=` |
| `modifiedOn`                                | Date & time last modified      | `==`, `=lt=`, `=le=`, `=gt=`, `=ge=`, `=in=`, `=out=` |
| `status`                                    | Report status                  | `==`, `=in=`, `=out=`                                 |
| `mimeType`                                  | MIME type                      | `==`, `=in=`, `=out=`                                 |
| `reportType`                                | Report type                    | `==`, `=in=`, `=out=`                                 |
| `reportUid`                                 | Report identifier              | `==`, `=regex=`, `=in=`, `=out=`                      |
| `reportEntityUid`                           | Report entity UUID             | `==`, `=in=`                                          |
| `reportParameter.batchUUID`                 | Settlement batch UUID          | `==`, `=in=`                                          |
| `reportParameter.settlementBatchFileNumber` | Settlement batch file number   | `==`, `=regex=`, `=in=`, `=out=`                      |
| `reportParameter.clearingEntityUid`         | Clearing entity UUID           | `==`, `=in=`                                          |
| `reportParameter.clearingDate`              | Clearing date & time           | `==`, `=lt=`, `=le=`, `=gt=`, `=ge=`, `=in=`, `=out=` |
| `reportParameter.clearingReference`         | Clearing reference             | `==`, `=regex=`, `=in=`, `=out=`                      |
| `reportParameter.invoiceNumber`             | Invoice number                 | `==`, `=regex=`, `=in=`, `=out=`                      |
| `reportParameter.reportableDay`             | Date report was generated for  | `==`, `=lt=`, `=le=`, `=gt=`, `=ge=`, `=in=`, `=out=` |

<details>

<summary>Additional clearing parameters</summary>

| Criteria                               | Operators                                             |
| -------------------------------------- | ----------------------------------------------------- |
| `reportParameter.clearingAccountUid`   | `==`, `=in=`                                          |
| `reportParameter.clearingMerchantName` | `==`, `=regex=`, `=in=`, `=out=`                      |
| `reportParameter.clearingUid`          | `==`, `=in=`                                          |
| `reportParameter.clearingBankAccount`  | `==`, `=in=`                                          |
| `reportParameter.bankingPartner`       | `==`, `=regex=`, `=in=`, `=out=`                      |
| `reportParameter.clearingBankCode`     | `==`, `=regex=`, `=in=`, `=out=`                      |
| `reportParameter.clearingMerchantId`   | `==`, `=regex=`, `=in=`, `=out=`                      |
| `reportParameter.invoicePeriodFrom`    | `==`, `=lt=`, `=le=`, `=gt=`, `=ge=`, `=in=`, `=out=` |
| `reportParameter.invoicePeriodTo`      | `==`, `=lt=`, `=le=`, `=gt=`, `=ge=`, `=in=`, `=out=` |
| `reportParameter.reportDescription`    | `==`, `=regex=`, `=in=`, `=out=`                      |

</details>
{% endtab %}

{% tab title="RSQL Operators" %}
**Logical operators** combine expressions:

| Operator    | Syntax     |
| ----------- | ---------- |
| Logical AND | `;` or `&` |
| Logical OR  | `,`        |

**Comparators:**

| Comparator   | Description              |
| ------------ | ------------------------ |
| `==`         | Equal                    |
| `!=`         | Not equal                |
| `=lt=`       | Less than                |
| `=le=`       | Less than or equal to    |
| `=gt=`       | Greater than             |
| `=ge=`       | Greater than or equal to |
| `=regex=`    | Pattern matching         |
| `=in=`       | Multiple value match     |
| `=out=`      | Exclude                  |
| {% endtab %} |                          |

{% tab title="Examples" %}
Filter by report type and creation date:

```
/reports?search=reportType=in=(MERCHANT_SETTLEMENT_REPORT,DAILY_TRANSACTION_REPORT);createdOn=gt=2020-09-20T00:00:00.000Z
```

Filter by multiple entity UIDs:

```
/reports?search=reportEntityUid=in=(2cbc7ec7-49dd-4e70-be98-dd751cf8640b,0d7e19f7-94d5-49ad-890d-1ce636912fb7)
```

Filter by clearing reference:

```
/reports?search=reportParameter.clearingReference==12345
```

{% endtab %}
{% endtabs %}

### Report Types

{% tabs %}
{% tab title="MERCHANT\_SETTLEMENT\_REPORT" %}
Contains total summary (TS) and summary (S) records for all payment types contributing to a single merchant payout.

See the [Merchant Payout Reports](https://verifone.cloud/docs/in-store-payments/merchant-payout-reports#merchant-settlement-report) documentation for format details.
{% endtab %}

{% tab title="DAILY\_TRANSACTION\_REPORT" %}
Generated for each payout to a clearing entity (store, merchant, or franchisee level). Content depends on the specific setup.

See the [Daily Transaction Report](https://verifone.cloud/docs/in-store-payments/merchant-payout-reports#daily-transactions-report) documentation for format details.
{% endtab %}

{% tab title="ABS\_SETTLEMENT\_RESPONSE\_REPORT" %}
ABS settlement report — generated and returned by ABS during settlement as a ready-made file.
{% endtab %}

{% tab title="BBX / InterCard" %}
**`BBX_PARTNER_COMMISSION_REPORT`** — BBX commission report generated by BBX as a ready-made file.

**`INTERCARD_COMMISSION_REPORT`** — InterCard commission report generated by InterCard as a ready-made file.

**`INTERCARD_INVOICE`** — InterCard invoice generated by InterCard as a ready-made file.
{% endtab %}
{% endtabs %}

{% hint style="info" %}
The `CUSTOM_PDSP_REPORT` type is also valid in `reportType` filter queries.
{% endhint %}

### Report Status Values

A report in the response will have one of the following `status` values:

| Status                     | Meaning                                       |
| -------------------------- | --------------------------------------------- |
| `INITIATED`                | Report has been requested                     |
| `PROCESSING_STARTED`       | Report generation is in progress              |
| `SUCCESSFUL`               | Report is ready to download                   |
| `FAILED`                   | Report generation failed                      |
| `INVALID_INPUT_PARAMETERS` | Report was rejected due to invalid parameters |

{% hint style="warning" %}
Only attempt to download a report with status `SUCCESSFUL`. Attempting to download a report in any other state will return a 404.
{% endhint %}

***

## Step 2 — Download specific report

## Download specific report

> Download specific report.

```json
{"openapi":"3.0.0","info":{"title":"Reporting API","version":"1.3.1+labels.2025.10.20-103330"},"tags":[{"name":"Reports"}],"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc/report-engine/api/v1","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc/report-engine/api/v1","description":"Americas Production"},{"url":"https://au.gsc.verifone.cloud/oidc/report-engine/api/v1","description":"Australia Production"},{"url":"https://nz.gsc.verifone.cloud/oidc/report-engine/api/v1","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc/report-engine/api/v1","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc/report-engine/api/v1","description":"Americas Sandbox"}],"security":[{"bearerAuth":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","description":"Bearer Authentication scheme.\n\nTo use this authentication method indicate <code>Authorization: Bearer &lt;JWT&gt;</code> in the header.\n\nPlease replace the value of &lt;JWT&gt; with the JWT generated for that user.\n\n<strong>Example</strong>\n\n<code>Authorization: Bearer eyJ0eX...</code>\n(please note that for security reasons the JWT in this example is limited to 6 characters)","scheme":"bearer","bearerFormat":"JWT"},"ApiKeyAuth":{"type":"http","description":"API Key Authentication scheme.\n\nTo use this authentication method indicate <code>Authorization: Basic &lt;UserUUID:APIKEY></code> in the header.\n\nPlease replace the value of &lt;UserUUID&gt; with the internal Verifone user ID for that user and &lt;APIKEY&gt; with the apikey issued for that user and encode the whole string in base64.\n\n<strong>Example</strong>\n\n<code>f8811dd2-3667-4a1e-be8b-b42b63743254:ABCheDEFBXUGHIDmVPPPFOLtLoEnWYJVHdZF</code>\nresults in a base64 string of <code>Zjg4MTFkZDItMzY2Ny00YTFlLWJlOGItYjQyYjYzNzQzMjU0OkFCQ2hlREVGQlhVR0hJRG1WUFBQRk9MdExvRW5XWUpWSGRaRg==</code>\n\nThis results in the following string to be used in the header:\n<code>Authorization: Basic Zjg4MTFkZDItMzY2Ny00YTFlLWJlOGItYjQyYjYzNzQzMjU0OkFCQ2hlREVGQlhVR0hJRG1WUFBQRk9MdExvRW5XWUpWSGRaRg==</code>,","scheme":"basic"}},"schemas":{"ReportUid":{"title":"Report UID","type":"string","description":"The unique identifier of that specific report.","format":"uuid"},"genericError400":{"title":"HTTP 400 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["400"],"default":"400"},"title":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string","default":"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The request could not be understood by the server due to malformed syntax."},"genericError401":{"title":"HTTP 401 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["401"],"default":"401"},"title":{"type":"string","enum":["Unauthorised"],"default":"Unauthorised"},"message":{"type":"string","default":"The request requires client authentication."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The request must be authenticated to access the resource."},"genericError403":{"title":"HTTP 403 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["403"],"default":"403"},"title":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string","default":"The request requires client authorisation to access resource."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The request must be authorised to access the resource."},"genericError404":{"title":"HTTP 404 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["404"],"default":"404"},"title":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string","default":"The server cannot find the requested resource."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The server cannot find the requested resource."},"genericError429":{"title":"HTTP 429 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["429"],"default":"429"},"title":{"type":"string","enum":["Too Many Requests"],"default":"Too Many Requests"},"message":{"type":"string","default":"The number of requests from this client is restricted to a specified quota."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["RATE_LIMIT_ERROR"],"default":"RATE_LIMIT_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"The resource exists the number of requests has exceeded the specified quota."},"genericError500":{"title":"HTTP 500 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["500"],"default":"500"},"title":{"type":"string","enum":["Internal Server Error"],"default":"Internal Server Error"},"message":{"type":"string","default":"The server encountered an unexpected condition which prevented it from fulfilling the request."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"Unexpected Server Error"},"genericError503":{"title":"HTTP 503 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["503"],"default":"503"},"title":{"type":"string","enum":["Service Unavailable"],"default":"Service Unavailable"},"message":{"type":"string","default":"The server is not ready to handle the request. If specified please check the <strong>Retry-After</strong> for the time period specified for recovery/re-attempt of request."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"Service Unavailable Error"},"genericError504":{"title":"HTTP 504 Error","required":["code","message","title","type"],"type":"object","properties":{"code":{"type":"string","enum":["504"],"default":"504"},"title":{"type":"string","enum":["Gateway Timeout"],"default":"Gateway Timeout"},"message":{"type":"string","default":"The server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request."},"timestamp":{"type":"string","description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"type":"string","description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example."}},"description":"Gateway Timeout Error"}}},"paths":{"/reports/{reportUid}":{"get":{"tags":["Reports"],"summary":"Download specific report","description":"Download specific report.","operationId":"download_specific_report_get","parameters":[{"name":"reportUid","in":"path","required":true,"style":"simple","explode":false,"schema":{"$ref":"#/components/schemas/ReportUid"}}],"responses":{"200":{"description":"Search results matching the criteria.","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}},"text/csv":{"schema":{"type":"string","format":"binary"}},"text/plain":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Bad Request. Unable to interpret the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError400"}}}},"401":{"description":"Unauthorized. Unable to authenticate client to allow request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError401"}}}},"403":{"description":"Forbidden. This Feature is not enabled. This feature has not been authorised for the client.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError403"}}}},"404":{"description":"Not found. The requested resource does not exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError404"}}}},"429":{"description":"Too many requests. Too many requests from the client hit the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError429"}}}},"500":{"description":"Internal error. There was an error processing the request; try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError500"}}}},"503":{"description":"Service Unavailable. Unable process requests at this time, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError503"}}}},"504":{"description":"Service Unavailable. Unable process requests at this time, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/genericError504"}}}}}}}}}
```

The response body is the raw report file. The `Content-Type` header reflects the file format:

| Content-Type      | Format                 |
| ----------------- | ---------------------- |
| `application/pdf` | PDF document           |
| `text/csv`        | Comma-separated values |
| `text/plain`      | Plain text             |

{% hint style="info" %}
The `reportUid` path parameter is a UUID in the format `04f5ea24-cc4f-11e8-a8d5-f2801f1b9fd1`. Retrieve it from the `reportUid` field in the list response.
{% endhint %}

***

## Deprecated Search Criteria

{% hint style="warning" %}
The `reportParameter.generatedOn` search criterion is deprecated. Use `createdOn` or `reportParameter.reportableDay` instead.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.verifone.com/api-reference/open-api-references/reporting/list-and-download-reports.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
