Disputes

The disputes report retrieves a list of disputes that occurred within a defined timeframe and the status of the dispute if it changed within that timeframe.

Report properties

Report available forDisputes within the latest 90 days
Report periodMax 90 days
File formatCSV
Report levelMerchant

Request payload

FieldRequiredValuesDescription
startDateYesExample: "2026-01-01T00:00:00.000Z"The report cutoff start date in ISO 8601 date-time.
endDateYesExample: "2026-01-31T23:59:59.999Z"The report cutoff end date in ISO 8601 date-time.
webhooksUrlNohttps://your-webhooks-notification-url.comThe URL to which the report state changes will be notified along with the download URL

Generating a dispute report

Send an API request to POST /v1/dispute-reports with the appropriate payload parameters for the desired report.

Sample request:

POST /v1/dispute-reports HTTP/1.1
Host: api.sandbox.eu.ppro.com
Content-Type: application/json
Merchant-Id: <Your Merchant Id>
Authorization: Bearer *****

{
  "startDate": "2026-04-04T00:00:00.000Z",
  "endDate": "2026-04-06T23:59:59.999Z",
  "webhooksUrl": "https://webhook.site/3e5ecbb7-1890-48e7-b908-92c394930932"
}

Sample response:

{
    "id": "report_2JQp13PZnTajblv4xGDZb",
    "status": "PENDING",
    "startDate": "2025-10-27T00:00:00.000Z",
    "endDate": "2025-10-31T00:00:00.000Z",
    "createdAt": "2026-07-23T16:15:32.271Z",
    "updatedAt": "2026-07-23T16:15:32.271Z"
}

Downloading the dispute report

The initial status is PENDING. After processing completes, the status changes to PROCESSED, and a downloadUrl becomes available. The downloadUrl is a pre-signed URL that provides temporary, authenticated access to securely download the generated report from storage.

📘

Note

Download links remain valid for 2 hours after the report is generated. Once the link expires, a REPORT_EXPIRED webhook is dispatched, and the report status is updated to EXPIRED.

You can retrieve the downloadUrl in one of two ways:

  • From the REPORT_PROCESSED webhook payload, if you’ve configured a webhooksUrl (either dynamically in the request or via a static setting).
  • By querying the report endpoint directly, for example: GET /v1/dispute-report/{reportId}.

Sample request:

GET /v1/dispute-reports/report_Ro7FnjU0n9skrIu48oKwh HTTP/1.1
Host: api.sandbox.eu.ppro.com
Merchant-Id: <Your Merchant Id>
Authorization: Bearer *****

Report format

Column nameTypeDescription
REPORT_DATEstringTimestamp when the report was generated in ISO 8601 format.
DISPUTE_IDstringUnique identifier for the dispute at PPRO.
PAYMENT_CHARGE_IDstringIdentifier of the associated payment charge at PPRO.
MERCHANT_IDstringIdentifier of the merchant linked to the dispute.
MERCHANT_PAYMENT_REFERENCEstringOptional reference provided by the merchant for the operation.
PAYMENT_METHODstringPayment method used (e.g., PIX CARD WERO).
RECORD_DATEstringTimestamp when the dispute was updated in ISO 8601 format.
PROVIDER_DISPUTE_DATEstringTimestamp when the dispute was first raised at the provider or with PPRO if unknown.
DISPUTE_CURRENCYstringCurrency code in ISO 4217 format.
DISPUTE_AMOUNTintegerAmount of the dispute.
DISPUTE_REASON_CODEstringThe PPRO dispute reason code (e.g., PDSP_AUTH_001, PDSP_PROD_001)
DISPUTE_PHASEstringDispute phase (e.g., PRE_DISPUTE, DISPUTE, PRE_ARBITRATION, ARBITRATION)
DISPUTE_STATUSstringStatus of the dispute (e.g., OPEN, UNDER_REVIEW)
DISPUTE_DUE_BYstringTimestamp when a response is due by in ISO 8601 format.

Example Report CSV

REPORT_DATE, DISPUTE_ID, PAYMENT_CHARGE_ID, MERCHANT_ID, MERCHANT_PAYMENT_REFERENCE, PAYMENT_METHOD, RECORD_DATE, PROVIDER_DISPUTE_DATE, DISPUTE_CURRENCY, DISPUTE_AMOUNT, DISPUTE_REASON_CODE, DISPUTE_PHASE, DISPUTE_STATUS, DISPUTE_DUE_BY
2025-04-04T04:42:20.892Z,dispute_sCTH5JVxsTKb9XDnBbttg,charge_KnBhDYtulJRmNvNve5UDQ,26819159-3774-4ad7-bf5f-854dee69895e,123abc,card,2026-07-14T17:08:24.094400887Z,2026-07-14T00:00:00Z,BRL,4300,PDSP_AUTH_001,DISPUTE,DISPUTE_OPEN,2026-07-21T17:08:24:00Z

Did this page help you?