> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.finrock.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Manual Sweep: POST /dac/v1/invoke-sweep to Omnibus Wallet

> Consolidate the entire balance of a non-omnibus address into your omnibus wallet on demand. Gas Tank must be funded for EVM and TRON networks.

The Manual Sweep endpoint consolidates the entire balance of a specified non-omnibus address into the omnibus wallet for the same asset. Use this endpoint when you need to manually trigger a consolidation that would otherwise wait for the automatic sweep schedule, for example to free up funds urgently or to close an isolated address. The sweep creates an on-chain transaction, so gas fees apply on EVM-compatible and similar networks — ensure your Gas Tank is funded before invoking this endpoint.

<Warning>
  **Important constraints before invoking a sweep:**

  * Manual Sweep only works for **non-omnibus** addresses. Attempting to sweep an address with `omnibus: true` will return an error.
  * Manual Sweep moves **all** of the specified asset's balance from the address — partial sweeps are not supported.
  * Manual Sweep may **fail silently or be delayed** if your Gas Tank has insufficient funds to cover the network fee.
</Warning>

## Request

<ParamField header="x-api-key" type="string" required>
  Your Finrock API key.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Your JWT bearer token in the format `Bearer {JWT}`.
</ParamField>

<ParamField body="asset" type="string" required>
  The asset to sweep. Use the `asset_name` value from the [Supported Assets](/api-reference/utilities/supported-assets) list (e.g. `ETH`, `USDT_ETH`).
</ParamField>

<ParamField body="address" type="string" required>
  The non-omnibus deposit address whose full balance you want to sweep into the omnibus wallet.
</ParamField>

## Example Request

```bash cURL theme={null}
curl --request POST \
     --url https://api.finrock.io/dac/v1/invoke-sweep \
     --header 'Authorization: Bearer {JWT}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: YOUR_API_KEY' \
     --data '{
       "asset": "USDT_ETH",
       "address": "0xC3d4E5f6A7b8C9d0E1f2A3b4C5d6E7f8A9b0C1d2"
     }'
```

## Response

A successful request returns HTTP `200` confirming that the sweep transaction has been queued.

<ResponseField name="status" type="string">
  Indicates the sweep request status. Typical value: `queued`.
</ResponseField>

<ResponseField name="transaction_id" type="string">
  The Finrock transaction ID for the resulting on-chain sweep transaction. Use this with the [List Transactions](/api-reference/transactions/list-transactions) endpoint to monitor the sweep status.
</ResponseField>

```json Sample 200 Response theme={null}
{
  "status": "queued",
  "transaction_id": "txn_sweep_xyz789"
}
```

<ResponseField name="401" type="object">
  Returned when the `x-api-key` or `Authorization` header is missing or invalid.
</ResponseField>

```json Sample 401 Response theme={null}
{
  "error": "Unauthorized",
  "message": "Invalid or missing authentication credentials."
}
```

<Tip>
  Before calling this endpoint, verify your Gas Tank balance using the [Gas Tank Balance](/api-reference/gas/gas-tank-balance) endpoint. On EVM chains, a sweep transaction for a token like `USDT_ETH` consumes ETH from the Gas Tank, not USDT.
</Tip>
