Trilha de auditoria do Merchant
Liste a trilha de auditoria de um Merchant no Tokeflow Dashboard — quem alterou o quê, quando, de onde e se a ação foi bem-sucedida.
A trilha de auditoria é o log de atividades imutável do Merchant. Toda alteração relevante dentro de um Merchant — um conector criado, uma chave de API revogada, um endpoint de webhook atualizado, um perfil de roteamento editado — é registrada como uma entrada de log de auditoria que captura a entidade afetada, a ação realizada, quem (ou o que) a realizou, o estado antes e depois da alteração, e se a ação foi bem-sucedida.
A visualização Atividade do Dashboard para um Merchant é alimentada pelo único endpoint desta página. As entradas são somente de inserção (append-only) e não podem ser editadas ou excluídas, o que torna a trilha adequada para revisões de conformidade e investigação forense de incidentes — os campos registrados estão alinhados com os requisitos de log de auditoria do PCI DSS, incluindo o outcome explícito de cada evento.
Esta página cobre a trilha com escopo de Merchant. A atividade em nível de Organization (abrangendo todos os Merchants além de entidades no nível da Organization) está disponível em Trilha de auditoria da Organization, e o acesso programático com chaves de API está disponível por meio da API de logs de auditoria pública.
Este endpoint alimenta a interface do Tokeflow Dashboard. Ele é autenticado com uma Dashboard session (JWT bearer) obtida ao fazer login — veja Autenticação do Dashboard. Ele não aceita chaves de API sk_/pk_.
O objeto de entrada do log de auditoria
| Field | Type | Description |
|---|---|---|
id | string | ID do log de auditoria (UUID). |
organization_id | string | null | Organization à qual o evento pertence, com prefixo org_. |
merchant_id | string | null | Merchant ao qual o evento pertence, com prefixo mrc_. |
entity_type | string | Tipo da entidade afetada (ex.: merchant_connector). |
entity_id | string | null | ID da entidade afetada. |
action | string | Ação realizada (ex.: created). |
actor_type | string | Tipo de ator. Um dos seguintes: user, system, api_key, psp_webhook. |
actor_id | string | null | ID do ator (usuário ou chave de API). Nulo para eventos anônimos ou puramente internos. |
before_state | object | null | Estado antes da alteração. Nulo na criação. |
after_state | object | null | Estado após a alteração. Nulo na exclusão. |
outcome | string | Resultado do evento. Um dos seguintes: success, failure. |
error_message | string | null | Mensagem de erro quando outcome é failure. |
ip_address | string | null | Endereço IP do cliente de onde a ação se originou. |
created_at | string | Timestamp do evento de auditoria (ISO 8601 UTC). |
O par before_state / after_state é o que torna uma entrada revisável: compare os dois objetos (diff) para ver exatamente quais campos mudaram. Uma entrada created tem before_state: null; uma entrada deleted tem after_state: null.
Tipos de ator
| Value | Meaning |
|---|---|
user | Um usuário autenticado no Dashboard realizou a ação. |
system | O próprio Tokeflow realizou a ação (ex.: uma transição de ciclo de vida automatizada). |
api_key | A ação veio através da API pública, autenticada com uma chave de API. |
psp_webhook | A alteração foi disparada por uma notificação de um provedor de pagamento conectado. |
Endpoints
GET/api/v1/merchant/activity
Auth: Dashboard session (JWT bearer). É necessário ser membro do Merchant.
Retorna uma lista paginada das entradas da trilha de auditoria do Merchant, das mais recentes para as mais antigas. O contexto do Merchant vem do header x-merchant-id, que o Dashboard envia para o Merchant atualmente selecionado.
Headers
| Header | Required | Description |
|---|---|---|
x-merchant-id | Sim | O Merchant cuja trilha de auditoria deve ser listada, com prefixo mrc_. O usuário autenticado deve ser membro deste Merchant. |
Parâmetros de consulta
| Field | Type | Required | Description |
|---|---|---|---|
page | number | Não | Número da página, indexado a partir de 1 (padrão 1, mín. 1). |
limit | number | Não | Itens por página (padrão 20, mín. 1, máx. 100). |
Exemplo de requisição
curl -G https://api.tokeflow.com/api/v1/merchant/activity \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs…" \
-H "x-merchant-id: mrc_123" \
--data-urlencode "page=1" \
--data-urlencode "limit=20"Exemplo de resposta — 200 OK
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"organization_id": "org_123",
"merchant_id": "mrc_123",
"entity_type": "merchant_connector",
"entity_id": "conn_a1b2c3",
"action": "created",
"actor_type": "user",
"actor_id": "9c1de2f4-77aa-4b0e-9a3d-2f6c8b1e5d90",
"before_state": null,
"after_state": {
"provider_slug": "acquirer_a",
"status": "active"
},
"outcome": "success",
"error_message": null,
"ip_address": "203.0.113.42",
"created_at": "2026-08-10T14:22:05.000Z"
},
{
"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"organization_id": "org_123",
"merchant_id": "mrc_123",
"entity_type": "webhook_endpoint",
"entity_id": "whe_5f8d2c",
"action": "updated",
"actor_type": "api_key",
"actor_id": "b2f7c9a1-4e3d-4a6b-8c5e-1d9f0a7b3c62",
"before_state": {
"url": "https://example.com/webhooks/old"
},
"after_state": null,
"outcome": "failure",
"error_message": "Webhook endpoint URL failed validation",
"ip_address": "198.51.100.7",
"created_at": "2026-08-10T13:58:41.000Z"
}
],
"meta": {
"page": 1,
"limit": 20,
"total": 42,
"total_pages": 3,
"has_next": true,
"has_prev": false
}
}Diferentemente do envelope da API pública, este endpoint do dashboard retorna o payload diretamente — um array de entradas em data e os metadados de paginação em meta.
Metadados de paginação
| Field | Type | Description |
|---|---|---|
page | number | Número da página atual. |
limit | number | Número de itens por página. |
total | number | Número total de itens. |
total_pages | number | Número total de páginas. |
has_next | boolean | Se há uma próxima página. |
has_prev | boolean | Se há uma página anterior. |
Ações que falham também são registradas. Uma entrada com outcome: "failure" significa que a tentativa foi negada ou resultou em erro — error_message explica o motivo, e a entidade-alvo permaneceu inalterada. Não filtre essas entradas ao revisar atividades relevantes para segurança; as tentativas que falharam costumam ser as mais interessantes.
Erros
| HTTP | type | Typical cause |
|---|---|---|
400 | validation_error | page ou limit fora do intervalo permitido. |
401 | authentication_error | Token de sessão ausente, expirado ou inválido — faça login novamente. |
403 | authorization_error | O usuário autenticado não é membro do Merchant informado em x-merchant-id. |
Consulte Erros para ver o envelope completo e o catálogo de tipos.
Relacionados
- Trilha de auditoria da Organization — atividade em toda a Organization.
- API de logs de auditoria — acesso programático com chaves de API.
- Autenticação do Dashboard — como as sessões são estabelecidas.
- Organizations e Merchants — como funcionam a associação (membership) e os papéis (roles).