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

# Listar propostas

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

Lista propostas de alocação e de rebalanceamento. Escopo: `read`.


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


## OpenAPI

````yaml /api/openapi.yaml get /propostas
openapi: 3.1.0
info:
  title: API da TESA
  version: 0.1.0-rascunho
  description: >
    **Rascunho: especificação em definição. Endpoints e campos podem mudar.**


    API de infraestrutura de tesouraria B2B da TESA. USDC entra pelo CCTP da
    Circle

    (Ethereum e Solana) e é alocado em Treasuries tokenizados (USDY e BUIDL).

    A API é non-custodial: nunca recebe chave privada nem transação assinada.
    Ela

    devolve transações não assinadas e solicitações de aprovação, e quem assina
    é

    a empresa ou o seu custodiante.


    Montantes são strings decimais em USDC com duas casas, datas estão em ISO
    8601

    UTC e listas usam paginação por cursor (`limite` e `apos`). Todos os valores
    de

    exemplo são ilustrativos.
  contact:
    name: TESA
    email: contact@t3sa.com
    url: https://t3sa.com
servers:
  - url: https://api.t3sa.com/v1
    description: Produção (URL proposta, ainda não ativa)
  - url: https://sandbox.api.t3sa.com/v1
    description: Sandbox (URL proposta, ainda não ativa)
security:
  - bearerAuth: []
tags:
  - name: Organização
    description: A empresa cliente, dona de todas as chaves e recursos.
  - name: Carteiras
    description: >-
      Carteiras da empresa vinculadas por endereço público. Nenhuma chave passa
      pela API.
  - name: Posições
    description: O retrato do caixa, igual ao do painel.
  - name: Política de alocação
    description: Ativos aprovados pela empresa e a proporção entre eles.
  - name: Propostas
    description: >-
      Toda movimentação de alocação nasce como proposta e só executa com
      aprovação.
  - name: Resgates
    description: Devolução de saldo em USDC para uma carteira vinculada da empresa.
  - name: Registros
    description: Trilha de auditoria on-chain, com o hash de cada transação.
  - name: Rendimento e cobranças
    description: Yield apurado por período e a taxa cobrada sobre ele.
  - name: Webhooks
    description: Destinos que recebem os eventos da TESA.
paths:
  /propostas:
    get:
      tags:
        - Propostas
      summary: Listar propostas
      description: |
        Rascunho: especificação em definição. Endpoints e campos podem mudar.

        Lista propostas de alocação e de rebalanceamento. Escopo: `read`.
      operationId: listarPropostas
      parameters:
        - $ref: '#/components/parameters/Limite'
        - $ref: '#/components/parameters/Apos'
        - name: tipo
          in: query
          schema:
            type: string
            enum:
              - alocacao
              - rebalanceamento
        - name: status
          in: query
          schema:
            type: string
            enum:
              - pendente
              - aprovada
              - rejeitada
              - executada
      responses:
        '200':
          description: Página de propostas.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Pagina'
                  - type: object
                    properties:
                      dados:
                        type: array
                        items:
                          $ref: '#/components/schemas/Proposta'
        '401':
          $ref: '#/components/responses/NaoAutenticado'
components:
  parameters:
    Limite:
      name: limite
      in: query
      description: Quantidade máxima de itens por página.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
    Apos:
      name: apos
      in: query
      description: Cursor devolvido em `proximo_cursor` na página anterior.
      schema:
        type: string
  schemas:
    Pagina:
      type: object
      properties:
        tem_mais:
          type: boolean
        proximo_cursor:
          type:
            - string
            - 'null'
    Proposta:
      type: object
      properties:
        id:
          type: string
          examples:
            - prop_8f2a1c
        tipo:
          type: string
          enum:
            - alocacao
            - rebalanceamento
        status:
          type: string
          enum:
            - pendente
            - aprovada
            - rejeitada
            - executada
        origem:
          type: string
          enum:
            - tesa
            - cliente
        motivo:
          type: string
        movimentos:
          type: array
          items:
            $ref: '#/components/schemas/Movimento'
        alocacao_resultante:
          type: array
          items:
            $ref: '#/components/schemas/AtivoValor'
        transacoes:
          type: array
          description: Disponíveis a partir do status `aprovada`.
          items:
            $ref: '#/components/schemas/Transacao'
        criada_em:
          type: string
          format: date-time
        decidida_em:
          type:
            - string
            - 'null'
          format: date-time
        executada_em:
          type:
            - string
            - 'null'
          format: date-time
    Movimento:
      type: object
      properties:
        de:
          $ref: '#/components/schemas/Ativo'
        para:
          $ref: '#/components/schemas/Ativo'
        valor:
          $ref: '#/components/schemas/Valor'
    AtivoValor:
      type: object
      properties:
        ativo:
          $ref: '#/components/schemas/Ativo'
        valor:
          $ref: '#/components/schemas/Valor'
        percentual:
          type: number
          examples:
            - 60
    Transacao:
      type: object
      description: >-
        Transação não assinada, entregue ao custodiante da empresa para
        assinatura.
      properties:
        id:
          type: string
          examples:
            - tx_01
        rede:
          $ref: '#/components/schemas/Rede'
        carteira_id:
          type: string
        status:
          type: string
          enum:
            - aguardando_assinatura
            - transmitida
            - confirmada
            - falhou
        payload_nao_assinado:
          type: string
          examples:
            - 0x02f8...
        tx_hash:
          type:
            - string
            - 'null'
    Erro:
      type: object
      properties:
        erro:
          type: object
          properties:
            codigo:
              type: string
              examples:
                - saldo_insuficiente
            mensagem:
              type: string
            campo:
              type:
                - string
                - 'null'
            requisicao_id:
              type: string
              examples:
                - req_9d8c7b
    Ativo:
      type: string
      enum:
        - USDY
        - BUIDL
    Valor:
      type: string
      pattern: ^\d+\.\d{2}$
      description: Montante em USDC, string decimal com duas casas.
      examples:
        - '842110.00'
    Rede:
      type: string
      enum:
        - ethereum
        - solana
  responses:
    NaoAutenticado:
      description: Chave ausente, inválida ou revogada, ou assinatura HMAC inválida.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Chave de API da organização (`tesa_live_...` em produção,
        `tesa_test_...` em sandbox).

````