Skip to navigation

Account Information

User and account profile details

Account Personal Information

This guide covers retrieving and managing account and user profile information.

Overview

Account information is organized in the User → Client Account → Sub-Account hierarchy:

  • User: Your login identity and preferences
  • Client Account: Legal entity information (KYC data)
  • Sub-Accounts: Trading portfolios

Prerequisites

  • Authenticated session (JWT or API key)
  • CanRead permission

Part 1: Current User Information

Get Current User Profile

Retrieve information about the authenticated user.

Endpoint: GET /api/rest/v1/users/me

Request

curl -X GET "https://api.t-dx.com/api/rest/v1/users/me" \
-H "Authorization: Bearer <access-token>"

Response (200 OK)

{
"result": {
"id": "user-uuid",
"clientAccountId": "client-account-uuid",
"username": "john.doe@example.com",
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@example.com",
"phoneNumber": "+41791234567",
"status": "STATUS_ACTIVE",
"type": "TYPE_FRONT_OFFICE",
"MFAEnabled": true,
"permissions": {
"canRead": true,
"canTrade": true,
"canWithdraw": true,
"canDeposit": true,
"canWrite": true,
"canManage": false
},
"subAccounts": [
{
"id": "sub-account-uuid-1",
"name": "Main Trading",
"permissions": {
"canRead": true,
"canTrade": true,
"canWithdraw": true,
"canDeposit": true
}
}
],
"createdAt": "2023-06-01T10:00:00Z",
"updatedAt": "2024-01-15T09:30:00Z"
}
}

User Status Values

StatusDescription
STATUS_ACTIVENormal operation
STATUS_INACTIVEAccount deactivated
STATUS_PENDING_MFAMFA setup required
STATUS_PENDING_PASSWORD_RESETPassword reset required

User Types

TypeDescription
TYPE_FRONT_OFFICERegular trader/investor
TYPE_BACK_OFFICEPlatform administrator
TYPE_SYSTEMSystem account

Part 2: User Preferences

Get User Preferences

Endpoint: GET /api/rest/v1/users/me/preferences

curl -X GET "https://api.t-dx.com/api/rest/v1/users/me/preferences" \
-H "Authorization: Bearer <access-token>"

Response (200 OK)

{
"result": {
"id": "preferences-uuid",
"userId": "user-uuid",
"language": "LANGUAGE_ENGLISH",
"notifications": {
"orderPlacement": true,
"orderConfirmation": true,
"orderCancellation": true,
"settlementLine": true
},
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-01-15T10:00:00Z"
}
}

Preference Fields

FieldTypeDescription
idUUIDPreferences record ID
userIdUUIDUser ID
languageenumLanguage preference (e.g., LANGUAGE_ENGLISH, LANGUAGE_GERMAN, LANGUAGE_FRENCH)
notificationsobjectNotification settings
notifications.orderPlacementbooleanNotify on order placement
notifications.orderConfirmationbooleanNotify on order confirmation
notifications.orderCancellationbooleanNotify on order cancellation
notifications.settlementLinebooleanNotify on settlement
createdAttimestampCreation time
updatedAttimestampLast update time

Update User Preferences

Endpoint: PUT /api/rest/v1/users/me/preferences

curl -X PUT "https://api.t-dx.com/api/rest/v1/users/me/preferences" \
-H "Authorization: Bearer <access-token>" \
-H "Content-Type: application/json" \
-d '{
"language": "LANGUAGE_GERMAN",
"notifications": {
"orderPlacement": true,
"orderConfirmation": true,
"orderCancellation": false,
"settlementLine": true
}
}'

Part 3: Client Account Information

Get My Client Account

Retrieve the legal entity information for your Client Account.

Endpoint: GET /api/rest/v1/client-accounts/mine

Request

curl -X GET "https://api.t-dx.com/api/rest/v1/client-accounts/mine" \
-H "Authorization: Bearer <access-token>"

Response (200 OK)

