Pular para o conteúdo
IndicaSaaS
Navegar na documentação

Comissões & repasses

Como a comissão é calculada, como ela "amadurece" (refund-hold) e como você registra o pagamento ao afiliado. A plataforma calcula e registra, mas não movimenta dinheiro — o repasse é feito por você.

Status da venda

Toda venda atribuída aparece como pendente nos primeiros 15 dias após o pagamento e vira aprovada depois disso — uma janela de segurança contra estornos. Reembolso ou chargeback marcam a venda como estornada. É o status exibido na lista de vendas, tanto para o anunciante quanto para o afiliado.

Não confunda com o refund-hold da comissão (abaixo): a venda pode já estar "aprovada" (15 dias) enquanto a comissão ainda está retida para saque (120/7 dias).

Cálculo

TipoFórmula
Percentualvalor pago × percentual (ex.: 20% de R$ 49,00 = R$ 9,80)
Fixoum valor fixo por venda, independente do ticket

A base é o valor efetivamente pago em BRL. Valor zero ou inválido não comissiona, inclusive em programas de valor fixo; outra moeda é inelegível.

Recorrência

ModoComissiona
first_onlysó a 1ª cobrança
first_nas primeiras N cobranças
lifetimetoda cobrança, enquanto a assinatura viver (padrão)

O ciclo precisa ser o ordinal real da cobrança, comprovado pelo gateway. A quantidade de vendas observadas pelo IndicaSaaS não determina esse número. Sem ordinal confiável, first_only e first_n não comissionam; lifetime pode comissionar mantendo o ciclo desconhecido, se as demais regras passarem. No Stripe, o checkout pago da assinatura pode semear a atribuição; a comissão vem na invoice paga, sem dobrar na primeira.

Cancelamento bloqueia cobranças na data efetiva e depois dela; um pagamento anterior entregue tardiamente ainda pode ser elegível. A guarda de autocompra compara identidades conhecidas e não consegue provar que e-mails sem vínculo pertencem à mesma pessoa.

Ciclo de vida no ledger

  1. Retida (em hold). Nasce retida, com uma data de liberação = data da venda + janela de refund-hold.
  2. Liberada. Passada a janela, entra no valor "a repassar" automaticamente — sem nenhuma ação sua.
  3. Paga. Quando você registra o repasse, o lançamento vira pago.

Refund-hold

A janela de segurança antes de liberar (configurável por programa):

MétodoPadrão
Cartão (e método não identificado pelo gateway)120 dias
Pix e boleto7 dias

Pix e boleto não têm chargeback, por isso a janela curta. Quando o gateway não informa o método, vale a janela do cartão.

Clawback (estorno)

Reembolso ou chargeback geram um lançamento negativo que abate o valor a repassar, referenciando a conversão original. Assim você não paga por venda que voltou.

Vitória de disputa identificada pode restaurar somente sua parcela debitada, preservando reembolsos. Isso depende de o adaptador fornecer identidade e desfecho da disputa; Mercado Pago e AbacatePay ainda não fornecem esse desfecho ao motor.

Resumo do afiliado

Os painéis somam o ledger em três números:

CampoÉ
Pendentecomissão ainda dentro do refund-hold
Liberadofora do hold e ainda não pago (já abatidos os clawbacks)
Pagorepasses já registrados

Repasses

Você (anunciante) paga o afiliado por fora (Pix/transferência) e registra o pagamento em BRL. O sistema tenta notificar por e-mail; o registro não comprova recebimento da mensagem. Saldo líquido zero é encerrado sem criar repasse; ajuste genérico não é incluído automaticamente.

EndpointO que faz
GET /api/v1/payouts/owedquanto você deve a cada afiliado: total e a parcela já fora do hold
POST /api/v1/payouts/mark-paidregistra o repasse: marca as comissões liberadas como pagas e cria o registro
A reconciliação diária (madrugada) aplica mudanças de programa agendadas com aviso prévio (ex.: nova comissão). A liberação do hold é automática por data — não depende de job.

Pagamento em saldo na sua plataforma

Em vez de Pix, o programa pode pagar a comissão em saldo na plataforma do seu SaaS: saldo em reais na conta (com bônus opcional de até 200%) ou uma unidade própria (“R$ 1,00 de comissão = 10 créditos”). A comissão continua calculada em reais; a conversão acontece no lançamento, pela regra gravada em cada comissão quando a venda aconteceu. A fração que não fecha uma unidade inteira fica guardada para o próximo lançamento.

O afiliado vê que não é dinheiro antes de entrar: na página do programa, no catálogo, no widget e nos e-mails. Para se afiliar ele confirma isso à parte e informa a conta dele no seu SaaS. Trocar Pix por saldo, mudar a unidade ou baixar a conversão vale só para comissões novas, depois de 7 dias de aviso.

EndpointO que faz
GET /api/v1/payouts/creditssaldo a lançar por afiliado: quantidade pronta, conta no SaaS e o que ainda está retido
POST /api/v1/payouts/credits/settleregistra que você lançou o saldo (referência opcional)
GET /sdk/v1/creditso mesmo, para o backend do SaaS, com a sk_
POST /sdk/v1/credits/settlebaixa e devolve o que creditar; a mesma idempotencyKey devolve o mesmo lançamento
Um lançamento nunca baixa o mesmo saldo duas vezes: se o saldo mudar entre a leitura e a gravação (um estorno, outra aba, a API), nada é gravado e a resposta é 409 payout_conflict; releia e lance de novo.