# JPMC-PDP Documentation from https://developer.payments.jpmorgan.com # Quick integration This page provides all the information you need to quickly integrate with the Reporting API using pre-configured preset reports. ## Before you begin - You must onboard the Reporting API to receive your [access credentials](/api/commerce/optimization-protection/oauth-authentication). Contact your relationship manager or [contact us](https://developer.payments.jpmorgan.com/contact) if you need assistance. - You must opt-in to access preset reports either via Commerce Center or use the preset report configuration via Reporting API. ## How it works You can quickly integrate to the Reporting API by performing the following steps: 1. Choose the preset report you want to use. 2. Schedule when you want the preset report to be generated. - You will get the reportIdentifier and reportConfigurationId 3. Check the report status. 4. Retrieve the generated report. ### Step 1: Choose preset report **Preset report details** | Preset report name | Description | Report type | | --- | --- | --- | | [Authorization Report](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/authorization-report) | Provides a summary of the successful and unsuccessful authorizations and associated authorization details for each merchant order number. | Transaction Details Report Type | | [Charge Summary](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/charge-summary-report) | Provides details of the fees charged and associated tax for the selected reporting period. | Submission Details Report Type | | [Deposit Details](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/deposit-details-report) | Provides details of sale and refund transactions for each merchant order number along with Interchange & Assessment fees for each transaction for the selected reporting period. | Submission Details Report Type | | [Deposit Activity Summary](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/deposit-activity-summary-report) | Provides a summary of the following for the selected reporting period: - Settled sales and refunds - Conveyed sales and refunds - Fees and adjustments - Funds Transfer activity | Submission Details & Settlement Summary Report Type | | [Dispute Details](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/dispute-details-report) | Provides the summary and details of disputes activity such as chargebacks, debit adjustments and ECP returns for the selected reporting period. | Dispute Details v2 Report Type | | [Exception Report](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/exception-details-report) | Provides a summary of the successful and unsuccessful transactions and details of unsuccessful transactions (Declined/Rejected/Cancelled/On-Hold). | Transaction Details Report Type | | [Financial Activity Summary](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/financial-activity-summary-report) | Provides a summary of the net financial activity, daily ending/reserve balance and funds transfers (Pending/Effective/Rejected) for a specified reporting period. | Settlement Summary Report Type | | [Funded Transaction Fee Details](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/funded-transaction-fee-details-report) | Provides sale, refund, fee, and adjustments details for each merchant order number which has a confirmed fund transfer. | Fee Details Report Type | | [Interchange Report](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/interchange-qualification-report) | Provides a summary of the transactions associated with various interchange qualifications and associated interchange details for each merchant order number. | Submission Details Report Type | | [Transaction Fee Details](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/transaction-fee-details-report) | Provides sale, refund, fee, and adjustments details for each merchant order number with emphasis on financial activity. | Submission Details Report Type | ### Step 2: Schedule the preset report You can quickly schedule a preset report by choosing: - The [entities](/docs/commerce/optimization-protection/capabilities/reporting/report-configurations/scheduled-adhoc#entity) for which the reporting data needs to be generated. - The schedule frequency (daily, weekly, monthly, monthly-fiscal, mtd, or adhoc) for when you want the report to be generated. **Fields for scheduling a report** | Field name | Description | Valid values | | --- | --- | --- | | scheduleFrequency | Specifies frequency of the report schedule. | - daily — Running a report every day. - weekly — Running a report every Tuesday would be weekly|tue. - monthly — Running a report on the 3rd day following the end of the month would be monthly|3. - monthly-fiscal — Running a report based on your fiscal calendar. - mtd — Running a report from the start of the month to the current date. - adhoc — Running a report on a custom schedule. | | reportFileScheduleTime | Specifies when report generation should begin, not when the report has completed. Applies only for daily, weekly, monthly, Month to date (mtd), and monthly-fiscal. | - Time in UTC time zone. - The value is set by the system based on your merchant end-of-day time (MEOD) even if you pass a value in the request. | | reportingPeriodStartTime | Specifies the starting point for data collection. | - Your merchant end-of-day time (MEOD) in UTC time zone. - The value is set by the system based on your merchant end-of-day time (MEOD) even if you pass a value in the request. | | reportingPeriodStartTimestamp | Specifies the starting point for data collection. Applies only for ad hoc. | Time in UTC time zone. | | reportingPeriodEndTimestamp | Specifies the ending point for data collection. Applies only for ad hoc. | Time in UTC time zone. | For more information on how to configure a report schedule, refer to [Scheduled and adhoc](/docs/commerce/optimization-protection/capabilities/reporting/report-configurations/scheduled-adhoc). The following example shows the request body for scheduling an adhoc deposit details preset report. **HTTP Method:** `POST` **Endpoint: **`/reports` **Scenario:** Scheduling an adhoc deposit details report for entityType = CO/BU/TD. ```json { "entityType": "CO", "entityIds": [ "123456" ], "reportSections": [ { "sectionReportTypeName": "Submission Details", "sectionReportTypeId": "3003", "sectionSelectedFields": [ { "reportAttributeName": "Submission Date" }, { "reportAttributeName": "Presentment Currency Code" }, { "reportAttributeName": "Settlement Currency Code" }, { "reportAttributeName": "Transaction Division External Identifier" }, { "reportAttributeName": "Payment Method Code" }, { "reportAttributeName": "Merchant Order Number" }, { "reportAttributeName": "Account Number" }, { "reportAttributeName": "Credit Card Expiration Year Month Number" }, { "alias": "Transaction Amount in Presentment Currency", "reportAttributeName": "Presentment Amount", "aggregateOperationText": "sum", "conditionalAggregateIndicator": true, "conditionalAggregateFilterList": [ { "aggregateConditionAttributeName": "Charge Category Code", "aggregateConditionText": "IN(\"SALE\",\"REF\")" } ] }, { "reportAttributeName": "Merchant Action Code" }, { "reportAttributeName": "Action Type Code Text" }, { "reportAttributeName": "Authorization Date" }, { "reportAttributeName": "Country of Issuance" }, { "reportAttributeName": "Transaction Type Code" }, { "reportAttributeName": "Transaction Type Text" }, { "reportAttributeName": "Merchant Category Code" }, { "reportAttributeName": "Digital Token Method Code" }, { "reportAttributeName": "Digital Wallet Brand" }, { "alias": "Interchange Qualification Code", "reportAttributeName": "Interchange Qualification Code", "aggregateOperationText": "max", "conditionalAggregateIndicator": true, "conditionalAggregateFilterList": [ { "aggregateConditionAttributeName": "Fee Text", "aggregateConditionText": "IN(\"Interchange\")" } ] }, { "alias": "Interchange Unit Fee", "reportAttributeName": "Unit Fee Amount", "aggregateOperationText": "sum", "conditionalAggregateIndicator": true, "conditionalAggregateFilterList": [ { "aggregateConditionAttributeName": "Fee Text", "aggregateConditionText": "IN(\"Interchange\")" } ] }, { "alias": "Fee Rate", "reportAttributeName": "Fee Rate", "aggregateOperationText": "sum", "conditionalAggregateIndicator": true, "conditionalAggregateFilterList": [ { "aggregateConditionAttributeName": "Fee Text", "aggregateConditionText": "IN(\"Interchange\")" } ] }, { "alias": "Total Interchange Amount", "reportAttributeName": "Raw Settled Total Fee Amount", "aggregateOperationText": "sum", "conditionalAggregateIndicator": true, "conditionalAggregateFilterList": [ { "aggregateConditionAttributeName": "Charge Category Code", "aggregateConditionText": "IN(\"IA\")" }, { "aggregateConditionAttributeName": "Charge Subcategory Text", "aggregateConditionText": "IN(\"Interchange Fees\")" } ] }, { "alias": "Total Assessment Amount", "reportAttributeName": "Raw Settled Total Fee Amount", "aggregateOperationText": "sum", "conditionalAggregateIndicator": true, "conditionalAggregateFilterList": [ { "aggregateConditionAttributeName": "Charge Category Code", "aggregateConditionText": "IN(\"IA\")" }, { "aggregateConditionAttributeName": "Charge Subcategory Text", "aggregateConditionText": "IN (\"Assessment Fees\")" } ] }, { "alias": "Other Debit Passthrough Fees", "reportAttributeName": "Raw Settled Total Fee Amount", "aggregateOperationText": "sum", "conditionalAggregateIndicator": true, "conditionalAggregateFilterList": [ { "aggregateConditionAttributeName": "Charge Category Code", "aggregateConditionText": "IN(\"PFEE\")" }, { "aggregateConditionAttributeName": "Charge Subcategory Text", "aggregateConditionText": "IN(\"Debit Pass Thru Fees\")" } ] }, { "reportAttributeName": "Merchant Information Description" }, { "reportAttributeName": "Surcharge Amount" }, { "reportAttributeName": "Bank Sort Code" }, { "reportAttributeName": "Card Usage Type" } ], "sectionSortOrderList": [ { "reportAttributeName": "Submission Date", "sortOrderCode": "asc" }, { "reportAttributeName": "Transaction Division External Identifier", "sortOrderCode": "asc" }, { "reportAttributeName": "Payment Method Code", "sortOrderCode": "desc" } ], "sectionFilterAttributeList": [ { "reportAttributeName": "Online Submission Indicator", "filterAttributeCode": "=\"N\"" }, { "reportAttributeName": "Merchant Action Text", "filterAttributeCode": "=\"DEPOSITS\"" }, { "reportAttributeName": "Transaction Type Text", "filterAttributeCode": "!=\"Rejects\"" }, { "reportAttributeName": "Transaction Deposit Indicator", "filterAttributeCode": "=\"Y\"" }, { "reportAttributeName": "Merchant Order Number", "filterAttributeCode": "!=\"NULL\"" } ] } ], "fileDelimiter": ",", "reportConfigurationName": "Deposit Detail Report", "reportFileName": "Deposit Detail Report....", "reportHeader": "EntityId=,ReportTypeName=,Frequency=,FromDate=,ToDate=,GenerationDate=,GenerationTime=", "fileHeader": "BEGIN,EntityId=,Frequency=", "fileTrailer": "END,EntityId=,Frequency=", "csvColumnNameDisplayIndicator": true, "reportConfigStatus": "active", "reportName": "Deposit Detail Report", "frequencyConfig": { "scheduleFrequency": "adhoc", "reportingPeriodStartTimestamp": "2024-05-06 11:30:00", "reportingPeriodEndTimestamp": "2024-05-07 02:00:00" } } ``` The response payload returns the `reportIdentifier` and `reportConfigurationId`. You can use the `reportIdentifier` to check the status of a report and the `reportConfigurationId` to [retrieve the details of a report configuration](/docs/commerce/optimization-protection/capabilities/reporting/how-to/manage-report-configurations#get-details-about-a-specific-configuration) or [update a report configuration](/docs/commerce/optimization-protection/capabilities/reporting/how-to/manage-report-configurations#update-a-report-configuration). ### Step 3: Check the report status You can check the status of a report by performing a `GET` call to the `/reports` endpoint using the `report-id` as the path parameter. **HTTP Method:** `GET` **Endpoint:** `/reports/{report-id}` **Scenario:** Checking the status of a report using the `report-id = 5cec7414-03fb-11f0-aa5f-e95281c39793` ```json { "reportIdentifier": "c6a6f075-64d5-476f-b463-bc1c5de1abd7", "reportConfigurationId": "ca788ad9-521c-45ec-b36d-0fdd38701e4d", "reportTypeNames": [ "Submission Details" ], "reportStatus": "completed", "updateTimestamp": "2024-08-20T00:23:05.353Z", "createTimestamp": "2024-08-20T00:19:05.353Z", "intervalParam": { "reportingPeriodStartTimestamp": "2024-05-06 03:00:00", "reportingPeriodEndTimestamp": "2024-05-07 02:59:59", "scheduleFrequency": "adhoc" }, "reportDetails": { "reportFileName": "Deposit Detail Report.123456.adhoc.2024-05-06.2024-05-07", "url": "https://report-files-api.merchant.jpmorgan.com/api/v1/report-files/c6a6f075-64d5-476f-b463-bc1c5de1abd7" } } ``` If you have scheduled for daily, weekly, or monthly report or don't know the `report-Id`, you can perform a `GET /reports` to retrieve the latest report details. **HTTP Method:** `GET` **Endpoint:** `/reports` **Scenario: **Retrieve the details of all reports. ```json { "next": null, "summarizedReports": [ { "reportIdentifier": "6ee97665-8d2c-424c-859a-dd98a9e4e0ca", "reportConfigurationId": "193544e3-0fdf-472e-8cae-798ff88da609", "reportTypeNames": [ "Settlement Summary", "Settlement Details" ], "reportStatus": "requested", "updateTimestamp": "2021-08-23T00:23:05.353Z", "createTimestamp": "2021-08-23T00:19:05.353Z", "intervalParam": { "reportingPeriodStartTimestamp": "2021-08-23 00:18:18", "reportingPeriodEndTimestamp": "2021-08-23 00:19:18", "scheduleFrequency": "adhoc" } }, { "reportIdentifier": "c6a6f075-64d5-476f-b463-bc1c5de1abd7", "reportConfigurationId": "ca788ad9-521c-45ec-b36d-0fdd38701e4d", "reportTypeNames": [ "Transaction Details" ], "reportStatus": "completed", "updateTimestamp": "2021-08-20T00:23:05.353Z", "createTimestamp": "2021-08-20T00:19:05.353Z", "intervalParam": { "reportingPeriodStartTimestamp": "2021-08-20 00:18:18", "reportingPeriodEndTimestamp": "2021-08-20 00:19:18", "scheduleFrequency": "adhoc" }, "reportDetails": { "reportFileName": "992994469896.Multiple.adhoc.2021-08-20.2021-08-20", "url": "https://sample-report-url" } } ], "lastPage": true } ``` For more information, refer to [Retrieve report details](/docs/commerce/optimization-protection/capabilities/reporting/how-to/retrieve-report-details). ### Step 4: Retrieve the generated report You can retrieve the generated reports (`reportStatus = completed`) in various formats using the Reporting API or Commerce Center. For more information on the different formats and ways you can retrieve a generated report, refer to [Retrieve report files](/docs/commerce/optimization-protection/capabilities/reporting/how-to/retrieve-reports). ## Related [Preset reports](/docs/commerce/optimization-protection/capabilities/reporting/preset-reports/overview) [Scheduled and Adhoc](/docs/commerce/optimization-protection/capabilities/reporting/report-configurations/scheduled-adhoc) [Manage report configurations](/docs/commerce/optimization-protection/capabilities/reporting/how-to/manage-report-configurations) [Retrieve reports](/docs/commerce/optimization-protection/capabilities/reporting/how-to/retrieve-reports)