# Atividade

> O registro de atividade do workspace de quem alterou clientes, descontos e preços, mais recentes primeiro.

O TradeCatalog registra uma linha em linguagem comum para cada mudança de pessoal com clientes, descontos e preços. Mudanças feitas pela API são registradas sob o nome da chave, como `API key “Sage stock sync”`.

## Lista de atividades

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

Mais recentes primeiro. Passe `customer` para o histórico de um cliente.

| Nome       | Tipo    | Obrigatório | Descrição                                                                          |
| ---------- | ------- | ----------- | ---------------------------------------------------------------------------------- |
| `customer` | string  | não         | ID do cliente ou código da conta.                                                  |
| `limit`    | integer | não         | 1 a 100. Padrão 100.                                                               |
| `type`     | string  | não         | Tipo de registro, como pedido, cliente ou segurança.                               |
| `before`   | string  | não         | Última entrada ISO `createdAt`, para buscar entradas mais antigas.                 |
| `beforeId` | string  | não         | Última entrada `id`, emparelhada com `before` para incluir entradas na mesma hora. |

Volte usando ambos `before` e `beforeId` da última entrada retornada. Uma página vazia significa que não há entradas mais antigas que correspondam aos seus filtros.

Apenas uma chave feita por um proprietário ou administrador vê o log completo; para qualquer outro, lista apenas mudanças sobre clientes que eles podem ver.

```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
    }
  ]
}
```

| Campo               | Tipo           | Descrição                                                               |
| ------------------- | -------------- | ----------------------------------------------------------------------- |
| `actorName`         | string         | Quem fez a mudança. Mantido mesmo se essa pessoa sair depois.           |
| `summary`           | string         | O que mudou, em linguagem comum. Destinado a pessoas, não para análise. |
| `createdAt`         | string         | Quando.                                                                 |
| `customerAccountId` | string ou nulo | O cliente ao qual se refere, se houver.                                 |
| `customerName`      | string ou nulo | O nome atual desse cliente.                                             |

Mudanças no status do pedido têm um resumo de atividade do workspace e histórico detalhado em cada pedido’s `events`. Veja [Pedidos](/docs/api/orders#get-one-order).

Novos eventos também podem incluir `action`, `outcome` e `source`. Eventos mais antigos podem deixar esses campos em branco. Um exportado gerado é evidência de que o TradeCatalog preparou o arquivo, não que alguém o salvou. Um pedido de checkout é separado de um pagamento confirmado pelo provedor de pagamento. Detalhes brutos de IP e navegador são excluídos dessa API. Eventos de segurança de pessoal exigem acesso de proprietário/administrador; eventos vinculados a clientes seguem o escopo do cliente.
