OperationsЕдиная лента операций

Единая лента операций

МОЯ активность в Vault'е одной лентой (мои переводы + депозиты на мои адреса), по (createdAt, id) desc, keyset-пагинация. userId — из сессии.

Сценарии:

  • моя лента — без параметров
  • мои поступления за март — ?direction=in&from=2026-03-01&to=2026-04-01
  • мои зависшие переводы — ?direction=out&status=pending
  • ждут МОЕГО одобрения (чужие переводы) — ?awaitingMyApproval=true
  • движения по моему адресу — ?addressId=... или папке — ?folderId=...
  • по группе контрагентов — ?counterpartyGroupId=..., по адресу контрагента — ?counterpartyAddressId=...
  • только внешние/внутренние — ?flowType=external|internal
  • по категории/назначению из метаданных — ?category=... / ?paymentPurpose=...

Каждый элемент обогащён reporting-полями (§7): operationType, flowType, usdRate/usdValue (exact-снапшот), metadata. Форма элемента зависит от direction: out несёт статус/жизненный цикл, in — свершившийся факт из webhook.

curl -X GET "https://policy-engine-rest.ezig.workers.dev/api/v1/vaults/demo_vault/history?userId=example_string&direction=in&status=awaiting_approval&awaitingMyApproval=true&asset=usdt&tokenId=example_string&network=tron&addressId=123%20Main%20St&folderId=example_string&counterpartyId=example_string&counterpartyGroupId=example_string&counterpartyAddressId=123%20Main%20St&flowType=internal&category=example_string&paymentPurpose=example_string&decisionPolicyId=example_string&includeShared=true&txHash=example_string&from=example_string&to=example_string&limit=42&cursor=example_string" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "items": [
    {
      "direction": "example_string",
      "operationType": "transfer",
      "network": "example_string",
      "flowType": "internal",
      "usdRate": "example_string",
      "usdValue": "example_string",
      "usdRateSource": "example_string",
      "metadata": {
        "category": "example_string",
        "tags": [
          "example_string"
        ],
        "paymentPurpose": "example_string",
        "note": "example_string"
      },
      "decisionPolicyId": "example_string",
      "id": "example_string",
      "status": "example_string",
      "txHash": "example_string",
      "amount": "example_string",
      "amountDecimal": "example_string",
      "asset": "example_string",
      "assetSymbol": "example_string",
      "fee": "example_string",
      "failureReason": "example_string",
      "fromAddress": {
        "id": "example_string",
        "address": "123 Main St",
        "label": "example_string"
      },
      "toAddress": "123 Main St",
      "initiatorId": "example_string",
      "decisionPolicyCode": "example_string",
      "counterparty": {
        "id": "example_string",
        "name": "John Doe"
      },
      "approvalThreshold": 42,
      "approvalsCount": 10,
      "createdAt": "2026-07-02T11:25:15.134Z",
      "confirmedAt": "2026-07-02T11:25:15.134Z"
    }
  ],
  "nextCursor": "example_string"
}
GET
/api/v1/vaults/{code}/history
GET
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

better-auth session token. Мобилка/сервисы. Веб использует cookie.

better-auth session token. Мобилка/сервисы. Веб использует cookie.
API Key (cookie: better-auth.session_token)
path
codestring
Required

Уникальный код Vault'а (slug)

query
userIdstring

Только для admin: чью активность показать. Без параметра админ видит ВЕСЬ Vault (у него нет собственных операций — это надзорная роль). Не-админ может указать только себя, иначе 403

query
directionstring

Только поступления (in) или только переводы (out)

Options: in, out
query
statusstring

Статус исходящих; при указании in-элементы исключаются

Options: awaiting_approval, pending, confirmed, failed, rejected, cancelled
query
awaitingMyApprovalstring

true → переводы, ждущие МОЕГО голоса (я в снапшоте approvers и ещё не голосовал). Показывает чужие переводы — единственное исключение из «только своя активность». Подразумевает direction=out

Options: true, false
query
assetstring

Код токена

query
tokenIdstring

Токен по id из реестра (альтернатива asset)

query
networkstring

Network.slug

query
addressIdstring

Мой адрес: from для out, to для in

query
folderIdstring

Операции по адресам из МОЕЙ папки (address-folders)

query
counterpartyIdstring

Операции конкретного контрагента (обе стороны)

query
counterpartyGroupIdstring

Операции контрагентов группы (текущий состав)

query
counterpartyAddressIdstring

Операции конкретного адреса контрагента

query
flowTypestring

internal — вторая сторона = собственный адрес Vault'а; external — внешняя

Options: internal, external
query
categorystring

Категория из OperationMetadata

query
paymentPurposestring

Назначение платежа из OperationMetadata

query
decisionPolicyIdstring

Переводы, решённые конкретной политикой (только out)

query
includeSharedstring

true → включить операции по расшаренным мне адресам (view-доступ). По умолчанию (D6) — только своя активность

Options: true, false
query
txHashstring

Точный on-chain hash

query
fromstring

createdAt >= (ISO или YYYY-MM-DD)

query
tostring

createdAt <= (ISO или YYYY-MM-DD)

query
limitinteger

Размер страницы (default 20, max 100)

Min: 1 • Max: 100
query
cursorstring

nextCursor предыдущей страницы

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. better-auth session token. Мобилка/сервисы. Веб использует cookie.

path
parameterstring
Required

API Key for authentication. Provide your API key in the cookie.

Path Parameters

codestring
Required

Уникальный код Vault'а (slug)

Example:
demo_vault

Query Parameters

userIdstring

Только для admin: чью активность показать. Без параметра админ видит ВЕСЬ Vault (у него нет собственных операций — это надзорная роль). Не-админ может указать только себя, иначе 403

directionstring

Только поступления (in) или только переводы (out)

Allowed values:inout
statusstring

Статус исходящих; при указании in-элементы исключаются

Allowed values:awaiting_approvalpendingconfirmedfailedrejectedcancelled
awaitingMyApprovalstring

true → переводы, ждущие МОЕГО голоса (я в снапшоте approvers и ещё не голосовал). Показывает чужие переводы — единственное исключение из «только своя активность». Подразумевает direction=out

Allowed values:truefalse
assetstring

Код токена

Example:
usdt
tokenIdstring

Токен по id из реестра (альтернатива asset)

networkstring

Network.slug

Example:
tron
addressIdstring

Мой адрес: from для out, to для in

folderIdstring

Операции по адресам из МОЕЙ папки (address-folders)

counterpartyIdstring

Операции конкретного контрагента (обе стороны)

counterpartyGroupIdstring

Операции контрагентов группы (текущий состав)

counterpartyAddressIdstring

Операции конкретного адреса контрагента

flowTypestring

internal — вторая сторона = собственный адрес Vault'а; external — внешняя

Allowed values:internalexternal
categorystring

Категория из OperationMetadata

paymentPurposestring

Назначение платежа из OperationMetadata

decisionPolicyIdstring

Переводы, решённые конкретной политикой (только out)

includeSharedstring

true → включить операции по расшаренным мне адресам (view-доступ). По умолчанию (D6) — только своя активность

Allowed values:truefalse
txHashstring

Точный on-chain hash

fromstring

createdAt >= (ISO или YYYY-MM-DD)

tostring

createdAt <= (ISO или YYYY-MM-DD)

limitinteger

Размер страницы (default 20, max 100)

cursorstring

nextCursor предыдущей страницы

Responses

itemsstring[]
Required

Отсортировано по (createdAt, id) desc

nextCursorstring
Required

Курсор следующей страницы; null — конец