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

# Rebalanceamento

> Como propostas de rebalanceamento nascem, são aprovadas e executadas

<Warning>
  Rascunho: especificação em definição. Endpoints e campos podem mudar.
</Warning>

Rebalancear é ajustar a proporção entre USDY e BUIDL no saldo rendendo. Na TESA, todo rebalanceamento nasce como proposta e só acontece com aprovação da empresa.

## De onde vêm as propostas

* **Sugeridas pela TESA** (`origem: tesa`): quando o spread de taxa entre os ativos passa do limite da política. O evento `alocacao.proposta` avisa a integração.
* **Criadas pela integração** (`origem: cliente`): com `POST /propostas`, informando a alocação alvo.

```mermaid theme={null}
stateDiagram-v2
  [*] --> pendente
  pendente --> aprovada: aprovar
  pendente --> rejeitada: rejeitar
  aprovada --> executada: assinada no custodiante e confirmada on-chain
```

## Fluxo

<Steps>
  <Step title="Receba ou crie a proposta">
    ```bash theme={null}
    curl -X POST https://api.t3sa.com/v1/propostas \
      -H "Authorization: Bearer tesa_live_..." \
      -H "Idempotency-Key: 3c9a0d52-1e7b-4f28-8d6a-5b2e7f0c9a14" \
      -H "Content-Type: application/json" \
      -d '{"alocacao_alvo":[{"ativo":"USDY","percentual":55},{"ativo":"BUIDL","percentual":45}],"motivo":"Revisão trimestral"}'
    ```
  </Step>

  <Step title="Revise os movimentos">
    `GET /propostas/{id}` mostra `movimentos` e `alocacao_resultante`. Confira antes de aprovar.
  </Step>

  <Step title="Aprove ou rejeite">
    Com uma chave `admin`, chame `POST /propostas/{id}/aprovar` ou `POST /propostas/{id}/rejeitar`. A aprovação exige `Idempotency-Key` e, na proposta atual, pode ser assinada com HMAC.
  </Step>

  <Step title="Assine no custodiante">
    A proposta aprovada traz `transacoes[].payload_nao_assinado`. O custodiante assina e transmite.
  </Step>

  <Step title="Acompanhe a execução">
    Depois da confirmação on-chain, a proposta passa a `executada` e os registros do tipo `rebalanceamento` aparecem em `GET /registros`.
  </Step>
</Steps>

## Alterar a política

Para mudar a proporção de forma permanente, e não só uma vez, use `PUT /politica-de-alocacao`. A nova versão vale para depósitos futuros e passa a ser a referência das próximas propostas. A soma dos percentuais deve fechar em 100, senão a API retorna `422` com `politica_invalida`.

<Note>
  Aprovar não move fundos. A movimentação só acontece depois da assinatura no custodiante da empresa.
</Note>
