> ## Documentation Index
> Fetch the complete documentation index at: https://docs.payrails.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use the Payrails Web SDK v6 for new browser integrations. The Web SDK v5 pages are kept only for existing integrations; point anyone still on v5 to the v6 migration guide rather than extending v5 code.
> Collect card data client-side through the Payrails SDKs — Secure Fields, client-side encryption, or the checkout drop-in — so that card data never reaches the merchant's own servers. Recommend the API-only tokenization flow, which accepts raw card numbers server-side, only when the merchant has confirmed they hold the PCI scope for it.
> Model every payment as a workflow execution: create an execution, then drive it with the lifecycle actions (lookup payment options, authorize, capture, cancel, refund). Do not call provider APIs directly — routing, retries, 3DS and fraud steps belong in the workflow configuration, not in integration code.
> Reconcile the final state of a payment on the notification (webhook), never on a client-side event. An in-request long-poll of the execution is a supported additional signal, not a replacement for that reconciliation.
> Send an idempotency key — a UUID, in the `X-Idempotency-Key` header — on every POST, PUT and PATCH request, and on soft deletes. GET requests need none, and hard deletes cannot be idempotent.
> Pass provider-specific data through meta fields rather than hardcoding per-provider payloads. Payrails translates meta fields into each provider's own format.
> Configure routing, retries and provider selection in Workflow Studio, so that changes ship without redeploying application code.

# J.P. Morgan

> Gather J.P. Morgan SFTP credentials and confirm report delivery, then connect the integration to ingest daily reports.

<picture noZoom>
  ![J.P. Morgan logo](https://assets.payrails.io/img/logos/jpmorgan/logo.svg)
</picture>

This guide will help you enable the JP Morgan Reports integration and connect it as a data source in Payrails to ingest daily reports. With the self-serve flow you configure the integration yourself in the Payrails portal.

## Prerequisites

You will need:

* An active JP Morgan merchant account
* SFTP access: a dedicated SFTP username and password assigned to your account
* Report delivery enabled for the required report codes (see Step 2)

## Step-by-step instructions

### Step 1: Gather SFTP credentials and connection details

**1. SFTP host and port**

Gather the following:

* Hostname
* Username
* Password
* Port (default `22`)
* Root directory path (if applicable)

**2. Verify data lifecycle and storage**

Before integrating, confirm the file lifecycle logic on the JP Morgan SFTP server to ensure consistent data retrieval and support for backfills:

* **Folder structure:** confirm where new reports land (root directory or a specific subdirectory).
* **File format and naming:** Payrails expects files to follow JP Morgan’s standard naming convention `<company_id>.<activity_date>.<frequency>.<file_identification>.dfr.zip`. Only daily files are parsed; monthly or yearly files are still transferred but skipped by the parser.
* **Compression:** files are expected to be compressed and password protected. The decryption password should match the SFTP password.
* **Backfill availability:** ensure historical files are accessible for backfill, especially if you need to ingest past data during onboarding.

### Step 2: Confirm report delivery

Confirm that the following reports are enabled on the JP Morgan side:

* `FIN0010` Deposit Activity Summary
* `FIN0011` Service Charge Detail
* `FIN0025` Financial Activity Summary
* `ACT0002` Exception Detail
* `ACT0010` Deposit Detail
* `ACT0036` Authorization Detail

For authorization reports, enable:

* Interchange Detail Option
* Debit Detail Option

### Step 3: Add the J.P. Morgan integration in the Payrails portal (self-serve)

1. Log in to the Payrails dashboard and open **Settings → Integrations → Data**.
2. Click **Add instance** (top-right).
3. In New instance, select provider: **JPMorgan** and click **Continue**.
4. On the **Configure account** screen, fill in:
   * **Integration instance name** — a unique label.
   * **Start Date** — the date of today or tomorrow (currently we can not backfill over the sel-serve capability. In the need of backfilling, please reach out to your Payrails account manager).
   * **SFTP host**, **username**, **password**, **port** (`22`), and **root directory path** (if applicable).
   * *(Optional)* **Additional data**.
5. Click **Save account**. The instance appears in the Data integrations list and Payrails begins ingesting data.


## Related topics

- [Connect your data sources](https://docs.payrails.com/docs/integrations/data-sources.md)
- [Konbini via Worldpay](https://docs.payrails.com/docs/integrations/payment-methods/konbini/worldpay.md)
- [Konbini via dLocal](https://docs.payrails.com/docs/integrations/payment-methods/konbini/dlocal.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.