# JPMC-PDP Documentation from https://developer.payments.jpmorgan.com # 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: - A [registered and fully onboarded developer account](/docs/quick-start) 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. > 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](/docs/treasury/global-payments/capabilities/global-payments/jpm-coin-system/payment-parameters). 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. ```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. ```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](/docs/treasury/global-payments/capabilities/global-payments/jpm-coin-system/how-to/get-coin-transaction-status). ```json { "paymentInitiationResponse": { "firmRootId": " 989a066e-2947-4fa9-9ec7-5d09b1917c11", "endToEndId": " Kinexys2024_0834" } } ``` For more information about potential error responses, see the [Error codes](/api/treasury/global-payments/global-payments/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_POSTING*, *COMPLETED*, and *REJECTED*. For more information, see [Response types](/docs/treasury/global-payments/capabilities/global-payments/jpm-coin-system/resources#response-types). ## Related - [Connect to the Global Payments API](/docs/quick-start#add-an-api-to-your-project). - Initiate a [Kinexys Digital Payments deposit](/docs/treasury/global-payments/capabilities/global-payments/jpm-coin-system/how-to/initiate-coin-deposit) to fund a BDA. ## Next steps Initiate a [Kinexys Digital Payments status inquiry](/docs/treasury/global-payments/capabilities/global-payments/jpm-coin-system/how-to/get-coin-transaction-status).