{
"result": {
"id": "client-account-uuid",
"status": "STATUS_ACTIVE",
"verificationStatus": "VERIFICATION_STATUS_VERIFIED",
"type": "TYPE_NOMINATIVE",
"legalName": "John Doe",
"classification": "CLASSIFICATION_RETAIL",
"taxResidency": "CH",
"createdAt": "2023-06-01T10:00:00Z",
"updatedAt": "2024-01-15T10:00:00Z"
}
}

Client Account Status

StatusDescription
STATUS_ACTIVENormal operation
STATUS_INACTIVEAccount deactivated
STATUS_SUSPENDEDAccount suspended (compliance)

Verification Status

StatusDescription
VERIFICATION_STATUS_UNVERIFIEDNo KYC submitted
VERIFICATION_STATUS_PENDING_APPROVALKYC under review
VERIFICATION_STATUS_APPROVEDKYC approved
VERIFICATION_STATUS_PENDING_VERIFYApproved, pending final verification
VERIFICATION_STATUS_VERIFIEDFully verified, trading enabled
VERIFICATION_STATUS_REJECTEDKYC rejected

Client Account Types

TypeDescription
TYPE_NOMINATIVEIndividual investor
TYPE_SOCIETYCorporate entity
TYPE_BANKBanking institution

Part 4: Sub-Account Information

List My Sub-Accounts

Endpoint: GET /api/rest/v1/sub-accounts/mine

Request

curl -X GET "https://api.t-dx.com/api/rest/v1/sub-accounts/mine" \
-H "Authorization: Bearer <access-token>"

Query Parameters

This endpoint supports standard pagination, sorting, and filtering.

Response (200 OK)

{
"result": [
{
"id": "7376524e-6b6b-4137-9719-7e07a7709804",
"clientAccountId": "8aee564e-2eb1-4a57-b686-05476c2cfd93",
"type": "TYPE_MAIN",
"venue": "VENUE_MARKETPLACE",
"name": "Main Trading Account",
"pairs": [],
"createdAt": "2023-06-01T10:00:00Z",
"updatedAt": "2023-06-01T10:00:00Z"
},
{
"id": "9e68ec8c-c978-4ea2-b511-98d4df38f353",
"clientAccountId": "8aee564e-2eb1-4a57-b686-05476c2cfd93",
"type": "TYPE_SUB",
"venue": "VENUE_OTC",
"name": "OTC Portfolio",
"pairs": ["btc-chf-pair-uuid", "eth-chf-pair-uuid"],
"createdAt": "2023-07-15T14:00:00Z",
"updatedAt": "2023-07-15T14:00:00Z"
}
],
"pagination": {
"cursors": {
"self": "eyJTb3J0cyI6W10sIkZpbHRlcnMiOltdLCJJc0ZpcnN0Ijp0cnVlfQ==",
"first": "eyJTb3J0cyI6W10sIkZpbHRlcnMiOltdLCJJc0ZpcnN0Ijp0cnVlfQ==",
"last": "",
"next": "",
"previous": ""
}
}
}

Get Single Sub-Account

Endpoint: GET /api/rest/v1/sub-accounts/{id}

curl -X GET "https://api.t-dx.com/api/rest/v1/sub-accounts/7376524e-6b6b-4137-9719-7e07a7709804" \
-H "Authorization: Bearer <access-token>"

Response (200 OK)

{
"result": {
"id": "7376524e-6b6b-4137-9719-7e07a7709804",
"clientAccountId": "8aee564e-2eb1-4a57-b686-05476c2cfd93",
"type": "TYPE_MAIN",
"venue": "VENUE_MARKETPLACE",
"name": "Main Trading Account",
"pairs": [],
"createdAt": "2023-06-01T10:00:00Z",
"updatedAt": "2023-06-01T10:00:00Z"
}
}

Sub-Account Types

TypeDescription
TYPE_MAINPrimary trading account
TYPE_SUBAdditional portfolio
TYPE_CUSTODYCustody-only account

Sub-Account Venues

VenueDescription
VENUE_MARKETPLACETrading on the Marketplace
VENUE_OTCOver-the-counter trading with external dealers

Pair Restrictions

  • Empty pairs array: Access to all trading pairs
  • Non-empty pairs array: Access limited to listed pair IDs

Part 5: List Users (Account Manager)

