Funcional

Partner Program — parceiros, indicações e portal

O programa de parceiros da Radhr AI (ADR-0014) — cadastro público em /partners, aprovação pelo master, organização do parceiro, termos com aceite eletrônico, portal com indicações, clientes vinculados e links de atribuição (sprint 1); recebimentos, fechamento mensal com razão imutável, demonstrativo, nota fiscal, pagamentos, reserva e dados bancários cifrados (sprint 2); campanhas do master, metas e aceleradores, ranking, Partner Health Score e forecast (sprint 3).

Objetivo

Transformar agências, consultorias, implementadores, influenciadores e revendedores num canal de aquisição e expansão da Radhr AI, com regras publicadas e verificáveis. Nesta sprint (1) existem o cadastro, a aprovação, a organização do parceiro, os termos, o portal com indicações e clientes vinculados, os links de atribuição e o painel do master. As comissões, os fechamentos e os pagamentos (sprint 2), as metas, o ranking, o Health Score e o forecast (sprint 3), o Coach e a Academy (sprint 4) e a revenda white label (sprint 5) estão desenhados em docs/radar/partner-program.md e, dos itens acima, só os das sprints 3–5 ainda não existem no código. A sprint 2 trouxe o dinheiro: recebimentos, fechamento mensal, demonstrativo, nota fiscal, pagamentos, reserva e dados bancários — tudo sobre as regras puras e testadas de src/parceiros/programa.ts.

