使用API 快速接入

创建 Individual 用户并进行 RFQ 询价(Sandbox)

本快速开始将帮助你在 5 分钟内 使用 JSON API 完成 Legend 的最小集成验证。

你将完成以下两个步骤:

  1. 创建 Individual 用户(进入 KYC 流程)
  2. 发起法币 RFQ 询价

本文档适用于正在评估或集成 Legend 法币 On-Ramp / Off-Ramp 能力的合作伙伴。


Sandbox Base URL

https://sandboxapi.legendtrading.com

前置步骤:获取沙箱 Token

在 DevTools 中自助创建你的沙箱 API Token(https://otcsb.legendtrading.com/integration/login,登录密码由 Legend 提供):

  1. 在左侧菜单进入系统设置。
  2. 在 REST API Token 区块点击**+生成新 Token**。
  3. 在同一页的 IP 白名单区块添加你的服务器出口 IP(IPv4)。

完整步骤见概述与认证。

认证方式

所有 API 请求均使用 HTTP Bearer Token 进行认证。

Authorization: Bearer YOUR_SANDBOX_TOKEN

必填请求头(Headers)

Header说明
Authorization你在 DevTools 中生成的 Bearer Token
Content-Typeapplication/json
Acceptapplication/json
User-Ip最终用户的 IP 地址(用于合规与风控)

Step 1 — 创建 Individual 用户(KYC)

接口 POST /kyc/individual/pi

接口说明

创建一个 Individual 用户档案,并将该用户纳入 Legend 的 KYC 流程。

⚠️ 重要说明

  1. 该接口在成功时 不会返回 user_id
  2. 你在请求中传入的 uid 将作为该用户在 Legend 系统中的唯一标识
  3. 后续所有与该用户相关的 API 调用(包括 RFQ、交易等)都必须继续使用相同的 uid

请求示例(JSON)

curl --http1.1 -X POST "https://sandboxapi.legendtrading.com/kyc/individual/pi" \
  -H "Authorization: Bearer YOUR_SANDBOX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "User-Ip: 12.34.56.78" \
  -d '{
    "uid": "demo_user_001",
    "email": "[email protected]",

    "first_name": "Max",
    "middle_name": "Karl",
    "last_name": "Mustermann",
    "birthdate": "1990-01-15",

    "country_iso2_code": "DE",
    "state": "BE",
    "city": "Berlin",
    "address": "Alexanderplatz 1",
    "address_line_2": "Room 1001",
    "zipcode": "10178",

    "citizenship_iso2_codes": "DE",
    "place_of_birth": "Berlin",

    "phone_isd_code": "49",
    "phone_number": "15123456789",

    "id_type": "passport",
    "id_no": "C01X00ABC12",
    "id_doc_type": "passport",
    "id_doc_number": "C01X00ABC12",

    "ssn": "000-00-0000",

    "tin": "001234"
  }'

关于 tin:本例用户居住国为德国(DE),属于 EU 个人账户,因此必须提供税号——EU 账户缺少税号将无法通过 POST /kyc/individual/submit。请以字符串传递 6–20 个字符,并保留前导零(001234,而非 1234)。Non-EU 账户请整体省略该字段。

成功响应(200)

{
  "request_id": "007fcf2c4dd3d3dd68d6cc0b953bbc95",
  "status": "success",
  "code": "100000",
  "message": "success",
  "data": [],
  "metadata": {}
}

响应说明

  1. 表示该用户已成功创建
  2. 用户已进入 KYC 处理流程
  3. 不会返回新的用户 ID
  4. 后续接口请继续使用你提供的 uid(例如:demo_user_001)

Step 2 — 发起 RFQ 询价(法币)

接口 POST /app/rfqbyfiat

接口说明

根据指定金额和交易方向,请求一笔 实时法币 RFQ 报价。

请求示例(JSON)

curl --http1.1 -X POST "https://sandboxapi.legendtrading.com/app/rfqbyfiat" \
  -H "Authorization: Bearer YOUR_SANDBOX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "User-Ip: 12.34.56.78" \
  -d '{
    "pair": "BTCUSD",
    "side": "buy",
    "size": "100",
    "type": "bank"
  }'

成功响应(200)

{
  "created": "2023-01-31T16:08:51.913472Z",
  "pair": "BTCUSD",
  "price": 22596.3949,
  "quantity": 0.00433,
  "processing_fee": 2,
  "network_fee": 0,
  "side": "buy",
  "size": "100",
}

重要注意事项

关于 uid

  1. uid 必须在你方系统中保持唯一
  2. Legend 不会生成额外的 user_id
  3. 所有后续请求请持续为同一个用户使用同一个 uid
  4. 若用户经由 SDK 集成路径建档,服务端 uid 应传第一轮加密值 UID(如 sha1(user_id + salt) 的十六进制串)——绝不能传前端 JSSDK 使用的 APP_UID。任何含 : 的值都是第二轮产物,作为 uid 提交会落库畸形的用户 ID。详见用户UID处理

关于 User-Ip

  1. 生产环境必须传入真实的终端用户 IP
  2. Sandbox 环境可使用固定值进行测试
  3. 该字段用于合规与风控判断