Reporting API
Data Reports API enables easy access to build consumable data sets. It is designed for merchants or system integrators looking for transaction-level payment data.
Data Reports API enables easy access to build consumable data sets. It is designed for merchants or system integrators looking for transaction-level payment data.
# Harvested verbatim from the J.P. Morgan Payments Developer Portal.
# method: searched
# source: https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Freporting%2Freporting-oas.md
# generated: '2026-07-28'
openapi: 3.0.1
info:
title: Reporting API
description: Data Reports API enables easy access to build consumable data sets. It is designed for
merchants or system integrators looking for transaction-level payment data.
version: 1.4.0
contact:
name: Reporting API Support
url: https://developer.payments.jpmorgan.com/contact-support
email: ms.pit.team@jpmorgan.com
servers:
- url: https://api.reports.jpmorgan.com/api/v1
description: PRODUCTION - OAUTH
- url: https://api.reports-files.jpmorgan.com/api/v1
description: PRODUCTION - OAUTH REPORTS FILES
- url: https://api.reports.test.jpmorgan.com/api/v1
description: CLIENT TESTING - OAUTH
- url: https://api-mock.payments.jpmorgan.com/api/v1
description: MOCK
security:
- BearerAuth: []
tags:
- name: Report Types
description: Endpoints for report types.
- name: Report Configurations
description: Endpoints for report configurations.
- name: Reports
description: Endpoints for reports.
- name: Report Files
description: Endpoints for report files.
- name: Reporting Groups
description: Reporting Group Information
- name: Health Check
description: Validate the health of the service.
paths:
/healthcheck:
get:
summary: Health check for the Data Reports service.
security: []
operationId: v1GetHealth
tags:
- Health Check
description: Healthcheck endpoint to validate that the service is running.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/healthCheckResource'
examples:
Success:
value:
status: UP
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/report-types:
get:
summary: Get a list of available report types.
operationId: v1ListReportTypes
tags:
- Report Types
description: Get a list of available report types.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/reportTypes'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
examples:
Authentication Failure:
value:
errorSource: APG-EDGE
errorCode: EDG00012
errorDescription: the signature could not be verified
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/report-types/{report-type-id}:
get:
summary: Get details for a specific report type.
operationId: v1ListReportTypesByReportTypeId
tags:
- Report Types
description: Get details for a specific report type.
parameters:
- name: report-type-id
in: path
required: true
schema:
type: string
maxLength: 40
description: Uniquely identifies the type of report being requested.
examples:
Success:
value: '1003'
Authentication Failure:
value: '9003'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/reportTypeFields'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/reports:
get:
summary: Get a list of available reports.
operationId: v1ListReports
tags:
- Reports
description: Get a list of available reports.
parameters:
- name: next
in: header
schema:
type: string
description: This is used for specifying individual parameters under API endpoint methods.
examples:
Success:
value: Q0MtMTAzMDMyLVY3NzY0ODMtODA3MTUtVUFUfDEwYjQ1YzJlNzhhMGFiNDA5ZDlkYWJhZDY3Y2FmZWIxZGUwMGYwN2ZmZmZjMTcwMA
Authentication Failure:
value: XYX1239999999
- name: reportStartDate
in: query
schema:
type: string
description: Report creation start date. Format- YYYY-MM-DD.
examples:
Success:
value: '2025-01-05'
- name: reportEndDate
in: query
schema:
type: string
description: Report creation end date. Format- YYYY-MM-DD.
examples:
Success:
value: '2025-01-05'
- name: reportConfigurationId
in: query
schema:
type: string
description: The unique identifier for report configuration.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/reportList'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
post:
summary: Create a new report configuration.
operationId: v1CreateReportConfiguration
tags:
- Reports
description: Create a new report configuration for a merchant based upon a report type.
requestBody:
description: Create new report configuration.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reportConfigRequest'
examples:
Success with Minimum Config/Adhoc Frequency:
value:
entityType: PE
entityIds:
- '9876543210'
- '9876543211'
reportSections:
- sectionReportTypeName: Transaction Details
frequencyConfig:
scheduleFrequency: adhoc
reportingPeriodStartTimestamp: '2020-04-11 01:00:00'
reportingPeriodEndTimestamp: '2020-04-13 23:00:00'
Success with Minimum Config/Scheduled Frequency:
value:
entityType: PE
entityIds:
- '9876543210'
- '9876543211'
reportSections:
- sectionReportTypeName: Transaction Details
frequencyConfig:
scheduleFrequency: daily
reportFileScheduledTime: 09:00:00
reportingPeriodStartTime: '23:00:00'
Success with Complete Config/Adhoc Frequency:
value:
entityType: PE
entityIds:
- '998586046651'
reportSections:
- sectionReportTypeName: Settlement Details
sectionSelectedFields:
- alias: Record Type
constantValueText: RACT0010
- alias: Entity Type
constantValueText: TD
- reportAttributeName: Action Date
alias: Submission Date
- reportAttributeName: Payout Identifier
- reportAttributeName: Transaction Processing Entity Identifier
alias: Entity Number
- reportAttributeName: Transaction Currency Code
alias: Presentment Currency
- reportAttributeName: Sales Order Number
alias: Merchant Order Number
- reportAttributeName: Masked Card Number
alias: Account Number
- reportAttributeName: Card Expiration Month Year Number
alias: Expiration Date
- reportAttributeName: Transaction Amount
alias: Amount
- reportAttributeName: Payment Method Code
alias: MOP
- reportAttributeName: Client Action Code
alias: Action Code
- reportAttributeName: Authorization Timestamp
alias: Auth Date
- reportAttributeName: Firm Authorization Response Code
alias: Auth Code
- reportAttributeName: Payment Authorization Response Identifier
alias: Auth Response Code
- reportAttributeName: Merchant Category Code
alias: MCC
- reportAttributeName: Token Type Code
- reportAttributeName: Interchange Program Code
alias: Interchange Qualification Code
- reportAttributeName: Interchange Fee Amount
alias: Interchange Unit Fee
- reportAttributeName: Interchange Fee Rate
alias: Interchange Face Value % Fee
- reportAttributeName: Total Interchange Amount
- reportAttributeName: Total Payment Brand Fee Amount
alias: Total Assessment Amount
- reportAttributeName: Other Fee Amount
alias: Other Debit Passthrough Fees
- reportAttributeName: Settlement Currency Code
alias: Settlement Currency
sectionSortOrderList:
- reportAttributeName: Total Interchange Amount
sortOrderCode: asc
sectionFilterAttributeList:
- reportAttributeName: Funding Status Code
filterAttributeCode: ="Payment Submitted"
- reportAttributeName: Client Action Code
filterAttributeCode: IN ("DP","RF","AR","DR","RQ")
fileDelimiter: ','
reportConfigurationName: Deposit Detail Financial Report-Ad hoc
reportFileName: <Processing Entity ID>.<Report Type>.<frequency>.<From Date YYYY-MM-DD>.<To
Date YYYY-MM-DD>
reportHeader: HACT0010,<Processing Entity ID>,<Report Type>,<frequency>,<From Date YYYY-MM-DD>,<To
Date YYYY-MM-DD>,<Generation Date YYYY-MM-DD>,GenerationTime=<Generation Time HH:MM:SS>
fileHeader: DFRBEGIN,ProcessingEntityId=<Processing Entity ID>,Frequency=<frequency>
fileTrailer: DFREND,ProcessingEntityId=<Processing Entity ID>,Frequency=<frequency>
csvColumnNameDisplayIndicator: true
reportConfigStatus: Active
frequencyConfig:
scheduleFrequency: adhoc
reportingPeriodStartTimestamp: '2021-02-14 01:00:00'
reportingPeriodEndTimestamp: '2021-02-16 23:00:00'
Success with exisiting config on demand/adhoc:
value:
reportConfigurationId: 7e04226f-c683-4854-ab58-24d2eb24581c
frequencyConfig:
scheduleFrequency: adhoc
reportingPeriodStartTimestamp: '2020-04-11 01:00:00'
reportingPeriodEndTimestamp: '2020-04-13 23:00:00'
Failure due to incorrect report type:
value:
entityType: PE
entityIds:
- '9876543210'
- '9876543211'
reportSections:
- sectionReportTypeName: Trans Details
frequencyConfig:
scheduleFrequency: daily
reportFileScheduledTime: 09:00:00
reportingPeriodStartTime: '23:00:00'
Authentication Failure:
value:
reportConfigurationId: 5555-6666-7777-2222
frequencyConfig:
scheduleFrequency: adhoc
reportingPeriodStartTimestamp: '2020-04-11 01:00:00'
reportingPeriodEndTimestamp: '2020-04-13 23:00:00'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/reportPostResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/reports/{report-id}:
get:
summary: Get details for a specific report.
operationId: v1GetReportByReportId
tags:
- Reports
description: Get details for a specific report.
parameters:
- name: report-id
in: path
required: true
schema:
type: string
maxLength: 40
description: Unique id for the report.
examples:
Success:
value: c6a6f075-64d5-476f-b463-bc1c5de1abd7
Authentication Failure:
value: 5555-66666-7777
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/report'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/report-configs:
get:
summary: Get a list of available report configurations.
operationId: v1ListReportConfigurations
tags:
- Report Configurations
description: Get a list of available report configurations.
parameters:
- name: next
in: header
schema:
type: string
description: This is used for specifying individual parameters under API endpoint methods.
examples:
Success:
value: Q0MtMTAzMDMyLVY3NzY0ODMtODA3MTUtVUFUfDEwYjQ1YzJlNzhhMGFiNDA5ZDlkYWJhZDY3Y2FmZWIxZGUwMGYwN2ZmZmZjMTcwMA
Authentication Failure:
value: 5555-6666-7777
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/reportConfigurationList'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/report-configs/{report-configuration-id}:
get:
summary: Get details for a specific report configuration.
operationId: v1GetReportConfigurationByReportConfigurationId
tags:
- Report Configurations
description: Get details for a specific report configuration.
parameters:
- name: report-configuration-id
in: path
required: true
schema:
type: string
maxLength: 40
description: Identifies a unique occurrence of reporting setup as requested by customer.
examples:
Success:
value: 7611d1bf-325c-4795-a828-ac21f9bea5dc
Authentication Failure:
value: 1234-5678-9101
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/reportConfigResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
put:
summary: Update an existing report configuration.
operationId: v1UpdateReportConfigurationByReportConfigurationId
tags:
- Report Configurations
description: Update an existing report configuration.
parameters:
- name: report-configuration-id
in: path
required: true
schema:
type: string
maxLength: 40
description: Identifies a unique occurrence of reporting setup as requested by customer.
examples:
Success:
value: 7611d1bf-325c-4795-a828-ac21f9bea5dc
Authentication Failure:
value: 5555-6666-7777
Failure due to incorrect frequency:
value: 12324-5678-9012
requestBody:
description: Update an existing report configuration.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reportConfigPutRequest'
examples:
Success:
value:
reportConfigStatus: Active
Failure due to incorrect frequency:
value:
entityType: PE
entityIds:
- '9876543210'
- '9876543211'
reportSections:
- sectionReportTypeName: Transaction Details
frequencyConfig:
scheduleFrequency: adhoc
reportingPeriodStartTimestamp: '2021-08-23 01:00:00'
reportingPeriodEndTimestamp: '2021-08-23 23:00:00'
Authentication Failure:
value:
entityType: PE
entityIds:
- '9876543210'
- '9876543211'
reportSections:
- sectionReportTypeName: Transaction Details
fileDelimiter: '|'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/reportConfigResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/report-files/{report-id}:
get:
summary: Get a specific report file.
operationId: v1GetReportFileByReportId
tags:
- Report Files
description: Retrieves a specific report file by its ID. Note In production, override the base URL
with https://api.reports-files.jpmorgan.com/api/v1
parameters:
- name: report-id
in: path
required: true
schema:
type: string
maxLength: 40
description: Unique id for the report.
examples:
Success:
value: fca8115f-1912-4743-9d27-c61de99b604a
Authentication Failure:
value: 5555-6666-7777
- name: report-format
in: query
deprecated: true
schema:
type: string
enum:
- CSV
- PDF
- GZ
description: Indicates the report file format as text or binary file. Default value is CSV.
examples:
Success:
value: CSV
- name: reportFormat
in: query
schema:
type: string
enum:
- CSV
- PDF
- GZ
- XLSX
description: Indicates the report file format as text or binary file. Default value is CSV.
examples:
Success:
value: CSV
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/fileContent'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/reporting-groups:
post:
summary: Create new reporting group
operationId: v1ReportingGroupPost
tags:
- Reporting Groups
description: Create a new reporting group.
requestBody:
description: Reporting group information
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reportingGroup'
examples:
Create a reporting group of entities:
value:
reportingGroupName: Example RG 1
reportingGroupDescription: Description for Example RG 1
childEntityInfo:
- entityType: BU
entityIds:
- '1285401'
- '123456'
Create a reporting group of reporting groups:
value:
reportingGroupName: Example RG 2
reportingGroupDescription: Description for Example RG 2
childEntityInfo:
- entityType: RGBU
entityIds:
- '2405141152387311'
- '2405141153250961'
Create a reporting group of entities and reporting groups:
value:
reportingGroupName: Example RG 3
reportingGroupDescription: Description for Example RG 3
childEntityInfo:
- entityType: RGBU
entityIds:
- '2407092248548502'
- entityType: BU
entityIds:
- '1285401'
Create a Heterogeneous reporting group multi level:
value:
reportingGroupName: Example RGH 4
reportingGroupDescription: Description for Example RGH 4
childEntityInfo:
- entityType: RGCO
entityIds:
- '2507252256449185'
- entityType: RGH
entityIds:
- '2509151900464748'
- entityType: TD
entityIds:
- '188935'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/reportingGroupResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
get:
summary: Get a list of available report reporting groups.
operationId: v1ReportingGroupGet
tags:
- Reporting Groups
description: Get a list of available reporting groups.
parameters:
- name: groupType
in: query
schema:
type: string
description: The category of the reporting group. Allowed values are RGPE, RGTD, RGFTI, RGBU,
RGCO, RGH
examples:
Get reporting groups by groupType:
value: RGCO
Get reporting groups by groupType & groupId:
value: RGCO
- name: groupId
in: query
schema:
type: string
description: Unique identifier of a reporting group.
examples:
Get reporting group by groupId:
value: '2405281843563422'
Get reporting groups by groupType & groupId:
value: '2405232310294687'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/reportingGroupResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/adfsError'
examples:
Authentication Failure:
value:
errorSource: APG-EDGE
errorCode: EDG00012
errorDescription: the signature could not be verified
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'504':
description: Gateway Timeout
content:
application/json:
# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jp-morgan-chase/refs/heads/main/openapi/jp-morgan-chase-reporting-api-openapi.yml