---
title: "Different-Account business transfer"
method: POST
path: "/open-api/v3/business/transfer/external"
tags: ["Transfer"]
---

# Different-Account business transfer

`POST /open-api/v3/business/transfer/external`

Transfer funds between accounts of different users (cross-business transfer)
 When to call this API  
                    Call /transfer/external when the payer and payee belong to two different platform accounts  
                    (different accountIds).  
                    Note: The minimum amount per CRYPTO_CONNECT transaction is 0.5 USD, USDC, or USDT.  
                    Example:  
                    - Account A (a merchant) pays 500 USD to Account B (a personal user)  
                    - A marketplace collects 100 EUR commission from the seller’s account and sends it to the marketplace’s own account  
limits:
if payer and payee account are crypto accounts ， support transfer between sub-wallet and master wallet（for the same currency）

if payer and payee account are  infinity Accounts，   support transfers between master merchant account and sub-merchant account/end-customer account  (for the same currency)

## Request body

- CreateTransferExternalReqDTO
  - `clientTransactionId` string, required — Idempotency key provided by the client to ensure uniqueness of the transfer request
  - `amount` string, required — Total transfer amount (Including handling fees). Fraction digits depend on currency precision: USDC / USDT / WUSD: up to 6 decimal places; ETH / BTC: up to 8 decimal places; default to 2 decimal places.
  - `from` TransferInfoExternalFromReqVO, required — Transfer source details (payer information)
    - `id` string, required — For business account/infinity account, pass balanceId; for crypto connect , pass walletId
    - `accountId` string, uuid, required — The UUID of the Account.
    - `currency` string, required — Currency of the account
    - `businessType` integer, required — Business type of the destination. 0: INFINITY_ACCOUNT, 1: BUSINESS_ACCOUNT, 2: CRYPTO_CONNECT
  - `to` TransferInfoExternalToReqVO, required — Transfer destination details (payee information)
    - `id` string, required — For business account/infinity account, pass balanceId; for crypto connect , pass walletId
    - `accountId` string, uuid, required — The UUID of the Account.
    - `currency` string, required — Currency of the account
    - `businessType` integer, required — Business type of the destination. 0: INFINITY_ACCOUNT, 1: BUSINESS_ACCOUNT, 2: CRYPTO_CONNECT

## Response `200`

success

- ApiResultCreateTransferExternalRespDTO
  - `code` string — Business code, 000000 means success
  - `message` string — Message description
  - `data` CreateTransferExternalRespDTO — Response data, null if error
    - `clientTransactionId` string, required — Idempotency key provided by the client to ensure uniqueness of the transfer request
    - `id` string, required — The of the Transfer ID.
    - `createTime` string, required — Created timestamp.
    - `completedTime` string, required — Completed timestamp.
    - `from` TransferInfoFromVO, required — Transfer source details (payer information)
      - `id` string, required — Source account or wallet ID
      - `transferId` string, required — The UUID of the business transfer ID.
      - `parentAccountId` string — The parent account ID of the specified account.
      - `accountId` string, required — The UUID of the account.
      - `amount` string, required — Transfer amount deducted from the source account
      - `rate` string, required — Transfer amount rate
      - `currency` string, required — Currency of the source account
      - `businessType` integer, required — Business type of the destination. 0: INFINITY_ACCOUNT, 1: BUSINESS_ACCOUNT, 2: CRYPTO_CONNECT
      - `fees` BusinessTransferFee[]
        - `feeType` integer, required — Type of fee applied. Possible values: 0: (service fee), 1: (gas fee), 2: (Cross-chain fee), 3: (Deposit fee), 4: (Bank transfer fee), 5: (Markup fee), 6: (Currency exchange fee)
        - `amount` string, required — Fee amount charged
        - `currency` string, required — Currency in which the fee is charged
    - `to` TransferInfoToVO, required — Transfer destination details (payee information)
      - `id` string, required — Destination account or wallet ID
      - `parentAccountId` string — The parent account ID of the specified account.
      - `accountId` string, required — The UUID of the account.
      - `transferId` string, required — The UUID of the business transfer ID.
      - `amount` string, required — Transfer amount credited to the destination account
      - `currency` string, required — Currency of the destination account
      - `businessType` integer, required — Business type of the destination. 0: INFINITY_ACCOUNT, 1: BUSINESS_ACCOUNT, 2: CRYPTO_CONNECT
      - `fees` BusinessTransferFee[]
        - `feeType` integer, required — Type of fee applied. Possible values: 0: (service fee), 1: (gas fee), 2: (Cross-chain fee), 3: (Deposit fee), 4: (Bank transfer fee), 5: (Markup fee), 6: (Currency exchange fee)
        - `amount` string, required — Fee amount charged
        - `currency` string, required — Currency in which the fee is charged
    - `accountTransferType` string — Type of account transfer. SAME_ACCOUNT: Transfer between accounts under the same user. NOT_SAME_ACCOUNT: Transfer between accounts of different users.
    - `status` string, required — The current status of the transfer, e.g., CLOSED, FAILED, CANCELED, PROCESSING

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.dev/interlace/apis/core-resource.md) · [All operations](https://skmtc.dev/interlace/apis/core-resource/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/interlace/core-resource/revisions/29c08a4da357/schema)
