Saltar al contenido principal

Ledger

Double-entry ledger entries, each linked to the resource that caused it.

Amounts here are SETTLED quantities and this tag takes no assetFormat. A ledger entry records what actually moved on chain and in the ledger at the time it moved, and the entries carry no per-entry rebase factor — so expressing them as the underlying equity would mean applying TODAY's ratio to a past movement, restating history. After a 10:1 split every earlier entry would appear to jump tenfold.

This means a ledger amount will NOT match a rebased read of the same movement from GET /v2/deposits, GET /v2/withdrawals or GET /v2/orders for a tokenised equity. Neither is wrong — they are different representations. To reconcile, read the movement with assetFormat=base, or compare against its base block, which every one of those resources publishes in both representations. GET /v2/balances/{assetSymbol}/history is settled-only for the same reason.

GET /v2/ledger

List ledger entries

The double-entry record of how a balance changed, for one asset. Every entry carries a source back-pointer to the withdrawal, deposit or fill that caused it; filter by sourceId to fetch exactly those entries, or by orderId to fetch every entry an order produced across all of its fills.

Parámetros

ParámetroEnTipoRequeridoDescripción
pagequeryintegernoDefault: 1.
limitqueryintegernoDefault: 25.
assetSymbolquerystringAsset to list entries for. Required.
typequeryBUY | SELL | DEPOSIT | WITHDRAWALnoFilter by entry type.
sourceIdquerystringnoReturn only the entries caused by this resource. Accepts a withdrawal, deposit or fill id — the same value the resource publishes as id and the entry echoes as source.id.
orderIdquerystringnoReturn every entry produced by an order, across all of its fills. The ledger does not store an order id, so this resolves the order to its fills first — one extra internal hop. Note an order settles in two assets, and assetSymbol selects which leg you see.
startDatequerystringnoISO-8601 start date.
endDatequerystringnoISO-8601 end date.

Respuestas

CódigoDescripciónCuerpo
200Éxito.LedgerEntriesResponse
401application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable).
403application/problem+json (RFC 9457) — branch on code, not on the status: insufficient_scope (not retryable), ip_not_allowed (not retryable), api_access_disabled (not retryable).
429application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable).
500application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable).
502application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable).
503application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable).

GET /v2/ledger/{id}

Get a ledger entry by id

A single double-entry movement. source.id points at the resource that caused it — the deposit, withdrawal or fill — so you can go from a ledger row straight to the movement behind it.

Amounts are SETTLED quantities and this endpoint takes no assetFormat. For a tokenised equity that means a ledger amount will not match a rebased read of the same movement; compare against that resource's base block instead. See the Ledger section for why.

Parámetros

ParámetroEnTipoRequeridoDescripción
idpathstring

Respuestas

CódigoDescripciónCuerpo
200Éxito.LedgerEntry
401application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable).
403application/problem+json (RFC 9457) — branch on code, not on the status: insufficient_scope (not retryable), ip_not_allowed (not retryable), api_access_disabled (not retryable).
404application/problem+json (RFC 9457) — branch on code, not on the status: not_found (not retryable).
429application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable).
500application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable).
502application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable).
503application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable).

Esquemas

LedgerEntriesResponse

CampoTipoDescripción
startDatestring | nullThe start of the window this page was filtered by — the startDate you sent, echoed back. null when you sent none, which means the page is unbounded at that end. Ej.: 2026-07-01T00:00:00.000Z.
endDatestring | nullThe end of the window this page was filtered by — the endDate you sent, echoed back. null when you sent none. Ej.: 2026-07-31T23:59:59.000Z.
dataLedgerEntry[]
paginationPaginationMeta

LedgerEntry

CampoTipoDescripción
idstringId of this ledger entry.
sourceanyThe resource that caused this entry.
typestringEj.: DEPOSIT.
subTypestring | nullWhat KIND of entry this is within its type. Without it a DEPOSIT booked by an earn distribution is indistinguishable from a customer deposit. Ej.: INTERNAL_EARN_DISTRIBUTION.
assetSymbolstringEj.: BTC.
detailstring
amountstringPositive magnitude; direction is given by type. Ej.: 500.
feestringPositive magnitude. Ej.: 0.
totalstringPositive magnitude. Ej.: 500.
balancestringRunning balance after this entry. Signed — this is a state, not a movement. Ej.: 500.62.
createdAtstring

LedgerEntrySource

CampoTipoDescripción
typewithdrawal | deposit | fill | otherEj.: withdrawal.
idstringId of the causing resource. Matches that resource’s id.

PaginationMeta

CampoTipoDescripción
pagenumberEj.: 1.
limitnumberEj.: 25.
totalItemsnumberEj.: 100.
totalPagesnumberEj.: 4.

Problem

CampoTipoDescripción
typestringStable problem-type URI. Resolves to docs for this error. Ej.: https://docs.skipo.com/errors/rate_limited.
titlestringShort, human-readable summary (stable, English). Ej.: Rate limit exceeded.
statusnumberHTTP status code. Ej.: 429.
codestringStable machine-readable error code (equals the last path segment of type). Ej.: rate_limited.
retryablebooleanWhether retrying the identical request may succeed. Ej.: true.
detail (opcional)stringHuman-readable, possibly localized detail.
instance (opcional)stringThe request path that produced the error.
traceId (opcional)stringTrace id — joins BigQuery api_request and Cloud Logging.

Volver a la referencia de endpoints. Ver también: Paginación · Errores · Ids y correlación.