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

# TESA API

> Put your company's USDC cash to work in tokenized Treasuries from your own system, without handing over the keys.

<Warning>
  Draft: specification in progress. Endpoints and fields may change.
</Warning>

The TESA API brings the same infrastructure as the dashboard into your company's own systems. With it, your integration reads positions and yield, prepares allocations, rebalancing and redemptions, and tracks every on-chain transaction. The keys stay with the company or with the custodian it already uses.

<CardGroup cols={3}>
  <Card title="Quickstart" icon="rocket" href="/docs/en/api/quickstart">
    First call in 5 minutes.
  </Card>

  <Card title="Why TESA" icon="scale" href="/docs/en/api/por-que-tesa">
    What the API saves you compared with building in-house.
  </Card>

  <Card title="API reference" icon="list-tree" href="/docs/en/api/endpoints">
    Every endpoint, with parameters and responses.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/docs/en/api/webhooks">
    Deposit, allocation, redemption and billing events.
  </Card>

  <Card title="Examples" icon="code" href="/docs/en/api/guias/resgate">
    End-to-end redemption and rebalancing flows.
  </Card>
</CardGroup>

## Key features

<AccordionGroup>
  <Accordion title="Real-time positions and yield" icon="chart-line">
    Consolidated cash, yielding balance, available balance, split between USDY and BUIDL, and accrued yield, with the same figures as the dashboard.
  </Accordion>

  <Accordion title="Policy-driven allocation" icon="sliders-horizontal">
    The company defines the approved assets and the proportion between them. The default portfolio is about 60% USDY and 40% BUIDL.
  </Accordion>

  <Accordion title="Rebalancing only with approval" icon="shield-check">
    TESA suggests adjustments when the spread between the assets changes, but nothing is executed without the company's explicit approval.
  </Accordion>

  <Accordion title="Redemption in seconds" icon="zap">
    USDC returns to the company's custody within seconds of signing, ready for payments.
  </Accordion>

  <Accordion title="Complete on-chain trail" icon="scroll-text">
    Every deposit, CCTP transfer, allocation and redemption generates a record with the transaction hash.
  </Accordion>
</AccordionGroup>

## What you can build

<CardGroup cols={2}>
  <Card title="Automated treasury" icon="bot">
    Internal rules that keep a USDC liquidity buffer and send the surplus to earn yield.
  </Card>

  <Card title="Your own dashboard" icon="layout-dashboard">
    Positions, yield and charges inside the tool your finance leadership already uses.
  </Card>

  <Card title="ERP integration" icon="building-2">
    Redemptions triggered by the payment batch and automatic reconciliation by internal reference.
  </Card>

  <Card title="Partner custodian" icon="vault">
    Qualified custodians receive unsigned transactions and offer Treasury yield to their own clients.
  </Card>
</CardGroup>

## Supported networks and assets

| Type | Supported |
| - | - |
| Networks | Ethereum, Solana |
| Inflow and outflow | USDC, via Circle's CCTP |
| Tokenized Treasuries | USDY (Ondo), BUIDL (BlackRock) |

Details in [Supported networks and assets](/docs/en/produto/redes-e-ativos-suportados).

## Quick example

Read positions and request a redemption to the operating wallet. Values are illustrative.

```typescript TypeScript theme={null}
const BASE = "https://sandbox.api.t3sa.com/v1"; // proposed URL
const headers = {
  Authorization: `Bearer ${process.env.TESA_API_KEY}`,
  "Content-Type": "application/json",
};

// 1. How much is yielding and how much is available
const posicoes = await fetch(`${BASE}/posicoes`, { headers }).then((r) => r.json());
console.log(posicoes.rendendo, posicoes.disponivel);

// 2. Request a redemption (stays pending until approved)
const resgate = await fetch(`${BASE}/resgates`, {
  method: "POST",
  headers: { ...headers, "Idempotency-Key": crypto.randomUUID() },
  body: JSON.stringify({
    valor: "150000.00",
    carteira_destino_id: "cart_3k9d",
    referencia_interna: "folha-2026-09",
  }),
}).then((r) => r.json());

console.log(resgate.id, resgate.status); // res_4t7x pendente
```

After approval, the unsigned transaction goes to the custodian, which signs and broadcasts it. The `resgate.concluido` event arrives by webhook once the USDC is in the destination wallet.

## Next steps

<Steps>
  <Step title="Request an API key">
    Write to [contact@t3sa.com](mailto:contact@t3sa.com?subject=TESA%20API%20key%20request) with your company name and use case. Your first key is a sandbox key.
  </Step>

  <Step title="Follow the quickstart">
    Make your [first call in 5 minutes](/docs/en/api/quickstart), from `GET /posicoes` to the redemption webhook.
  </Step>

  <Step title="Understand the architecture">
    See in [Architecture](/docs/en/api/arquitetura) who holds the keys and how each operation is prepared, approved and signed.
  </Step>

  <Step title="Integrate">
    Use the [guides](/docs/en/api/guias/rebalanceamento) and the [API reference](/docs/en/api/endpoints) to take the flow to production.
  </Step>
</Steps>

## Access and support

TESA is B2B infrastructure and the API is available to companies only. There is no individual contract per client: access is governed by the [Terms of Use](/docs/en/legal/termos-de-uso), accepted during the organization's onboarding.

Questions about the specification or the integration: [contact@t3sa.com](mailto:contact@t3sa.com).
