repass.programs gerencia programas (moeda, modelo e janela de atribuição, hold de comissão e modo de aprovação), além dos sub-recursos tiers (cada um com seu próprio commissionRules), commissionRules (a regra padrão do programa) e terms.
Programa
Ações de estado
Tiers
repass.programs.tiers: lista ordenada de tiers, geridos individualmente (criar, renomear, reposicionar, reordenar e arquivar). Cada tier tem seu próprio histórico de regras de comissão (sub-recurso commissionRules). ProgramTier traz archivedAt (soft-delete; null quando ativo) e não carrega mais referência direta a uma regra. Os métodos list/reorder retornam um array (não paginado).
Regras de comissão do tier
repass.programs.tiers.commissionRules: cada tier tem seu próprio histórico versionado e imutável de regras, independente do padrão do programa. Enquanto o tier não publica uma regra própria, ele cai na regra padrão do programa (ver precedência).
Regras de comissão (padrão do programa)
repass.programs.commissionRules: regra padrão do programa, versionada e imutável; cada alteração publica uma nova versão. É o dono programTierId === null: o fallback de qualquer afiliado sem regra custom e sem regra de tier própria.
Termos
repass.programs.terms: versões dos termos do programa.
Para o schema completo de cada corpo (defaults de programa, formato de
recurrence, tiers etc.) e os campos dos objetos retornados (ex.: Program), consulte a Referência da API. As regras de negócio de programas e comissões estão em Programas e regras e Comissões.