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 a Zelle® payment

In this tutorial, you learn how to initiate a Zelle® payment.

Before you begin

To initiate a Zelle® payment, you need the following:

  • registered and fully onboarded Developer Account on the J.P. Morgan Payments Developer Portal.
  • An active project that provides you with the credentials to make a request.
  • 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 a Zelle® payment that uses an email address. It also contains the command's payload formatted in JSON so that it's easier to see.

Example of a request to initiate a Zelle® payment that uses an email address
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-30",
  "paymentIdentifiers": {
    "endToEndId": "ZL202109202311354152"
  },
  "transferType": "CREDIT",
  "value": {
    "currency": "USD",
    "amount": "0.1"
  },
  "paymentType": "ZELLE",
  "debtor": {
    "name": "Maria S",
    "account": {
      "accountNumber": "1234567"
    }
  },
  "debtorAgent": {
    "financialInstitutionIds": [
      {
        "id": "CHASUS33",
        "idType": "BIC"
      }
    ]
  },
  "creditor": {
    "account": {
      "alternateAccountIdentifiers": [
        {
          "identifier": "sarah.wilson@example.com",
          "idType": "PROPRIETARY",
          "proprietarySchemeName": "EMAL"
        }
      ]
    },
    "name": "Sarah Wilson"
  }
}'

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 a Zelle® payment. 

For example, the following code snippet contains a response to the previous cURL command to initiate a Zelle® payment that uses an email address. It's formatted in JSON so that it's easier to see.

Example of a response to a successful request to initiate a Zelle® payment that uses an email address
Json
{
  "endToEndId": "ZL202109202311354152",
  "paymentId": "d591f34f-0d57-43b7-b61d-29bc0bda5f94"
}

Next steps

Learn how to get the status of a Zelle® payment request.