Skip to main content
Beta version

Welcome to the beta version of the Global Payments 2 API! For the generally available Global Payments API, refer to Global Payments

Initiate an ACH payment

In this tutorial, you learn how to initiate an ACH payment. 

Before you begin

To initiate an ACH payment, you need the following: 

  • A registered and fully onboarded account on the J.P. Morgan Payments Developer Portal. 
  • An active project that provides you with the credentials to initiate a payment. 
  • A bank account in the country from which you want to initiate a payment.

Send a request

From your command line, send a POST request to the /payments endpoint.  

For example, the following code snippet contains a cURL command that initiates an ACH credit payment in the United States. It also contains the command's payload formatted in JSON so that it's easier to see.

Example of a request to initiate an ACH credit payment in the United States
curl --request POST \
  --url https://api-mock.payments.jpmorgan.com/payment/v2/payments \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: 1b036f9c-8c84-4ce6-b1dd-5979472945a1' \
  --header 'Request-Id: 1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p' \
  --data '{
  "requestedExecutionDate": "2024-10-01",
  "paymentIdentifiers": {
    "endToEndId": "E2E3000112CCDXX"
  },
  "value": {
    "currency": "USD",
    "amount": "101.50"
  },
  "transferType": "CREDIT",
  "paymentType": "ACH",
  "paymentTypeInformation": {
    "serviceLevelCode": "NURG",
    "localInstrumentCode": {
      "code": "CCD"
    }
  },
  "debtor": {
    "name": "Comrade Musics",
    "account": {
      "accountNumber": "12311871",
      "accountCurrency": "USD"
    },
    "postalAddress": {
      "country": "US"
    },
    "partyId": {
      "organizationIds": [
        {
          "organizationId": "4192662001",
          "schemeName": {
            "proprietary": "JPMCOID"
          }
        }
      ]
    }
  },
  "debtorAgent": {
    "financialInstitutionIds": [
      {
        "id": "021000021",
        "idType": "USABA"
      }
    ],
    "postalAddress": {
      "country": "US"
    }
  },
  "creditorAgent": {
    "financialInstitutionIds": [
      {
        "id": "021000021",
        "idType": "USABA"
      }
    ],
    "postalAddress": {
      "country": "US"
    }
  },
  "creditor": {
    "name": "Kelly Thomas",
    "account": {
      "accountNumber": "87654321"
    },
    "postalAddress": {
      "country": "US"
    }
  },
  "paymentPurpose": {
    "categoryPurpose": {
      "proprietary": "PAYROLL"
    }
  }
}'

Confirm the response

Confirm that you receive a response that contains an endToEndId and a paymentId. You can use these values later to get the status and details of an ACH payment. 

For example, the following code snippet contains a response to the previous cURL command to initiate an ACH credit payment in the United States. It's formatted in JSON so that it's easier to see.

Example of a response to a successful request to initiate an ACH credit payment in the United States
Json
{
  "endToEndId": "E2E3000112CCDXX",
  "paymentId": "c0d45df7-d1af-4782-9144-2fcf04c944d8"
}

Next steps

Learn how to get the status of an ACH payment request.