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

> Borrador: especificación en curso. Los endpoints y campos pueden cambiar.

Lista las propuestas de asignación y rebalanceo, generadas por una regla de la
política de la empresa (`origem: regra`) o creadas por la empresa (`origem: manual`).
Scope: `read`.


> [!WARNING]
>
> Borrador: especificación en curso. Los endpoints y campos pueden cambiar.


## OpenAPI

````yaml /es/api/openapi.yaml get /propostas
openapi: 3.1.0
info:
  title: TESA API
  version: 0.2.0-rascunho
  description: >
    **Borrador: especificación en curso. Los endpoints y campos pueden
    cambiar.**


    API del software de tesorería B2B de TESA. El USDC ingresa mediante CCTP de
    Circle

    (Ethereum y Solana) y se asigna a los Treasuries tokenizados (USDY y BUIDL)

    que define la política de la empresa. TESA no recomienda asignaciones, no
    administra

    portafolios ni ejecuta órdenes en nombre de la empresa: el software prepara
    las

    transacciones y la empresa las aprueba y las firma.

    La API es no custodial: nunca recibe una clave privada ni una transacción
    firmada.

    Devuelve transacciones sin firmar y solicitudes de aprobación, y quien firma
    es la

    empresa o su custodio.


    Las rutas de los recursos, los nombres de los campos, los nombres de los
    eventos y los

    códigos de error están en portugués por diseño. Los montos son cadenas
    decimales de USDC

    con dos decimales, las fechas están en ISO 8601 UTC y las listas usan
    paginación por

    cursor (`limite` y `apos`). Todos los valores de ejemplo son ilustrativos.
  contact:
    name: TESA
    email: contact@t3sa.com
    url: https://t3sa.com
servers:
  - url: https://api.t3sa.com/v1
    description: Producción (URL propuesta, aún no disponible)
  - url: https://sandbox.api.t3sa.com/v1
    description: Sandbox (URL propuesta, aún no disponible)
security:
  - bearerAuth: []
tags:
  - name: Organización
    description: La empresa cliente, titular de todas las claves y recursos.
  - name: Carteras
    description: >-
      Billeteras de la empresa vinculadas por dirección pública. Ninguna clave
      pasa por la API.
  - name: Posiciones
    description: Una instantánea de la posición de caja, igual a la del panel.
  - name: Política de asignación
    description: >-
      Activos, proporciones y reglas de rebalanceo definidos y aprobados por la
      empresa. TESA no recomienda asignaciones.
  - name: Propuestas
    description: >-
      Transacciones que el software prepara cuando se cumple una regla de la
      política de la empresa, o por solicitud de la propia empresa. Solo se
      ejecutan con la aprobación y la firma de la empresa.
  - name: Rescates
    description: Devolución de saldo en USDC a una billetera vinculada de la empresa.
  - name: Registros
    description: Pista de auditoría on-chain, con el hash de cada transacción.
  - name: Rendimiento y uso
    description: >-
      Rendimiento calculado por período, solo informativo, y facturas de uso de
      la API. No se cobra nada sobre saldo, rendimiento ni capital principal.
  - name: Webhooks
    description: Destinos que reciben los eventos de TESA.
paths:
  /propostas:
    get:
      tags:
        - Propuestas
      summary: Listar propuestas
      description: >
        Borrador: especificación en curso. Los endpoints y campos pueden
        cambiar.


        Lista las propuestas de asignación y rebalanceo, generadas por una regla
        de la

        política de la empresa (`origem: regra`) o creadas por la empresa
        (`origem: manual`).

        Scope: `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 propuestas.
          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: Número máximo de elementos por página.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
    Apos:
      name: apos
      in: query
      description: Cursor devuelto en `proximo_cursor` en la 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:
            - regra
            - manual
          description: >-
            `regra`: generada por una regla de la política de la empresa.
            `manual`: creada por la empresa con `POST /propostas`.
        regra_id:
          type:
            - string
            - 'null'
          description: >-
            Regla de la política que generó la propuesta, cuando `origem` es
            `regra`.
        motivo:
          type: string
        movimentos:
          type: array
          items:
            $ref: '#/components/schemas/Movimento'
        alocacao_resultante:
          type: array
          items:
            $ref: '#/components/schemas/AtivoValor'
        transacoes:
          type: array
          description: Disponibles a partir del estado `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: >-
        Transacción sin firmar, entregada al custodio de la empresa para su
        firma.
      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: Monto en USDC, una cadena decimal con dos decimales.
      examples:
        - '842110.00'
    Rede:
      type: string
      enum:
        - ethereum
        - solana
  responses:
    NaoAutenticado:
      description: Clave ausente, inválida o revocada, o firma HMAC inválida.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        La clave de API de la organización (`tesa_live_...` en producción,
        `tesa_test_...` en el sandbox).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.