Skip to main content
O Repass é uma plataforma multi-tenant de gestão de programas de afiliados. Este guia leva você do zero a uma comissão calculada: você cria um Programa, recruta e aprova um Afiliado, gera um Link rastreável, registra uma Conversão server-to-server e consulta a Comissão gerada, tudo via API REST. Toda a integração server-to-server usa uma API key com prefixo rstr_ no header Authorization: Bearer. A base URL é https://api.userepass.com.
Antes de começar, vale conhecer as convenções da API: IDs são opacos com prefixo de tipo + ULID (prog_, aff_, link_, conv_, comm_), dinheiro é sempre inteiro em centavos e percentuais em basis points (10000 bps = 100%). Todo POST aceita o header Idempotency-Key.
Usa TypeScript/Node? O SDK oficial @repass/sdk faz tudo deste guia de forma tipada, com retries, idempotência e paginação automáticas. Veja o Início rápido do SDK.

Visão do fluxo

Pré-requisitos

1

Tenha uma organização e uma API key

A organização é o seu tenant. Todo recurso é escopado por ela. Gere uma API key server-to-server (formato rstr_…) no painel da organização. A key herda a role do membro dono; para os passos abaixo, use uma key com role admin ou owner.Guarde a key em local seguro: ela é mostrada uma única vez. Detalhes completos em Autenticação.
Exporte a key
Nunca exponha uma rstr_ em código de frontend ou em repositórios públicos. Ela é uma credencial de servidor com os mesmos poderes do membro dono.

Passos

1

Crie um programa

Um Programa define moeda (atualmente BRL), modelo e janela de atribuição, hold de comissão e modo de aprovação de afiliados.
cURL
Resposta 201
Crie uma regra de comissão versionada para o programa com POST /programs/{id}/commission-rules (ex.: percentual em basis points com recorrência). A regra é imutável: alterar significa publicar uma nova versão. Sem uma regra vigente, a conversão até é atribuída, mas a comissão não tem como ser calculada.
2

Crie e aprove um afiliado

O Afiliado é identificado por e-mail dentro do programa. O mode define o status inicial: direct (padrão) já nasce approved; invite respeita o approvalMode do programa. Com manual, nasce pending e precisa ser aprovado. Usamos invite para ilustrar o fluxo de aprovação.
cURL (criar)
Resposta 201
Aprove o afiliado. A aprovação muda pending → approved e, nesse momento, o Repass cria automaticamente um Link default para ele.
cURL (aprovar)
Resposta 200
O afiliado pode precisar aceitar uma versão dos termos do programa antes de divulgar. A máquina de estados completa (pending, approved, paused, rejected, banned) está em Afiliados.
3

Gere um link rastreável

Cada Afiliado pode ter vários Links. O token é único globalmente e imutável; você pode opcionalmente informar um subId para segmentar a divulgação. O destino (destinationUrl) precisa estar na whitelist de domínios da organização.
cURL
Resposta 201
O afiliado divulga a URL pública de redirect https://api.userepass.com/t/{token}. Quando um visitante acessa, o Repass registra o Clique (visitante, geo, detecção de bot), seta um cookie first-party e responde 302 para o destino.
Redirect público (chamado pelo visitante)
Cupons sincronizados com o gateway de pagamento são uma forma alternativa de atribuição (sem clique). Veja Links e cupons.
4

Registre uma conversão server-to-server

Quando a venda acontece, registre a Conversão via POST /conversions. A API roda atribuição (resolvendo a qual afiliado a venda pertence) e o score de fraude de forma síncrona, e retorna a decisão completa.O customer.id (identificador estável do cliente no seu sistema) é obrigatório. Para o matching, informe o clickId quando você o tiver, ou sinais alternativos (visitorId, emailHash, fingerprint, couponCode ou customer.email). Ao menos um é exigido. O sourceEventId torna a chamada idempotente por fato de negócio: o mesmo sourceEventId retorna a conversão existente com o header Idempotent-Replay: true.
cURL
A resposta sempre traz o envelope { attributed, deduplicated, replayed, conversion }. Quando há atribuição e a conversão é nova, o status é 201 e a conversão vem em conversion.
Resposta 201 (atribuída)
Se o matching não encontra um afiliado, a API responde 200 com attributed: false e conversion: null. Sem afiliado não há vínculo a registrar, então nada é persistido.
Resposta 200 (sem atribuição)
Atribuição, regra e fraude são congelados em snapshots na conversão no momento do registro. O cálculo nunca é relido das tabelas vivas. Para o passo a passo completo desse fluxo, veja o guia de conversões server-to-server.
5

Consulte a comissão gerada

Ao registrar uma conversão atribuída, o Repass cria automaticamente a Comissão do primeiro ciclo de cobrança. Liste as comissões filtrando pela conversão.
cURL
Resposta 200
A comissão nasce pending e fica em hold até ser aprovada (pending → approved → paid). O detalhe (GET /commissions/{id}) traz o cálculo aberto: base, percentual em basis points, versão da regra aplicada. O ciclo de vida completo, incluindo clawbacks, está em Comissões.
Pronto: você registrou uma venda e o Repass calculou a comissão devida ao afiliado. A partir daqui, as comissões aprovadas são agregadas num payout no fechamento de ciclo.

Idempotência e erros

POSTs aceitam o header Idempotency-Key (escopo por organização + usuário, TTL de 24h): repetir a mesma chave com o mesmo corpo devolve a resposta original e o header Idempotent-Replay: true. Veja Idempotência. Erros seguem um envelope único { "error": { "type", "code", "message", "param?" } } com status HTTP semântico:
Exemplo de erro 404
O mapeamento completo de códigos está em Erros.

Próximos passos

Autenticação

API keys rstr_, roles e escopo da organização.

Conversões S2S

O fluxo completo de matching, atribuição e fraude.

Comissões

Cálculo inteiro, recorrência, tiers, clawback e estados.

Webhooks

Receba eventos de domínio assinados em tempo real.