# Deposits, Withdrawals, and Rebalances

Deposits, withdrawals, and rebalances are Tesser's **first-party** funds-movement resources: there is no third-party beneficiary. Every account in the flow is one of yours — a bank account, a self-custodial wallet, or a ledger you hold at a provider. That is what separates them from [Payments](/overviews/payments), which move funds to or from an arms-length third party. Deposits and withdrawals reach that result by transacting with a liquidity provider, which executes the on- or off-ramp; rebalances move funds only between your Tesser-managed accounts.

| Resource | What it moves | Create endpoint |
|---|---|---|
| Deposit | Funds into a liquidity provider, on-ramping fiat to stablecoin | [POST /v1/treasury/deposits](/api/treasury#create-deposit) |
| Withdrawal | Funds out of a liquidity provider, off-ramping stablecoin to fiat | [POST /v1/treasury/withdrawals](/api/treasury#create-withdrawal) |
| Rebalance | Funds between your own Tesser-managed accounts | [POST /v1/treasury/rebalances](/api/treasury#create-rebalance) |

All three share the same data shape, lifecycle phases, and statuses as payments. See [Funds Movement Lifecycle and Data Model](/overviews/funds-movement-lifecycle-and-data-model) for the `desired` / `estimated` / `actual` overlays, the step model, and balance and step statuses.

## Deposits and Withdrawals

Deposits and Withdrawals involve funds exchange with a liquidity provider to on-ramp funds into your organization’s wallets or off-ramp funds back into external bank accounts.

- **On-ramping:** Exchange fiat for stablecoin(s) via a stablecoin liquidity provider. Fiat funds leave your organization’s, or your customers’, fiat bank account(s) and stablecoins are deposited to your wallets.
- **Off-ramping:** Exchange stablecoin(s) for fiat via a liquidity provider. Stablecoins leave your organization’s, or your customers’, wallets and fiat is deposited to fiat bank account(s).

To create either one, see [Deposit Funds via a Liquidity Provider](/how-tos/deposit-funds-via-a-liquidity-provider) and [Withdraw Funds via a Liquidity Provider](/how-tos/withdraw-funds-via-a-liquidity-provider).

## Rebalances

A rebalance moves funds between two of your Tesser-managed accounts — either a provider ledger (for example, a Circle ledger or an OpenFX ledger) or a self-custodial wallet you have registered with Tesser. Nothing enters or leaves your control: a rebalance only changes *where* your funds sit.

Rebalances exist because a balance of the right total size is not necessarily in the right place. You may need to:

- Fund a wallet on a specific network before sending payouts on that network
- Consolidate balances that have accumulated across several wallets or ledgers
- Convert an idle currency balance into the stablecoin your upcoming payouts require
- Move funds between providers to match where your payment volume is going

A rebalance can be same-currency or cross-currency, and Tesser plans the route for you:

- **Same-currency rebalances** execute as a single `transfer` step — for example, moving USDC between two Circle ledgers, or USDT on POLYGON from one self-custodial wallet to another. `estimated.*` matches `desired.*` 1:1, and there is no swap.
- **Cross-currency rebalances** begin with a `swap` step at a provider ledger (the step's source and destination `account_id` are the same account), then a `transfer` step moves the swapped balance to the destination. Tesser reports an indicative exchange rate in `estimated.*`; the realized fill lands in `actual.*` and may differ slightly.

:::note
Rebalances are first-party only — they never involve a third party. To send funds to a beneficiary outside your organization, create a payment instead. See [Send a Stablecoin Payout](/how-tos/send-a-stablecoin-payout/create-a-stablecoin-payout).
:::

Because a rebalance debits one of your accounts, Tesser runs a balance check before executing. Where the source is a self-custodial wallet, you also sign the outbound transaction yourself. For the full walkthrough — including request and response examples, webhooks, and the signing flow — see [Rebalance Funds](/how-tos/rebalance-funds).
