# 导入账户流水接口

### 接口概述

该接口用于批量导入转账记录(Transfer)到系统中，支持一次性导入多条数据。新增按照**资产代码**传递资产信息的能力。（原有 V3 版本接口，必须使用 Elven 系统的资产 id 来传递资产信息）

* **请求方式**：`POST`
* **请求 URL**：`https://openapi.elven.com/open/v4/transaction/transfer`

### 请求头参数

<table><thead><tr><th width="202">参数名</th><th width="90">类型</th><th width="64">必填</th><th>说明</th></tr></thead><tbody><tr><td>elven-api-key</td><td>String</td><td>是</td><td>分配给您的API密钥</td></tr><tr><td>elven-api-sign</td><td>String</td><td>是</td><td>请求签名，用于验证请求合法性</td></tr><tr><td>elven-api-timestamp</td><td>String</td><td>是</td><td>请求时间戳，毫秒级</td></tr></tbody></table>

[查看详细说明](https://docs.elven.com/v3/openapi/jie-kou-shou-quan#elven-api-sign)

### 请求参数

#### Body 参数（JSON 格式）

<table><thead><tr><th width="207">参数名</th><th width="91">类型</th><th width="65">必填</th><th>说明</th></tr></thead><tbody><tr><td>entityAccountId</td><td>String</td><td>是</td><td>账户的主键 ID</td></tr><tr><td>sourceId</td><td>String</td><td>是</td><td>Source 的主键 ID</td></tr><tr><td>timezone</td><td>String</td><td>否</td><td>时区，为空时视为 entity 时区。<a href="/pages/aGo8tOlAb3LVWBUj7oNv">具体介绍</a></td></tr><tr><td>list</td><td>Array</td><td>是</td><td>转账记录列表，包含多个对象，每次最多支持 1000 条记录</td></tr></tbody></table>

**list 数组元素**

<table><thead><tr><th width="227">参数名</th><th width="93">类型</th><th width="65">必填</th><th>说明</th></tr></thead><tbody><tr><td>direction</td><td>String</td><td>是</td><td>交易方向，<code>IN</code>（收入）或 <code>OUT</code>（支出）</td></tr><tr><td>amount</td><td>Number</td><td>是</td><td>交易金额</td></tr><tr><td>assetID</td><td>String</td><td>否</td><td>资产ID，需区分大小写，可从<a href="/pages/VMit0TXQj6EglCd9Ac96">资产查询接口</a>获取当前 entity 所支持的资产以及对应 ID<br><code>assetID</code>/和<code>symbol</code> 至少填写一个<br>都填写时，将只会识别<code>assetID</code></td></tr><tr><td>symbol</td><td>String</td><td>否</td><td>资产代码，需区分大小写，可从<a href="/pages/VMit0TXQj6EglCd9Ac96">资产查询接口</a>获取当前 entity 所支持的资产以及对应symbol<br>assetID/和symbol 至少填写一个<br>都填写时，将只会识别<code>assetID</code></td></tr><tr><td>transactionID</td><td>String</td><td>否</td><td>交易哈希或唯一标识</td></tr><tr><td>type</td><td>String</td><td>是</td><td>交易类型，根据平台类型（platform.type）进行区分，详见下方说明</td></tr><tr><td>datetime</td><td>String</td><td>是</td><td>交易时间，格式为 <code>YYYY-MM-DD HH:mm:ss</code></td></tr><tr><td>counterpartyAccountNo</td><td>String</td><td>否</td><td>对手方的地址或账号</td></tr><tr><td>counterpartyPlatformId</td><td>String</td><td>否</td><td>对手方的平台 ID</td></tr><tr><td>memo</td><td>String</td><td>否</td><td>备注信息</td></tr><tr><td>auxiliaryValueList</td><td>Array</td><td>否</td><td>辅助核算字段列表。若不设置可不传该字段或传空数组；<br>若传非空数组，则每项中的 <code>key</code> 和 <code>value</code> 均必填，且 <code>key</code>必须匹配当前主体下已配置的辅助核算字段名称</td></tr></tbody></table>

**type 参数说明**

* 当 `platform.type` 为 `CHAIN`，`type` 可选值：
  * `CHAIN_TRANSFER_IN`
  * `CHAIN_TRANSFER_OUT`
  * `CHAIN_TRANSACTION_FEE`
* 当 `platform.type` 为 `BANK`，`type` 可选值：
  * `BANK_DEPOSIT`
  * `BANK_WITHDRAW`
  * `BANK_FEE`
  * `BANK_INCOMING_FX`
  * `BANK_OUTGOING_FX`
* 当 `platform.type` 为 `EXCHANGE`，`type` 可选值：
  * `EXCHANGE_DEPOSIT`
  * `EXCHANGE_WITHDRAW`
  * `EXCHANGE_TRADE_IN`
  * `EXCHANGE_TRADE_OUT`
  * `EXCHANGE_FEE`
  * `EXCHANGE_STAKE`
  * `EXCHANGE_UNSTAKE`
  * `EXCHANGE_REWARD`
  * `EXCHANGE_REALIZED_PNL`
  * `EXCHANGE_BORROW`
  * `EXCHANGE_REPAY`
  * `EXCHANGE_FUNDING_FEE`
  * `EXCHANGE_TRANSFER_IN`
  * `EXCHANGE_TRANSFER_OUT`
* 当 `platform.type` 为 `CUSTODY`，`type` 可选值：
  * `CUSTODY_DEPOSIT`
  * `CUSTODY_WITHDRAW`
  * `CUSTODY_FEE`
* 当 `platform.type` 为 `PAYMENT`，`type` 可选值：
  * `PAYMENT_COMPLETED`
  * `PAYMENT_CHARGE_BACK`
  * `PAYMENT_REFUND`
  * `PAYMENT_FEE`
  * `PAYMENT_PAYOUT`
  * `PAYMENT_INCOMING_FX`
  * `PAYMENT_OUTGOING_FX`

#### auxiliaryValueList 数组元素

<table><thead><tr><th width="86.73828125">参数名</th><th width="91.109375">类型</th><th width="77.09765625">必填</th><th>说明</th></tr></thead><tbody><tr><td>key</td><td>String</td><td>是</td><td>辅助核算字段的名称，需与系统内已创建的辅助字段名称一致</td></tr><tr><td>value</td><td>String</td><td>是</td><td>辅助字段的值，不可为空</td></tr></tbody></table>

#### 请求示例

```json
{
    "entityAccountId": "19Pcnm3AQaUGMI6Kn2YvqtN9kje8yXic",
    "sourceId": "86w0LfZPdHkQKac8uGVNmU9jSzEBJXxy",
    "timezone":"MET",
    "list": [
        {
            "direction": "IN",
            "amount": 109,
            "assetID": "",
            "symbol": "SOL",
            "transactionID": "0xaaa111",
            "type": "CHAIN_TRANSFER_IN",
            "datetime": "2024-08-01 12:00:00",
            "counterpartyAccountNo": "0xsss",
            "memo": "this is memo",
            "auxiliaryValueList":[
              { "key": "BU", "value": "BU1" },
              { "key": "Cost Center", "value": "XX" }
              ]
        }
    ]
}
```

#### 响应参数

<table><thead><tr><th>参数名</th><th width="137">类型</th><th>说明</th></tr></thead><tbody><tr><td>status</td><td>String</td><td>请求状态（如 <code>success</code>）</td></tr><tr><td>data</td><td>Boolean</td><td>请求结果（如 <code>true</code> 表示成功）</td></tr></tbody></table>

#### 响应示例

```json
{
    "status": "success",
    "data": true
}

```

### 注意事项

1. **异步处理**：该接口调用成功后只是将数据导入到预处理数据库，系统需要一段时间来处理导入的数据，处理完成后才会显示在转账记录列表内。
2. **记录数量限制**：每次请求最多支持导入 5**000** 条交易记录。
3. **数据完整性**：请确保提供的数据完整且准确，避免因数据错误导致导入失败。
4. **时间格式**：`datetime` 参数的格式必须严格按照 `YYYY-MM-DD HH:mm:ss`，否则可能导致解析错误。。
5. **时区说明**：数据导入时，如果未提供时区字段。时区将和 Entity 设置的时区保持一致。
6. **交易类型**：`type` 参数必须根据对应的 `platform.type` 选择正确的值，否则可能导致交易分类错误。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.elven.com/v3/chinese/openapi/v4/dao-ru-zhang-hu-liu-shui-jie-kou.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
