Skip to main content
Beta version available

The Global Payments 2 API is currently available in beta. Contact our team to start your integration process.

Initiate a Kinexys Digital Payments request

In this tutorial, you'll learn how to use the Global Payments API to initiate a Kinexys Digital Payments request from a Blockchain Deposit Account (BDA) to either another BDA or a Demand Deposit Account (DDA). By the end of this tutorial, you'll be able to:

  • Create a well-formed Kinexys Digital Payments request payload from a BDA to a BDA.
  • Create a well-formed Kinexys Digital Payments request payload from a BDA to a DDA from the same or different entity.
  • Interpret the values in a successful response.

Before you begin

To initiate a Kinexys Digital Payments request, you'll need:

  • registered and fully onboarded developer account on the J.P. Morgan Payments Developer Portal.
  • An active project that provides the credentials required to make a request.
  • A J.P. Morgan BDA opened at J.P. Morgan Chase Bank, N.A and/or J.P. Morgan SE, Frankfurt.
  • A Demand Deposit Account (DDA) opened in an approved funding location where you intend to perform a Kinexys Digital Payments transaction.
Tip

In addition to regular Demand Deposit Accounts (DDA), select Client Money Accounts (CMA) and Mortgage Servicing Accounts (MSA) are supported by this product, subject to J.P. Morgan review.

Create and send a Kinexys Digital Payments request payload

Request payloads for the Global Payments API have optional and required fields. The full request payload is sent using a POST HTTP.

The following examples show the minimum required payload for a Kinexys Digital Payments request, with no optional fields included.

Kinexys Digital Payments BDA to BDA

Use the following payload example to initiate a payment to move funds between two BDAs. These BDAs can belong to the same or different entity.

Kinexys Digital Payments payment (BDA to BDA)
Curl
curl --location 'https://api-mock-payments.jpmorgan.com/tsapi/v1/payments' \ --header 'Content-Type: application/json' \ --data '{     "payments": {         "paymentIdentifiers": {             "endToEndId": "Kinexys2024_0834"         },         "requestedExecutionDate": "2022-09-01",         "paymentCurrency": "USD",         "paymentAmount": 1.01,         "transferType": "CREDIT",         "paymentType": "BLOCKCHAIN",         "debtor": {             "debtorAccount": {                 "accountId": "940091064",                 "accountType": "BDA"             }         },         "debtorAgent": {             "financialInstitutionId": {                 "bic": "CHASUS33"             }         },         "creditorAgent": {             "financialInstitutionId": {                 "bic": "CHASUS33"             }         },         "creditor": {             "creditorAccount": {                 "accountId": "80091097",                 "accountType": "BDA"             }         },         "remittanceInformation": {             "unstructuredInformation": [                 "unstructured-remittance-information-1"             ]         }     } }'

Kinexys Digital Payments BDA to DDA

Use the following payload example to initiate a payment to move funds from a BDA to a DDA. Common Kinexys Digital Payments combinations include:

  • A payment moving funds from a linked BDA to a DDA. The BDA and DDA must belong to the same entity.
  • A payment moving funds from a non-linked BDA directly to a DDA. The BDA and DDA can belong to the same or a different entity.
Kinexys Digital Payments payment (BDA to DDA)
Curl
curl --location 'https://api-mock-payments.jpmorgan.com/tsapi/v1/payments' \ --header 'Content-Type: application/json' \ --data '{     "payments": {         "paymentIdentifiers": {             "endToEndId": "Kinexys2024_0834"         },         "requestedExecutionDate": "2022-09-01",         "paymentCurrency": "USD",         "paymentAmount": 1.01,         "transferType": "CREDIT",         "paymentType": "BLOCKCHAIN",         "debtor": {             "debtorAccount": {                 "accountId": "80091097",                 "accountType": "BDA"             }         },         "debtorAgent": {             "financialInstitutionId": {                 "bic": "CHASUS33"             }         },         "creditorAgent": {             "financialInstitutionId": {                 "bic": "CHASESM3"             }         },         "creditor": {             "creditorAccount": {                 "accountId": "73239505",                 "accountType": "DDA"             }         },         "remittanceInformation": {             "unstructuredInformation": [                 "unstructured-remittance-information-1"             ]         }     } }'

Confirm response

Upon successful completion, you should receive a response containing a firmRootId and an endToEndId. These values are used to retrieve the status of your request.

Kinexys Digital Payments confirmation response
Json
{
  "paymentInitiationResponse": {
    "firmRootId": " 989a066e-2947-4fa9-9ec7-5d09b1917c11",
    "endToEndId": " Kinexys2024_0834"
  }
}

For more information about potential error responses, see the Error codes section.

Kinexys Digital Payments request webhooks

Transaction status responses for your Kinexys Digital Payments request are provided through webhooks.

Kinexys Digital Payments supports multiple response types, including PENDING, PENDING_POSTINGCOMPLETED, and REJECTED. For more information, see Response types.

Next steps

Initiate a Kinexys Digital Payments status inquiry.