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_DDALIMITED_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:
- Confirm that the
statusisAPPROVEDby callingGET do/v1/clients/{id}. - Send a
POST /accountsrequest. Your request must include:clientIdlabel- must always beMAIN.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.
- 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.
Sample request body:
{
"clientId": "1000010400",
"label": "MAIN",
"category": "LIMITED_DDA_PAYMENTS"
}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.
GET /accounts/{id}sample request:
curl -v https://base-url/tsapi/ef/v1/accounts/d5aaf0db11e747daa2d955806f6eb14e
curl -v "https://base-url/tsapi/ef/v1/accounts/d5aaf0db11e747daa2d955806f6eb14e"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.
| 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:
|
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:
curl -v "https://base-url/ef/v1/accounts/d5aaf0db11e747daa2d955806f6eb14e/balances"Sample response showing an ITBD of $200 more than the ITAV:
{
"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:
| 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.