Logs de auditoria
Consulte a trilha de auditoria imutável que a Tokeflow mantém para cada evento de alteração e acesso — quem fez o quê, em qual recurso, quando, de onde e com qual resultado.
Toda alteração de estado e todo acesso sensível na Tokeflow grava uma entrada de log de auditoria — um registro somente de inserção (append-only) de quem fez o quê em qual recurso. Cada entrada captura o ator (um usuário do Dashboard, uma chave de API, o sistema ou um webhook de provedor), a ação realizada, a entidade afetada, o estado antes e depois da alteração, o endereço IP do cliente e se a operação foi bem-sucedida ou falhou.
Os logs de auditoria são somente leitura pela API: você pode listá-los e filtrá-los, mas nunca criá-los, modificá-los ou excluí-los. Use-os para responder "quem alterou este conector?", para reconstruir o histórico de um pedido ou de um perfil de roteamento, ou para alimentar seu próprio SIEM e pipelines de relatórios de conformidade. O campo outcome registra o sucesso ou a falha do evento, em conformidade com o PCI DSS 10.3.1.
Os resultados são delimitados pela chave de API com a qual você se autentica:
Chaves de Merchant retornam logs de auditoria apenas daquele Merchant. Chaves de Organization retornam logs de auditoria de toda a Organization — envie o parâmetro de consulta opcional merchant_id para detalhar um Merchant específico. Enviar merchant_id com uma chave de Merchant não tem efeito; ele é ignorado.
O objeto de log de auditoria
| Field | Type | Description |
|---|---|---|
id | string | ID do log de auditoria (UUID). |
organization_id | string | null | Organization à qual o evento pertence. |
merchant_id | string | null | Merchant ao qual o evento pertence. Nulo para eventos em nível de Organization. |
entity_type | string | Tipo da entidade afetada. Consulte Tipos de entidade. |
entity_id | string | null | ID da entidade afetada. |
action | string | Ação realizada. Consulte Ações. |
actor_type | string | Tipo de ator que realizou a ação (ex.: user, system, api_key, psp_webhook). |
actor_id | string | null | ID do ator — um UUID de usuário ou de chave de API. Nulo para eventos anônimos ou iniciados pelo sistema. |
before_state | object | null | Estado da entidade antes da alteração. Nulo na criação. |
after_state | object | null | Estado da entidade após a alteração. Nulo na exclusão. |
outcome | string | Resultado do evento (PCI DSS 10.3.1): success ou failure. |
error_message | string | null | Mensagem de erro quando outcome é failure. Nulo caso contrário. |
ip_address | string | null | Endereço IP do cliente de onde a requisição se originou. |
created_at | string | Timestamp do evento de auditoria (ISO 8601 UTC). |
Comparar before_state e after_state mostra exatamente o que um determinado evento alterou — para a ativação de um conector, por exemplo, você veria o status antigo e o novo lado a lado.
Tipos de entidade
O campo (e filtro) entity_type aceita:
organization, merchant, user, auth_session, merchant_connector, routing_profile, routing_rule_node, payment_instrument, order, api_key, user_membership, webhook_config, transaction, transaction_attempts, transaction_refund, transaction_refunds, audit_log.
Ações
O campo (e filtro) action aceita os seguintes valores, agrupados aqui pelo que descrevem:
| Grupo | Valores |
|---|---|
| Ciclo de vida da entidade | created, updated, deleted, activated, deactivated, revoked, status_changed |
| Acesso a dados | list, read, retrieve |
| Operações de pagamento | create, capture, void, refund |
| Autenticação | login_success, login_failure, logout, password_changed, account_locked, account_unlocked, token_issued, token_refreshed, token_revoked |
Endpoints
GET/api/v1/audit-logs
Auth: Chave de Organization (em toda a Organization; merchant_id opcional para detalhar) ou chave de Merchant (seus próprios logs). Escopo: audit_logs:read.
Retorna uma lista paginada de entradas de log de auditoria, delimitada pela chave de API autenticada. Combine filtros para restringir a trilha — por exemplo, todo login que falhou em janeiro, ou toda alteração já feita em um conector específico.
Parâmetros de consulta
| Field | Type | Required | Description |
|---|---|---|---|
page | integer | Não | Número da página, indexado a partir de 1 (padrão 1). |
limit | integer | Não | Itens por página (padrão 20, máx. 100). |
merchant_id | string | Não | Detalha um Merchant específico. Somente para chaves de Organization — ignorado para chaves de Merchant. |
entity_type | string | Não | Filtra pelo tipo de entidade afetada. Consulte Tipos de entidade. |
entity_id | string | Não | Filtra pelo ID da entidade afetada (UUID). |
action | string | Não | Filtra pela ação. Consulte Ações. |
actor_type | string | Não | Filtra pelo tipo de ator: user, system, scheduler ou psp_webhook. |
actor_id | string | Não | Filtra pelo ID do ator — um UUID de usuário ou de chave de API. |
outcome | string | Não | Filtra pelo resultado (PCI DSS 10.3.1): success ou failure. |
start_date | string | Não | Eventos a partir deste timestamp, inclusive (ISO 8601, ex.: 2025-01-01T00:00:00.000Z). |
end_date | string | Não | Eventos até este timestamp, inclusive (ISO 8601, ex.: 2025-12-31T23:59:59.999Z). |
Exemplo de requisição
curl -G https://api.tokeflow.com/api/v1/audit-logs \
-H "Authorization: Bearer sk_live_org_…" \
--data-urlencode "merchant_id=mrc_123" \
--data-urlencode "entity_type=merchant_connector" \
--data-urlencode "outcome=success" \
--data-urlencode "start_date=2026-01-01T00:00:00.000Z" \
--data-urlencode "page=1" \
--data-urlencode "limit=20"Exemplo de resposta — 200 OK
O endpoint retorna as entradas correspondentes em data (mais recentes primeiro) e os metadados de paginação em meta:
{
"data": [
{
"id": "9d3f2c1e-7a45-4b8e-9c12-3f6a8d0e5b21",
"organization_id": "org_123",
"merchant_id": "mrc_123",
"entity_type": "merchant_connector",
"entity_id": "1f7c9a2d-5e83-4b06-a914-c2d7e8f0a634",
"action": "activated",
"actor_type": "user",
"actor_id": "550e8400-e29b-41d4-a716-446655440000",
"before_state": { "status": "inactive" },
"after_state": { "status": "active" },
"outcome": "success",
"error_message": null,
"ip_address": "203.0.113.42",
"created_at": "2026-01-15T12:30:00.000Z"
},
{
"id": "4b8a1d6f-2c93-47e5-b120-9e5f7a3c8d16",
"organization_id": "org_123",
"merchant_id": "mrc_123",
"entity_type": "merchant_connector",
"entity_id": "1f7c9a2d-5e83-4b06-a914-c2d7e8f0a634",
"action": "updated",
"actor_type": "system",
"actor_id": null,
"before_state": { "priority": 2 },
"after_state": { "priority": 1 },
"outcome": "success",
"error_message": null,
"ip_address": null,
"created_at": "2026-01-14T09:12:44.000Z"
}
],
"meta": {
"page": 1,
"limit": 20,
"total": 87,
"total_pages": 5,
"has_next": true,
"has_prev": false
}
}Eventos com falha também são registrados. Uma entrada login_failure, por exemplo, traz outcome: "failure" e um error_message legível por humanos, junto com o ip_address de origem — útil para identificar tentativas de força bruta contra contas do Dashboard.
Erros
Todo erro usa o envelope padrão. Os casos mais comuns para este recurso:
| HTTP | type | Causa típica |
|---|---|---|
400 | validation_error | Valor de filtro inválido — por exemplo, um entity_type desconhecido ou uma data malformada. |
401 | authentication_error | Chave de API ausente ou inválida. |
403 | authorization_error | A chave não tem o escopo necessário. |
429 | rate_limit_error | Limite de taxa excedido — recue exponencialmente. |
Veja Erros para o envelope completo e o catálogo de tipos.
Relacionados
- Paginação e filtragem — convenções de listagem usadas em toda a API.
- Erros — o envelope de erro padrão.
- Autenticação — provisione chaves e escopos.
- Transações — os eventos de pagamento aos quais as entradas de auditoria fazem referência.