Início rápido
Da criação da marca ao primeiro evento aceito.
Peça as credenciais da marca
No painel de managers, em Marcas → Nova marca, um SUPER_ADMIN cria a marca e recebe duas credenciais, exibidas uma única vez:
api_key: vai no headerx-brand-key.hmac_secret: assina cada requisição e nunca trafega.
Se perder, rotacione em Marcas → Credenciais de integração.
Capture o btag no site
O redirector manda o jogador para a sua URL com ?btag=<id>. Guarde esse valor (cookie ou storage) até o cadastro. Outros parâmetros (UTMs, click_id) também chegam na query e podem ser ignorados pela marca, porque o zt-partners já os guardou no clique.
const btag = new URLSearchParams(location.search).get('btag');
if (btag) document.cookie = `btrack_btag=${btag}; max-age=${60 * 60 * 24 * 30}; path=/`;Assine e envie o cadastro
import { createHmac } from 'node:crypto';
export async function sendAffsEvent(event: object) {
const body = JSON.stringify(event);
const timestamp = String(Math.floor(Date.now() / 1000));
const signature = createHmac('sha256', process.env.ZT_AFFS_HMAC_SECRET!)
.update(`${timestamp}.${body}`)
.digest('hex');
const res = await fetch(`${process.env.ZT_AFFS_URL}/v1/integration/events`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-brand-key': process.env.ZT_AFFS_API_KEY!,
'x-timestamp': timestamp,
'x-signature': signature,
},
body,
});
return res.json();
}
await sendAffsEvent({
type: 'player.registered',
event_id: `reg-${player.id}`,
occurred_at: player.createdAt.toISOString(),
external_player_id: player.id,
btag: cookies.btrack_btag,
});Envie os eventos seguintes
Depois do cadastro, envie deposit.confirmed, withdrawal.confirmed, bet.placed e bet.settled do mesmo external_player_id. Use um event_id estável (por exemplo dep-<id da transação>), porque é ele que garante que um reenvio não gera comissão duplicada.
Confira no painel
Em Managers → Relatórios → Eventos da Integração cada evento aparece com o status PROCESSED, IGNORED (com o motivo) ou FAILED. As comissões geradas ficam em Movimentos → Comissões.
Quer testar sem código?
O Playground assina e envia qualquer evento direto do navegador, com as credenciais da sua marca.