Skip to main content
Global Payments

Callbacks

J.P. Morgan’s Global Payments API supports callbacks to notify your application of real-time status updates when an event occurs. This approach is more efficient for both the API provider and clients, as it eliminates the need for applications to constantly poll for data to receive status updates.

Before you begin

To enable callbacks, you'll need to:

  • Contact your J.P. Morgan Representative to initiate an implementation request when you're ready to start using our Treasury Services API.
  • Complete the implementation process to receive the certificate necessary to set up a new callback. For more information, see Getting Started

How callbacks work

Upon receiving a payment initiation request, the system returns an HTTP 201 (Created) status. This response includes the endToEndId and paymentId in the response body. Subsequently, the payment triggers a callback to your registered callback URL with a RECEIVED status. As the payment progresses through various status changes, additional callbacks are sent to keep you updated.

The payment initiation status callback response is typically received within 30 seconds. The Global Payments API consistently delivers the latest and most accurate information regarding the payment. In the event of an HTTP error, we automatically retry the request until the error is resolved.

Callbacks are available aross all payment rails, including wires.

Payment status callbacks

The callbacks are a notification to your client through the Global Payment API. For more information, see the Global Payments Open API Specification.

Confirm callback response

The following response shows a payment in the REJECTED state:

Callback - REJECTED
{
  "specversion": "1.0.0",
  "id": "624f39ab-d6fd-43ac-8d61-2992406070f9",
  "time": "2025-12-12T16:22:16.205+00:00",
  "type": "Payment.Rejected",
  "source": "payment/v2/payments?endToEndId=SHKsZNQTJGxOvoB",
  "dataschema": "urn:com.jpmorgan.payments/payment-event",
  "data": {
    "payments": [
      {
        "paymentId": "019b135e-ad7e-7000-a7ec-b42b96d56be3",
        "requestedExecutionDate": "2025-12-12",
        "paymentStatus": "REJECTED",
        "paymentSubStatus": "REJECTED_BY_JPM",
        "statusUpdatedAt": "2025-12-12T16:22:16.205+00:00",
        "paymentIdentifiers": {
          "endToEndId": "SHKsZNQTJGxOvoB"
        },
        "paymentType": "RTP",
        "transferType": "CREDIT",
        "clearingSystem": {},
        "exceptions": [
          {
            "code": "10001",
            "message": "Field must be present/paymentPurpose/categoryPurpose/code",
            "location": "BODY",
            "field": "$.paymentPurpose.categoryPurpose.code",
            "additionalContext": [
              {
                "type": "ISO20022",
                "code": "FF06",
                "message": "Category Purpose code is missing or invalid"
              }
            ]
          }
        ]
      }
    ]
  }
}

The following response shows a payment in the COMPLETED state:

Callback - COMPLETED
{
  "specversion": "1.0",
  "id": "ab64fbef-b32d-428d-ab3d-841712c0dca7",
  "time": "2025-11-10T14:42:04Z",
  "type": "Payment.Completed",
  "source": "/payment/v2/payments/69d93dec-9887-4701-865f-0750e3b1b93c",
  "dataschema": "urn:com.jpmorgan.payments/payment-event",
  "data": {
    "payments": [
      {
        "paymentId": "69d93dec-9887-4701-865f-0750e3b1b93c",
        "paymentStatus": "COMPLETED",
        "paymentSubStatus": "COMPLETED_BY_JPM",
        "statusUpdatedAt": "2025-11-10T14:42:04Z",
        "paymentIdentifiers": {
          "endToEndId": "MXRTPTEST2"
        },
        "paymentType": "RTP",
        "transferType": "CREDIT",
        "requestedExecutionDate": "2025-11-10",
        "clearingSystem": {
          "reference": "Tjp6nH-j02p6T"
        }
      }
    ]
  }
}

Resources

Status response types

A status message communicates the current status of a payment. For example, the RECEIVED status signifies that the payment has been received and is queued for processing. In certain situations, a status may include a sub-status to offer additional details. For example, the PROCESSING status may have a sub-status of "Processing by J.P. Morgan," indicating that we're actively processing the payment.

The following table contains the supported statuses, sub-statuses, and their descriptions for the Global Payments API:

Status responses for Global Payments
Status                                  Sub-status                                       Description
RECEIVED RECEIVED The payment request was received and will process accordingly.
ACCEPTED ACCEPTED The payment was accepted at the initiation layer.
PROCESSING PROCESSING_BY_JPM The payment is being processed by J.P. Morgan.
PENDING_CLIENT_ACTION Payment is currently on hold, customer is required to perform an action for the payment to continue processing.
PENDING_COMPLIANCE_REVIEW Payment is under review of J.P. Morgan Compliance.
PENDING_FRAUD_REVIEW Payment is on hold to review possible fraud.
PENDING_FUNDING_REVIEW Payment is pending funding in J.P. Morgan.
PENDING_JPM_REVIEW Payment is currently on hold.
SCHEDULED The payment is scheduled for future execution.
PENDING_POSTING The payment has been processed by J.P. Morgan, sent to the clearing network, and is awaiting a response.
CANCELED CANCELED The payment was canceled by the client.
REJECTED REJECTED The payment has been rejected.
REJECTED_BY_JPM The payment has been rejected by J.P. Morgan.
COMPLETED COMPLETED_BY_JPM The payment was fully processed by J.P. Morgan and the necessary movement of money within J.P. Morgan accounts has occurred. It's no longer under the control of J.P. Morgan.
SENT_TO_CLEARING Payment instruction has been sent to the clearing network.
DELIVERED_TO_RECIPIENT The payment was applied to the receiver's account.
RETURNED RETURNED The payment was returned by an external party, such as a clearinghouse or beneficiary bank.

This table lists all possible status responses that are supported by Global Payments; not all statuses are applicable to each payment method. To see supported status responses for each payment method, refer to their individual Resources page.