Initiate a Zelle® Disbursement request
In this tutorial, you will learn how to use the Global Payments API to initiate a Zelle® Disbursements. After sending the request, you’ll review a successful response and learn how to check the status of your request.
By the end of this tutorial, you will know how to:
- Create a well-formed Zelle® Disbursements payment request payload.
- Interpret the values in a successful response.
- Use the
endToEndId
to check and confirm the status of your request.
Before you begin
To use Zelle® Disbursements, you will need the following:
- A registered and fully onboarded Developer Account on the J.P. Morgan Payments Developer Portal.
- An active project that provides you with the credentials used to make a request.
- A bank account to perform a payment transaction.
Create and send a Zelle® Disbursement request payload
Request payloads for the Global Payments API have optional and required fields. The following example shows the suggested payload for a Zelle® Disbursement request in the United States:
{
"payments": {
"requestedExecutionDate": "2025-05-08",
"paymentIdentifiers": {
"endToEndId": "ZELLETESTABC"
},
"paymentCurrency": "USD",
"paymentAmount": 0.1,
"transferType": "CREDIT",
"debtor": {
"debtorName": "Debtor Name",
"debtorAccount": {
"accountId": "123456789"
}
},
"debtorAgent": {
"financialInstitutionId": {
"bic": "CHASUS33"
}
},
"creditor": {
"creditorName": "Creditor Name",
"creditorAccount": {
"accountType": "ZELLE",
"alternateAccountIdentifier": "Robert.brown@email.com",
"schemeName": {
"proprietary": "EMAL"
}
}
}
}
}
Confirm response
You will receive a successful response containing a firmRootId
and an endToEndId
. These values can be used in the next step to retrieve the status of your request.
{
"paymentInitiationResponse": {
"firmRootId": "107c46c4-f99f-47ba-9a3f-4594fa567ef8",
"endToEndId": "ZELLETESTABC XR202109202311354152"
}
}
There are also several error responses you may encounter at this stage. We recommend viewing the error codes section to understand supported responses. If you need additional support, contact your Client Service Account Manager.
Payment Initiation Callback
Clients can opt into receiving callback responses for their payment initiations. Callbacks provide additional details of the status of your request.
Successful callback example
{
"callbacks": [
{
"endToEndId": " ZELLETESTABC ",
"createDateTime": "2025-05-08T17:18:26.096Z",
"paymentStatus": "COMPLETED",
"firmRootId": “107c46c4-f99f-47ba-9a3f-4594fa567ef8"
}
]
}
Rejected Callback example
{
"callbacks": [
{
"endToEndId": "EDZRLHRQ0WQXYYZ",
"createDateTime": "2025-05-08T20:01:23.900Z",
"paymentStatus": "REJECTED",
"firmRootId": "2205f1d6-2fbb-49cc-be7e-b99cd245zzyy",
"exceptions": [
{
"errorCode": "10001",
"errorDescription": "Error occurred on /creditor/creditorAccount/accountId or /creditor/creditorAccount/alternateAccountIdentifier",
"ruleDefinition": "Mandatory field is missing or invalid"
}
]
}
]
}
Next steps
- Learn how to retrieve the status of your request.
- Understand required payment parameters.
- Review our table of potential error codes.