Atribuição & tracking
Como uma indicação vira comissão. Primeiro ou último clique, com prazo por programa e pagamento confirmado no servidor pelo webhook do gateway.
O fluxo, passo a passo
- Clique no link. O afiliado compartilha
go.indicasaas.com/SEU_CODIGO. Redirecionamos o cliente pro seu site com uma referência assinada em?ref, que identifica o programa, o clique e seu prazo (além de repassarsube osutm_*). - Persistência no seu site. O
afs.jsguarda a referência por programa nolocalStorage, respeitando primeiro/último clique e validade. Leia a referência elegível comAFS.getRef(); recarregar a página não renova o prazo. - Checkout. Ao criar a cobrança no seu gateway, você anexa esse ref como metadata (campo varia por gateway — ver a página de cada um).
- Webhook. O webhook assinado da venda chega ao IndicaSaaS. Nós verificamos a assinatura, casamos o ref → afiliação → registramos a conversão e o lançamento de comissão no ledger.
indicasaas.com são domínios diferentes, o cookie do redirect não cruza domínios. Quem carrega o ref entre páginas é o ?ref na URL + o afs.js (localStorage). Sempre leia AFS.getRef() e mande pro seu backend no checkout.Cupom (venda sem clique no link)
O código reservado é único e permanente, mas só deve ser divulgado com couponUsable: true. Escolha a conexão Stripe do programa e solicite a sincronização explícita: no modo Stripe, criamos/verificamos o desconto; no manual, verificamos o Promotion Code informado. A atribuição exige que o gateway devolva o código na conexão escolhida. Desligar cupons interrompe a atribuição local por cupom; não desativa o desconto no Stripe.
Janela de cookie & modelo
A janela é de 7, 14 ou 30 dias. Em último clique, o SDK usa a indicação válida mais recente daquele programa; em primeiro clique, mantém a primeira até vencer. O motor confere o prazo pela data do pagamento, mesmo quando o webhook chega depois. Vínculos recorrentes já estabelecidos continuam sujeitos às regras de recorrência do programa.
Use o SDK no checkout: ler diretamente o ?ref não aplica a escolha entre cliques. O navegador conserva apenas as indicações que recebeu; esse mecanismo não recupera visitas de outro dispositivo.
Sub-ID & UTM
O afiliado pode gerar links com ?sub= (uma sub-tag dele, gravada em cada clique) e com utm_source/medium/campaign/content/term — o redirect repassa os UTMs ao seu site, então o seu próprio analytics (ex.: GA) também enxerga a origem.
No postback de comissão, {subtags_available} vale true quando há snapshot do clique, mesmo que as subtags estejam vazias; sem snapshot vale false. Uma referência assinada sem snapshot não recupera subtags perdidas.
Renovações (server-side join)
Uma venda atribuída pode guardar o vínculo da assinatura na conexão do gateway. Renovações sem ref podem reutilizar esse vínculo. Recuperação pelo cliente exige um ID autenticado do gateway, venda anterior atribuída na mesma conexão, janela válida e ausência de ambiguidade; não fazemos identificação entre dispositivos por e-mail ou fingerprint.
Refund-hold & clawback
Comissões nascem retidas por um período de segurança antes de liberar: 120 dias (cartão) e 7 dias (Pix) por padrão. Reembolso ou chargeback geram um lançamento negativo (clawback) que abate a comissão. Assim você não paga por venda que voltou.
Apenas clientes novos
Se newCustomersOnly estiver ativo, o motor exige informação comprovada de que a assinatura começou com um cliente novo. No Stripe, o backend do SaaS pode enviar metadata.aff_new = '1'|'0' no checkout após verificar o próprio cadastro. Ausência de histórico não prova cliente novo; sem sinal válido, o evento não comissiona. O vínculo da assinatura preserva essa informação nas renovações.