> ## 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.

# Afiliados (CLI)

> Comandos de cadastro, ciclo de vida, tier, saldo, timeline e import em massa de afiliados.

O grupo `affiliates` gerencia [afiliados](/docs/conceitos/afiliados) (cadastro, aprovação, transições de estado, tier e dados de pagamento), além de consultar saldo e timeline. `affiliate-imports` importa afiliados em massa via CSV. A criação é sempre escopada por programa.

## `affiliates`

```bash theme={null}
# Criar (escopado pelo programa)
repass affiliates create prog_xxx --data '{"name":"Maria Silva","email":"maria@exemplo.com"}'

# Buscar
repass affiliates get aff_xxx

# Listar (paginado, com filtros)
repass affiliates list --program-id prog_xxx --status approved --q maria --json

# Atualizar dados de pagamento (parcial)
repass affiliates update aff_xxx --data '{"payoutMethod":"pix","pixKey":"maria@exemplo.com","pixKeyType":"email"}'
```

`affiliates list` é paginado. Veja [Paginação](/docs/cli/paginacao) para `--all` e cursores.

### Ciclo de vida

```bash theme={null}
repass affiliates approve aff_xxx                                            # aprova o cadastro pendente
repass affiliates reject aff_xxx --data '{"reason":"fora do perfil"}'        # rejeita o cadastro
repass affiliates pause aff_xxx                                              # suspende temporariamente
repass affiliates resume aff_xxx                                             # retoma após pausa
repass affiliates ban aff_xxx --data '{"reason":"violação dos termos"}' --yes # bane permanentemente
```

<Warning>
  `affiliates ban` é `destructive`: não há "desbanir" no registry, é mudança de estado permanente na prática. Rode `affiliates get aff_xxx` antes para confirmar a identidade/estado atual. Em terminal interativo pede confirmação; fora de TTY exige `--yes` (veja [Convenções](/docs/cli/convencoes#modelo-de-risco)).
</Warning>

### Tier

```bash theme={null}
# Move o afiliado para outro tier
repass affiliates change-tier aff_xxx --data '{"tier":"gold"}'

# tier: null volta ao tier base
repass affiliates change-tier aff_xxx --data '{"tier":null}'
```

### Saldo, timeline e convite

```bash theme={null}
# Saldos: pendente, aprovado, em revisão e clawback
repass affiliates balance aff_xxx --json

# Trilha imutável de eventos, em ordem cronológica (não paginado)
repass affiliates timeline aff_xxx --json

# Convida um afiliado já existente para o portal (envia URL de claim por e-mail)
repass affiliates invite aff_xxx
```

```text repass affiliates balance aff_xxx theme={null}
pendingCents  approvedCents  inReviewCents  clawbackCents
------------  -------------  -------------  -------------
50000         120000         0              0
```

## `affiliate-imports`

Import assíncrono de afiliados a partir de um CSV. Usa `--upload`, não `--data`. Todos os comandos operam sobre a organização; `create` recebe `program-id`.

```bash theme={null}
# Importar (--upload, processamento assíncrono)
repass affiliate-imports create prog_xxx --upload ./afiliados.csv

# Listar os imports da organização (paginado)
repass affiliate-imports list --json

# Status e progresso de um import (totais, erros por linha)
repass affiliate-imports get imp_xxx --json
```

```json repass affiliate-imports get imp_xxx --json theme={null}
{
  "id": "imp_01J9Z…",
  "programId": "prog_xxx",
  "status": "completed",
  "totalRows": 120,
  "importedRows": 118,
  "failedRows": 2,
  …
}
```

`affiliate-imports list` é paginado. Veja [Paginação](/docs/cli/paginacao).

<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, consulte a página SDK equivalente ([Affiliates](/docs/sdk/recursos/affiliates)) e a [Referência da API](/docs/convencoes/ids-e-recursos). As regras de negócio estão em [Afiliados](/docs/conceitos/afiliados).
</Note>
