Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/changelog/v5.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,16 @@ title: V5

import '/src/css/changelog.css';

## 2026-09-08
### REST API
- [TM-Onchain Appeal](../v5/tm-onchain/appeal-list) [NEW]
- Launch TM-Onchain compliance appeal OpenAPI for Institution master-sub accounts. REST endpoints: get appeal list / detail, commit appeal.
- [File Upload](../v5/file/file-upload-sign) [NEW]
- Launch generic File Upload OpenAPI: get upload sign and report upload complete. Used by TM-Onchain appeal and other scenarios.

### Websocket API
- [Appeal Status Push](../v5/tm-onchain/ws-appeal) [NEW]
- New private topic `fiat.compliance.appeal`. Push appeal status changes to the Institution master account.
## 2026-09-07
### REST API
- [Integration Guidance](../v5/guide#authentication)
Expand Down
96 changes: 95 additions & 1 deletion docs/v5/enum.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -911,4 +911,98 @@ Values that may appear in `accountRestriction.ban` / `unban`, mapped from the ba
### tm-onchain-fileType
* `fiat-image` Image (jpg / png)
* `fiat-pdf` PDF
* `fiat-video` Video (mp4, etc.)
* `fiat-video` Video (mp4, etc.)

### tm-onchain-documentCode
Material codes returned in the `documentCode` field of [Get Appeal Detail](./tm-onchain/appeal-detail). The client submits each material keyed by its `documentCode` in [Commit Appeal](./tm-onchain/appeal-commit). The [styleBox](#tm-onchain-stylebox) column indicates the expected input format.

**Transaction Details**
* `OnchainTransactionPurpose` `CHECKBOX` — Purpose of the transaction with the counterparty (required). Multi-select; see [values](#tm-onchain-onchaintransactionpurpose-values)
* `OnchainCounterpartyRelationship` `CHECKBOX` — Your relationship with the counterparty (required). Multi-select; see [values](#tm-onchain-onchaincounterpartyrelationship-values)
* `OnchainBybitWalletAddressProof` `UPLOAD` — Proof of how the Bybit wallet address was shared (chat, email, screenshot, screen recording, or proof of ownership). Max 10 files, ≤ 5 MB each; `.jpg` / `.jpeg` / `.png` / `.pdf` only

**KYC Information**
* `AnnualIncome` `SELECT` — Annual income range in USD (required). Single-select; see [values](#tm-onchain-annualincome-values)
* `OccupationEdd` `SELECT` — Current employment / occupational status (required). Single-select; see [values](#tm-onchain-occupationedd-values)
* `SourceOfWealthEDD` `CHECKBOX` — Primary sources contributing to accumulated wealth (required). Multi-select; see [values](#tm-onchain-sourceofwealthedd-values)
* `EDDSourceOfWealthWD` `UPLOAD` — Source-of-wealth documents: last 3 months of bank statement, latest income tax statement, or last 3 months of salary slip. Original PDF or officially issued documents preferred. Required; max 10 files, ≤ 5 MB each; `.jpg` / `.jpeg` / `.png` / `.pdf` only
* `AddressStreet` `SINGLEINPUT` — Residential street address (required). Max 200 chars
* `City` `SINGLEINPUT` — Residential city / town. Max 100 chars
* `Province` `SINGLEINPUT` — State / province / region (if applicable)
* `PostalCode` `SINGLEINPUT` — Postal / ZIP code (required). Max 20 chars
* `Country` `COUNTRYNAME` — Country of residence (required). Full English country name per [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), e.g. `Australia`

**Associated Platform / Exchange**
* `OnchainDepositWalletName` `SINGLEINPUT` — Platform / exchange name of the counterparty's address (required). Max 1000 chars
* `RelationshipwithCounterparty` `SELECT` — Your relationship with the counterparty's platform / exchange (required). Single-select; see [values](#tm-onchain-relationshipwithcounterparty-values)

### tm-onchain-OnchainTransactionPurpose-values
Option values for `documentCode=OnchainTransactionPurpose`. Submit as a list of option values via `itemsData[].mulContent[]`.
* `1` Debt repayment
* `2` Borrowing / Loan receipt
* `3` Personal crypto investment / Trading
* `4` OTC / Crypto exchange business activity
* `5` Third-party crypto trading activity
* `6` Transfer between your own wallets or exchange accounts
* `7` Salary payment
* `8` Investment / Capital allocation
* `9` Family support
* `10` Purchase of goods & services (requires `detailContent`)
* `11` Others (requires `detailContent`)

### tm-onchain-OnchainCounterpartyRelationship-values
Option values for `documentCode=OnchainCounterpartyRelationship`. Submit as a list of option values via `itemsData[].mulContent[]`.
* `1` Self / Own wallet / Own account
* `2` Family member
* `3` Friend / Acquaintance
* `4` Employer
* `5` Employee
* `6` Business partner
* `7` Customer / Client (not related to exchange services)
* `8` Vendor / Supplier (not related to exchange services)
* `9` Client — OTC / Offline exchange
* `10` Service provider — OTC / Offline exchange
* `11` Third-party collection / Aggregation (requires `detailContent`)
* `12` Unknown third party
* `13` Others (requires `detailContent`)

### tm-onchain-AnnualIncome-values
Option values for `documentCode=AnnualIncome`. Submit the option value via `itemsData[].content`.
* `1` Below USD 10,000
* `2` USD 10,000 – USD 50,000
* `3` USD 50,001 – USD 100,000
* `4` USD 100,001 – USD 250,000
* `5` USD 250,001 – USD 500,000
* `6` Above USD 500,000

### tm-onchain-OccupationEdd-values
Option values for `documentCode=OccupationEdd`. Submit the option value via `itemsData[].content`.
* `1` Salaried employee
* `2` Self-employed / Business owner
* `3` Student
* `4` Retired
* `5` Unemployed
* `6` Freelancer
* `7` Others (requires `detailContent`)

### tm-onchain-SourceOfWealthEDD-values
Option values for `documentCode=SourceOfWealthEDD`. Submit as a list of option values via `itemsData[].mulContent[]`.
* `1` Employment income / Savings (including self-employment)
* `2` Business income (if the company was incorporated or has operated for less than one year with no income, pick another option instead)
* `3` Investment profits (e.g., stocks, bonds, forex)
* `4` Crypto investment profits
* `5` Inheritance
* `6` Gifts / Donation
* `7` Loan / Credit
* `8` Sale of assets
* `9` Passive income (including real estate leasing and dividends)
* `10` Social benefits / Pension
* `11` Others (requires `detailContent`)

### tm-onchain-RelationshipwithCounterparty-values
Option values for `documentCode=RelationshipwithCounterparty`. Submit the option value via `itemsData[].content`.
* `1` Regular user
* `2` Shareholder or Beneficial owner
* `3` Employee
* `4` Business partner
* `5` No affiliation
2 changes: 1 addition & 1 deletion docs/v5/tm-onchain/appeal-commit.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Submit the required materials for an appeal. The same appeal can be committed wh
|appealId |**true** |string |Appeal ID |
|decisionType |false |integer |`0` = normal submit (default); `1` = refuse submit, appeal will be disused |
|itemsData |**true** |array<object> |Submission content per material, one element per material |
|> documentCode |**true** |string |Material code, must match the `documentCode` returned by the detail endpoint |
|> [documentCode](../enum#tm-onchain-documentcode) |**true** |string |Material code, must match the `documentCode` returned by the detail endpoint |
|> resources |Conditional |array<object> |File resource list, used when `styleBox` is `UPLOAD` / `MIXUPLOAD` |
|>> resourceId |**true** |string |Resource ID returned after a successful file upload |
|>> [fileType](../enum#tm-onchain-filetype) |**true** |string |File type: `fiat-image` / `fiat-pdf` / `fiat-video` |
Expand Down
2 changes: 1 addition & 1 deletion docs/v5/tm-onchain/appeal-detail.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Get the list of materials that need to be submitted for a specific appeal. **Up
|[status](../enum#tm-onchain-resultstatus) |string |Appeal status enum |
|createdAt |string |Appeal creation time (Unix seconds) |
|documents |array<object> |List of materials to submit, in the suggested filling order |
|> documentCode |string |Unique material code, echoed as-is on submit |
|> [documentCode](../enum#tm-onchain-documentcode) |string |Unique material code, echoed as-is on submit |
|> [styleBox](../enum#tm-onchain-stylebox) |string |Form type enum, determines which field to use on submit |
|> title |string |Material title (English) |
|relatedOrder |array<object> |Related order info; not enabled for `TM_Onchain` / `TM_Onchain_KYB`, always empty |
Expand Down
10 changes: 10 additions & 0 deletions i18n/zh-TW/docusaurus-plugin-content-docs/current/changelog/v5.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,16 @@ title: V5

import '/src/css/changelog.css';

## 2026-09-08
### REST API
- [TM-Onchain 工單](../v5/tm-onchain/appeal-list) [新增]
- 上線 TM-Onchain 母子帳戶合規工單 OpenAPI。REST 接口涵蓋:獲取工單列表 / 詳情、提交工單。
- [文件上傳](../v5/file/file-upload-sign) [新增]
- 上線通用文件上傳 OpenAPI,包含獲取上傳簽名、上報上傳完成兩個接口,供 TM-Onchain 工單等場景使用。

### Websocket API
- [WebSocket 工單狀態推送](../v5/tm-onchain/ws-appeal) [新增]
- 新增私有 topic `fiat.compliance.appeal`,工單狀態變更時推送給 Institution 母帳戶。
## 2026-09-07
### REST API
- [接入指南](../v5/guide#authentication)
Expand Down
94 changes: 94 additions & 0 deletions i18n/zh-TW/docusaurus-plugin-content-docs/current/v5/enum.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -915,3 +915,97 @@ _期權_:
* `fiat-image` 圖片(jpg / png)
* `fiat-pdf` PDF
* `fiat-video` 視頻(mp4 等)

### tm-onchain-documentCode
[獲取工單詳情](./tm-onchain/appeal-detail) 返回的 `documentCode` 材料編碼,客戶端在 [提交工單](./tm-onchain/appeal-commit) 時按 `documentCode` 提交對應材料。[styleBox](#tm-onchain-stylebox) 一列標明期望的填寫格式。

**交易詳情**
* `OnchainTransactionPurpose` `CHECKBOX` — 與對手方的交易目的(必填)。多選,取值見 [values](#tm-onchain-onchaintransactionpurpose-values)
* `OnchainCounterpartyRelationship` `CHECKBOX` — 你與對手方的關係(必填)。多選,取值見 [values](#tm-onchain-onchaincounterpartyrelationship-values)
* `OnchainBybitWalletAddressProof` `UPLOAD` — Bybit 錢包地址的分享/接收證明(聊天記錄、郵件、截圖、錄屏或所有權證明)。最多 10 個文件,單個 ≤ 5 MB,僅支持 `.jpg` / `.jpeg` / `.png` / `.pdf`

**KYC 資訊**
* `AnnualIncome` `SELECT` — 年收入區間(美元,必填)。單選,取值見 [values](#tm-onchain-annualincome-values)
* `OccupationEdd` `SELECT` — 當前就業 / 職業狀況(必填)。單選,取值見 [values](#tm-onchain-occupationedd-values)
* `SourceOfWealthEDD` `CHECKBOX` — 財富累積的主要來源(必填)。多選,取值見 [values](#tm-onchain-sourceofwealthedd-values)
* `EDDSourceOfWealthWD` `UPLOAD` — 財富來源證明文件:近 3 個月銀行流水、最新完稅證明或近 3 個月工資單。優先提供原始 PDF 或官方出具的文件。必填;最多 10 個文件,單個 ≤ 5 MB,僅支持 `.jpg` / `.jpeg` / `.png` / `.pdf`
* `AddressStreet` `SINGLEINPUT` — 居住地街道地址(必填)。最多 200 字元
* `City` `SINGLEINPUT` — 居住城市 / 城鎮。最多 100 字元
* `Province` `SINGLEINPUT` — 州 / 省 / 地區(如適用)
* `PostalCode` `SINGLEINPUT` — 郵政編碼(必填)。最多 20 字元
* `Country` `COUNTRYNAME` — 居住國家(必填)。填寫符合 [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) 的英文國家全稱,例如 `Australia`

**關聯平台 / 交易所**
* `OnchainDepositWalletName` `SINGLEINPUT` — 對手方地址所屬的平台 / 交易所名稱(必填)。最多 1000 字元
* `RelationshipwithCounterparty` `SELECT` — 你與對手方所屬平台 / 交易所的關係(必填)。單選,取值見 [values](#tm-onchain-relationshipwithcounterparty-values)

### tm-onchain-OnchainTransactionPurpose-values
`documentCode=OnchainTransactionPurpose` 的取值。以取值列表通過 `itemsData[].mulContent[]` 提交。
* `1` 償還債務
* `2` 借款 / 收到貸款
* `3` 個人加密投資 / 交易
* `4` OTC / 幣幣兌換業務
* `5` 第三方加密交易活動
* `6` 在自有錢包 / 交易所帳戶之間轉帳
* `7` 工資發放
* `8` 投資 / 資金配置
* `9` 家庭支援
* `10` 購買商品 & 服務(需附 `detailContent`)
* `11` 其他(需附 `detailContent`)

### tm-onchain-OnchainCounterpartyRelationship-values
`documentCode=OnchainCounterpartyRelationship` 的取值。以取值列表通過 `itemsData[].mulContent[]` 提交。
* `1` 本人 / 自有錢包 / 自有帳戶
* `2` 家庭成員
* `3` 朋友 / 熟人
* `4` 僱主
* `5` 僱員
* `6` 商業合作夥伴
* `7` 客戶(與交易所服務無關)
* `8` 供應商(與交易所服務無關)
* `9` 客戶 — OTC / 線下兌換
* `10` 服務提供方 — OTC / 線下兌換
* `11` 第三方代收 / 匯總(需附 `detailContent`)
* `12` 未知第三方
* `13` 其他(需附 `detailContent`)

### tm-onchain-AnnualIncome-values
`documentCode=AnnualIncome` 的取值。取值通過 `itemsData[].content` 提交。
* `1` 低於 10,000 美元
* `2` 10,000 – 50,000 美元
* `3` 50,001 – 100,000 美元
* `4` 100,001 – 250,000 美元
* `5` 250,001 – 500,000 美元
* `6` 500,000 美元以上

### tm-onchain-OccupationEdd-values
`documentCode=OccupationEdd` 的取值。取值通過 `itemsData[].content` 提交。
* `1` 受薪員工
* `2` 個體 / 企業主
* `3` 學生
* `4` 退休
* `5` 無業
* `6` 自由職業
* `7` 其他(需附 `detailContent`)

### tm-onchain-SourceOfWealthEDD-values
`documentCode=SourceOfWealthEDD` 的取值。以取值列表通過 `itemsData[].mulContent[]` 提交。
* `1` 工資收入 / 儲蓄(含自僱收入)
* `2` 經營收入(若公司成立或經營未滿一年且尚未產生收入,請選擇其他選項)
* `3` 投資收益(如股票、債券、外匯)
* `4` 加密投資收益
* `5` 遺產
* `6` 贈與 / 捐贈
* `7` 貸款 / 授信
* `8` 資產出售
* `9` 被動收入(含房產租賃、股息)
* `10` 社會福利 / 退休金
* `11` 其他(需附 `detailContent`)

### tm-onchain-RelationshipwithCounterparty-values
`documentCode=RelationshipwithCounterparty` 的取值。取值通過 `itemsData[].content` 提交。
* `1` 普通用戶
* `2` 股東或受益所有人
* `3` 員工
* `4` 商業合作夥伴
* `5` 無關聯
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ sidebar_position: 5
|appealId |**true** |string |工單 ID |
|decisionType |false |integer |`0` = 正常提交(默認);`1` = 拒絕提交,工單將被廢棄 |
|itemsData |**true** |array<object> |各材料的提交內容,每個材料一個元素 |
|> documentCode |**true** |string |材料編碼,與詳情接口返回的 `documentCode` 一致 |
|> [documentCode](../enum#tm-onchain-documentcode) |**true** |string |材料編碼,與詳情接口返回的 `documentCode` 一致 |
|> resources |條件 |array<object> |文件資源列表,`styleBox` 為 `UPLOAD` / `MIXUPLOAD` 時使用 |
|>> resourceId |**true** |string |文件上傳成功後返回的資源 ID |
|>> [fileType](../enum#tm-onchain-filetype) |**true** |string |文件類型:`fiat-image` / `fiat-pdf` / `fiat-video` |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ sidebar_position: 4
|[status](../enum#tm-onchain-resultstatus) |string |工單狀態枚舉 |
|createdAt |string |工單創建時間(Unix 秒) |
|documents |array<object> |待提交材料列表,順序即建議的填寫順序 |
|> documentCode |string |材料唯一編碼,提交時原樣回傳 |
|> [documentCode](../enum#tm-onchain-documentcode) |string |材料唯一編碼,提交時原樣回傳 |
|> [styleBox](../enum#tm-onchain-stylebox) |string |表單類型枚舉,決定提交時使用哪個字段 |
|> title |string |材料標題(英文) |
|relatedOrder |array<object> |關聯訂單信息;`TM_Onchain` / `TM_Onchain_KYB` 未開啟該展示,固定為空 |
Expand Down
38 changes: 18 additions & 20 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,24 @@ const sidebars = {
]
},
]
},
{
type: 'category',
label: 'Compliance',
items: [
'v5/tm-onchain/ws-appeal',
'v5/tm-onchain/appeal-list',
'v5/tm-onchain/appeal-detail',
'v5/tm-onchain/appeal-commit',
{
type: 'category',
label: 'File',
items: [
'v5/file/file-upload-sign',
'v5/file/report-file-upload',
]
},
]
}
]
},
Expand Down Expand Up @@ -572,28 +590,8 @@ const sidebars = {
}
]
},
// TODO: TM-Onchain not ready for public release yet, hide until launch
// {
// type: 'category',
// label: 'Compliance',
// items: [
// 'v5/tm-onchain/ws-appeal',
// 'v5/tm-onchain/appeal-list',
// 'v5/tm-onchain/appeal-detail',
// 'v5/tm-onchain/appeal-commit',
// ]
// },
]
},
// TODO: File Upload not ready for public release yet, hide until launch
// {
// type: 'category',
// label: 'File',
// items: [
// 'v5/file/file-upload-sign',
// 'v5/file/report-file-upload',
// ]
// },
{
type: 'category',
label: 'Finance',
Expand Down