# Aktivität

> Der Aktivitätsprotokoll des Arbeitsbereichs, wer Kunden, Rabatte und Preise geändert hat, am neuesten zuerst.

TradeCatalog protokolliert eine einfache Textzeile für jede Änderung von Mitarbeitern bei Kunden, Rabatten und Preisen. Änderungen, die über die API vorgenommen werden, werden unter dem Namen des Schlüssels protokolliert, z. B. `API key “Sage stock sync”`.

## Aktivitätsliste

**GET** `/api/v1/activity`

Neueste zuerst. Geben Sie `customer` an, um die Geschichte eines Kunden anzuzeigen.

| Name       | Type    | Required | Beschreibung                                                                                              |
| ---------- | ------- | -------- | --------------------------------------------------------------------------------------------------------- |
| `customer` | string  | nein     | Kunden-ID oder Kontocode.                                                                                 |
| `limit`    | integer | nein     | 1 bis 100. Standardwert 100.                                                                              |
| `type`     | string  | nein     | Datensatztyp, z. B. Auftrag, Kunde oder Sicherheit.                                                       |
| `before`   | string  | nein     | ISO-Code des letzten Eintrags `createdAt`, um ältere Einträge abzurufen.                                  |
| `beforeId` | string  | nein     | Letzter Eintrag's `id`, in Kombination mit `before`, um Einträge zum gleichen Zeitstempel einzuschließen. |

Gehen Sie mit beiden `before` und `beforeId` vom letzten zurückgegebenen Eintrag zurück. Eine leere Seite bedeutet, dass es keine älteren Einträge gibt, die Ihren Filtern entsprechen.

Nur ein Schlüssel, der von einem Besitzer oder Administrator erstellt wurde, sieht den gesamten Protokoll; für andere werden nur Änderungen angezeigt, die sich auf Kunden beziehen, die sie sehen können.

```bash
curl "https://tradecatalog.app/api/v1/activity?customer=OAK01&limit=20" \
  -H "Authorization: Bearer $TRADECATALOG_API_KEY"
```

```js
const res = await fetch(
  'https://tradecatalog.app/api/v1/activity?customer=OAK01&limit=20',
  {
    headers: { Authorization: `Bearer ${process.env.TRADECATALOG_API_KEY}` },
  },
)
const { data: entries } = await res.json()
```

```json
{
  "data": [
    {
      "id": "d0e1f2a3-b4c5-4d6e-8f7a-9b0c1d2e3f4a",
      "actorName": "Jo Hartley",
      "summary": "Set Northgate brand discount to 15% (was 12.5%)",
      "createdAt": "2026-09-26T14:21:03.000Z",
      "customerAccountId": "7d2e4f0a-1b3c-4d5e-8f90-a1b2c3d4e5f6",
      "customerName": "Oakfield Joinery"
    },
    {
      "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
      "actorName": "API key “Sage stock sync”",
      "summary": "Imported customers: 0 new, 42 updated",
      "createdAt": "2026-09-26T02:00:09.000Z",
      "customerAccountId": null,
      "customerName": null
    }
  ]
}
```

| Feld                | Typ              | Beschreibung                                                                            |
| ------------------- | ---------------- | --------------------------------------------------------------------------------------- |
| `actorName`         | string           | Wer hat die Änderung vorgenommen. Wird auch gespeichert, wenn diese Person später geht. |
| `summary`           | string           | Was geändert wurde, in einfacher Sprache. Für Menschen, nicht für Parsing.              |
| `createdAt`         | string           | Wann.                                                                                   |
| `customerAccountId` | string oder null | Der Kunde, auf den sich die Änderung bezieht, falls vorhanden.                          |
| `customerName`      | string oder null | Der aktuelle Name dieses Kunden.                                                        |

Änderungen des Bestellstatus haben eine Arbeitsbereichsaktivitätszusammenfassung und detaillierte Geschichte in jedem Bestell-`events`. Siehe [Bestellungen](/docs/api/orders#get-one-order).

Neue Ereignisse können auch `action`, `outcome` und `source` enthalten. Ältere Ereignisse können diese Felder leer lassen. Eine generierte Exportdatei ist Beweis dafür, dass TradeCatalog die Datei vorbereitet hat, nicht dass jemand sie gespeichert hat. Ein Checkout-Antrag ist separat von einer Zahlung, die vom Zahlungsanbieter bestätigt wurde. Rohdaten zu IP-Adresse und Browser werden von dieser API ausgeschlossen. Sicherheitsereignisse von Mitarbeitern erfordern Besitzer/Administrator-Zugriff; kundengebundene Ereignisse folgen dem Kundenumfang.
