Working with accounts

Account model
ObjectWhat it is
VirtualAccountA named container. The account itself has no currency and no balance fields.
VirtualBalanceThe balance in one specific currency. One account can hold several balances, one per currency.

List the client's accounts

GET/v1/accounts

Auth: Bearer access token — how to use the access token.

Query parameters
NameTypeRequiredDefaultDescription
ids[]—OptionalFilter by account UUIDs.
statuses[]—OptionalACTIVE, PROCESSING, BLOCKED, CLOSED.
categories[]—OptionalINDIVIDUAL, CORPORATE.
types[]—OptionalAccount type, e.g. PERSONAL, BUSINESS.
tags[]—OptionalFilter by tags.
excludeZeroBalances—Optionaltrue — only accounts with a non-zero balance in at least one currency.
virtualBalanceCurrencyIds[]—OptionalOnly accounts holding a balance in the given currencies.
search—OptionalSearch across description and id.
pagination[limit] · pagination[skip]—OptionalPagination.
GET/v1/accounts
curl 'https://sandbox-bank.tedr.com/open-banking/v1/accounts' \
  -H 'Authorization: Bearer <access-token>'
{
  "status": "SUCCESS",
  "data": {
    "nodes": [
      {
        "id": "05155318-22a3-45aa-9db0-0ebfe8f21e8c",
        "description": "Main account",
        "status": "ACTIVE",
        "category": "INDIVIDUAL",
        "type": "PERSONAL",
        "ledgerType": "PASSIVE",
        "tag": "main_account",
        "createdAt": 1704067200000,
        "updatedAt": 1705312800000
      }
    ],
    "count": 1,
    "cursor": 1
  }
}

Internal system accounts are never returned.

Create an additional account

POST/v1/accounts

Auth: Bearer access token — how to use the access token.

Body parameters
NameTypeRequiredDefaultDescription
descriptionstringOptionalAccount name / description.
currencyIdsUUID[]OptionalCurrencies to open balances in; a zero balance is created for each. Obtain the ids from the Dictionary.
POST/v1/accounts
curl -X POST 'https://sandbox-bank.tedr.com/open-banking/v1/accounts' \
  -H 'Authorization: Bearer <access-token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "description": "Business account",
    "currencyIds": [
      "99d41c98-93d1-471a-a73a-4cac9e3587e7",
      "2e5d9800-f467-4eb7-ad47-1f67a874a908"
    ]
  }'

Read the account balances

GET/v1/accounts/:accountId/balances

Auth: Bearer access token — how to use the access token.

Query parameters: currencyIds[], currencyTickers[], statuses[], pagination[limit], pagination[skip].

GET/v1/accounts/:accountId/balances
curl 'https://sandbox-bank.tedr.com/open-banking/v1/accounts/<accountId>/balances' \
  -H 'Authorization: Bearer <access-token>'
{
  "status": "SUCCESS",
  "data": {
    "nodes": [
      {
        "id": "3f0f1f8a-0f4d-4c2c-9a6a-2d63bd8dd0f1",
        "virtualAccount": { "id": "05155318-22a3-45aa-9db0-0ebfe8f21e8c" },
        "currency": {
          "id": "99d41c98-93d1-471a-a73a-4cac9e3587e7",
          "ticker": "USD",
          "network": { "name": "FIAT" }
        },
        "availableAmount": "1150.50",
        "holdAmount": "100.00",
        "totalAmount": "1250.50",
        "description": null,
        "status": "ACTIVE",
        "createdAt": 1704067200000,
        "updatedAt": 1717237800000
      }
    ],
    "count": 1,
    "cursor": 1
  }
}

Read a single account

GET/v1/accounts/:accountId

Auth: Bearer access token — how to use the access token.

GET/v1/accounts/:accountId
curl 'https://sandbox-bank.tedr.com/open-banking/v1/accounts/<accountId>' \
  -H 'Authorization: Bearer <access-token>'

Returns the same object as the list endpoint. An account that does not belong to the client returns 404.