Skip to main content
Toda mudança de estado relevante na plataforma gera um Evento imutável. Esse mesmo log alimenta os webhooks: ao assinar um endpoint você escolhe quais tipos quer receber. Esta página é o catálogo completo dos tipos emitidos. A taxonomia é estável e versionada: cada tipo tem um nome recurso.ação, um aggregateType e uma version de schema de payload. Hoje todos os tipos estão em version: 1. A lista também é servida pela API em GET /events/types e é exatamente o conjunto válido para o campo subscribedEvents de um webhook endpoint.
O webhook.test é um tipo sintético: ele é entregue apenas pelo endpoint de teste (POST /webhook-endpoints/{id}/test), mas nunca é registrado no log de eventos nem aparece neste catálogo. Por isso ele é rejeitado se você tentar incluí-lo em subscribedEvents. Veja Visão geral.

Envelope do evento

Todo evento (listado em GET /events, lido em GET /events/{id} ou entregue no body de um webhook) usa o mesmo envelope:
Envelope
string
Identificador evt_ + ULID. O ULID dá ordenação cronológica natural: é o cursor de paginação de GET /events e a chave de deduplicação no recebimento de webhooks.
string
Organização (tenant) dona do evento. Presente nas respostas de GET /events e GET /events/{id}.
string
Tipo namespaced recurso.ação (ex.: commission.paid). Sempre um dos valores deste catálogo.
integer
Versão do schema do payload para aquele type. Hoje sempre 1.
string
Tipo do agregado a que o evento se refere (ex.: commission, payout).
string
ID do agregado (ex.: comm_..., pay_..., aff_...).
object
Snapshot do fato. Pode ser um diff ({ before, after }), a entidade completa ou campos específicos, conforme o tipo.
object
{ actor: { type, id }, source? }. actor.type é user, api_key ou system.
string
Quando o fato ocorreu (ISO-8601). Pode ser definido pelo emissor.
string
Quando o evento foi registrado (ISO-8601).
A entrega de webhook é at-least-once: dedupe pelo campo id do evento. O mesmo envelope pode chegar mais de uma vez após retry ou replay. Veja Retries e dead letter.

Listar a taxonomia pela API

O catálogo abaixo é estático, mas você pode lê-lo em tempo de execução, útil para validar dinamicamente os tipos antes de assinar um endpoint:
cURL
Resposta (recorte)

Catálogo por domínio

Os tipos abaixo são o catálogo completo. Os domínios webhook_endpoint.* e reconciliation.* refletem a própria operação dos seus webhooks e a verificação de integridade dos dados; os demais acompanham o ciclo de vida dos recursos de negócio.
Agregado program (e commission_rule). Veja Programas e regras.
Agregados affiliate e terms. Veja Afiliados e Termos.
Agregados click, visitor e organization (varredura de retenção de IP). Veja Tracking e Atribuição.
Agregado conversion. Veja Conversões e fraude.
Agregado commission. Veja Comissões.
Agregado payout. Veja Payouts.
Agregado invoice. Veja Fiscal.
Agregados reprocess_job e commission. Veja Reprocessamento.
Eventos emitidos quando as configurações da organização mudam.
Agregado webhook_endpoint. Secrets aparecem mascarados (rwhs_***1234) nos payloads. Veja Visão geral e Assinatura.
Verificação diária de integridade que confere se o estado atual dos recursos financeiros (comissões, payouts, conversões e notas fiscais) bate com o histórico de eventos. Ator sempre system. Veja Event store.

Atores (metadata.actor)

Cada evento carrega quem o originou. O actor.type ajuda a distinguir ações de usuário de processos automáticos:
Eventos como payout.*, commission.approved, commission.paid, webhook_endpoint.disabled e os de reconciliation.* são tipicamente emitidos por jobs internos e chegam com actor.type: "system".
Há duas formas de consumir esses eventos:

Pull: GET /events

Liste e filtre o log por tipo, agregado, ator e período, com paginação por cursor ULID. O log é um recurso de primeira classe da API.

Push: Webhooks

Assine um subconjunto da taxonomia por endpoint e receba os eventos por HTTP, com assinatura HMAC e retries.

Filtrando o log por tipo

cURL
Você também pode filtrar por múltiplos tipos com types repetido, por aggregate_type/aggregate_id, por actor_type e por período (occurred_since inclusivo, occurred_until exclusivo). Para detalhes de parâmetros e do formato de paginação, veja a aba Referência da API, Paginação e Event store.

Assinando um subconjunto em um webhook

O campo subscribedEvents aceita apenas tipos deste catálogo (mínimo de 1). Um tipo desconhecido (inclusive webhook.test) é rejeitado com 400 parameter_invalid.
cURL

Próximos passos

Assinatura HMAC

Como verificar o header Repass-Signature e proteger seus endpoints contra replay.

Retries e dead letter

Cronograma de tentativas, auto-disable e replay manual de entregas.

Event store

O log imutável de eventos como recurso de API: filtros, cursor e auditoria.

Conversões server-to-server

Gere conversion.created e seus eventos de comissão a partir do seu backend.