Skip to main content
Embedded Payments

Add an account for your client

When you add a new client to Embedded Payments, you must create a limited DDA account in their name. Your client can view balances and interact with this account on your platform, with the platform sending instructions as your client’s agent.

Types of account

You can add two types of account for your client: 

  • LIMITED_DDA 
  • LIMITED_DDA_PAYMENTS

Funds held in a LIMITED_DDA account are not immediately available to clients. The platform maintains security interest over these funds until the platform is ready to settle to an account in the client’s control.

Funds held in a LIMITED_DDA_Payments account are immediately available to the client. This account can accept inbound funds from your platform and third parties via an externally addressable account number. This account can be used by your clients to settle to an account in your clients’ control, or for your client to make a business-related payment to recipients.

Create your client's account

As soon as your client has completed onboarding, you can create their Embedded Payments Limited DDA bank account. This is the account into which money can be paid for your client. Rules around the types of recipients from this account are dependent on the account type selected and can include your client settling to themselves or making a business payment.

To create an account:

  1. Confirm that the status is APPROVED by calling GET do/v1/clients/{id}.
  2. Send a POST /accounts request. Your request must include:
    • clientId
    • label - must always be MAIN
    • category -  the type of account for your client. There are two account categories: 
      • LIMITED_DDA: Accounts under this category do not have an externally addressable account number, which means they can only be used for settlement from the platform. For example, you cannot receive or make payments into this account from any external bank account.
      • LIMITED_DDA_PAYMENTS: Accounts under this category have an active account number. This means they can receive payments from any external bank account for payment activities related to your client’s business. These accounts can also be used to make business related payments to external parties.

        Note: Clients will not be able to fund their accounts via RTP until the next business day.

Sample request body:

Sample request body
{
 "clientId": "1000010400",
   "label": "MAIN",
 "category": "LIMITED_DDA_PAYMENTS"
}

Sample response:

Sample response
{
"id": "d5aaf0db11e747daa2d955806f6eb14e",
"clientId": "1000010400",
"label": "MAIN",
"state": "OPEN",
"category": "LIMITED_DDA",
"createdAt": "2023-10-28T20:56:55.074Z"
}

Get details of an account

You can use GET /accounts/{id} to return the details of an account.

If you need to get the ID for your client's account, you can use GET /accounts. The ID field in the response contains the account ID to use when requesting account details.  

Note

The response for a  GET /accounts/{id} request does not contain any balance information. For this you must make an additional call to GET /accounts/{id}/balances.

GET /accounts
curl -v "https://base-url/tsapi/ef/v1/accounts/d5aaf0db11e747daa2d955806f6eb14e"

Sample response:

Sample response
{
  "id": "d5aaf0db11e747daa2d955806f6eb14e",
  "clientId": "1000010400",
  "label": "MAIN",
  "state": "OPEN",
  "category": "LIMITED_DDA",
  "createdAt": "2023-10-28T20:56:55.074Z"
}

What is returned in a GET /accounts/{id} request

The GET /accounts/{id} request lists minimal account information for each account available.

Minimal account information
Field Details
id The unique ID for this account. This is used for API calls to make transactions to and from the account.
category The account category for your client's Embedded Payments account could be LIMITED_DDA.
Your accounts could be PROCESSING,  MANAGEMENT, or LIMITED_DDA_PAYMENTS.
createdAt The time and date when the account was created.
clientId The ID for your client. 
state Whether the account is OPEN, CLOSED or PENDING_CLOSE
PaymentRoutingInformation

An object containing the account number, routing details, and status for the account:

  • accountNumber: The unique number assigned to the account, used for identifying the account in transactions.
  • country: The country associated with the account.
  • routingInformation: An array containing routing details for the account. Each routing detail includes:
    • type: The type of routing information, such as “ABA” for American Bankers Association routing numbers
    • value: The actual routing number value.
  • status: indicates whether the account can receive inbound funds via an externally addressable account number. The account can be ACTIVE or INACTIVE depending on the account category.
    • ACTIVE: Allows for both internal and external transactions, enabling the account to send and receive funds from external accounts.
    • INACTIVE: Indicates the account cannot receive inbound funds via an externally addressable account number.  The account is able to make payments to external accounts. It also remains available for inbound and outbound internal transfers.  
GET /accounts/{id}
curl -v "https://base-url/api/v1/accounts/11e0b423d1914a619ec34ad85cff4b1b"
{
   "id": "11e0b423d1914a619ec34ad85cff4b1b",
   "clientId": "0035199111",
   "label": "MAIN1234",
   "state": "OPEN",
   "paymentRoutingInformation": {
     "accountNumber": "20000046327264",
     "country": "US",
     "routingInformation": [
       {
         "type": "ABA",
         "value": "028000024"
       }
     ],
     "status": "ACTIVE"
   },
   "category": "LIMITED_DDA_PAYMENTS",
   "createdAt": "2025-06-11T13:49:48.286364Z"
 }

Get the balance of an account

To get the balance of each account, you can use GET /accounts/{id}/balances.

If showing the account balances on a table with all available accounts, you can make this call using account IDs returned from a GET /accounts request.

The balances are returned according to their balanceTypes. The balance types are:

  • ITAV (interim available balance). This is the available balance at the time of the request.
  • ITBD (interim booked balance). This is the booked or cleared balance at the time of the request, and may not include transactions that have not yet completed. 

Sample request:

GET /accounts/{id}/balances
curl -v "https://base-url/ef/v1/accounts/d5aaf0db11e747daa2d955806f6eb14e/balances"

Sample response showing an ITBD of $200 more than the ITAV:

Sample response
{
  "id": "d5aaf0db11e747daa2d955806f6eb14e",
  "date": "2023-10-28",
  "currency": "USD",
  "balanceTypes": [
    {
      "typeCode": "ITAV",
      "amount": 5558.42
    },
    {
      "typeCode": "ITBD",
      "amount": 5758.42
    }
  ]
}

Your accounts

As a platform owner, you have access to one or more of: 

  • Processing Account – Created for you by J.P. Morgan. Enables you to accept funds directly from merchant acquirers or other platform level J.P. Morgan accounts. These accounts are optional if you already have a Sponsored Account or Client Money Account with J.P. Morgan. With the API, you can check the balance and details of this account. 
  • Management Account – Created for you by J.P. Morgan. Enables you to allocate funds owed to you for commissions, platform fees, or other funds due to your platform. These accounts are optional and configured based on your needs. With the API, you can check the balance and details of this account. 
  • DDA (Demand Deposit Account) Treasury Account – Created for you by J.P. Morgan. Allows you to fund Processing, Limited_DDA, or LIMITED_DDA_Payments Accounts or make payouts from Processing or Management Accounts to your other Treasury Accounts with J.P. Morgan. No balances are returned for these accounts. With the API, you can check the details of this account, but not the balance.

To get the balance of any of your accounts, use  GET /accounts/{id}/balance detailed in the guide to account balances on this page.

Reference

The following fields are used when making POST requests to the Accounts resource:

Reference table
Query Parameter Description Format Example
clientID Unique client identifier <= 10 characters 0030000132
id Unique account identifier <= 32 characters (without dashes) aadda765e14741c5a44acc570af517ab

Next steps

Link your client's external bank account so you can make payments to them.