# Notes

Free-text context attached to transactions.

### `GET /api/v1/notes`

Notes attached to a transaction.

- operationId: `list_notes`
- scope: `read`

**Parameters**

- `transactionId` (uuid, required) — Transaction ID

**Response**

```json
{ "data": [ { "id": "…", "content": "…", "createdAt": "…" } ] }
```

### `POST /api/v1/notes`

Create a proposal to attach a note. Approval required.

- operationId: `attach_note`
- scope: `propose-write`

**Body**

```json
{ "transactionId": "uuid", "content": "Client project: ACME-42" }
```

**Response**

```json
{ "data": { "id": "…", "status": "pending", "type": "note", … } }
```

### `PUT /api/v1/notes`

Directly create a note without approval. For trusted automation only.

- operationId: `create_note`
- scope: `propose-write`

**Body**

```json
{ "transactionId": "uuid", "content": "Client project: ACME-42" }
```

**Response**

```json
{ "data": { "id": "…", "content": "…", "createdAt": "…" } }
```

> POST creates a proposal (approval required). PUT creates directly — use only for trusted automation.
