banking.v1.AllocationsService

Burn a holder's units with no cash leg (AllocationManage) — the reverse of IssueUnits: `units` leave the holder's account and the supply shrinks by the same amount. Nothing is paid; this is a cap-table correction, the way an in-kind mint was. The holder must have at least `units` AVAILABLE (Read-First; units resting on the book or reserved by a redemption do not count) — otherwise INVALID_ARGUMENT — and the allocation must be `closed`, because burning a holder's units out of a live product is a decision that deserves a closed door first; `force` is the explicit override for a live product (FAILED_PRECONDITION without it). Priced at the current (fresh) NAV for the record; the default `cost_basis` is `units × NAV`, the book value written off.

Answers a UnitIssuance with source = "retire" and POSITIVE units: the row is the magnitude, the source is the direction, and the console lists mints and retirements as one history. Idempotent by idempotency_key in the same key space as IssueUnits: the same key naming a mint and then a retirement is ALREADY_EXISTS, not a retry.

post/banking.v1.AllocationsService/RetireUnits

Request

  • The document declares no server URL.
  • Auth: none required

Headers

Connect-Protocol-Version1 required

Define the version of the Connect protocol

Connect-Timeout-Msnumber

Define the timeout, in ms

Request body

servicestring
user_idstring

Whose units are burnt: a banking (or concierge) user id, shaped as IssueUnits' holder is and for the same reason. Required — a burn of nobody's units is a malformed request.

unitsstring

decimal units, > 0, at most what the holder has available

cost_basisstring

Decimal USDT of book value written off, recorded on the row. Empty means units × NAV at the dealing mark, like IssueUnits. No cash moves either way.

idempotency_keystring

required, 1..64 chars, unique per service (shared with IssueUnits)

forceboolean

Retiring is allowed on a closed allocation only; force = true is the operator's explicit override to burn units out of a live (draft or open) product.

Response

Success

idstring
servicestring
holder_kindstring

user | allocation. (The company stake's two historical rows never cross the wire: a lookup that lands on one is refused as a conflict, #245.)

holder_idstring

The banking user id for user; the holding allocation's slug (fee) for allocation. A client must never resolve an allocation holder as a user.

unitsstring

decimal units minted or retired (always positive)

navstring

decimal USDT per unit the issuance was recorded at

cost_basisstring

decimal USDT

statestring

queued until the relay posts the leg, then applied. A client that needs the units to be visible on the ledger polls for applied; a queued row is one the relay has not reached yet (or one it parked — see BalanceService.ListParkedEvents).

sourcestring

Where the units came from — or went: mint (IssueUnits or an executed holder grant — supply grew by units) or retire (RetireUnits — burnt out of the holder's account, supply shrank by units). units is always the magnitude; the source is the direction. Always populated; a row that predates the field reads as mint.

Changes

Changes to this operation have not been checked yet.