> ## Documentation Index
> Fetch the complete documentation index at: https://userepass.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Affiliates

> Ciclo de vida, tier, saldo e timeline dos afiliados.

`repass.affiliates` gerencia [afiliados](/docs/conceitos/afiliados) (cadastro, aprovação, transições de estado, tier e dados de pagamento), além de consultar saldo e a timeline de eventos. A criação é escopada por programa.

## Afiliado

```ts theme={null}
// Criar (escopado pelo programa)
const affiliate = await repass.affiliates.create("prog_…", {
  name: "Maria",
  email: "maria@x.com",
}); // → Affiliate

// Buscar
await repass.affiliates.retrieve("aff_…"); // → Affiliate

// Listar (RepassPage, filtros opcionais)
await repass.affiliates.list({ program_id: "prog_…", status: "approved", q: "maria" }); // → RepassPage<Affiliate>

// Atualizar dados de pagamento (parcial)
await repass.affiliates.update("aff_…", {
  payoutMethod: "pix",
  pixKey: "maria@x.com",
  pixKeyType: "email",
}); // → Affiliate
```

## Ciclo de vida

```ts theme={null}
await repass.affiliates.approve("aff_…");                          // → Affiliate (aprova o cadastro)
await repass.affiliates.reject("aff_…", { reason: "fora do perfil" }); // → Affiliate (rejeita o cadastro)
await repass.affiliates.pause("aff_…");                            // → Affiliate (suspende temporariamente)
await repass.affiliates.resume("aff_…");                           // → Affiliate (retoma após pausa)
await repass.affiliates.ban("aff_…", { reason: "violação dos termos" }); // → Affiliate (bane permanentemente)
```

## Tier

```ts theme={null}
// Move o afiliado para outro tier
await repass.affiliates.changeTier("aff_…", { tier: "gold" }); // → Affiliate

// tier: null volta ao tier base
await repass.affiliates.changeTier("aff_…", { tier: null }); // → Affiliate
```

## Saldo e timeline

```ts theme={null}
// Saldos: pendente, aprovado, em revisão e clawback
await repass.affiliates.balance("aff_…"); // → AffiliateBalance

// Array de eventos (não paginado)
await repass.affiliates.timeline("aff_…"); // → TimelineEvent[]
```

<Note>
  Para o schema completo de cada corpo (dados de cadastro, métodos de pagamento, formato dos saldos etc.) e os campos dos objetos retornados (ex.: `Affiliate`), consulte a [Referência da API](/docs/convencoes/ids-e-recursos). As regras de negócio estão em [Afiliados](/docs/conceitos/afiliados).
</Note>
