Documentação

Tudo para integrar o IndicaSaaS: conectar seu billing, rastrear vendas por indicação e embarcar o widget. Multi-gateway — a plataforma registra e calcula as comissões; o repasse ao afiliado é feito pelo próprio SaaS.

Início rápido (dono do SaaS)

  1. Crie seu SaaS no painel (vira seu "anunciante") e aceite o contrato.
  2. Conecte um gateway (Stripe, Mercado Pago, Asaas ou AbacatePay) na aba Instalação — basta um.
  3. Crie um programa (comissão, recorrência, janela de cookie) e publique no catálogo.
  4. Instale o tracking: carregue o afs.js e anexe o ?ref no checkout do gateway. Como funciona →
  5. Pronto. As vendas indicadas chegam com a comissão calculada; você registra o repasse ao afiliado.

Como funciona, em uma frase

O afiliado compartilha um link rastreável; no clique gravamos o click_id e mandamos o cliente pro seu site com ?ref; você anexa esse ref no checkout do seu gateway; o webhook assinado da venda chega ao IndicaSaaS e nós casamos o ref → registramos a conversão e calculamos a comissão. O pagamento ao afiliado é feito direto por você.

Novo por aqui? Comece por Atribuição & tracking — é o coração do produto — e depois vá para a página do seu gateway.

Superfícies & autenticação

BaseAuthUso
/api/public/*nenhumacatálogo público
/api/v1/*cookie de sessãomarketplace (anunciante + afiliado)
/sdk/v1/*Bearer sk_…widget — chamar do backend do seu SaaS
/webhooks/*assinatura do gatewayeventos de venda (não chamar à mão)

Dúvidas frequentes

Como autentico na API?
O marketplace (/api/v1) usa o cookie de sessão do Better Auth. O SDK do widget (/sdk/v1) usa Bearer sk_live_… no backend do seu SaaS. O catálogo (/api/public) é aberto.
Como recebo eventos de venda?
Conecte um gateway no painel. Stripe/Mercado Pago via OAuth (webhook único multi-tenant); Asaas/AbacatePay via API-key (webhook com token por merchant). A assinatura é sempre verificada.
Como funciona a atribuição?
click_id no link /go/:code → ?ref no site do SaaS → metadata no gateway → webhook assinado. Last-click, com janela de cookie por programa. Detalhes em docs/TRACKING.md no repositório.
O que é o refund-hold?
Comissões ficam retidas por um período (120 dias cartão / 7 dias Pix por padrão) antes de liberar, cobrindo reembolsos e chargebacks (clawback).
Os webhooks são idempotentes?
Sim — deduplicados por (conexão, event_id) e conversões por (conexão, charge_id), sempre escopados por tenant.