Skip to main content
This section covers:
  • What a subaccount is and how it works
  • Balance types and transaction types
  • Billing and fee configuration
  • Integration steps for subaccount creation

What is a subaccount?

A subaccount is an end-client account tied to one or more beneficial owners (e.g., institutional taxable account, joint account, Roth IRA). It represents one account on the ledger. Each wealth manager has their own ledger instance with two types of subaccounts: 1. End client funds — Track end-client positions and transactions. 2. Anchorage Digital operational funds — Ensure the ledger remains balanced. Include: Each end client may have one or many subaccounts assigned to their customerId. Funds within a subaccount can be rebalanced across other subaccounts for the same end client, provided they are settled.

Balances

Each subaccount tracks three balance types:

Subaccount transaction types


Billing and fee configuration

Plan your billing and fee strategy before onboarding clients.

Billing methods

Fee model

Fee types

Fee visibility — isBillable

Fee accruals

Each subaccount includes an accruedFees section showing estimated fees based on average AUC — not actual point-in-time fees.
accruedValue represents the average fee accrued based on days elapsed and average AUC. It is not the actual fees charged based on prior day accruals, and should not be used to display mid-month “performance net of fees” estimates.
Key fields in accruedFees:
Example subaccount with fee accruals

Fee calculation

accruedValue = (AvgAUC × feeRate) × (numberOfDays / 365)Avg AUC is calculated from totalBalance. This is an estimate — do not use to calculate performance net of fees.

Billing lifecycle

  1. Month 1, day 1 — Billing period starts. accruedFee begins calculating end of day. state: ONGOING.
  2. Month 1, days 2–30accruedFee reflects daily accrual from day 2.
  3. Month 1, last day — Billing period closes. state: DONE.
  4. Month 2, day 1 — Fee transaction appears on the ledger at 8:00 AM ET as PENDING.
  5. Month 2, days 2–9th business day — Billing dispute period. Contact your account point of contact with any questions.
  6. Month 2, 10th business day — Billing finalized. Subaccount transaction updates to POSTED. Fees withdrawn; wealth manager remittance begins. Updates at 8:00 AM ET.
Pro-rated fees apply to subaccounts with mid-month start dates.

Additional billing considerations

  1. Manual billing must be submitted via API before the 10th business day.
  2. Cash management — Keep 3 months of USD in the subaccount to avoid liquidation events that trigger taxable events.
  3. 0-rate fees — No accrual or transaction posted if rate is 0.
  4. Negative USD balances — If USD balance goes negative mid-month, it must be offset before the 10th business day.
  5. Rate changes — Anchorage Digital emails end clients when fees with isBillable: true are created or changed.
  6. Fee rate format — Configure as a decimal: 1% = 0.01.

Submitting a manual billing charge

Use manual billing when the wealth manager — not Anchorage Digital’s AUC-based accrual — determines what to charge each end client. This applies to ADVISORY, MODEL, and MANAGEMENT fees only. Custody fees are set by Anchorage Digital and are never charged manually. POST /v2/subaccounts/billing/charges Each request applies a single feeType and interval across all charges in the batch — submit separate requests to bill different fee types or periods in the same call.
To cancel a charge before it’s finalized, use DELETE /v2/subaccounts/billing/charges/{chargeId} with the ID returned above.
Manual charges debit the subaccount immediately and appear on the statement dated the day the charge is submitted — they don’t wait for the standard month-end billing cycle. Cancellations and financial impact to Ops and Finance settlement processes are minimal, but a charge can only be canceled before it’s finalized.

Integration steps: Subaccount creation

Supported account types

Each subaccount requires a signer who can represent the client. The signer can be the end client themselves or another authorized individual.

Expected program signers by account type


Step 1: Create a subaccount application

POST /v2/onboarding/subaccounts Key fields:
Example request
A unique subaccountId is returned for all future references to this subaccount.

Step 2: List all subaccount applications

GET /v2/onboarding/subaccounts Returns all subaccount onboarding applications associated with this API key. Supports afterId and limit for cursor pagination.

Step 3: Check subaccount application status

GET /v2/onboarding/subaccounts/{subaccountId} Errors and missing documents are listed in the errors array of the response.
Example response

Step 4: Update the application (if errors are present)

PUT /v2/onboarding/subaccounts/{subaccountId} Uses the same entries array shape as Step 1. Only include the entries you want to change — omitted fields keep their existing value.
Example request

Step 5: Submit the application (if submit: false)

POST /v2/onboarding/subaccounts/{subaccountId}/submit

Step 6: Check subaccount approval status

GET /v2/subaccounts/customers/accounts?subaccountIds={subaccountId} Status values: PENDING (received, awaiting approval) → OPEN (approved and active). Alternatively, subscribe to the subaccount.opened webhook event for async notification.
Example response (approved)

Changelog