Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/jp-morgan-chase-account-transactions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: J.P. Morgan Business Direct Connect Account Transactions API
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: Account Transactions
paths:
/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'
components:
schemas:
PageMetadata:
title: Page Metadata
description: Offset IDs for paginated result sets
type: object
properties:
nextOffset:
type: string
example: '2'
description: Opaque identifier. Does not need to be numeric or have any specific pattern. Implementation specific Offset based pagination is not supported for /transactions.
prevOffset:
type: string
example: '1'
description: Opaque identifier. Does not need to be numeric or have any specific pattern. Implementation specific Offset based pagination is not supported for /transactions.
totalElements:
type: integer
example: 3
description: Total number of elements , can be used to validate against total number of elements returned in paginated response(s)
CommercialTransaction:
title: Commercial Transaction entity
description: A transaction on a commercial account type
type: object
allOf:
- $ref: '#/components/schemas/Transaction'
- type: object
properties:
referenceBankId:
type: string
description: Reference bank id
example: '123665'
referenceBranchId:
type: string
description: Reference branch id
example: '123665'
commercialCode:
$ref: '#/components/schemas/CommercialCode'
description: The code for a specific treasury management defined field
ErrorContext:
x-tags:
- common-error-model
- common-components
type: object
required:
- message
properties:
code:
type: string
description: JPMC Short code that identifies the error - publicly cataloged and documented
minLength: 5
maxLength: 5
pattern: ^[0-9]+$
message:
type: string
description: Human readable textual description of the error
minLength: 1
maxLength: 99
location:
type: string
title: The component of the request impacted, can either be 'body', 'query', 'header', or 'path'
description: The location of the error occurred in the request.
minLength: 1
maxLength: 99
enum:
- BODY
- PATH
- QUERY
- HEADER
field:
type: string
description: The field which caused the error. Where the location of the error occurred is BODY, the field would contain the JSON Path expression
minLength: 1
maxLength: 99
pattern: ^[\$0-9a-zA-Z-_.()\[\]{}'"\s@=><!?,]+$
additionalContext:
$ref: '#/components/schemas/AdditionalContext'
description: Error Context
Identifier:
title: Identifier
description: Value for a unique identifier
type: string
maxLength: 256
example: 5ff6a4b6fd9f4607c0a7ca0f037c62018693f940836d69b31d664f2257f4c623
Timestamp:
title: Timestamp
description: ISO 8601 date-time in format 'YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)
type: string
format: date-time
example: '2021-07-15T14:46:41.375Z'
AdditionalContext:
type: array
description: Additional details about the error based on a standard (e.g. ISO or Clearing codes)
items:
$ref: '#/components/schemas/StandardCodeContext'
minItems: 1
maxItems: 5
StandardCodeContext:
type: object
required:
- code
- message
- type
properties:
type:
title: CategoryType
type: string
description: "Category of the error code such as Business 21000 Invalid Access Token \n|Category Type | Description\n|--------------|-----------------\n|Business 21000 | Invalid Request, Client ID {ClientIdName} not valid\n|Server 22002 | Error connecting to Account Product Service for Client Id {ClientIdName}, account Id {accountHashId} for retrieving account details"
minLength: 2
maxLength: 16
code:
type: string
description: Short code that identifies the error - publicly cataloged and documented
minLength: 2
maxLength: 10
pattern: ^[a-zA-Z0-9]+$
message:
type: string
description: Human readable textual description of the error
minLength: 1
maxLength: 99
HateoasLink:
title: HATEOAS Link
description: REST application constraint (Hypermedia As The Engine Of Application State)
required:
- href
type: object
properties:
href:
type: string
format: uri-reference
description: URL to invoke the action on the resource
example: https://api.fi.com/fdx/v4/accounts/12345
action:
description: HTTP Method to use for the request
$ref: '#/components/schemas/HttpAction'
rel:
description: Relation of this link to its containing entity, as defined by and with many example relation values at [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)
type: string
types:
type: array
minItems: 0
items:
$ref: '#/components/schemas/ContentTypes'
ActorType:
title: FDX API Actor Type
description: 'This parameter is optional. The API only supports BATCH operations. default: BATCH'
type: string
default: BATCH
enum:
- BATCH
- USER
DebitCreditMemo:
title: DebitCreditMemo
description: The posting type of a transaction
type: string
enum:
- CREDIT
- DEBIT
- MEMO
Error:
title: Error
description: An error entity which can be used at the API level for error responses or at the account level to indicate a problem specific to a particular account
type: object
properties:
code:
type: string
description: Long term persistent identifier which can be used to trace error condition back to log information
example: '601'
message:
type: string
description: End user displayable information which might help the customer diagnose an error
example: Customer not found
debugMessage:
type: string
description: Message used to debug the root cause of the error. Contents should not be used in consumer's business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use.
example: 11005:Invalid Customer - Customer Not Found for Client ID A_JPMC_CB_777_SIT_114355
PaymentError:
type: object
x-tags:
- common-error-model
- common-components
title: Error
description: Common Error Model
properties:
title:
type: string
title: Short humanly-readable title of the error.
minLength: 1
maxLength: 100
httpStatus:
type: integer
default: 400
title: HTTP Status Code
traceId:
type: string
title: JPMC Assigned traced identifier
requestId:
type: string
title: The 'client originated' requestId
context:
type: array
title: Provides additional context and detail on the validation errors
items:
$ref: '#/components/schemas/ErrorContext'
minItems: 1
maxItems: 100
required:
- title
readOnly: true
TransactionStatus:
title: Transaction Status
description: The status of a transaction
type: string
enum:
- AUTHORIZATION
- MEMO
- PENDING
- POSTED
TreasuryManagementType:
title: Treasury Management Type
description: The source of Treasury Management account definition; one of BAI, BTRS, ISO, SWIFT
type: string
enum:
- BAI
- BTRS
- ISO
- SWIFT
Iso4217CurrencyCode:
title: ISO 4217 Currency Code
description: Currency, fund and precious metal codes as of Jan. 1, 2023 per [ISO 4217 Currency Code Maintenance](https://www.six-group.com/en/products-services/financial-information/data-standards.html)
type: string
enum:
- USD
Transaction:
title: Transaction
description: Base entity for financial transactions
type: object
required:
- accountCategory
discriminator:
propertyName: accountCategory
properties:
accountCategory:
$ref: '#/components/schemas/AccountCategory'
description: The entity type of the account of this Transaction
type: string
example: COMMERCIAL_ACCOUNT
accountId:
description: Unique account identifier that is different from the account number.
$ref: '#/components/schemas/Identifier'
type: string
transactionId:
description: Unique bankReferenceIdentifier is sent - may be displayed in Online Banking. May be missing for fees and adjustments.
$ref: '#/components/schemas/Identifier'
transactionTimestamp:
description: The date and time that the transaction was added to the server backend systems
$ref: '#/components/schemas/Timestamp'
type: string
description:
type: string
description: The description of the transaction
example: Commercial Transaction
debitCreditMemo:
$ref: '#/components/schemas/DebitCreditMemo'
description: DEBIT, CREDIT, MEMO
reference:
type: string
description: Identifies Number provided by Customer as a reference to the transaction and will appear on Statement.
example: abe656428
status:
$ref: '#/components/schemas/TransactionStatus'
description: Returns P for POSTED or I for INTRADAY
amount:
type: number
description: The amount of money in the account currency
example: 124214
foreignAmount:
type: number
description: The amount of money in the foreign currency
example: 15562
foreignCurrency:
$ref: '#/components/schemas/Iso4217CurrencyCode'
description: The ISO 4217 code of the foreign currency
PageMetadataLinks:
title: Page Metadata Links
description: Resource URLs for retrieving next or previous datasets
type: object
properties:
next:
$ref: '#/components/schemas/HateoasLink'
description: Resource URL for retrieving next dataset
prev:
$ref: '#/components/schemas/HateoasLink'
description: Resource URL for retrieving previous dataset. It is not supported for /transactions, which only supports forward traversal.
HttpAction:
title: HTTP Action Type
description: HTTP Methods to use for requests
type: string
enum:
- DELETE
- GET
- PATCH
- POST
- PUT
Transactions:
title: Transactions entity
description: Optionally paginated array of transactions
type: object
allOf:
- $ref: '#/components/schemas/PaginatedArray'
- type: object
properties:
transactions:
description: An array of transactions with entity type dependent on the account type commercial
type: array
minItems: 0
items:
discriminator:
propertyName: accountCategory
mapping:
COMMERCIAL_ACCOUNT: '#/components/schemas/CommercialTransaction'
oneOf:
- $ref: '#/components/schemas/CommercialTransaction'
DateString:
title: Date String
description: ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)
type: string
format: date
maxLength: 10
example: '2021-07-15'
CommercialCode:
title: Commercial Code entity
description: The code for a specific treasury management defined field. The [X9 BTRS/BTR3 standard](https://x9.org/standards/btrs/) (formerly named BAI2) for corporate and treasury data elements is proposed to provide the basis of (or starting point for) representing summary, account, and transaction codes for the Corp/Treasury Entity, subject to any necessary modifications useful to the members of the FDX consortium and users of the API specification
type: object
properties:
type:
$ref: '#/components/schemas/TreasuryManagementType'
description: The source of Treasury Management account definition; one of BAI, BTRS, ISO, SWIFT
code:
type: string
description: The code of the Treasury Management defined field
ContentTypes:
title: Content Types
description: Types of document formats. (Suggested values)
type: string
enum:
- application/json
- application/pdf
- application/zip
- image/gif
- image/jpeg
- image/png
- image/tiff
PaginatedArray:
title: Paginated Array
description: Base class for results that may be paginated
type: object
properties:
page:
$ref: '#/components/schemas/PageMetadata'
description: Offset IDs for navigating result sets
links:
$ref: '#/components/schemas/PageMetadataLinks'
description: Resource URLs for navigating result sets
AccountCategory:
title: Account Category type
description: The category of account
type: string
enum:
- COMMERCIAL_ACCOUNT
parameters:
EndTimeQuery:
name: endTime
in: query
description: End time for use in retrieval of elements (ISO 8601). This parameter is required and must be greater than or equal to startTime.
schema:
$ref: '#/components/schemas/DateString'
examples:
Scenario-1:
summary: Sample End Time
value: '2024-12-30'
FapiInteractionIdHeader:
name: x-fapi-interaction-id
in: header
description: Unique identifier for this interaction as an IETF RFC 4122 UUID. Used across all FDX API requests and responses. This parameter is required.
schema:
type: string
required: true
examples:
Scenario-1:
summary: Sample FAPI Interaction Id
value: c770aef3-6784-41f7-8e0e-ff5f97bddb3a
FdxApiDataProviderIdHeader:
name: FDX-API-Data-Provider-Id
in: header
description: ID for the financial institution responding to the request
schema:
$ref: '#/components/schemas/Identifier'
description: If the FDX API service is provided by a service bureau which uses the same end point for multiple institutions, the FDX API client MUST provide a header that identifies the desired financial institution. This corresponds to a data_provider_id in the registry. This header MAY be omitted if identifying a data provider is not required by the API host
required: false
OffsetQuery:
name: offset
in: query
description: 'Page number that can be used to fetch a specific page for paginated results. This parameter is optional. If specified, it returns the requested page. default: 0, returns the first page. OffsetQuery is not supported for /transactions. Use links to retrieve the next page.'
schema:
type: string
default: '0'
FdxApiActorTypeHeader:
name: Fdx-Api-Actor-Type
in: header
description: This parameter is optional. The API only supports BATCH operations.
schema:
$ref: '#/components/schemas/ActorType'
examples:
Scenario-1:
summary: Sample Actor Type
value: BATCH
FdxApiClientPublicKeyHeader:
name: FDX-API-Client-Public-Key
in: header
description: Public key for data provider to encrypt sensitive response data
schema:
type: string
description: A public key value (created using RSA or Elliptic Curve) to use to encrypt the value that's returned in accountNumber or other sensitive response properties
required: false
PageKeyQuery:
name: pageKey
in: query
description: Opaque cursor used by the provider to send the next set of records. Pagination can be implemented per provider's preference PageKeyQuery is not supported for /transactions. Use links to retrieve the next page.
schema:
type: string
LimitQuery:
name: limit
in: query
description: 'Number of elements consumer wishes to receive per page. This parameter is optional. If limit is less than minimum, then the minimum specified below applies as the limit. If limit is greater than maximum, then the maximum specified below applies as the limit. minimum: 100 or return all records default: 100 maximum: 100 for /transactions, and 500 for /accounts. Transactions are always set to a fixed max page size of 100.'
schema:
type: integer
default: 100
AccountIdPath:
name: accountId
in: path
description: AccountId as returned in the call to /accounts. This parameter is required.
required: true
schema:
type: string
examples:
Scenario-1:
summary: Sample Account Identifier
value: c5e38f3375cb5f9225ab4dbf05ddcb9ed3faf2d29ebe0d4de47cbd7eb5e9594f
FdxApiDataRecipientIdHeader:
name: FDX-API-Data-Recipient-Id
in: header
description: ID for the data recipient making the request
schema:
$ref: '#/components/schemas/Identifier'
description: "If the FDX API service is being called by a Data Access Platform which supports multiple data recipients, the FDX API client must provide a header that identifies the calling data recipient. This header may be omitted if identifying a Data Recipient is not required by the Data Provider. Data Provider will specify what the header value must correspond to\n * `client_id` if client is registered in the Data Provider's registry, and/or\n * `FDX-Registry-Id` if client is registered with FDX (not with DP), and/or\n * `App Name` if Data Provider uses neither client_id nor FDX_Registry-Id"
required: false
StartTimeQuery:
name: startTime
in: query
required: true
description: Start time for use in retrieval of elements (ISO 8601). This parameter is required and must be less than or equal to endTime.
schema:
$ref: '#/components/schemas/DateString'
examples:
Scenario-1:
summary: Sample Start Time
value: '2024-12-01'
responses:
'403':
description: "Method Not Allowed\n\n**List of Error codes and Usage explanations.**\n | Error Code | Usage |\n | -------------- |-------------------------------------------------------------------------------------|\n | 14001 | Forbidden, 14001: Method Not Allowed |\n | 602 | Customer not authorized, 11006:Customer Not Authorized for Client ID {0} |"
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Error'
- $ref: '#/components/schemas/PaymentError'
examples:
Forbidden:
value:
title: Forbidden
httpStatus: 403
traceId: 123e4567-e89b-12d3-a456-426614174000
requestId: client-req-001
context:
- code: '14001'
message: Method Not Allowed
Customer not authorized:
value:
code: '602'
message: Customer not authorized
debugMessage: Provider custom developer-level error details for troubleshooting
'500':
description: 'Internal Server Error
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------------------------|
| 503 | Bad Response,GET / 503 operation response content type ''text/html'' does not exist |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentError'
examples:
BadResponse:
value:
title: Bad Response
httpStatus: 500
traceId: 123e4567-e89b-12d3-a456-426614174000
context:
- message: GET / 503 operation response content type 'text/html' does not exist
'501':
description: 'Error when FdxVersion in URI is not one of those implemented at backend
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |--------------------------------------------------------------------------- |
| 503 | System unavailable, GET / 503 operation response content type ''text/html'' does not exist |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentError'
examples:
SystemUnavailable:
value:
title: System Unavailable
httpStatus: 503
traceId: 123e4567-e89b-12d3-a456-426614174000
context:
- message: GET / 503 operation response content type 'text/html' does not exist
'415':
description: "Invalid Request content type\n\n**List of Error codes and Usage explanations.**\n | Error Code | Usage |\n | -------------- |-----------------------------------------------------------------------------------------------------------------------------|\n | 10907 | Invalid Request content type, 10907: Digital Signature could not be verified. Please re-send the request in a valid format |"
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentError'
examples:
InvalidRequestContentType:
value:
title: Invalid Request content type
httpStatus: 415
traceId: 123e4567-e89b-12d3-a456-426614174000
requestId: client-req-001
context:
- code: '10907'
message: Digital Signature could not be verified. Please re-send the request in a valid format
'401':
description: "Unauthorized\n\n**List of Error codes and Usage explanations.**\n | Error Code | Usage |\n | -------------- |---------------------------------------------------------------------------|\n | 603 | Authentication failed, 11007:Authentication failed for Client ID {0}.{1} |"
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Authentication failed:
value:
code: '401'
message: Authentication failed
debugMessage: Provider custom developer-level error details for troubleshooting
'503':
description: 'Service Unavailable
**List of Error codes and Usage explanations.**
| Error Code | Usage |
| -------------- |---------------------------------------------------------------------------------------------|
| 500 | Internal server error,11002:Internal Server Error for Client ID |
| 503 | System unavailable, GET / 503 operation response content type ''text/html'' does not exist |'
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentError'
examples:
SystemUnavailable:
value:
title: System Unavailable
httpStatus: 503
traceId: 123e4567-e89b-12d3-a456-426614174000
context:
- message: GET / 503 operation response content type 'text/html' does not exist
'422':
description: "Invalid Data\n\n**List of Error codes and Usage explanations.**\n | Error Code | Usage |\n | -------------- |---------------------------------------------------------------------------------------------------|\n | 10905 | Invalid Data, 10905: Payload could not be decrypted. Please re-send the request in a valid format |"
headers:
x-fapi-interaction-id:
$ref: '#/components/parameters/FapiInteractionIdHeader'
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentError'
examples:
InvalidData:
value:
title: Invalid Data
httpStatus: 422
traceId: 123e4567-e89b-12d3-a456-426614174000
requestId: client-req-001
context:
- code: '10905'
message: Payload could not be decrypted. Please re-send the request in a valid format
x-jpmc-securityDefinitions:
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jp-morgan-chase/refs/heads/main/openapi/jp-morgan-chase-account-transactions-api-openapi.yml