Fluxo

  1. Cadastro (/partners): a empresa preenche razão social, CNPJ (validado pelos dígitos), tipo, porte, região, responsável, e-mail e como pretende vender, e aceita os termos. Limite de 10 cadastros por IP por dia e campo armadilha para robôs. O parceiro nasce pendente; o responsável recebe "recebemos" e os admins da Witbiz são avisados com o link da ficha. CNPJ ou e-mail já cadastrados recebem a mesma resposta pública, sem revelar nada.
  2. Aprovação (/radar/plataforma/parceiros/:id, só o master): "Aprovar" cria a organização do parceiro no plano parceiro (slug do nome, único), liga a flag partner_program para ela, gera o código (P + 7 caracteres) e o convite de owner (7 dias) e manda o e-mail de boas-vindas com o link do convite e o link de indicação. "Recusar" exige motivo e avisa o responsável; recadastro só depois de 90 dias.
  3. Termos (/radar/parceiro/termos): no primeiro acesso ao portal o admin da organização do parceiro aceita os termos da versão vigente (versão, quem, quando, IP e navegador registrados; evento parceiro_termos_aceitos). O status aprovado vira ativo. Nova versão exige novo aceite.
  4. Indicação: pelo portal (registro de oportunidade), pelo link (/?ref=<código> ou /planos?ref=<código>: o widget guarda a origem e o lead que conversar ou preencher o formulário fica atribuído) ou por nomeação (o master vincula). O registro cria um lead na organização 1 (origem parceiro) e a indicação registrada com exclusividade de 90 dias, renovável uma vez; a Witbiz é avisada por e-mail. O parceiro acompanha só o status.
  5. Conflito: CNPJ ou domínio já registrados por outro parceiro dentro da exclusividade, empresa já cliente ou em negociação direta há menos de 90 dias → a indicação nasce duplicada, com o motivo, sem lead.
  6. Espelho: o estágio do lead reflete na indicação (qualificado/handoff/reunião/proposta → qualificada; perdido → perdida). Quando o master cria a organização da empresa e a vincula pela ficha do parceiro, a indicação vai a em_teste (ou ativa se o plano já é pagante), a organização ganha parceiro_id e nasce o vínculo em parceiro_clientes. A ativação pelo primeiro recebimento chega na sprint 2.
  7. Expiração: o cron diário marca como expirada a indicação registrada ou qualificada cuja exclusividade venceu sem conversão.
  8. Recebimentos (/radar/plataforma/recebimentos, master): a única fonte de comissão. Registrados à mão, por importação de CSV (prévia linha a linha; referência repetida é pulada) ou pelo webhook do Asaas (POST /api/webhooks/asaas, token no header, idempotente por id do pagamento; referência externa org:<id>[:anual]). Estorno é linha nova negativa apontando a origem. O primeiro recebimento de uma organização indicada marca o vínculo como pagante (ativo_desde) e leva a indicação a ativa.
  9. Fechamento (cron do dia 1 à 1h UTC para a competência anterior, ou "Rodar agora" do master, idempotente): para cada parceiro, o motor puro recebe os recebimentos da competência (anual em 1/12 a partir do mês do recebimento), os clientes ativos (recebimento nos últimos 35 dias; anual 12 meses), o nível (histerese de dois fechamentos; os requisitos de certificação entram com a Academy, sprint 4), o trimestre (clientes novos, meta do nível, comissão do MRR novo, manutenção), a conquista (promovido no fechamento anterior e mantido), a retenção (marcos de 6/12/24/36 meses), o upgrade de plano, a reserva a liberar (competência −2), os ajustes e penalidades pendentes do master, o saldo anterior e o bloqueio. Grava o fechamento (hash, imutável) e o razão (parceiro_lancamentos, imutável); em análise ou suspenso o pagamento fica congelado (saldo transportado); abaixo de R$ 100 o saldo transporta. O parceiro recebe o demonstrativo por e-mail.
  10. Nota fiscal e pagamento: o parceiro informa número e chave da NF no demonstrativo (fechado → nf_recebida); o master marca como pago (PIX/TED, referência) só com a NF; as linhas do razão viram pago (a reserva fica retido). Erro depois do fechamento vira ajuste ou penalidade do master para uma competência ainda aberta, com motivo.
  11. Cancelamento: o master encerra o vínculo com o cliente; até 30 dias do primeiro recebimento a indicação é anulada (sem comissão, não conta para metas); depois, vai a perdida e a comissão para.
  12. Campanhas (/radar/plataforma/parceiros/campanhas, master): sobrescrevem a tabela padrão por período (AAAA-MM) e público (níveis, tipos, parceiros), com orçamento. meta_trimestral troca a meta do nível; bonus_novo paga R$ por cliente novo no mês (limitado ao saldo do orçamento, e a linha avisa); comissao_extra soma pontos à comissão (até 15); desafio registra prêmio e critério para o master decidir. O fechamento aplica as vigentes, grava a campanha na referência do lançamento (bonus_campanha) e soma o gasto.
  13. Partner Health Score e forecast (/radar/parceiro/saude, /radar/parceiro/forecast): calculados do banco (vínculos, recebimentos de 24 meses, indicações, bônus de expansão) pelas regras puras de programa.ts, gravados por dia em parceiro_scores (cron diário, fechamento, "Reler agora") e espelhados em parceiros.health_score. Parceiro com menos de 4 fechamentos tem retenção e churn neutros. O forecast usa churn dos 12 meses (mínimo 2%/mês), expansão 0,5% e o pipeline das indicações abertas (10/30/55% por status, MRR do Profissional como referência).
  14. Ranking (/radar/parceiro/ranking): gravado a cada fechamento mensal por MRR líquido gerado (comissão ÷ percentual), desempate por clientes ativos e Health. O admin do parceiro decide aparecer no ranking público (/partners/ranking: nome e nível dos 10 primeiros, nunca valores); os demais aparecem no portal como "parceiro".
  15. Metas (/radar/parceiro/metas): nível e próximo nível, meta do trimestre corrente (clientes pagantes desde o início do trimestre contra a meta do nível ou da campanha), acelerador atual, degraus, próximos marcos de retenção, histórico de nível e campanhas vigentes. A Home da organização de parceiro ganha o cartão da parceria.

Regras de negócio

Casos de uso

Telas

Permissões

Perguntas frequentes

Revisado em 12/10/2026 · ← Toda a documentação