Transaction Details
Overview
The Transaction Details API allows customers to retrieve details on all of the inflows and outflows of funds in their accounts. Using the Transaction Details API, you can view the details of any transaction. The Transactions Details API enables users to query via multiple accounts at a time and/or with a specified date range to retrieve a list of all debits and credits to those accounts. For best performance, we recommend calling the API one account at a time or group accounts to 10 or less for each API request.
While the Transaction Detail V2 API provides a list of transactions with their details as a synchronous response, the Transaction Details V3 API provides a list of transactions with their details in a paginated (refer to section on Pagination), synchronous response. The Transaction Details V3 API provides up to 1000 records per page. Please note that V3 is not available for accounts in India branches.
The Transaction Details API is also capable of providing transactions for the current business day. This will be a full set of data each time the request is made and is not an incremental data set. Additionally, review the Request filters section for a full list of query parameters to form specific requests.
Use cases
- Reporting
- Cash flow forecasting
- Transaction-based event triggers
- Sweep accounts
- Customized reporting
Supported transaction types
- ACH
- Wires
Getting transaction details
To quickly get started using the J.P. Morgan Transaction Details, follow the steps below.
Accounts
In order to complete the steps below yourself, you will need bank accounts configured for API access with J.P. Morgan. Check with your implementation manager to confirm that the configuration has been properly completed. Discuss with your implementation manager the recommended number of times (typically 3-4 times in a day) the API call should be configured for supporting your use case and business flow.
Steps
- Send API request
- Receive synchronous response
- Send customized API request
- Receive synchronous response
Beware of payload limit
Optimize your number of API calling times or frequencies to make the best use of technology and bandwidth. Your requirements can be fine-tuned during the implementation stage.
Pagination
Pagination enables request responses to be returned synchronously with the first page and detail about the payload.
Steps
- Send normal filtered request, such as a date range request.
- Receive paginated response.
- Retrieve following pages with header query param
pageNumber.
Pagination detail in response
Pagination code block legend:
pageSize
- the number of transactions in a pagetotalPages
- the number of pages included in the query resultpageNumber
- the specific page number in the given responsetotalRecords
- the total number of transactions in the query result
{
"pagination": {
"pageSize": 1000,
"totalPages": 3,
"pageNumber": 1,
"totalRecords": 2146
},
}
Request filters
The Transactions Details API allows you to retrieve details on all of the inflows and outflows of funds in your accounts. You may specify other parameters to make a custom request.
Filter |
Query parameter |
Example |
Notes |
---|---|---|---|
Account ID |
|
|
Specifying a single accountid or a list of accountids will query using a "current day" relative date type. Alternatively, use accountIds in combination with a relative date type value (displayed below) to retrieve the specified accounts for the given time period. |
Relative Date Type |
|
|
Note, if transaction details for the "current day" option are requested on a weekend or bank holiday, the previous business day's transactions are returned. |
Date Range |
|
|
Start date - End date range limit: The range is limited to five days. |
Reporting
Access reporting vs. API reporting
Field (in Balance and Transaction report-Access cash reporting) |
Field (in Transaction Details API) |
---|---|
Amount |
Amount |
Entry Description |
|
ORIG CO NAME |
|
ORIG ID |
|
ENTRY DATE |
In the following tables, the "Report field" header refers to Access cash reporting and the Balance/transaction report, while the "API field" refers to the Transaction Details API request.
Report field | API Field |
---|---|
|
|
|
Narrative Text |
|
|
|
|
|
Report field | API field |
---|---|
|
|
|
|
|
Narrative Text |
|
|
|
Report field | API field |
---|---|
|
|
|
|
|
Narrative Text |
|
|
|
|
|
Report field | API field |
---|---|
|
|
|
Narrative Text |
|
|
|
Report field | API field |
---|---|
|
|
|
|
|
Narrative Text |
|
|
|
Report field | API field |
---|---|
|
|
|
Narrative Text |
Report field | API field |
---|---|
|
|
|
|
|
Narrative Text |
|
|
|
Report field | API field |
---|---|
|
|
|
|
|
Narrative Text |
|
|
|
|
|
|
|
Report field | API field |
---|---|
|
|
|
|
|
Narrative Text |
|
|
|
|
|
|
|
|
|
Report field | API field |
---|---|
|
|
|
|
|
Narrative Text |
|
|
|
|
|
Report field | API field |
---|---|
|
|
|
|
|
Narrative Text |
|
|
|
|
|
Report field | API field |
---|---|
|
|
|
|
|
Narrative Text |
|
|
|
|
|
|
|
|
|
Example of Narrative Text (in the API):
{
“ORIG CO NAME": (string, optional),
"ORIG ID": (string, optional),
"DESC DATE ": (string, optional),
"ENTRY DESCR ": (string, optional),
"ENTRY CLASS ": (string, optional),
"TRACE NO ": (string, optional),
"ENTRY DATE ": (string, optional",
"IND ID NO ": (string, optional),
"IND NAME ": (string, optional),
"COMPANY DATA": (string, optional),
"REMARK ": "(string, optional),
"ORIG BANK ": "JPMorgan Chase Bank, N.A. (NY)"
}
File-based vs. API reporting
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
Amount |
16 Record | tag 61 | Amount |
|
ENTRY DESCR |
88,ENTRYDESCR= | 86:ENTRYDESCR= | Narrative Text | |
ORIG CO NAME |
88:ORIG CO NAME= | 86:ORIG CO NAME= | ||
ORIG ID |
88, ORIG ID | 86: ORIG ID | ||
ENTRY DATE |
ENTRY DATE= |
88, ENTRY DATE= | 86: ENTRY DATE= |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
16 Record |
Tag 61 |
|
|
|
88,ENTRYDESCR= |
86:ENTRY DESCR= |
Narrative Text |
|
|
88:ORIG CO NAME= |
86:ORIG CO NAME |
||
|
88,ORIG ID |
86:ORIG ID |
||
|
ENTRY DATE= |
88,ENTRY DATE= |
86:ENTRY DATE= |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
16 record |
Tag 61 |
|
|
|
16 record |
Tag 61 |
|
|
|
88,ORIG CO NAME= |
86:ORIG CO NAME= |
|
|
|
88,ORIG ID= |
86:ORIG ID= |
||
|
88,ENTRY DESCR= |
86:ENTRY DESCR= |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
16 record |
Tag 61 |
|
|
|
16 record |
Tag 61 |
|
|
|
88,ENTRY DESCR= |
86:ENTRY DESCR= |
Narrative Text |
|
|
88,ORIG CO NAME= |
86:ORIG CO NAME= |
||
|
88,ORIG ID= |
86:ORIG ID= |
||
|
ENTRY DATE= |
88,ENTRY DATE= |
86:ENTRY DATE= |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
16 record |
Tag 61 |
|
|
|
88,ORIG CO NAME= |
86:ORIG CO NAME= |
Narrative Text |
|
|
88,ORIG ID= |
86:ORIG ID= |
||
|
88,ENTRY DESCR= |
86:ENTRY DESCR= |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
16 record |
Tag 61 |
|
|
|
16 record |
Tag 61 |
|
|
|
88,ORIG CO NAME= |
86:ORIG CO NAME= |
Narrative Text |
|
|
88,ORIG ID= |
86:ORIG ID= |
||
|
88,ENTRY DESCR= |
86:ENTRY DESCR= |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
16 record |
|
||
|
Narrative Text |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
03 record |
Tag 61 |
|
|
|
16 record |
Tag 61 |
|
|
|
88,REMARK= |
86:REMARK= |
Narrative Text |
|
|
88,PAID TO= |
86:PAID TO= |
||
|
88,PAID TO |
86:PAID TO |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
03 record |
Tag 61 |
|
|
|
16 and 88 record |
Tag 61 and 86 |
|
|
|
88,REMARK= |
86:REMARK= |
Narrative Text |
|
|
88:ACCT PARTY= |
86:ACCT PARTY= |
||
|
88,ACCT PARTY= |
86:ACCT PARTY= |
||
|
88,PAID TO= |
86:PAID TO= |
||
|
88,FED ID= |
86:FED ID= |
||
|
B/O CUSTOMER= |
88,B/O CUSTOMER= |
86:B/O CUSTOMER= |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
03 record |
Tag 61 |
|
|
|
16 and 88 record |
Tag 61 and 86 |
|
|
|
REMARK= |
88,REMARK= |
86:REMARK= |
Narrative Text |
|
88,ULTI BENE= |
86:ULTI BENE= |
||
|
86:ULTI BENE= |
86:ULTI BENE= |
||
|
88,ACCT PARTY= |
86:ACCT PARTY= |
||
|
88,ACCT PARTY= |
86:ACCT PARTY= |
||
|
88,FXEXCH= |
86:FXEXCH= |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
03 record |
Tag 61 |
|
|
|
16 and 88 record |
Tag 61 and 86 |
|
|
|
REMARK= |
88,REMARK= |
86:REMARK= |
Narrative Text |
|
88,ACCT PARTY= |
86:ACCT PARTY= |
||
|
88,ACCT PARTY= |
86:ACCT PARTY= |
||
|
PAID TO= |
88,PAID TO= |
86:PAID TO |
|
|
03 record |
Tag 61 |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
03 record |
Tag 61 |
|
|
|
16 and 88 record |
Tag 61 and 86 |
|
|
|
88,REMARK= |
86:REMARK= |
Narrative Text |
|
|
88,BENEFICIARY= |
86:BENEFICIARY= |
||
|
88,BENEFICIARY= |
86:BENEFICIARY= |
||
|
88,PAID TO= |
86:PAID TO= |
Report field | ISO 20022 camt.052/camt.053/camt.054 |
BAI2 | SWIFT MT940/942 |
API field |
---|---|---|---|---|
|
03 record |
Tag 61 |
|
|
|
16 and 88 record |
Tag 61 and 86 |
|
|
|
REMARK= |
88,REMARK= |
86:REMARK= |
Narrative Text |
|
88,BENEFICIARY= |
86:BENEFICIARY= |
||
|
88,BENEFICIARY= |
86:BENEFICIARY= |
||
|
88,PAID TO= |
86:PAID TO |
||
|
88,PAID TO= |
86:PAID TO= |
||
|
88,EXCH RATE |
86:EXCH RATE |
Example of Narrative Text (in the API):
{
“ORIG CO NAME": (string, optional),
"ORIG ID": (string, optional),
"DESC DATE ": (string, optional),
"ENTRY DESCR ": (string, optional),
"ENTRY CLASS ": (string, optional),
"TRACE NO ": (string, optional),
"ENTRY DATE ": (string, optional",
"IND ID NO ": (string, optional),
"IND NAME ": (string, optional),
"COMPANY DATA": (string, optional),
"REMARK ": "(string, optional),
"ORIG BANK ": "JPMorgan Chase Bank, N.A. (NY)"
}
Payment initiation to API reporting
In the tables below, "Report field" refers to Access payments report and "API field" refers to the Transaction Details API.
Report field | NACHA | ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
Total |
Batch Control - Position 21-32 | Amount |
|
Batch Description |
Batch Header - Position 54-63 | Narrative Text | |
Company Name |
Batch Header - Position 5-20 | ||
Company ID |
Batch Header - Position 41-50 |
Report field | NACHA | ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
Batch Control - Position 21-32 |
|
|
|
Batch Header - Position 54-63 |
Narrative Text |
|
|
Batch Header - Position 5-20 |
||
|
Batch Header - Position 41-50 |
Report field | NACHA | ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
Entry Detail - Position 30-39 |
|
|
|
Entry Detail - Position 40-54 |
|
|
|
Batch Header - Position 5-20 |
Narrative Text |
|
|
Batch Header - Position 41-50 |
||
|
Batch Header - Position 54-63 |
Report field | NACHA | ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
Batch Control - Position 21-32 |
|
|
|
Batch Header – Position 88-94 |
|
|
|
Batch Header - Position 54-63 |
Narrative Text |
|
|
Batch Header - Position 5-20 |
||
|
Batch Header - Position 41-50 |
Report field | NACHA | ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
Batch Control - Position 33-44 |
|
|
|
Batch Header - Position 5-20 |
Narrative Text |
|
|
Batch Header - Position 41-50 |
||
|
Batch Header - Position 54-63 |
Report field | NACHA | ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
Entry Detail - Position 30-39 |
|
|
|
Entry Detail - Position 40-54 |
|
|
|
Batch Header - Position 5-20 |
Narrative Text |
|
|
Batch Header - Position 41-50 |
||
|
Batch Header - Position 54-63 |
Report field |
ARP Check Issue |
Check Outsourcing (CKO) |
ISO 20022 Pain.001.001.03 |
API response |
---|---|---|---|---|
Payment Amount |
35 - 49 |
COLS 38-50 |
Payment Amount |
|
Check Number |
1 |
COLS 51-60 |
Check Number |
Report field |
GFF 1 |
ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
PM Record - Position 19 - 33 |
|
|
|
PM Record - Position 3 - 18 |
|
|
|
P2 Record - Position 3 - 37 |
Narrative Text |
|
|
PM Record - Position 152 - 186 |
Report field |
GFF 1 |
ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
PM Record - Position 19 - 33 |
|
|
|
PM Record - Position 3 - 18 |
|
|
|
P2 Record - Position 3 - 37 |
Narrative Text |
|
|
PM Record - Position 152 - 186 |
||
|
PM Record - Position 82 - 116 |
||
|
A5 Record – Position 3-037 |
Report field |
GFF 1 |
ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
PM Record - Position 19 - 33 |
|
|
|
PM Record - Position 3 - 18 |
|
|
|
P2 Record - Position 3 - 37 |
Narrative Text |
|
|
PM Record - Position 152 - 186 |
||
|
PM Record - Position 82 - 116 |
Report field |
GFF 1 |
ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
PM Record - Position 19 - 33 |
|
|
|
PM Record - Position 3 - 18 |
|
|
|
P2 Record - Position 3 - 37 |
Narrative Text |
Report field |
GFF 1 |
ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
PM Record - Position 19 - 33 |
< |
|
|
PM Record - Position 3 - 18 |
|
|
|
P2 Record - Position 3 - 37 |
Narrative Text |
|
|
PM Record - Position 152 - 186 |
||
|
PM Record - Position 82 - 116 |
Report field |
GFF 1 |
ISO 20022 Pain.001.001.03 |
API field |
---|---|---|---|
|
PM Record - Position 19 - 33 |
|
|
|
PM Record - Position 3 - 18 |
|
|
|
P2 Record - Position 3 - 37 |
Narrative Text |
|
|
PM Record - Position 152 - 186 |
||
|
PM Record - Position 82 - 116 |
Next Steps
Getting Started
Complete the onboarding process to ensure you have everything you need.
Authentication
Learn how J.P. Morgan protects your transactions.