---
title: "Create a new ledger account"
method: POST
path: "/v1/accounts/ledgers"
tags: ["Accounts"]
---

# Create a new ledger account

`POST /v1/accounts/ledgers`

## Request

- Base URL: `https://api.tesser.xyz`
- URL: `https://api.tesser.xyz/v1/accounts/ledgers`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/tesser/apis/tesser-api/docs/v1/accounts/ledgers/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a ledger account linked to an external liquidity provider.

**Supported Providers:**
- `CIRCLE_MINT`: Circle Mint USDC accounts for institutional settlement
- `OPENFX`: OpenFX workspace ledger accounts

Ledger accounts are virtual accounts managed by the provider. They enable fast settlement without on-chain transactions.

**Ownership:** Use `tenant_id` OR `counterparty_id` to link the account. Omit both for a workspace-level ledger account.

## Request body

- CreateLedgerAccountRequestDto
  - `tenant_id` string, uuid, nullable: Tenant ID (mutually exclusive with counterparty_id). Links this ledger account to a specific tenant.
  - `counterparty_id` string, uuid, nullable: Counterparty ID (mutually exclusive with tenant_id). Links this ledger account to a specific counterparty.
  - `name` string, required: Human-readable name for the ledger account
  - `provider` 'CIRCLE_MINT' | 'OPENFX', required: Liquidity provider that manages this ledger account.

## Response `201`

Ledger account created successfully

- CreateLedgerAccountResponseDto
  - `data` LedgerAccountData, required
    - `id` string, required: Unique identifier for the account
    - `workspace_id` string, required: Workspace ID the account belongs to
    - `tenant_id` string, nullable: Tenant ID (if account belongs to a tenant)
    - `counterparty_id` string, nullable: Counterparty ID (if account belongs to a counterparty)
    - `type` string, required: Account type
    - `name` string, required: Account name
    - `created_by` 'CUSTOMER' | 'SYSTEM', required: Whether the customer registered this account (CUSTOMER) or Tesser synthesized it (SYSTEM).
    - `created_at` string, required: Creation timestamp
    - `updated_at` string, required: Last update timestamp
    - `provider` 'CIRCLE_MINT' | 'KRAKEN' | 'OPENFX' | 'ZUBA', required: Liquidity provider that manages this ledger account
    - `assets` LedgerAssetDto[]: Ledger assets with balances
      - `currency` string, required: Currency symbol
      - `available_balance` string, required: Available balance as a decimal string in currency units. Precision depends on the currency and account provider.

## Other responses

- `400`: Invalid request data
- `401`: Authentication required or invalid credentials
- `500`: Internal server error

---

[API](https://skmtc.dev/tesser/apis/tesser-api.md) - [All operations](https://skmtc.dev/tesser/apis/tesser-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tesser/apis/tesser-api/revisions/14f951e986b1?raw)
