---
title: "Universal Transfer (For Master Account)"
method: POST
path: "/sapi/v1/sub-account/universalTransfer"
tags: ["Sub-Account"]
---

# Universal Transfer (For Master Account)

`POST /sapi/v1/sub-account/universalTransfer`

- You need to enable "internal transfer" option for the api key which requests this endpoint.
- Transfer from master account by default if fromEmail is not sent.
- Transfer to master account by default if toEmail is not sent.
- Supported transfer scenarios:
  - Master account SPOT transfer to sub-account SPOT,USDT_FUTURE,COIN_FUTURE,MARGIN(Cross),ISOLATED_MARGIN
  - Sub-account SPOT,USDT_FUTURE,COIN_FUTURE,MARGIN(Cross),ISOLATED_MARGIN transfer to master account SPOT
  - Transfer between two sub-account SPOT accounts

Weight(IP): 1

## Query parameters

- `fromEmail` string
- `toEmail` string
- `fromAccountType` 'SPOT' | 'USDT_FUTURE' | 'COIN_FUTURE' | 'MARGIN' | 'ISOLATED_MARGIN', required
- `toAccountType` 'SPOT' | 'USDT_FUTURE' | 'COIN_FUTURE' | 'MARGIN' | 'ISOLATED_MARGIN', required
- `clientTranId` string
- `symbol` string
- `asset` string, required
- `amount` number, double, required
- `recvWindow` integer
- `timestamp` integer, required
- `signature` string, required

## Response `200`

Transfer id

- object
  - `tranId` integer, required
  - `clientTranId` string, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized Request

## Changes

- **2022-04-25** `f008d48ec623` — 6 info
  - added the new optional `query` request parameter `symbol`
  - added the new enum value `ISOLATED_MARGIN` to the `query` request parameter `fromAccountType`
  - added the new enum value `ISOLATED_MARGIN` to the `query` request parameter `toAccountType`
  - added the new enum value `MARGIN` to the `query` request parameter `fromAccountType`
  - …2 more
- **2022-01-07** `df4abe39a7f1` — 1 info
  - added the new optional `query` request parameter `clientTranId`
- **2021-10-25** `a484ce871a72` — 2 breaking, 6 info
  - for the `query` request parameter `recvWindow`, the type/format was changed from `integer`/`` to `integer`/`int64`
  - for the `query` request parameter `timestamp`, the type/format was changed from `integer`/`` to `integer`/`int64`
  - for the `query` request parameter `amount`, the type/format was generalized from `number`/`float` to `number`/`double`
  - the response property `code` became required for the status `400`
  - …4 more

[Change history](https://skmtc.dev/binance/apis/binance-public-spot-api/changes/sapi/v1/sub-account/universalTransfer/post.md)

---

[API](https://skmtc.dev/binance/apis/binance-public-spot-api.md) · [All operations](https://skmtc.dev/binance/apis/binance-public-spot-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/binance/binance-public-spot-api/revisions/0dd2f133e12d/schema)
