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

# USD transfer

> Move USD between accounts or to a bank trusted destination without per-transaction quorum.

A USD transfer moves funds between accounts you own (internal) or to a bank trusted destination (external), without quorum approval on each request. For shared concepts, external setup, limits, and status monitoring, see [Transfer](/knowledge-base/platform/developers/move-money/transfer). This page covers the USD-specific payloads.

`POST /v2/transfers` requires the `Transfer funds` permission and an Ed25519 request signature.

<Info>
  Staging uses the `USD_R` asset type and `https://api.anchorage-staging.com/v2`. Production uses `USD` and `https://api.anchorage.com/v2`. The examples below show the staging value.
</Info>

## Internal transfer

Move USD between wallets you own. Set both `source.type` and `destination.type` to `WALLET`. No trusted destination or AML information is required.

```json theme={null}
{
  "source": {
    "id": "{source wallet ID}",
    "type": "WALLET"
  },
  "destination": {
    "id": "{destination wallet ID}",
    "type": "WALLET"
  },
  "assetType": "USD_R",
  "amount": "{quantity}",
  "transferMemo": "{memo}",
  "idempotentId": "{unique ID}"
}
```

## External transfer

Move USD to a bank trusted destination. Set `destination.type` to `TRUSTED_DESTINATION` and `destination.id` to a fiat trusted destination ID, and include `assetParametersFiatTrustedDestination`.

<Note>
  Your API key's permission group must have **Any trusted destination** selected under **Transfers outside Anchorage**. Fiat trusted destinations can't be added individually to a permission group's specific-destinations list. See [Connect a trusted destination to an API key](/knowledge-base/platform/developers/move-money/setup/trusted-destinations#connect-a-trusted-destination-to-an-api-key) for details.
</Note>

To find the destination ID, call `GET /v2/trusted_destinations` and filter on `type == "fiat"`.

```json theme={null}
{
  "source": {
    "id": "{source wallet ID}",
    "type": "WALLET"
  },
  "destination": {
    "id": "{fiat trusted destination ID}",
    "type": "TRUSTED_DESTINATION"
  },
  "assetType": "USD_R",
  "amount": "{quantity}",
  "transferMemo": "{memo}",
  "assetParametersFiatTrustedDestination": {
    "purpose": "{purpose}",
    "memo": "{note to beneficiary}"
  }
}
```

### Fields

| Field                                           | Description                                                                                                |
| :---------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |
| `source.id`                                     | The source USD wallet. Retrieve wallet IDs via `GET /v2/wallets`.                                          |
| `destination.id`                                | Destination wallet ID (internal) or fiat trusted destination ID (external).                                |
| `destination.type`                              | `WALLET` for internal, `TRUSTED_DESTINATION` for external.                                                 |
| `amount`                                        | USD amount as a string.                                                                                    |
| `transferMemo`                                  | Optional free-text description attached to the transfer.                                                   |
| `idempotentId`                                  | A client-provided unique ID. Use a distinct value per transfer.                                            |
| `assetParametersFiatTrustedDestination.purpose` | Required on external transfers. Classifies the reason for the transfer (see enum below).                   |
| `assetParametersFiatTrustedDestination.memo`    | Optional note to beneficiary, max 140 characters. If omitted, the memo on the trusted destination is used. |

### `purpose` values

`TRADING_SETTLEMENT` | `LENDING` | `INVESTMENT` | `EXPENSES` | `FEE_PAYMENT` | `GRANT_PAYMENT` | `PRIZE_AWARD` | `GIFT` | `REIMBURSEMENT` | `REBALANCE` | `INTRA_COMPANY`

### Response

A successful request returns `201` with a `transferId` and `status`:

```json theme={null}
{
  "data": {
    "transferId": "008d3ec72558ce907571886df63ef51594b5bd8cf106a0b7fa8f12a30dfc867f",
    "status": "QUEUED"
  }
}
```

## Managing bank trusted destinations

Listing fiat trusted destinations via API is supported. Creating, editing, and deleting them via API is in development. Add bank recipients in the web dashboard today by selecting **Fiat** as the destination type—see [Adding a USD trusted destination](/knowledge-base/platform/users/usd-banking#adding-a-usd-trusted-destination). For API details, see [Trusted destinations](/knowledge-base/platform/developers/move-money/setup/trusted-destinations).
