# Harvested verbatim from the J.P. Morgan Payments Developer Portal.
# method: searched
# source: https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ftreasury%2Fjp-morgan-business-direct-connect%2Fapi-specification-page.md
# generated: '2026-07-28'
openapi: 3.1.0
info:
title: J.P. Morgan Business Direct Connect
version: 6.5.1
description: Connect to retrieve account details, transactions, payment network information, and statements
for eligible USD-denominated US checking, savings, and money market accounts using the Financial Data
Exchange (FDX) standard with secure, paginated access and lightweight or detailed responses.
contact:
name: J.P. Morgan Corporate FDX Support
email: jpmorgan.business.direct.connect.support@jpmorgan.com
servers:
- url: https://api.payments.jpmorgan.com/fdx/v6
description: PRODUCTION - OAUTH
- url: https://api-mock.payments.jpmorgan.com/fdx/v6
description: MOCK
tags:
- name: Health
description: To health check the status of the server
- name: Account Information
description: To retrieve the account details
- name: Transaction Information
description: To retrieve the account transaction details
paths:
/accounts:
get:
operationId: searchForAccounts
tags:
- Account Information
summary: Search for accounts
description: Return information for all of the customer's consented accounts or just those accounts
identified in the `accountIds` request parameter. Use `ResultTypeQuery` parameter value of `lightweight`
to retrieve minimal descriptive information and the `accountId` for each account. The `accountId`
can then be used in the `getAccount` operation's path `/accounts/{accountId}` to retrieve full
details about each account
parameters:
- $ref: '#/components/parameters/FapiInteractionIdHeader'
- $ref: '#/components/parameters/FdxApiActorTypeHeader'
- $ref: '#/components/parameters/FdxApiClientPublicKeyHeader'
- $ref: '#/components/parameters/FdxApiDataProviderIdHeader'
- $ref: '#/components/parameters/FdxApiDataRecipientIdHeader'
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ResultTypeQuery'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/PageKeyQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: "Array of accounts (DepositAccount, LoanAccount, LineOfCreditAccount, InvestmentAccount,\n\
\ InsuranceAccount, AnnuityAccount, CommercialAccount, or DigitalWallet)"
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Accounts'
examples:
Search for accounts success response:
value:
page:
nextOffset: '2'
total: 3
links:
next:
href: /accounts?offSet=2&limit=10
accounts:
- accountCategory: COMMERCIAL_ACCOUNT
accountId: '10001'
accountType: CHECKING
nickname: Operating Account 1
status: OPEN
balanceAsOf: '2021-07-15T14:46:41.375Z'
currentAvailableBalance: 13300.35
'400':
description: 'Bad Request
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |-------------------------------------------------------------------------------------|
| 401 | Invalid Input, 11001:Input in Request for Client ID {0}. {1} |
| 10001 | Bad Request, 10001: Header parameter ''x-fapi-interaction-id'' is missing |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Error'
- $ref: '#/components/schemas/PaymentError'
examples:
Invalid start or end date:
value:
code: '702'
message: Invalid start or end date
debugMessage: Provider custom developer-level error details for troubleshooting
Invalid date range:
value:
code: '703'
message: Invalid date range
debugMessage: Provider custom developer-level error details for troubleshooting
BadRequest:
value:
title: Bad Request
httpStatus: 400
traceId: 123e4567-e89b-12d3-a456-426614174000
requestId: client-req-001
context:
- code: '10001'
message: Header parameter 'x-fapi-interaction-id' is missing
location: HEADER
field: x-fapi-interaction-id
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
description: 'Not Found
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------|
| 701 | Account not found, 12001:Account not found for Client ID {0}. {1} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Data not found for request parameters:
value:
code: '1107'
message: Data not found for request parameters
debugMessage: Provider custom developer-level error details for troubleshooting
'415':
$ref: '#/components/responses/415'
'422':
$ref: '#/components/responses/422'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
/accounts/{accountId}:
get:
operationId: getAccount
tags:
- Account Information
summary: Retrieve account details
description: Retrieve full details about the account identified by `{accountId}` parameter
parameters:
- $ref: '#/components/parameters/FapiInteractionIdHeader'
- $ref: '#/components/parameters/FdxApiActorTypeHeader'
- $ref: '#/components/parameters/FdxApiClientPublicKeyHeader'
- $ref: '#/components/parameters/FdxApiDataProviderIdHeader'
- $ref: '#/components/parameters/FdxApiDataRecipientIdHeader'
- $ref: '#/components/parameters/AccountIdPath'
responses:
'200':
description: This can be one of LoanAccount, DepositAccount, LineOfCreditAccount, InvestmentAccount,
InsuranceAccount, AnnuityAccount, CommercialAccount, or DigitalWallet
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/AccountWithDetails'
'400':
description: 'Bad Request
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------|
| 401 | Invalid Input, 11001:Input in Request for Client ID {0}. {1} |
| 10001 | Bad Request, 10001: Header parameter ''x-fapi-interaction-id'' is missing |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentError'
examples:
BadRequest:
value:
title: Bad Request
httpStatus: 400
traceId: 123e4567-e89b-12d3-a456-426614174000
requestId: client-req-001
context:
- code: '10001'
message: Header parameter 'x-fapi-interaction-id' is missing
location: HEADER
field: x-fapi-interaction-id
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
description: 'Not Found
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------|
| 701 | Account not found, 12001:Account not found for Client ID {0}. {1} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Account not found:
value:
code: '701'
message: Account not found
debugMessage: Provider custom developer-level error details for troubleshooting
'415':
$ref: '#/components/responses/415'
'422':
$ref: '#/components/responses/422'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
/accounts/{accountId}/transactions:
get:
tags:
- Account Transactions
summary: Search for account transactions
operationId: searchForAccountTransactions
description: 'Search for account transactions. Example: /accounts/{accountId}/transactions?startTime=value1
endTime=value2'
parameters:
- $ref: '#/components/parameters/FapiInteractionIdHeader'
- $ref: '#/components/parameters/FdxApiActorTypeHeader'
- $ref: '#/components/parameters/FdxApiClientPublicKeyHeader'
- $ref: '#/components/parameters/FdxApiDataProviderIdHeader'
- $ref: '#/components/parameters/FdxApiDataRecipientIdHeader'
- $ref: '#/components/parameters/AccountIdPath'
- $ref: '#/components/parameters/StartTimeQuery'
- $ref: '#/components/parameters/EndTimeQuery'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/PageKeyQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: 'Paginated collection of transactions, which can be one of DepositTransaction,
LoanTransaction, LineOfCreditTransaction, InvestmentTransaction, InsuranceTransaction,
CommercialTransaction, or DigitalWalletTransaction'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Transactions'
'400':
description: 'Bad Request
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------|
| 401 | Invalid Input, 11001:Input in Request for Client ID {0}. {1} |
| 10001 | Bad Request, 10001: Header parameter ''x-fapi-interaction-id'' is missing |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Error'
- $ref: '#/components/schemas/PaymentError'
examples:
Invalid start or end date:
value:
code: '702'
message: Invalid start or end date
debugMessage: Provider custom developer-level error details for troubleshooting
Invalid date range:
value:
code: '703'
message: Invalid date range
debugMessage: Provider custom developer-level error details for troubleshooting
BadRequest:
value:
title: Bad Request
httpStatus: 400
traceId: 123e4567-e89b-12d3-a456-426614174000
requestId: client-req-001
context:
- code: '10001'
message: Header parameter 'x-fapi-interaction-id' is missing
location: HEADER
field: x-fapi-interaction-id
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
description: 'Not Found
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------|
| 701 | Account not found, 12001:Account not found for Client ID {0}. {1} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Account not found:
value:
code: '701'
message: Account not found
debugMessage: Provider custom developer-level error details for troubleshooting
Data not found for request parameters:
value:
code: '1107'
message: Data not found for request parameters
debugMessage: Provider custom developer-level error details for troubleshooting
'415':
$ref: '#/components/responses/415'
'422':
$ref: '#/components/responses/422'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
/accounts/{accountId}/payment-networks:
get:
operationId: getAccountPaymentNetworks
tags:
- Money Movement
description: Get payment networks supported by the account
summary: Get payment networks supported by the account
parameters:
- $ref: '#/components/parameters/FapiInteractionIdHeader'
- $ref: '#/components/parameters/FdxApiActorTypeHeader'
- $ref: '#/components/parameters/FdxApiClientPublicKeyHeader'
- $ref: '#/components/parameters/FdxApiDataProviderIdHeader'
- $ref: '#/components/parameters/FdxApiDataRecipientIdHeader'
- $ref: '#/components/parameters/AccountIdPath'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: Information required to execute a payment transaction against this account
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/AccountPaymentNetworks'
'400':
description: 'Bad Request
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |-------------------------------------------------------------------------------------------------------------------------------------------|
| 401 | Invalid Input, 11001:Input in Request for Client ID {0}. {1} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
description: 'Not Found
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |--------------------------------------------------------------------------------------
|
| 701 | Account not found, 12001:Account not found for Client ID {0} , Account
ID {1} |
| 701 | ABA Number not found, 12002:ABA Number not found for Account ID {0} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Account not found:
value:
code: '701'
message: Account not found
debugMessage: 12001:Account not found for Client ID YODLEE, Account ID b61303ed9a0756e63f1a8
ABA Number not found:
value:
code: '701'
message: ABA Number not found
debugMessage: 12002:ABA Number not found for Account ID b61303ed9a0756e63f1a8
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
/accounts/{accountId}/contact:
get:
tags:
- Personal Information
summary: Get an account's contact information
operationId: getAccountContact
description: Get contact information on the account
parameters:
- $ref: '#/components/parameters/FapiInteractionIdHeader'
- $ref: '#/components/parameters/FdxApiActorTypeHeader'
- $ref: '#/components/parameters/FdxApiClientPublicKeyHeader'
- $ref: '#/components/parameters/FdxApiDataProviderIdHeader'
- $ref: '#/components/parameters/FdxApiDataRecipientIdHeader'
- $ref: '#/components/parameters/AccountIdPath'
responses:
'200':
description: Details used to verify an account
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/AccountContact'
'400':
description: 'Bad Request
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |-------------------------------------------------------------------------------------------------------------------------------------------|
| 401 | Invalid Input, 15001:Input in Request for Client ID {0}. {1} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Customer not authorized
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |------------------------------------------------------------------------------------------------------------------|
| 602 | Customer not authorized, 15003:Authenticated customer does not have the
authorization to perform this action |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Account not found:
value:
code: '602'
message: Customer not authorized
debugMessage: Account {accountId} is not consented
'404':
description: 'Not Found
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------|
| 701 | Account not found, 15002:Account not found for Client ID {0}. {1} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Account not found:
value:
code: '701'
message: Account not found
debugMessage: Account {accountId} is not available
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
/accounts/{accountId}/statements:
get:
operationId: searchForAccountStatements
tags:
- Account Statements
description: 'Get account statements. Example: GET /accounts/{accountId}/statements?startTime=value1
endTime=value2'
summary: Search for statements
parameters:
- $ref: '#/components/parameters/FapiInteractionIdHeader'
- $ref: '#/components/parameters/FdxApiActorTypeHeader'
- $ref: '#/components/parameters/FdxApiDataProviderIdHeader'
- $ref: '#/components/parameters/FdxApiDataRecipientIdHeader'
- $ref: '#/components/parameters/AccountIdPath'
- $ref: '#/components/parameters/StartTimeQuery'
- $ref: '#/components/parameters/EndTimeQuery'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/PageKeyQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: Paginated list of available statements. The header `fdx-api-actor-type` supports
only the value `BATCH`.
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
fdx-api-actor-type:
$ref: '#/components/parameters/FdxApiActorTypeHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Statements'
examples:
Search for statements success response:
value:
page:
nextOffset: '2'
totalElements: 3
links:
next:
href: https://api.fi.com/fdx/v6/accounts/c5e38f3375cb5f9225ab4dbf05ddcb9ed3faf2d29ebe0d4de47cbd7eb5e9594f/statements?startTime=2020-04-01&endTime=2024-11-30&offset=2&limit=1
action: GET
rel: next
types:
- application/json
statements:
- accountId: c5e38f3375cb5f9225ab4dbf05ddcb9ed3faf2d29ebe0d4de47cbd7eb5e9594f
statementId: '%7BED9BEB13-C98B-337C-9388-DC7B041A7039%7D'
statementDate: '2024-01-31'
links:
- href: https://api.fi.com/fdx/v6/accounts/c5e38f3375cb5f9225ab4dbf05ddcb9ed3faf2d29ebe0d4de47cbd7eb5e9594f/statements/%7BED9BEB13-C98B-337C-9388-DC7B041A7039%7D
action: GET
rel: self
types:
- application/pdf
status: AVAILABLE
'400':
description: 'Bad Request
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------------------------------------------------------------------|
| 401 | Invalid Input, 11001:Input in Request for Client ID {0}. {1} |
| 702 | Invalid start or end date, 16002:Start or end date value is not in the
ISO 8601 format for Account {0} startDate {1}, endDate {2} |
| 703 | Invalid date range, 16004:End Date cannot be before the Start Date in
Request for Account {0} startDate {1}, endDate {2} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid start or end date:
value:
code: '702'
message: Invalid start or end date
debugMessage: Provider custom developer-level error details for troubleshooting
Invalid date range:
value:
code: '703'
message: Invalid date range
debugMessage: Provider custom developer-level error details for troubleshooting
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
description: 'Not Found
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------|
| 701 | Account not found, 12001:Account not found for Client ID {0}. {1} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Account not found:
value:
code: '701'
message: Account not found
debugMessage: Provider custom developer-level error details for troubleshooting
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/accounts/{accountId}/statements/{statementId}:
get:
operationId: getAccountStatement
tags:
- Account Statements
description: 'Gets a PDF account statement. Note: This endpoint does not validate statement content.'
summary: Get an account statement
parameters:
- $ref: '#/components/parameters/FapiInteractionIdHeader'
- $ref: '#/components/parameters/FdxApiActorTypeHeader'
- $ref: '#/components/parameters/FdxApiClientPublicKeyHeader'
- $ref: '#/components/parameters/FdxApiDataProviderIdHeader'
- $ref: '#/components/parameters/FdxApiDataRecipientIdHeader'
- $ref: '#/components/parameters/AccountIdPath'
- $ref: '#/components/parameters/StatementIdPath'
responses:
'200':
description: A pdf image of an account statement. The header `fdx-api-actor-type` supports only
the value `BATCH`.
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
fdx-api-actor-type:
$ref: '#/components/parameters/FdxApiActorTypeHeader'
content:
application/pdf:
schema:
description: A pdf image of an account statement
type: string
format: binary
'400':
description: 'Bad Request
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |----------------------------------------------------------------------------------------------------------|
| 401 | Invalid Input, 11001:Input in Request for Client ID {0}. {1} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid Input:
value:
code: '401'
message: Invalid Input
debugMessage: Provider custom developer-level error details for troubleshooting
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
description: 'Not Found
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |-----------------------------------------------------------------------------------------------------------------------------------|
| 701 | Account not found, 12001:Account not found for Client ID {0}. {1} |
| 1104 | Statement id not found for given Account,16008: Statement id not found
for Account {0} |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Account not found:
value:
code: '7
# --- truncated at 32 KB (82 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jp-morgan-chase/refs/heads/main/openapi/jp-morgan-chase-j-p-morgan-business-direct-connect-openapi.yml