View as Markdown

Clients

A client is the unit of onboarding on Aleta. Everything the platform knows — legal entities, accounts, depositories, reporting entities, portfolios, users, limits — hangs off a client. A single workspace can manage many clients, and clients themselves form a hierarchy: a parent client can have child clients underneath it (a family office splitting operating entities from a family trust).

Data model

JSON:API resource type: client.

  • Name
    id
    Type
    string
    Description

    Stable identifier for the client. A 24-character hex string for legacy compatibility — treat it as opaque.

  • Name
    name
    Type
    string
    Description

    Display name shown in the product. Free-form, change-safe.

Relationships

  • Name
    parent
    Type
    client
    Description

    Parent client in the hierarchy, if any. Roots have no parent.

  • Name
    children
    Type
    array of client
    Description

    Direct child clients underneath this one.

  • Name
    legalEntities
    Type
    array of legal-entity
    Description

    The ownership tree under this client. See Legal entities.

  • Name
    reportingEntities
    Type
    array of reporting-entity
    Description

    The reporting projection over the legal tree. See Reporting entities.


GET/api/v2/clients

List clients

Returns every client the authenticated credential can reach. Workspace-level tokens see all clients on the workspace; entity-scoped tokens see only their own client and its children.

Request

GET/api/v2/clients
curl https://platform.aleta.io/api/v2/clients \
  -H "Authorization: Bearer {access_token}"

GET/api/v2/clients/{id}

Retrieve a client

Fetch a single client by its identifier. Useful when you're holding a reference — for example from a webhook payload — and want the current canonical record.

Request

GET/api/v2/clients/{id}
curl https://platform.aleta.io/api/v2/clients/{id} \
  -H "Authorization: Bearer {access_token}"

POST/api/v2/clients

Create a client

Creates a new client on the workspace. Pass a parent relationship to nest the client under an existing one, or omit it to create a root.

Request

POST/api/v2/clients
curl -X POST https://platform.aleta.io/api/v2/clients \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "client",
      "attributes": { "name": "Andersen Family Office" },
      "relationships": {
        "parent": {
          "data": { "type": "client", "id": "6710efbc34673a0a646a45de" }
        }
      }
    }
  }'

PATCH/api/v2/clients/{id}

Update a client

Patches name or moves the client in the hierarchy by replacing the parent relationship. Other fields cannot be changed through the API.

Request

PATCH/api/v2/clients/{id}
curl -X PATCH https://platform.aleta.io/api/v2/clients/{id} \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "client",
      "id": "{id}",
      "attributes": { "name": "Andersen Family Office (renamed)" }
    }
  }'

DELETE/api/v2/clients/{id}

Delete a client

Removes a client from the workspace. Only permitted when the client has no live data — legal entities, accounts, transactions, and active custodian authorities must be removed first.

Request

DELETE/api/v2/clients/{id}
curl -X DELETE https://platform.aleta.io/api/v2/clients/{id} \
  -H "Authorization: Bearer {access_token}"
  • Legal entities — the ownership tree under a client.
  • Reporting entities — the reporting projection consolidated views are computed on.
  • Users — humans with scoped access to a client.