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

# Proponer nueva política

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

Registra una nueva versión de la política definida por la empresa, con proporciones
y reglas de rebalanceo. Los porcentajes deben sumar 100 y solo se aceptan los
activos compatibles. La nueva versión se aplica a los depósitos futuros y sus reglas
comienzan a generar transacciones para aprobación. TESA no recomienda
asignaciones. Scope: `admin`.


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


## OpenAPI

````yaml /es/api/openapi.yaml put /politica-de-alocacao
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:
  /politica-de-alocacao:
    put:
      tags:
        - Política de asignación
      summary: Proponer nueva política
      description: >
        Borrador: especificación en curso. Los endpoints y campos pueden
        cambiar.


        Registra una nueva versión de la política definida por la empresa, con
        proporciones

        y reglas de rebalanceo. Los porcentajes deben sumar 100 y solo se
        aceptan los

        activos compatibles. La nueva versión se aplica a los depósitos futuros
        y sus reglas

        comienzan a generar transacciones para aprobación. TESA no recomienda

        asignaciones. Scope: `admin`.
      operationId: atualizarPolitica
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PoliticaAtualizar'
      responses:
        '200':
          description: Nueva versión registrada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoliticaDeAlocacao'
        '401':
          $ref: '#/components/responses/NaoAutenticado'
        '403':
          $ref: '#/components/responses/SemPermissao'
        '422':
          $ref: '#/components/responses/NaoProcessavel'
      security:
        - bearerAuth: []
        - bearerAuth: []
          tesaTimestamp: []
          tesaSignature: []
components:
  schemas:
    PoliticaAtualizar:
      type: object
      required:
        - alocacao
      properties:
        alocacao:
          type: array
          description: Los porcentajes deben sumar 100.
          items:
            $ref: '#/components/schemas/AtivoPercentual'
        regras:
          type: array
          description: >-
            Reglas de rebalanceo definidas por la empresa. Una lista vacía
            desactiva el rebalanceo por reglas.
          items:
            $ref: '#/components/schemas/RegraRebalanceamento'
        comentario:
          type: string
    PoliticaDeAlocacao:
      type: object
      properties:
        versao:
          type: integer
          examples:
            - 3
        alocacao:
          type: array
          description: >-
            Proporciones definidas por la empresa. TESA no recomienda
            asignaciones.
          items:
            $ref: '#/components/schemas/AtivoPercentual'
        regras:
          type: array
          description: Reglas de rebalanceo configuradas por la empresa.
          items:
            $ref: '#/components/schemas/RegraRebalanceamento'
        status:
          type: string
          enum:
            - vigente
            - pendente
        aprovada_por:
          type:
            - string
            - 'null'
        vigente_desde:
          type:
            - string
            - 'null'
          format: date-time
    AtivoPercentual:
      type: object
      required:
        - ativo
        - percentual
      properties:
        ativo:
          $ref: '#/components/schemas/Ativo'
        percentual:
          type: number
          examples:
            - 60
    RegraRebalanceamento:
      type: object
      description: >
        Disparador definido por la empresa. Cuando se cumple la regla, el
        software avisa y

        prepara una propuesta para que la empresa la apruebe y la firme. TESA no
        define ni

        sugiere umbrales.
      required:
        - gatilho
        - limite
      properties:
        id:
          type: string
          examples:
            - rgr_1
        gatilho:
          type: string
          enum:
            - spread_acima
            - desvio_da_alocacao
          description: >-
            `spread_acima`: diferencial de tasas entre los activos por encima
            del umbral. `desvio_da_alocacao`: desviación respecto de las
            proporciones de la política por encima del umbral.
        limite:
          type: number
          description: Valor elegido por la empresa, en puntos porcentuales.
        ativa:
          type: boolean
    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
  responses:
    NaoAutenticado:
      description: Clave ausente, inválida o revocada, o firma HMAC inválida.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
    SemPermissao:
      description: Scope insuficiente o IP fuera de la lista de permitidos.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
    NaoProcessavel:
      description: >-
        Regla de negocio incumplida, como saldo insuficiente o política
        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).
    tesaTimestamp:
      type: apiKey
      in: header
      name: Tesa-Timestamp
      description: >-
        Opcional en la propuesta actual. Hora de la solicitud en segundos Unix,
        utilizada en la firma HMAC.
    tesaSignature:
      type: apiKey
      in: header
      name: Tesa-Signature
      description: >-
        Opcional en la propuesta actual. HMAC-SHA256 codificado en hexadecimal
        del mensaje canónico (timestamp, método, ruta y cuerpo sin procesar).

````

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