If you have CanManage permission, list all users in your Client Account.

Endpoint: GET /api/rest/v1/users

Request

curl -X GET "https://api.t-dx.com/api/rest/v1/users" \
-H "Authorization: Bearer <access-token>"

Query Parameters

This endpoint supports standard pagination, sorting, and filtering.

Response (200 OK)

{
"result": [
{
"id": "user-uuid-1",
"clientAccountId": "client-account-uuid",
"username": "john.doe@example.com",
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@example.com",
"status": "STATUS_ACTIVE",
"type": "TYPE_FRONT_OFFICE",
"MFAEnabled": true,
"createdAt": "2023-06-01T10:00:00Z"
},
{
"id": "user-uuid-2",
"clientAccountId": "client-account-uuid",
"username": "jane.smith@example.com",
"firstname": "Jane",
"lastname": "Smith",
"email": "jane.smith@example.com",
"status": "STATUS_ACTIVE",
"type": "TYPE_FRONT_OFFICE",
"MFAEnabled": true,
"createdAt": "2023-07-15T14:00:00Z"
}
],
"pagination": {
"cursors": {
"self": "eyJTb3J0cyI6W10sIkZpbHRlcnMiOltdLCJJc0ZpcnN0Ijp0cnVlfQ==",
"first": "eyJTb3J0cyI6W10sIkZpbHRlcnMiOltdLCJJc0ZpcnN0Ijp0cnVlfQ==",
"last": "",
"next": "",
"previous": ""
}
}
}

List Users in Sub-Account

Endpoint: GET /api/rest/v1/users/by-sub-account/{subAccountId}

curl -X GET "https://api.t-dx.com/api/rest/v1/users/by-sub-account/7376524e-6b6b-4137-9719-7e07a7709804" \
-H "Authorization: Bearer <access-token>"

Part 6: User Attributes

User attributes store additional metadata about the user.

List My Attributes

Endpoint: GET /api/rest/v1/users/me/attributes

curl -X GET "https://api.t-dx.com/api/rest/v1/users/me/attributes" \
-H "Authorization: Bearer <access-token>"

Get Specific Attribute

Endpoint: GET /api/rest/v1/users/me/attributes/{attributeId}

curl -X GET "https://api.t-dx.com/api/rest/v1/users/me/attributes/attribute-uuid" \
-H "Authorization: Bearer <access-token>"

Update Attributes

Endpoint: POST /api/rest/v1/users/me/attributes

curl -X POST "https://api.t-dx.com/api/rest/v1/users/me/attributes" \
-H "Authorization: Bearer <access-token>" \
-H "Content-Type: application/json" \
-d '{
"attributes": [
{
"type": "preference",
"subType": "ui",
"key": "theme",
"value": "dark",
"contentType": "text/plain"
}
]
}'

Delete Attribute

Endpoint: DELETE /api/rest/v1/users/me/attributes/{attributeId}

curl -X DELETE "https://api.t-dx.com/api/rest/v1/users/me/attributes/attribute-uuid" \
-H "Authorization: Bearer <access-token>"

Part 7: Client Account Attributes

List My Client Account Attributes

Endpoint: GET /api/rest/v1/client-accounts/mine/attributes

curl -X GET "https://api.t-dx.com/api/rest/v1/client-accounts/mine/attributes" \
-H "Authorization: Bearer <access-token>"

Get Specific Client Account Attribute

Endpoint: GET /api/rest/v1/client-accounts/mine/attributes/{attributeId}

curl -X GET "https://api.t-dx.com/api/rest/v1/client-accounts/mine/attributes/attribute-uuid" \
-H "Authorization: Bearer <access-token>"

Summary: Information Hierarchy

LevelEndpointContains
UserGET /users/meLogin identity, permissions, preferences
Client AccountGET /client-accounts/mineLegal entity, KYC status, verification
Sub-AccountGET /sub-accounts/minePortfolios, venues, pair restrictions

Error Scenarios

StatusCodeDescription
401UNAUTHENTICATEDInvalid or expired token
403PERMISSION_DENIEDCannot access requested resource
404NOT_FOUNDAccount or user not found