Processing Reports
Partners can request an export of processing reports programmatically at an interval that fits their needs. After receiving a report export request, PPRO queues the work and generates the bulk file asynchronously. Once ready, the partner is notified via Webhooks, and a URL becomes available for downloading the CSV file.
1. Request a Payment Report Export
Whenever you want to receive a payments processing report, make a request to PPRO's Reporting API endpoint:
In the request body, specify:
Field | Values | Description |
---|---|---|
operationType | AUTHORIZATION, CAPTURE, REFUND, VOID | The type of payment charge operation to be included in the report. |
startDate | Example: "2025-01-01T00:00:00.000Z" | The report cutoff start date in ISO 8601 date-time. |
endDate | Example: "2025-01-01T23:59:59.999Z" | The report cutoff end date in ISO 8601 date-time. |
webhooksUrl | https://your-webhooks-notification-url.com | The URL to which the report state changes will be notified along with the download URL |
Request:
POST /v1/payment-reports HTTP/1.1
Host: api.sandbox.eu.ppro.com
{
"operationType": "CAPTURE",
"startDate": "2025-04-04T00:00:00.000Z",
"endDate": "2025-04-04T23:59:59.999Z",
"webhooksUrl": "https://your-webhooks-notification-url.com"
}
Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "report_WcJcFBw77BfGezmxJM9i5",
"status": "PENDING",
"operationType": "CAPTURE",
"startDate": "2025-04-04T00:00:00.000Z",
"endDate": "2025-04-04T23:59:59.999Z",
"createdAt": "2025-04-07T15:30:34.401Z",
"updatedAt": "2025-04-07T15:30:34.401Z"
}
2. Download the Report File
After a few minutes, the report status will update to PROCESSED, at which point a downloadUrl
becomes available. You can obtain the downloadUrl
either from the REPORT_PROCESSED webhook payload or by querying the API using the report ID
Webhook Payload:
{
"source":"https://www.ppro.com",
"id":"TW3nbIG40NW73k4mhuW8Y",
"type":"REPORT_PROCESSED",
"subject":"REPORT_PROCESSED",
"time":"2025-04-07T15:05:23.326Z",
"data":
{
"reportId":"report_0SANgKQDybMOmWvXEnHso",
"status":"PROCESSED",
"operationType":"CAPTURE",
"startDate":"2025-04-04T00:00:00.000Z",
"endDate":"2025-04-04T23:59:59.999Z",
"downloadUrl":"https://ppro-payment-reports-prod.s3.ppro.com/report_abcd?response-content-disposition=attachment%3Bfilename%3Dreport_abcd.csv",
"contentLength":228293
},
"specversion":"1.0.2",
"datacontenttype":"application/json"
}
Querying the payment-reports API with the report id:
Request:
GET /v1/payment-reports/{report-id}
Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "report_0SANgKQDybMOmWvXEnHso",
"status": "PROCESSED",
"operationType": "CAPTURE",
"startDate": "2025-04-04T00:00:00.000Z",
"endDate": "2025-04-04T23:59:59.999Z",
"contentLength": 228293,
"downloadUrl": "https://ppro-payment-reports-prod.s3.ppro.com/report_abcd?response-content-disposition=attachment%3Bfilename%3Dreport_abcd.csv",
"createdAt": "2025-04-07T15:05:05.918Z",
"updatedAt": "2025-04-07T15:05:23.246Z"
}
Note:
- A single payments report can include data for up to 6 months. To retrieve data beyond this range, you'll need to generate multiple reports and consolidate them.
- The Payment Report status initially starts as PENDING and will transition to one of the following: PROCESSED, FAILED, or EXPIRED. You can use webhooks to receive notifications for each of these status changes.
- The payment report entity will change to EXPIRED and become unavailable 2 hours after creation. Make sure to download the CSV before it expires.
Updated 16 days ago