openapi: 3.2.0 info: title: MAX V3 RESTful API List Wallet API description: "# Changelog\n\n* 舊版 [v2 changelog](https://max-api.maicoin.com/doc/v2.html)\n\n* 2024-11-28\n * 新增 GET /api/v3/deposit_address API\n\n* 2024-08-30\n * 新版 API v3 釋出,請參考 API v3 列表。\n\n* 2026-08-15\n * 新增 系統狀態 API,用於查詢 MAX API 目前的系統服務狀態。\n\n\n# 基本介紹\n\nMAX 交易所提供 RESTful API 接口,讓開發者能夠程式化與自動化地進行交易操作,以提升交易體驗。所有 API 請求與回應皆使用 JSON 格式。\n\n\n## API 類別\n| API 類別 | 身分驗證 | 流量限制 | 使用須知 |\n|----------|----------|-----------|----------|\n| 公開 API | 無需驗證 | 每個 IP 地址 1 分鐘最多 1200 請求 | 可直接使用 |\n| 私人 API | [需要驗證](https://campaign.maicoin.com/api-document) | 每個帳號每分鐘內最多 1200 個請求 | [需要申請 API 密鑰](https://max.maicoin.com/api_tokens) |\n\n# 身分驗證\n\n## API 密鑰申請\n在開始使用 API 前,您需要:\n\n1. [註冊 MAX 帳戶](https://max.maicoin.com/signup)(如果您還沒有帳戶)\n2. 完成身分驗證\n3. 前往 [API 密鑰管理頁面](https://max.maicoin.com/api_tokens) 申請 API 密鑰\n\n完成申請後,您會獲得:\n- Access Key:用於識別您的 API 請求\n- Secret Key:用於加密簽署您的請求\n\n請妥善保管您的 API 密鑰,不要洩露給他人。\n\n## API 認證方式\n使用私人 API 時,需要在 HTTP 請求中遵循以下步驟:\n\n### 認證步驟\n\n1. **準備必要的參數**\n - 建立包含 nonce(通常是當前時間戳)的 object\n - 添加其他必要的請求參數(如 market 等)\n\n2. **構建簽名內容**\n - 將 object 與請求路徑合併(添加 path 字段)\n - 將合併後的字典轉換為 JSON 字符串\n\n3. **生成 payload**\n - 對 JSON 字符串進行 Base64 編碼\n\n4. **計算簽名**\n - 使用 HMAC-SHA256 演算法\n - 以 Secret Key 作為密鑰\n - 對 payload 進行加密\n - 將結果轉換為十六進制字符串\n\n5. **設置 request header **\n - 在 HTTP request header 中加入以下資訊:\n\n| request header 名稱 | 說明 |\n|--------------|------|\n| X-MAX-ACCESSKEY | 您的 Access Key |\n| X-MAX-PAYLOAD | 根據請求內容生成的負載(payload) |\n| X-MAX-SIGNATURE | 使用您的 Secret Key 跟負載內容生成的簽名 (signature) |\n| X-Sub-Account | 指定要操作的子帳號,預設為主帳號 \"main\" |\n| Content-Type | application/json |\n\n6. **發送請求**\n - GET:參數附加在 URL 上\n - DELETE/POST/PUT:參數放在 request body 中\n\n## 認證程式碼範例\n\n負載是根據請求內容產生的字串,簽名則是根據負載所產生的雜湊值,以 JavaScript 為例\n\n### JavaScript\n\n```javascript\nimport { createHmac } from 'crypto';\nimport fetch from 'node-fetch';\nimport * as qs from 'qs';\n\nconst accessKey = '';\nconst secretKey = '';\n\n/**\n * 發送 MAX API 請求的通用函數\n * @param {string} path - API 路徑\n * @param {string} method - HTTP 方法 (GET, POST, DELETE, PUT)\n * @param {Object} extraParams - 額外的請求參數\n * @returns {Promise} 響應數據\n */\nasync function makeRequest(path, method = 'GET', extraParams = {}) {\n // 1. 準備必要的參數\n const params = {\n nonce: Date.now(), // 毫秒級時間戳,需與伺服器時間差 30 秒內且不可重複\n ...extraParams // 添加其他必要參數\n };\n\n // 2. 構建簽名內容\n const paramsToBeSigned = {\n ...params,\n path: path // 將參數與路徑合併\n };\n\n // 3. 生成 payload\n const payload = Buffer.from(JSON.stringify(paramsToBeSigned)).toString('base64'); // Base64 編碼\n\n // 4. 計算簽名\n const signature = createHmac('sha256', secretKey) // 使用 Secret Key 作為密鑰\n .update(payload) // 對 payload 進行簽名\n .digest('hex'); // 轉換為十六進制字符串\n\n // 5. 設置 request header\n const headers = {\n 'X-MAX-ACCESSKEY': accessKey, // 添加 Access Key\n 'X-MAX-PAYLOAD': payload, // 添加 payload\n 'X-MAX-SIGNATURE': signature, // 添加簽名\n 'Content-Type': 'application/json' // 設置內容類型\n };\n\n // 6. 發送\n let url = `https://max-api.maicoin.com${path}`;\n let options = {\n method: method,\n headers: headers\n };\n\n if (method === 'GET') {\n // GET:參數附加在 URL 上\n url += `?${qs.stringify(params, {arrayFormat: 'brackets'})}`;\n } else {\n // DELETE/POST/PUT:參數放在 request body 中\n options.body = JSON.stringify(params);\n }\n\n const response = await fetch(url, options);\n return await response.json();\n}\n\nasync function main() {\n try {\n // 請求 info (GET sample)\n const info = await makeRequest('/api/v3/info');\n console.log('Info response:', info);\n\n // 請求取消訂單 (DELETE sample)\n const orders = await makeRequest('/api/v3/order', 'DELETE', { id: xxxxxxx });\n console.log('Cancel orders response:', orders);\n\n // (POST sample)\n // const createOrder = await makeRequest('/api/v3/wallet/spot/order', 'POST', { market: 'btcusdt', side: 'buy', volume: '0.001', price: '20000' });\n // console.log('Create order response:', createOrder);\n } catch (error) {\n console.error('Error:', error);\n }\n}\n\n// 執行主函數\nmain();\n\n```\n\n### Python\n\n```python\nimport base64\nimport hmac\nimport hashlib\nimport json\nimport time\nimport requests\nfrom urllib.parse import urlencode\n\naccess_key = ''\nsecret_key = ''\n\ndef make_request(path, method='GET', extra_params=None):\n \"\"\"\n 發送 MAX API 請求的通用函數\n :param path: API 路徑\n :param method: HTTP 方法 (GET, POST, DELETE, PUT)\n :param extra_params: 額外的請求參數\n :return: 響應數據\n \"\"\"\n # 1. 準備必要的參數\n params = {\n 'nonce': int(time.time() * 1000) # 毫秒級時間戳,需與伺服器時間差 30 秒內且不可重複\n }\n\n if extra_params:\n params.update(extra_params) # 添加其他必要參數\n\n # 2. 構建簽名內容\n params_to_sign = {**params, 'path': path} # 將參數與路徑合併\n json_str = json.dumps(params_to_sign) # 轉換為 JSON 字符串\n\n # 3. 生成 payload\n payload = base64.b64encode(json_str.encode()).decode() # Base64 編碼\n\n # 4. 計算簽名\n signature = hmac.new(\n secret_key.encode(), # 使用 Secret Key 作為密鑰\n payload.encode(), # 對 payload 進行簽名\n hashlib.sha256 # 使用 HMAC-SHA256 演算法\n ).hexdigest() # 轉換為十六進制字符串\n\n # 5. 設置 request header\n headers = {\n 'X-MAX-ACCESSKEY': access_key, # 添加 Access Key\n 'X-MAX-PAYLOAD': payload, # 添加 payload\n 'X-MAX-SIGNATURE': signature, # 添加簽名\n 'Content-Type': 'application/json'\n }\n\n # 6. 發送請求\n url = f\"https://max-api.maicoin.com{path}\"\n\n if method == 'GET':\n # GET:參數附加在 URL 上\n url += f\"?{urlencode(params)}\"\n response = requests.get(url, headers=headers)\n else:\n # DELETE/POST/PUT:參數放在 request body 中\n response = requests.request(\n method=method,\n url=url,\n headers=headers,\n data=json.dumps(params)\n )\n\n return response.json()\n\ndef main():\n try:\n # 請求 info (GET sample)\n info = make_request('/api/v3/info')\n print(\"Info response:\", info)\n\n # 請求取消訂單 (DELETE sample)\n # orders = make_request('/api/v3/order', 'DELETE', {'id': xxxxxxx})\n # print(\"Cancel orders response:\", orders)\n\n # POST sample(已註釋)\n create_order = make_request(\n '/api/v3/wallet/spot/order',\n 'POST',\n {\n 'market': 'btcusdt',\n 'side': 'buy',\n 'volume': '0.001',\n 'price': '20000'\n }\n )\n print(\"Create order response:\", create_order)\n\n except Exception as error:\n print(\"Error:\", error)\n\nif __name__ == \"__main__\":\n main()\n\n```\n\n\n\n### 認證注意事項\n- nonce 需使用毫秒級時間戳\n- nonce 與伺服器時間差不得超過 30 秒\n- 每個 nonce 只能使用一次\n\n\n\n# API 回應格式\n\n## 成功回應\n當 API 請求成功時,會收到 HTTP 200 狀態碼以及相應的 JSON 資料。\n\n## 錯誤回應\n當 API 請求失敗時,會收到對應的 HTTP 狀態碼以及錯誤詳情:\n\n```json\n{\n \"success\": false,\n \"error\": {\n \"code\": 1001,\n \"message\": \"market does not have a valid value\"\n }\n}\n```\n\n# 注意事項\n\n## 訂單操作說明\n訂單的建立與取消是非同步操作。當 API 返回成功結果時,表示系統已接受請求,但不代表操作已完成。建議通過以下方式確認訂單狀態:\n\n1. 使用 GET /api/v3/order 查詢訂單最新狀態\n2. 訂閱 WebSocket 取得即時更新\n\n特別說明:\n- 在進行取消訂單操作時,該訂單可能仍有未完成的成交\n- 若系統中有大量待處理的取消請求,訂單狀態的更新可能會有延遲\n- 建議使用 WebSocket 接收即時的訂單狀態更新\n\n## 安全指南\n1. 請勿與他人分享您的 API 密鑰\n2. 建議定期更換 API 密鑰\n3. 設定 IP 白名單以提升安全性\n\n# 其他\n\n## 系統狀態 API\n\n查詢 MAX API 目前的系統服務狀態。\n\n**端點**\n```\nGET https://status-api-max.maicoin.com/api/status/max-api\n```\n\n**驗證**:不需要\n\n**回應參數**\n\n| 參數 | 類型 | 說明 |\n|-----------------|--------|-------------------------------------|\n| service | string | 服務名稱 |\n| status | string | 系統狀態:`online` | `maintenance` |\n| last_changed_at | string | 狀態最後更新時間(ISO 8601 格式) |\n\n**狀態說明**\n\n| 狀態 | 說明 |\n|---------------|---------------------------------------|\n| `online` | 系統運作正常,所有 API 端點可正常使用 |\n| `maintenance` | 系統維護中,API 請求將無法處理 |\n\n**回應範例**\n\n```json\n{\n \"service\": \"max-api\",\n \"status\": \"online\",\n \"last_changed_at\": \"2026-07-29T07:32:57Z\"\n}\n```\n\n> 注意:系統狀態更新最長可能有30秒延遲。短暫性中斷或 WebSocket 斷線等情形可能不會即時反映於此端點,建議交易程式同時實作自動重連機制。\n\n\n## WebSocket API\n如需即時市場資料或是即時訂單更新,請參考我們的 [WebSocket API 文件](https://maicoin.github.io/max-websocket-docs/)。WebSocket 提供更有效率的即時資料傳輸,建議用於:\n\n- 訂閱市場資料更新\n- 監控訂單狀態變化\n\n\n## SDK\n我們提供官方 SDK,方便開發者快速整合 Restful API 以及 WebSocket API:\n\n- Node.js SDK: [http://github.com/maicoin/max-exchange-api-node](https://github.com/maicoin/max-exchange-api-node)\n" version: 3.0.0 x-logo: url: /logo.png altText: Max Restful Api href: https://max.maicoin.com/ servers: - url: https://max-api.maicoin.com/ tags: - name: Wallet description: Requires authentication paths: /api/v3/wallet/{path_wallet_type}/accounts: get: summary: account balance of all available currencies description: Get your account balance with all supported currencies by different wallet type parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string - in: path name: path_wallet_type description: wallet type required: true schema: type: string enum: - spot - m - in: query name: currency description: unique currency id, check /api/v2/currencies for available currencies required: false schema: type: string enum: - twd - btc - eth - ltc - bch - mith - usdt - trx - cccx - pal - eos - bat - zrx - gnt - omg - knc - twdt - xrp - fmf - max - seele - bcnt - sand - usdc - link - grt - yfi - doge - comp - dot - ada - sol - shib - gala - mana - alice - pol - looks - rly - loot - mask - ape - xtz - gmt - gst - bnb - ens - etc - arb - avax - sui - paxg - xaut responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/External_V3_Entities_Account' tags: - Wallet operationId: getApiV3WalletPathWalletTypeAccounts /api/v3/wallet/m/ad_ratio: get: summary: latest AD ratio of your m-wallet description: Get the latest AD ratio of your m-wallet parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/External_V3_Entities_AdRatio' tags: - Wallet operationId: getApiV3WalletMAdRatio /api/v3/wallet/m/loan: post: summary: submit loan description: Create a loan request for your m-wallet parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/External_V3_Entities_Debt' tags: - Wallet operationId: postApiV3WalletMLoan requestBody: content: application/json: schema: $ref: '#/components/schemas/postApiV3WalletMLoan' required: true /api/v3/wallet/m/loans: get: summary: loan history description: Get loan history of your m-wallet parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string - in: query name: currency description: unique composite currency id required: true schema: type: string enum: - twd - btc - eth - usdt - in: query name: timestamp description: timestamp in millisecond. responses records whose created time less than or equal to specified timestamp if order in desc, responses records whose created time is greater than or equal to timestamp if order in asc. latest time as default. required: false schema: type: integer format: int32 maximum: 4102444800000 minimum: 1512950400000 - in: query name: order description: order in created time. required: false schema: type: string enum: - asc - desc default: desc - in: query name: limit description: returned limit (1~1000, default 50) required: false schema: type: integer format: int32 default: 50 maximum: 1000 minimum: 1 responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/External_V3_Entities_Debt' tags: - Wallet operationId: getApiV3WalletMLoans /api/v3/wallet/m/interests: get: summary: interest history of your m-wallet description: Get interest history of your m-wallet parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string - in: query name: currency description: unique composite currency id required: false schema: type: string enum: - twd - btc - eth - usdt - in: query name: timestamp description: timestamp in millisecond. responses records whose created time less than or equal to specified timestamp if order in desc, responses records whose created time is greater than or equal to timestamp if order in asc. latest time as default. required: false schema: type: integer format: int32 maximum: 4102444800000 minimum: 1512950400000 - in: query name: order description: order in created time. required: false schema: type: string enum: - asc - desc default: desc - in: query name: limit description: returned limit (1~1000, default 50) required: false schema: type: integer format: int32 default: 50 maximum: 1000 minimum: 1 responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/External_V3_Entities_Interest' tags: - Wallet operationId: getApiV3WalletMInterests /api/v3/wallet/m/repayment: post: summary: submit repayment description: Make a repayment for your loan parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/External_V3_Entities_ManualRepayment' tags: - Wallet operationId: postApiV3WalletMRepayment requestBody: content: application/json: schema: $ref: '#/components/schemas/postApiV3WalletMRepayment' required: true /api/v3/wallet/m/repayments: get: summary: repayment history description: Get repayment history of your m-wallet parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string - in: query name: currency description: unique composite currency id required: true schema: type: string enum: - twd - btc - eth - usdt - in: query name: timestamp description: timestamp in millisecond. responses records whose created time less than or equal to specified timestamp if order in desc, responses records whose created time is greater than or equal to timestamp if order in asc. latest time as default. required: false schema: type: integer format: int32 maximum: 4102444800000 minimum: 1512950400000 - in: query name: order description: order in created time. required: false schema: type: string enum: - asc - desc default: desc - in: query name: limit description: returned limit (1~1000, default 50) required: false schema: type: integer format: int32 default: 50 maximum: 1000 minimum: 1 responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/External_V3_Entities_ManualRepayment' tags: - Wallet operationId: getApiV3WalletMRepayments /api/v3/wallet/m/liquidations: get: summary: liquidation history description: "Get liquidation history of your m-wallet\n\n\n Liquidation State Explanation\n\n processing: liquidation still in processing\n liquidated: done liquidation\n debt_recovery: has remaining debt, please repay manually" parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string - in: query name: timestamp description: timestamp in millisecond. responses records whose created time less than or equal to specified timestamp if order in desc, responses records whose created time is greater than or equal to timestamp if order in asc. latest time as default. required: false schema: type: integer format: int32 maximum: 4102444800000 minimum: 1512950400000 - in: query name: order description: order in created time. required: false schema: type: string enum: - asc - desc default: desc - in: query name: limit description: returned limit (1~1000, default 50) required: false schema: type: integer format: int32 default: 50 maximum: 1000 minimum: 1 responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/External_V3_Entities_Liquidation' tags: - Wallet operationId: getApiV3WalletMLiquidations /api/v3/wallet/m/liquidation: get: summary: liquidation detail description: Get detail of one specific liquidation history of your m-wallet parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string - in: query name: sn description: liquidation serial number required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/External_V3_Entities_LiquidationDetail' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/Shared_Entities_Errors_ResourceNotFound' tags: - Wallet operationId: getApiV3WalletMLiquidation /api/v3/withdraw_addresses: get: description: Get withdraw addresses of spot wallet parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string - in: query name: currency description: unique currency id required: true schema: type: string enum: - btc - eth - ltc - bch - mith - usdt - trx - cccx - pal - eos - bat - zrx - gnt - omg - knc - twdt - xrp - fmf - max - seele - bcnt - sand - usdc - link - grt - yfi - doge - comp - dot - ada - sol - shib - gala - mana - alice - pol - looks - rly - loot - mask - ape - xtz - gmt - gst - bnb - ens - etc - arb - avax - sui - paxg - xaut - in: query name: limit description: returned limit (1~1000, default 50) required: false schema: type: integer format: int32 default: 50 maximum: 1000 minimum: 1 - in: query name: offset description: records to skip, not applied for pagination (default 0) required: false schema: type: integer format: int32 default: 0 responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/External_V3_Entities_FundSource' tags: - Wallet operationId: getApiV3WithdrawAddresses /api/v3/deposit_address: get: summary: get user deposit address by currency version description: The address could be empty before generated, please request again in that case parameters: - in: header name: X-MAX-ACCESSKEY description: access key required: true schema: type: string - in: header name: X-MAX-PAYLOAD description: encoded payload required: true schema: type: string - in: header name: X-MAX-SIGNATURE description: encrypted signature required: true schema: type: string - in: query name: currency_version description: currency version, check /api/v3/currencies for available currency versions required: true schema: type: string enum: - twd - btc - eth - ltc - bch - mith - usdt - trx - omniusdt - mntrx - cccx - eos - pal - bat - zrx - gnt - omg - knc - twdt - xrp - fmf - max - seele - bcnt - usdc - link - comp - paxg - sand - trc20usdt - grt - yfi - doge - ada - dot - pol - aave - sol - shib - gala - mana - alice - polygonpol - looks - rly - loot - mask - ape - xtz - gmt - polygonusdt - polygonusdc - gst - splusdc - bnb - bscusdt - bscbtc - bsceth - ens - etc - arb - arbeth - arbusdc - arbusdt - ton - avax - avaxusdt - tao - sui - xaut responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/B2b_V2_Entities_PaymentAddress' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Shared_Entities_Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Shared_Entities_Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Shared_Entities_Error' tags: - Wallet operationId: getApiV3DepositAddress components: schemas: External_V3_Entities_LiquidationDetail: type: object properties: sn: type: string example: '210407080800050666' description: serial number ad_ratio: type: string example: '1.2' description: ad ratio before liquidation expected_ad_ratio: type: string example: '1.5' description: expected ad ratio after liquidation created_at: type: integer format: int32 example: 1521726960357 description: created timestamp (millisecond) state: type: string example: liquidated description: liquidation state, processing / liquidated repayments: type: array items: $ref: '#/components/schemas/External_V3_Entities_Repayment' description: repay records liquidations: type: array items: $ref: '#/components/schemas/External_V3_Entities_ForcedLiquidation' description: liquidation details required: - sn - ad_ratio - expected_ad_ratio - created_at - state - repayments - liquidations description: External_V3_Entities_LiquidationDetail model External_V3_Entities_Debt: type: object properties: sn: type: string example: '210407080800050666' description: serial number currency: type: string example: eth description: currency id amount: type: string example: '0.019' description: transfer amount state: type: string example: confirmed description: current state created_at: type: integer format: int32 example: 1521726960357 description: created timestamp (millisecond) interest_rate: type: string example: '0.001' description: interest rate required: - sn - currency - amount - state - created_at - interest_rate description: External_V3_Entities_Debt model External_V3_Entities_Repayment: type: object properties: currency: type: string example: eth description: currency id amount: type: string example: '0.15' description: total repay amount principal: type: string example: '0.1' description: principal amount interest: type: string example: '0.05' description: interest amount state: type: string example: confirmed description: current state required: - currency - amount - principal - interest - state B2b_V2_Entities_PaymentAddress: type: object properties: currency: type: string example: usdt description: currency id network_protocol: type: string example: tron-trc20 description: network protocol of currency currency_version: type: string example: trc20usdt description: currency version address: type: - string - 'null' example: TU91BoeyrqW9MKaiRPDiE6z7UecK2n2Hze description: deposit address, nil when generating or deposit suspended required: - currency - network_protocol - currency_version - address description: B2b_V2_Entities_PaymentAddress model External_V3_Entities_Liquidation: type: object properties: sn: type: string example: '210407080800050666' description: serial number ad_ratio: type: string example: '1.2' description: ad ratio before liquidation expected_ad_ratio: type: string example: '1.5' description: expected ad ratio after liquidation created_at: type: integer format: int32 example: 1521726960357 description: created timestamp (millisecond) state: type: string example: liquidated description: liquidation state, processing / liquidated required: - sn - ad_ratio - expected_ad_ratio - created_at - state description: External_V3_Entities_Liquidation model Shared_Entities_Error: type: object properties: success: type: boolean example: false description: response success? error: type: object properties: code: type: integer format: int32 example: 4000 description: Error code, 1001(invalid paramter)/4000(resource not found)/etc... message: type: string example: Resource not found description: Error message info: type: object example: limit: '0.0' description: Error extra info required: - code - message required: - success - error description: Shared_Entities_Error model External_V3_Entities_FundSource: type: object properties: uuid: type: string example: 508c9af6-ccc1-4122-b38f-a407e3bac96c description: unique withdraw address id currency: type: string example: usdt description: currency id network_protocol: type: - string - 'null' example: tron-trc20 description: network protocol of currency address: type: string example: TU91BoeyrqW9MKaiRPDiE6z7UecK2n2Hze description: address, - for bank account extra_label: type: string example: My Max Wallet description: descriptive label created_at: type: integer format: int32 example: 1521726960357 description: created timestamp (millisecond) activated_at: type: - integer - 'null' format: int32 example: 1521726960357 description: activated timestamp (millisecond) is_internal: type: boolean example: true description: internal address or not network_congested: type: boolean example: true description: network congested or not required: - uuid - currency - network_protocol - address - extra_label - created_at - activated_at - is_internal - network_congested description: External_V3_Entities_FundSource model External_V3_Entities_ManualRepayment: type: object properties: currency: type: string example: eth description: currency id amount: type: string example: '0.15' description: total repay amount principal: type: string example: '0.1' description: principal amount interest: type: string example: '0.05' description: interest amount state: type: string example: confirmed description: current state sn: type: string example: '210407080800050666' description: serial number created_at: type: integer format: int32 example: 1521726960123 description: created timestamp (millisecond) required: - currency - amount - principal - interest - state - sn - created_at description: External_V3_Entities_ManualRepayment model External_V3_Entities_Interest: type: object properties: currency: type: string example: eth description: currency id amount: type: string example: '0.003' description: interest amount interest_rate: type: string example: '0.001' description: interest rate principal: type: string example: '3' description: principal amount created_at: type: integer format: int32 example: 1521726960123 description: created timestamp (millisecond) required: - currency - amount - interest_rate - principal - created_at description: External_V3_Entities_Interest model Shared_Entities_Errors_ResourceNotFound: type: object properties: success: type: boolean example: false description: response success? error: type: object properties: code: type: integer format: int32 example: 404 description: Error code message: type: string example: 找不到該資源 description: Error message required: - code - message required: - success - error description: Shared_Entities_Errors_ResourceNotFound model External_V3_Entities_AdRatio: type: object properties: ad_ratio: type: string example: '1.21' description: ad ratio asset_in_usdt: type: string example: '2639.98128484' description: asset in usdt debt_in_usdt: type: string example: '2165.54482641' description: debt in usdt required: - ad_ratio - asset_in_usdt - debt_in_usdt description: External_V3_Entities_AdRatio model External_V3_Entities_ForcedLiquidation: type: object properties: market: type: string example: ethusdt description: market id type: type: string example: buy description: '''sell'' or ''buy''' price: type: string example: '3200' description: liquidation price volume: type: string example: '0.1' description: volume fee: type: string example: '0.001' description: fee fee_currency: type: string example: eth description: fee currency repayment: $ref: '#/components/schemas/External_V3_Entities_Repayment' required: - market - type - price - volume - fee - fee_currency - repayment External_V3_Entities_Account: type: object properties: currency: type: string example: twd description: currency id, e.g. twd, btc, ... balance: type: string example: '100000.0' description: available balance locked: type: string example: '5566.0' description: locked funds staked: type: - string - 'null' example: '0.0' description: staked funds principal: type: string example: '0.1' description: debt principal, only return this info when api requests with m-wallet interest: type: string example: '0.001' description: debt interest, only return this info when api requests with m-wallet required: - currency - balance - locked - staked description: External_V3_Entities_Account model postApiV3WalletMLoan: type: object properties: currency: type: string description: unique composite currency id enum: - twd - btc - eth - usdt example: eth amount: type: string description: loan amount example: '0.019' required: - currency - amount description: submit loan postApiV3WalletMRepayment: type: object properties: currency: type: string description: unique composite currency id enum: - twd - btc - eth - usdt example: eth amount: type: string description: repay amount example: '0.15' required: - currency - amount description: submit repayment