# activity

Unified transactions (ledger view) with filters, search and exports; transaction detail with updates, annotations, attachments and confirmations; documents and asynchronous jobs.

## GET /attachments

operationId: `listAttachments`
Summary: List attachments across transactions
API key scopes: `transactions:read`
Parameters: `X-Tenant-Id` (header, required), `X-Request-Id` (header), `cursor` (query), `limit` (query), `sort` (query), `filter` (query)
Responses: 200 `AttachmentPage`, 400 `Problem`, 401 `Problem`, 403 `Problem`, 429 `Problem`, default `Problem`

**API key scope:** `transactions:read`.

## GET /attachments/{attachmentId}

operationId: `getAttachment`
Summary: Get attachment
API key scopes: `transactions:read`
Parameters: `attachmentId` (path, required), `X-Tenant-Id` (header, required), `X-Request-Id` (header)
Responses: 200 `Attachment`, 401 `Problem`, 403 `Problem`, 404 `Problem`, 429 `Problem`, default `Problem`

**API key scope:** `transactions:read`.

## GET /attachments/{attachmentId}/download

operationId: `downloadAttachment`
Summary: Pre-signed download link
API key scopes: `transactions:read`
Parameters: `attachmentId` (path, required), `X-Tenant-Id` (header, required), `X-Request-Id` (header)
Responses: 200 `DownloadLink`, 401 `Problem`, 403 `Problem`, 404 `Problem`, 429 `Problem`, default `Problem`

**API key scope:** `transactions:read`.

## GET /jobs/{jobId}

operationId: `getJob`
Summary: Get asynchronous job (exports, reports)
API key scopes: `transactions:read`
Parameters: `jobId` (path, required), `X-Tenant-Id` (header, required), `X-Request-Id` (header)
Responses: 200 `Job`, 401 `Problem`, 403 `Problem`, 404 `Problem`, 429 `Problem`, default `Problem`

**API key scope:** `transactions:read`.

## GET /transactions

operationId: `listTransactions`
Summary: List transactions (unified activity)
API key scopes: `transactions:read`
Parameters: `X-Tenant-Id` (header, required), `X-Request-Id` (header), `cursor` (query), `limit` (query), `sort` (query), `filter` (query), `q` (query), `withTotal` (query)
Responses: 200 `TransactionPage`, 400 `Problem`, 401 `Problem`, 403 `Problem`, 429 `Problem`, default `Problem`

Server-side filtering and search (description, counterparty, reference, order id). Filters: date, status, type, balance, attachments, annotations (Equals Transactions screen).

**API key scope:** `transactions:read`.

## GET /transactions/{transactionId}

operationId: `getTransaction`
Summary: Transaction details (drawer: Details / Updates)
API key scopes: `transactions:read`
Parameters: `transactionId` (path, required), `X-Tenant-Id` (header, required), `X-Request-Id` (header), `If-None-Match` (header)
Responses: 200 `TransactionDetail`, 304, 401 `Problem`, 403 `Problem`, 404 `Problem`, 429 `Problem`, default `Problem`

**API key scope:** `transactions:read`.

## GET /transactions/{transactionId}/annotations

operationId: `listAnnotations`
Summary: List annotations
API key scopes: `transactions:read`
Parameters: `transactionId` (path, required), `X-Tenant-Id` (header, required), `X-Request-Id` (header)
Responses: 200, 401 `Problem`, 403 `Problem`, 404 `Problem`, 429 `Problem`, default `Problem`

**API key scope:** `transactions:read`.

## GET /transactions/{transactionId}/attachments

operationId: `listTransactionAttachments`
Summary: List attachments
API key scopes: `transactions:read`
Parameters: `transactionId` (path, required), `X-Tenant-Id` (header, required), `X-Request-Id` (header)
Responses: 200, 401 `Problem`, 403 `Problem`, 404 `Problem`, 429 `Problem`, default `Problem`

**API key scope:** `transactions:read`.

## GET /transactions/{transactionId}/confirmation

operationId: `getTransactionConfirmation`
Summary: Order confirmation (PDF)
API key scopes: `statements:read`
Parameters: `transactionId` (path, required), `X-Tenant-Id` (header, required), `X-Request-Id` (header)
Responses: 200, 401 `Problem`, 403 `Problem`, 404 `Problem`, 429 `Problem`, default `Problem`

Account id, company address, order id, booking/settlement dates, from/to amounts, method, rate, total incl. fee, status, regulatory footer (Equals order confirmation).

**API key scope:** `statements:read`.

## GET /transactions/{transactionId}/updates

operationId: `listTransactionUpdates`
Summary: Status updates (Updates tab)
API key scopes: `transactions:read`
Parameters: `transactionId` (path, required), `X-Tenant-Id` (header, required), `X-Request-Id` (header)
Responses: 200, 401 `Problem`, 403 `Problem`, 404 `Problem`, 429 `Problem`, default `Problem`

**API key scope:** `transactions:read`.

## POST /transactions/exports

operationId: `exportTransactions`
Summary: Export statement or transaction activity (async)
API key scopes: `transactions:read`
Parameters: `X-Tenant-Id` (header, required), `X-Request-Id` (header)
Request body: `ExportRequest`
Responses: 202 `Job`, 400 `Problem`, 401 `Problem`, 403 `Problem`, 409 `Problem`, 422 `Problem`, 429 `Problem`, default `Problem`

Small exports may complete immediately (`Job.status=succeeded`). Full statement exports require step-up `statement.full_export` for interactive users.

**API key scope:** `transactions:read`.
