View as Markdown

Transactions

Transactions are the ledger — every dated event that moves wealth. Holdings (on v3) are reconstructed from transactions, performance is computed from transactions, and custodian reconciliation runs against transactions. The transaction model is typed per kind of event so downstream consumers never have to guess what price or quantity mean on a given row.

Transaction types

The type attribute determines the shape of the rest of the row. Common types in v2:

  • Name
    buy
    Type
    security trade
    Description

    Purchase of an instrument. Carries quantity, price, and any fees booked alongside.

  • Name
    sell
    Type
    security trade
    Description

    Disposal of an instrument. Same shape as buy plus realised-gain bookkeeping under the client's accounting method.

  • Name
    deposit
    Type
    cash flow
    Description

    Cash in. Treated as a flow rather than a return when computing performance.

  • Name
    withdrawal
    Type
    cash flow
    Description

    Cash out.

  • Name
    dividend
    Type
    security income
    Description

    Cash dividend on an equity holding.

  • Name
    coupon
    Type
    security income
    Description

    Coupon payment on a bond.

  • Name
    interest
    Type
    cash income
    Description

    Interest credit or debit on a cash account.

  • Name
    fee
    Type
    flow
    Description

    Platform, custody, or management fee. Categorised so reports can roll fees up separately from investment returns.

  • Name
    fx-trade
    Type
    cash
    Description

    Currency conversion booked against two cash legs.

  • Name
    corporate-action
    Type
    security event
    Description

    Stock split, name change, ticker change, in-specie distribution.

  • Name
    drawing
    Type
    private markets
    Description

    Capital call against a private-fund commitment.

  • Name
    maturity
    Type
    fixed income
    Description

    Bond redemption — partial call or final maturity.

  • Name
    private-equity-cashflow
    Type
    private markets
    Description

    Distribution from a private-equity vehicle.

Common attributes

JSON:API resource type: transaction. Every transaction row carries:

  • Name
    id
    Type
    string
    Description

    Stable identifier.

  • Name
    type
    Type
    string
    Description

    The transaction kind from the list above. Drives validation of the rest of the payload.

  • Name
    date
    Type
    ISO 8601 date
    Description

    When the event happened economically.

  • Name
    amount
    Type
    decimal
    Description

    Cash leg amount in the account's currency. Sign convention: positive flows in, negative flows out.

Relationships

  • Name
    account
    Type
    account
    Description

    The account the transaction is booked against. Required.

  • Name
    depository
    Type
    depository
    Description

    The depository the transaction settles through. Optional — only relevant for security trades.


GET/api/v2/transactions

List transactions

Returns transactions across the workspace, filtered by query parameters. At least one of accountId or depositoryId is typically supplied to keep responses bounded.

Query parameters

  • Name
    fromDate
    Type
    ISO 8601 date
    Description

    Inclusive lower bound on date.

  • Name
    toDate
    Type
    ISO 8601 date
    Description

    Inclusive upper bound on date.

  • Name
    accountId
    Type
    string
    Description

    Restricts results to a single account.

  • Name
    depositoryId
    Type
    string
    Description

    Restricts results to a single depository.

Request

GET/api/v2/transactions
curl -G https://platform.aleta.io/api/v2/transactions \
  -H "Authorization: Bearer {access_token}" \
  -d accountId={account_id} \
  -d fromDate=2026-01-01 \
  -d toDate=2026-03-31

POST/api/v2/transactions

Create a transaction

Books a manual transaction on an account. Pick the right type up front — the platform validates the payload against that type's schema and rejects the request if the shape doesn't match.

Request

POST/api/v2/transactions
curl -X POST https://platform.aleta.io/api/v2/transactions \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "transaction",
      "attributes": {
        "type": "buy",
        "date": "2026-03-14",
        "amount": -85050.00,
        "quantity": 100,
        "price": 850.50
      },
      "relationships": {
        "account": { "data": { "type": "account", "id": "{account_id}" } }
      }
    }
  }'

DELETE/api/v2/transactions/{id}

Delete a transaction

Removes a transaction from the ledger and triggers an async rebuild of holdings and performance for every reporting entity the affected account rolls up into.

Request

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