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.
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.
{
"endToEndId": "E2E3000112CCDXX",
"paymentId": "c0d45df7-d1af-4782-9144-2fcf04c944d8"
}
Related
- For more information about ACH credit payment parameters, see Payment parameters (credit).
- For more information about ACH debit payment parameters, see Payment parameters (debit).
- For more information about status responses and error codes supported by the Global Payments API, see Global Payments 2 status response and error response codes.
Next steps
Learn how to get the status of an ACH payment request.